]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
Fix emission of exception dispatch (PR middle-end/82154).
[thirdparty/gcc.git] / gcc / ChangeLog
1 2017-09-13 Martin Liska <mliska@suse.cz>
2
3 PR middle-end/82154
4 * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
5 CASE_HIGH is NULL_TREE.
6
7 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
8 Alan Hayward <alan.hayward@arm.com>
9 David Sherwood <david.sherwood@arm.com>
10
11 * target.def (secondary_memory_needed): New hook.
12 (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
13 instead of SECONDARY_MEMORY_NEEDED.
14 (secondary_memory_needed_mode): Likewise.
15 * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
16 * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
17 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
18 (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
19 (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
20 * doc/tm.texi: Regenerate.
21 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
22 * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
23 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
24 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
25 * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
26 * config/i386/i386.c (inline_secondary_memory_needed): Put the
27 mode argument first and change the reg_class arguments to reg_class_t.
28 (ix86_secondary_memory_needed): Likewise. Remove the strict parameter.
29 Make static. Update the call to inline_secondary_memory_needed.
30 (ix86_register_move_cost): Update the call to
31 inline_secondary_memory_needed.
32 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
33 * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
34 definition.
35 * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
36 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
37 in comment.
38 * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
39 * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
40 * config/mips/mips.c (mips_secondary_memory_needed): Make static
41 and match hook interface. Add comment from mips.h.
42 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
43 * config/mmix/mmix.md (truncdfsf2): Refer to
44 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
45 in comment.
46 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
47 (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
48 * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
49 (pa_secondary_memory_needed): New function.
50 * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
51 * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
52 * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
53 (pdp11_secondary_memory_needed): Make static and match hook interface.
54 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
55 * config/powerpcspe/powerpcspe-protos.h
56 (rs6000_secondary_memory_needed_ptr): Delete.
57 * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
58 Delete.
59 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
60 (rs6000_option_override_internal): Assign to
61 targetm.secondary_memory_needed rather than
62 rs6000_secondary_memory_needed_ptr.
63 (rs6000_secondary_memory_needed): Match hook interface.
64 (rs6000_debug_secondary_memory_needed): Likewise.
65 * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
66 * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
67 (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
68 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
69 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
70 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
71 Delete.
72 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
73 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
74 (rs6000_option_override_internal): Assign to
75 targetm.secondary_memory_needed rather than
76 rs6000_secondary_memory_needed_ptr.
77 (rs6000_secondary_memory_needed): Match hook interface.
78 (rs6000_debug_secondary_memory_needed): Likewise.
79 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
80 * config/s390/s390.c (s390_secondary_memory_needed): New function.
81 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
82 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
83 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
84 (sparc_secondary_memory_needed): New function.
85 * lra-constraints.c (check_and_process_move): Refer to
86 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
87 in comment.
88 (curr_insn_transform): Likewise.
89 (process_alt_operands): Use targetm.secondary_memory_needed
90 instead of TARGET_SECONDARY_MEMORY_NEEDED.
91 (check_secondary_memory_needed_p): Likewise.
92 (choose_split_class): Likewise.
93 * reload.c: Unconditionally include code that was previously
94 conditional on SECONDARY_MEMORY_NEEDED.
95 (push_secondary_reload): Use targetm.secondary_memory_needed
96 instead of TARGET_SECONDARY_MEMORY_NEEDED.
97 (push_reload): Likewise.
98 * reload1.c: Unconditionally include code that was previously
99 conditional on SECONDARY_MEMORY_NEEDED.
100 (choose_reload_regs): Use targetm.secondary_memory_needed
101 instead of TARGET_SECONDARY_MEMORY_NEEDED.
102 (gen_reload): Likewise.
103 * system.h (SECONDARY_MEMORY_NEEDED): Poison.
104
105 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
106 Alan Hayward <alan.hayward@arm.com>
107 David Sherwood <david.sherwood@arm.com>
108
109 * target.def (secondary_memory_needed_mode): New hook:
110 * targhooks.c (default_secondary_memory_needed_mode): Declare.
111 * targhooks.h (default_secondary_memory_needed_mode): New function.
112 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
113 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
114 * doc/tm.texi: Regenerate.
115 * lra-constraints.c (check_and_process_move): Use
116 targetm.secondary_memory_needed_mode instead of
117 TARGET_SECONDARY_MEMORY_NEEDED_MODE.
118 (curr_insn_transform): Likewise.
119 * reload.c (get_secondary_mem): Likewise.
120 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
121 * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
122 function.
123 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
124 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
125 * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
126 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
127 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
128 Delete.
129 * config/powerpcspe/powerpcspe-protos.h
130 (rs6000_secondary_memory_needed_mode): Delete.
131 * config/powerpcspe/powerpcspe.c
132 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
133 (rs6000_secondary_memory_needed_mode): Make static.
134 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
135 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
136 Delete.
137 * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
138 Redefine.
139 (rs6000_secondary_memory_needed_mode): Make static.
140 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
141 * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
142 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
143 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
144 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
145 Redefine.
146 (sparc_secondary_memory_needed_mode): New function.
147 * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
148
149 2017-09-13 Jackson Woodruff <jackson.woodruff@arm.com>
150
151 * config/aarch64/constraints.md (Umq): New constraint.
152 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
153 Change to use Umq.
154 (mov<mode>): Update condition.
155
156 2017-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
157
158 * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
159 when bitposition is the same.
160
161 2017-09-13 Richard Biener <rguenther@suse.de>
162
163 * dwarf2out.c (output_die_symbol): Remove.
164 (output_die): Do not output a DIEs symbol.
165
166 2017-09-13 Richard Biener <rguenther@suse.de>
167
168 PR middle-end/82128
169 * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
170 default-def to avoid breaking iterator update with the weird
171 interaction with cgraph_update_edges_for_call_stmt_node.
172
173 2017-09-13 Richard Biener <rguenther@suse.de>
174
175 * tree-cfg.c (verify_gimple_assign_binary): Add verification
176 for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
177 VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
178 (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
179
180 2017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org>
181
182 * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
183 Disable pc relative literal load irrespective of
184 TARGET_FIX_ERR_A53_84341 for default.
185
186 2017-09-12 Eric Botcazou <ebotcazou@adacore.com>
187
188 * config/sparc/sparc.c (output_return): Output the source location of
189 the insn in the delay slot, if any.
190 (output_sibcall): Likewise.
191
192 2017-09-12 H.J. Lu <hongjiu.lu@intel.com>
193
194 PR driver/81498
195 * common.opt (-static-pie): New alias.
196 (shared): Negate static-pie.
197 (-no-pie): Update help text.
198 (-pie): Likewise.
199 (static-pie): New option.
200 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
201 -static-pie support.
202 (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
203 (LINK_EH_SPEC): Likewise.
204 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
205 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
206 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
207 * gcc.c (LINK_COMMAND_SPEC): Likewise.
208 (init_gcc_specs): Likewise.
209 (init_spec): Likewise.
210 (display_help): Update help message for -pie.
211 * doc/invoke.texi: Update -pie, -no-pie and -static. Document
212 -static-pie.
213
214 2017-09-12 Wilco Dijkstra <wdijkstr@arm.com>
215
216 * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
217 (movdi_aarch64): Likewise.
218 (movti_aarch64): Likewise.
219
220 2017-09-12 Simon Wright <simon@pushface.org>
221
222 PR target/80204
223 * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
224 calculation of the minor version, always output as 0.
225
226 2017-09-12 Jakub Jelinek <jakub@redhat.com>
227
228 PR target/82112
229 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
230 ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
231 on it early, rather than manual conversion late. For
232 ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
233 instead of performing manual conversion.
234
235 2017-09-12 Carl Love <cel@us.ibm.com>
236
237 * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
238 vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
239 vmulouw, vmulosw.
240 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
241 VMULOSW): Add definitions.
242 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
243 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
244 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
245 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
246 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
247
248 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
249
250 * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
251 types correctly.
252 (movti_aarch64): Likewise.
253 (movdf_aarch64): Likewise.
254 (movtf_aarch64): Likewise.
255 (load_pairdi): Likewise.
256 (store_pairdi): Likewise.
257 (load_pairdf): Likewise.
258 (store_pairdf): Likewise.
259 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
260 (storewb_pair<GPI:mode>_<P:mode>): Likewise.
261 (ldr_got_small_<mode>): Likewise.
262 (ldr_got_small_28k_<mode>): Likewise.
263 (ldr_got_tiny): Likewise.
264 * config/aarch64/iterators.md (ldst_sz): New.
265 (ldpstp_sz): Likewise.
266 * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
267 to store_16.
268 (thunderx_load): Split load_8 to load_16.
269 * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
270 load_8 to load_16.
271 (thunderx2t99_storepair_basic): Split store_8 to store_16.
272 * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
273 (xgene1_store_pair): Split store_8 to store_16.
274 * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
275 (falkor_st_0_st_sd): Split store_8 to store_16.
276
277 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
278
279 * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
280 and store1/2/3/4 to store_4/8/12/16.
281 * config/aarch64/aarch64.md: Update for rename.
282 * config/arm/arm.md: Likewise.: Likewise.
283 * config/arm/arm.c: Likewise.
284 * config/arm/thumb1.md: Likewise.
285 * config/arm/thumb2.md: Likewise.
286 * config/arm/vfp.md: Likewise.
287 * config/arm/arm-generic.md: Likewise.
288 * config/arm/arm1020e.md: Likewise.
289 * config/arm/arm1026ejs.md: Likewise.
290 * config/arm/arm1136jfs.md: Likewise.
291 * config/arm/arm926ejs.md: Likewise.
292 * config/arm/cortex-a15.md: Likewise.
293 * config/arm/cortex-a17.md: Likewise.
294 * config/arm/cortex-a5.md: Likewise.
295 * config/arm/cortex-a53.md: Likewise.
296 * config/arm/cortex-a57.md: Likewise.
297 * config/arm/cortex-a7.md: Likewise.
298 * config/arm/cortex-a8.md: Likewise.
299 * config/arm/cortex-a9.md: Likewise.
300 * config/arm/cortex-m4.md: Likewise.
301 * config/arm/cortex-m7.md: Likewise.
302 * config/arm/cortex-r4.md: Likewise.
303 * config/arm/exynos-m1.md: Likewise.
304 * config/arm/fa526.md: Likewise.
305 * config/arm/fa606te.md: Likewise.
306 * config/arm/fa626te.md: Likewise.
307 * config/arm/fa726te.md: Likewise.
308 * config/arm/fmp626.md: Likewise.
309 * config/arm/iwmmxt.md: Likewise.
310 * config/arm/ldmstm.md: Likewise.
311 * config/arm/marvell-pj4.md: Likewise.
312 * config/arm/xgene1.md: Likewise.
313 * config/aarch64/thunderx.md: Likewise.
314 * config/aarch64/thunderx2t99.md: Likewise.
315 * config/aarch64/falkor.md: Likewise.
316
317 2017-09-12 Martin Liska <mliska@suse.cz>
318
319 * attribs.c (private_lookup_attribute): New function.
320 * attribs.h (private_lookup_attribute): Declared here.
321 (lookup_attribute): Called from this place.
322
323 2017-09-12 Richard Biener <rguenther@suse.de>
324
325 PR tree-optimization/82157
326 * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
327 stmts with side-effects.
328
329 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
330 Alan Hayward <alan.hayward@arm.com>
331 David Sherwood <david.sherwood@arm.com>
332
333 * target.def (hard_regno_nregs): New hook.
334 (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
335 * targhooks.h (default_hard_regno_nregs): Declare.
336 * targhooks.c (default_hard_regno_nregs): New function.
337 * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
338 (TARGET_HARD_REGNO_NREGS): ...this hook.
339 (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
340 (CLASS_MAX_NREGS): Likewise.
341 * doc/tm.texi: Regenerate.
342 * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
343 instead of HARD_REGNO_NREGS.
344 * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
345 HARD_REGNO_NREGS in the comment.
346 * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
347 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
348 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
349 Return an unsigned int.
350 (TARGET_HARD_REGNO_NREGS): Redefine.
351 * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
352 * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
353 * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
354 (arc_hard_regno_nregs): New function.
355 * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
356 * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
357 (arm_hard_regno_nregs): New function.
358 * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
359 * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
360 * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
361 (TARGET_HARD_REGNO_NREGS): Redefine.
362 * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
363 * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
364 (HARD_REGNO_NREGS): Delete.
365 * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
366 (cr16_hard_regno_nregs): New function.
367 (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
368 * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
369 * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
370 (cris_hard_regno_nregs): New function.
371 * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
372 * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
373 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
374 * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
375 (CLASS_MAX_NREGS): Remove outdated copy of documentation.
376 * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
377 * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
378 (frv_hard_regno_nregs): Make static. Take and return an
379 unsigned int.
380 (frv_class_max_nregs): Remove outdated copy of documentation.
381 * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
382 * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
383 * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
384 * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
385 * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
386 * config/i386/i386.c (ix86_hard_regno_nregs): New function.
387 (TARGET_HARD_REGNO_NREGS): Redefine.
388 * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
389 (CLASS_MAX_NREGS): Update comment.
390 * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
391 (ia64_hard_regno_nregs): New function.
392 * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
393 * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
394 * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
395 * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
396 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
397 an unsigned int.
398 (m32c_hard_regno_nregs): Likewise. Make static.
399 (TARGET_HARD_REGNO_NREGS): Redefine.
400 * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
401 * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
402 * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
403 (m68k_hard_regno_nregs): New function.
404 * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
405 * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
406 * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
407 * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
408 * config/mips/mips.c (mips_hard_regno_nregs): Make static.
409 Take and return an unsigned int.
410 (TARGET_HARD_REGNO_NREGS): Redefine.
411 * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
412 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
413 * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
414 * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
415 * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
416 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
417 * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
418 (msp430_hard_regno_nregs): Make static. Take and return an
419 unsigned int.
420 * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
421 * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
422 * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
423 (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
424 * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
425 * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
426 * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
427 (TARGET_HARD_REGNO_NREGS): Redefine.
428 * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
429 (PA_HARD_REGNO_NREGS): ...this.
430 * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
431 (PA_HARD_REGNO_NREGS): ...this.
432 * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
433 (pa_hard_regno_nregs): New function.
434 * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
435 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
436 (pdp11_hard_regno_nregs): New function.
437 * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
438 * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
439 (rs6000_hard_regno_nregs_hook): New function.
440 * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
441 * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
442 * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
443 Take and return an unsigned int. Move earlier in file.
444 (TARGET_HARD_REGNO_NREGS): Redefine.
445 * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
446 * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
447 * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
448 (rl78_hard_regno_nregs): Make static. Take and return an
449 unsigned int.
450 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
451 * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
452 (rs6000_hard_regno_nregs_hook): New function.
453 * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
454 * config/rx/rx.c (rx_hard_regno_nregs): New function.
455 (TARGET_HARD_REGNO_NREGS): Redefine.
456 * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
457 * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
458 instead of HARD_REGNO_NREGS.
459 (s390_hard_regno_nregs): New function.
460 (s390_hard_regno_mode_ok): Add comment from s390.h.
461 (TARGET_HARD_REGNO_NREGS): Redefine.
462 * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
463 * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
464 (sh_hard_regno_nregs): New function.
465 (sh_pass_in_reg_p): Use it.
466 * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
467 * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
468 (sparc_hard_regno_nregs): New function.
469 * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
470 * config/spu/spu.c (spu_hard_regno_nregs): New function.
471 (spu_function_arg_advance): Use it, supplying a valid register number.
472 (TARGET_HARD_REGNO_NREGS): Redefine.
473 * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
474 * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
475 * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
476 * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
477 * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
478 * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
479 (CLASS_MAX_NREGS): Remove copy of old documentation.
480 * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
481 (visium_hard_regno_nregs): New function.
482 (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
483 * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
484 * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
485 xtensa_hard_regno_nregs): New function.
486 * system.h (HARD_REGNO_NREGS): Poison.
487
488 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
489
490 * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
491 hard_regno_nregs instead of HARD_REGNO_NREGS.
492 (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
493 * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
494 (c6x_expand_epilogue): Likewise.
495 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
496 (frv_read_iacc_argument): Likewise.
497 * config/sh/sh.c: Include regs.h.
498 (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
499 (regs_used): Likewise.
500 (output_stack_adjust): Likewise.
501 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
502 * expmed.c: Include regs.h.
503 (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
504 * ree.c: Include regs.h.
505 (combine_reaching_defs): Use hard_regno_nregs instead of
506 HARD_REGNO_NREGS.
507 (add_removable_extension): Likewise.
508
509 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
510
511 * regs.h (hard_regno_nregs): Turn into a function.
512 (end_hard_regno): Update accordingly.
513 * caller-save.c (setup_save_areas): Likewise.
514 (save_call_clobbered_regs): Likewise.
515 (replace_reg_with_saved_mem): Likewise.
516 (insert_restore): Likewise.
517 (insert_save): Likewise.
518 * combine.c (can_change_dest_mode): Likewise.
519 (move_deaths): Likewise.
520 (distribute_notes): Likewise.
521 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
522 * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
523 (rs6000_split_multireg_move): Likewise.
524 (rs6000_register_move_cost): Likewise.
525 (rs6000_memory_move_cost): Likewise.
526 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
527 (rs6000_split_multireg_move): Likewise.
528 (rs6000_register_move_cost): Likewise.
529 (rs6000_memory_move_cost): Likewise.
530 * cselib.c (cselib_reset_table): Likewise.
531 (cselib_lookup_1): Likewise.
532 * emit-rtl.c (set_mode_and_regno): Likewise.
533 * function.c (aggregate_value_p): Likewise.
534 * ira-color.c (setup_profitable_hard_regs): Likewise.
535 (check_hard_reg_p): Likewise.
536 (calculate_saved_nregs): Likewise.
537 (assign_hard_reg): Likewise.
538 (improve_allocation): Likewise.
539 (calculate_spill_cost): Likewise.
540 * ira-emit.c (modify_move_list): Likewise.
541 * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
542 (ira_hard_reg_in_set_p): Likewise.
543 * ira.c (setup_reg_mode_hard_regset): Likewise.
544 (clarify_prohibited_class_mode_regs): Likewise.
545 (check_allocation): Likewise.
546 * lra-assigns.c (find_hard_regno_for_1): Likewise.
547 (lra_setup_reg_renumber): Likewise.
548 (setup_try_hard_regno_pseudos): Likewise.
549 (spill_for): Likewise.
550 (assign_hard_regno): Likewise.
551 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
552 * lra-constraints.c (in_class_p): Likewise.
553 (lra_constraint_offset): Likewise.
554 (simplify_operand_subreg): Likewise.
555 (lra_constraints): Likewise.
556 (split_reg): Likewise.
557 (split_if_necessary): Likewise.
558 (invariant_p): Likewise.
559 (inherit_in_ebb): Likewise.
560 * lra-lives.c (process_bb_lives): Likewise.
561 * lra-remat.c (reg_overlap_for_remat_p): Likewise.
562 (get_hard_regs): Likewise.
563 (do_remat): Likewise.
564 * lra-spills.c (assign_spill_hard_regs): Likewise.
565 * mode-switching.c (create_pre_exit): Likewise.
566 * postreload.c (reload_combine_recognize_pattern): Likewise.
567 * recog.c (peep2_find_free_register): Likewise.
568 * regcprop.c (kill_value_regno): Likewise.
569 (set_value_regno): Likewise.
570 (copy_value): Likewise.
571 (maybe_mode_change): Likewise.
572 (find_oldest_value_reg): Likewise.
573 (copyprop_hardreg_forward_1): Likewise.
574 * regrename.c (check_new_reg_p): Likewise.
575 (regrename_do_replace): Likewise.
576 * reload.c (push_reload): Likewise.
577 (combine_reloads): Likewise.
578 (find_dummy_reload): Likewise.
579 (operands_match_p): Likewise.
580 (find_reloads): Likewise.
581 (find_equiv_reg): Likewise.
582 (reload_adjust_reg_for_mode): Likewise.
583 * reload1.c (count_pseudo): Likewise.
584 (count_spilled_pseudo): Likewise.
585 (find_reg): Likewise.
586 (clear_reload_reg_in_use): Likewise.
587 (free_for_value_p): Likewise.
588 (allocate_reload_reg): Likewise.
589 (choose_reload_regs): Likewise.
590 (reload_adjust_reg_for_temp): Likewise.
591 (emit_reload_insns): Likewise.
592 (delete_output_reload): Likewise.
593 * rtlanal.c (subreg_get_info): Likewise.
594 * sched-deps.c (sched_analyze_reg): Likewise.
595 * sel-sched.c (init_regs_for_mode): Likewise.
596 (mark_unavailable_hard_regs): Likewise.
597 (choose_best_reg_1): Likewise.
598 (verify_target_availability): Likewise.
599 * valtrack.c (dead_debug_insert_temp): Likewise.
600 * var-tracking.c (track_loc_p): Likewise.
601 (emit_note_insn_var_location): Likewise.
602 * varasm.c (make_decl_rtl): Likewise.
603 * reginfo.c (choose_hard_reg_mode): Likewise.
604 (init_reg_modes_target): Refer directly to
605 this_target_regs->x_hard_regno_nregs.
606
607 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
608
609 * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
610 instead of hard_regno_nregs.
611
612 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
613
614 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
615 end_hard_regno instead of hard_regno_nregs.
616 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
617 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
618 * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
619 * ira-color.c (improve_allocation): Likewise.
620 * lra-assigns.c (find_hard_regno_for_1): Likewise.
621 * lra-lives.c (mark_regno_live): Likewise.
622 (mark_regno_dead): Likewise.
623 * lra-remat.c (operand_to_remat): Likewise.
624 * lra.c (collect_non_operand_hard_regs): Likewise.
625 * postreload.c (reload_combine_note_store): Likewise.
626 (move2add_valid_value_p): Likewise.
627 * reload.c (regno_clobbered_p): Likewise.
628
629 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
630
631 * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
632 hard_regno_nregs.
633 * config/v850/v850.c (v850_reorg): Likewise.
634 * reload.c (refers_to_regno_for_reload_p): Likewise.
635 (find_equiv_reg): Likewise.
636 * reload1.c (reload_reg_reaches_end_p): Likewise.
637
638 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
639
640 * caller-save.c (add_used_regs): Use REG_NREGS instead of
641 hard_regno_nregs.
642 * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
643 * config/arm/arm.c (output_move_neon): Likewise.
644 (arm_attr_length_move_neon): Likewise.
645 (neon_split_vcombine): Likewise.
646 * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
647 (c6x_mark_reg_written): Likewise.
648 (c6x_dwarf_register_span): Likewise.
649 * config/i386/i386.c (ix86_save_reg): Likewise.
650 * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
651 (rws_access_reg): Likewise.
652 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
653 * mode-switching.c (create_pre_exit): Likewise.
654 * ree.c (combine_reaching_defs): Likewise.
655 (add_removable_extension): Likewise.
656 * regcprop.c (find_oldest_value_reg): Likewise.
657 (copyprop_hardreg_forward_1): Likewise.
658 * reload.c (reload_inner_reg_of_subreg): Likewise.
659 (push_reload): Likewise.
660 (combine_reloads): Likewise.
661 (find_dummy_reload): Likewise.
662 (reload_adjust_reg_for_mode): Likewise.
663 * reload1.c (find_reload_regs): Likewise.
664 (forget_old_reloads_1): Likewise.
665 (reload_reg_free_for_value_p): Likewise.
666 (reload_adjust_reg_for_temp): Likewise.
667 (emit_reload_insns): Likewise.
668 (delete_output_reload): Likewise.
669 * sel-sched.c (choose_best_reg_1): Likewise.
670 (choose_best_pseudo_reg): Likewise.
671
672 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
673 Alan Hayward <alan.hayward@arm.com>
674 David Sherwood <david.sherwood@arm.com>
675
676 * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
677 * target.def (slow_unaligned_access): New hook.
678 * targhooks.h (default_slow_unaligned_access): Declare.
679 * targhooks.c (default_slow_unaligned_access): New function.
680 * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
681 (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
682 * doc/tm.texi: Regenerate.
683 * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
684 * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
685 * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
686 definition.
687 * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
688 * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
689 Redefine.
690 (rs6000_slow_unaligned_access): New function.
691 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
692 (expand_block_compare): Likewise.
693 (expand_strn_compare): Likewise.
694 (rs6000_rtx_costs): Likewise.
695 * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
696 (riscv_slow_unaligned_access): Likewise.
697 * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
698 (riscv_slow_unaligned_access_p): ...this and make static.
699 (riscv_option_override): Update accordingly.
700 (riscv_slow_unaligned_access): New function.
701 (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
702 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
703 * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
704 (rs6000_slow_unaligned_access): New function.
705 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
706 (rs6000_rtx_costs): Likewise.
707 * config/rs6000/rs6000-string.c (expand_block_compare)
708 (expand_strn_compare): Use targetm.slow_unaligned_access instead
709 of SLOW_UNALIGNED_ACCESS.
710 * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
711 * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
712 * calls.c (expand_call): Use targetm.slow_unaligned_access instead
713 of SLOW_UNALIGNED_ACCESS.
714 * expmed.c (simple_mem_bitfield_p): Likewise.
715 * expr.c (alignment_for_piecewise_move): Likewise.
716 (emit_group_load_1): Likewise.
717 (emit_group_store): Likewise.
718 (copy_blkmode_from_reg): Likewise.
719 (emit_push_insn): Likewise.
720 (expand_assignment): Likewise.
721 (store_field): Likewise.
722 (expand_expr_real_1): Likewise.
723 * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
724 * lra-constraints.c (simplify_operand_subreg): Likewise.
725 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
726 * gimple-ssa-store-merging.c: Likewise in block comment at start
727 of file.
728 * tree-ssa-strlen.c: Include target.h.
729 (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
730 of SLOW_UNALIGNED_ACCESS.
731 * system.h (SLOW_UNALIGNED_ACCESS): Poison.
732
733 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
734
735 PR rtl-optimization/82185
736 * expmed.c (emit_store_flag_int): Only test tem if it has been
737 initialized.
738
739 2017-09-12 Richard Biener <rguenther@suse.de>
740
741 PR middle-end/82149
742 * match.pd ((FTYPE) N CMP CST): Fix typo.
743
744 2017-09-12 Simon Atanasyan <simon.atanasyan@imgtec.com>
745
746 * config/mips/mips.c (mips_attribute_table): Add 'short_call'
747 attribute.
748 (mips_near_type_p): Add 'short_call' attribute as a synonym
749 for 'near'.
750 * doc/extend.texi (short_call): Document new function attribute.
751
752 2017-09-12 Jakub Jelinek <jakub@redhat.com>
753
754 PR target/82112
755 * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
756 assertion check that in the condition.
757 (get_atomic_generic_size): Likewise. Before testing if parameter
758 has pointer type, if it has array type, call for C++
759 default_conversion to perform array-to-pointer conversion.
760
761 2017-09-12 Richard Biener <rguenther@suse.de>
762
763 * tree-vect-generic.c (expand_vector_operations_1): Do nothing
764 for operations we cannot scalarize.
765
766 2017-09-12 Aldy Hernandez <aldyh@redhat.com>
767
768 * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
769 vectors heap vectors. Clean up comments.
770 Make visited_bbs a reference.
771 (profitable_jump_thread_path): Make GC
772 vectors heap vectors. Clean up comments.
773 Misc cleanups.
774 (convert_and_register_jump_thread_path): Make GC vectors heap
775 vectors.
776 (check_subpath_and_update_thread_path): Same. Clean up comments.
777 Make visited_bbs a reference.
778 (handle_phi): Abstract common code to to
779 register_jump_thread_path_if_profitable.
780 Rename VAR_BB to DEF_BB.
781 Update comments.
782 Make GC vectors heap vectors.
783 Make visited_bbs a reference.
784 (handle_assignment): Same.
785 (register_jump_thread_path_if_profitable): New.
786 (fsm_find_control_statement_thread_paths): Rename VAR_BB to
787 DEF_BB.
788 Make GC vectors heap vectors. Clean up comments.
789 Make visited_bbs a reference.
790 (find_jump_threads_backwards): Make visited_bbs live in the stack.
791 * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
792 comment.
793
794 2017-09-11 Max Filippov <jcmvbkbc@gmail.com>
795
796 PR target/82181
797 * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
798 words of E_DImode object are reachable by xtensa_uimm8x4 access.
799
800 2017-09-11 Vidya Praveen <vidyapraveen@arm.com>
801
802 Revert r251800 and r251799.
803
804 2017-09-11 Martin Jambor <mjambor@suse.cz>
805
806 PR hsa/82119
807 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
808 arguments in advance.
809 * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
810 use it to find predecessor edges.
811 (naive_outof_ssa): Collect vector of predecessors.
812
813 2017-09-08 Jason Merrill <jason@redhat.com>
814
815 PR c++/70029 - ICE with ref-qualifier and -flto
816 * langhooks.h (struct lang_hooks_for_types): Add
817 copy_lang_qualifiers.
818 * attribs.c (build_type_attribute_qual_variant): Use it.
819 * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
820 NULL.
821 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
822 * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
823
824 2017-09-08 Eric Botcazou <ebotcazou@adacore.com>
825
826 PR target/81988
827 * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
828 (*mulsi3_sp64): New instruction.
829 (mulsi3): New expander.
830
831 2017-09-08 Uros Bizjak <ubizjak@gmail.com>
832
833 * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
834
835 2017-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
836
837 * sancov.c: Include memmodel.h.
838
839 2017-09-07 Eric Botcazou <ebotcazou@adacore.com>
840
841 PR target/80897
842 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
843 large offsets.
844
845 2017-09-07 Carl Love <cel@us.ibm.com>
846
847 * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
848 the sldi instruction.
849
850 2017-09-07 David Edelsohn <dje.gcc@gmail.com>
851
852 * sancov.c: Include tm_p.h.
853
854 2017-09-07 Jakub Jelinek <jakub@redhat.com>
855
856 PR target/81979
857 * output.h (switch_to_other_text_partition): New declaration.
858 * varasm.c (switch_to_other_text_partition): New function.
859 * config/rs6000/rs6000.c (uses_TOC): Return 2 if
860 NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
861 (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
862 to the other text partition before emitting LCL label and switch back
863 after emitting the word after it.
864
865 2017-09-07 Richard Biener <rguenther@suse.de>
866
867 * passes.def (pass_split_crit_edges): Remove instance before PRE.
868 * tree-ssa-pre.c (pass_pre::execute): Instead manually split
869 critical edges here, after loop init.
870 (pass_data_pre): Remove PROP_no_crit_edges flags.
871 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
872 for valueization of call args to avoid leaking VN_TOP.
873 (visit_use): Assert we do not visit default defs.
874 (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
875 Use error_mark_node to more easily detect leaking VN_TOP.
876 All default-defs are varying, not VN_TOP. Mark them visited.
877 (run_scc_vn): Make code match comment.
878
879 2017-09-07 Michael Meissner <meissner@linux.vnet.ibm.com>
880
881 * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
882 OPTION_MASK_FLOAT128_KEYWORD.
883 (POWERPC_MASKS): Likewise.
884 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
885 support for the -mfloat128-type option, and make -mfloat128
886 default on PowerPC Linux systems. Define or undefine
887 __FLOAT128__ and __FLOAT128_HARDWARE__ for the current options.
888 Define __float128 to be __ieee128 if IEEE 128-bit support is
889 enabled, or undefine it.
890 (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
891 Delete defining __FLOAT128_TYPE__.
892 * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
893 -mfloat128-type option and make -mfloat128 default on PowerPC
894 Linux systems.
895 (TARGET_FLOAT128_TYPE): Likewise.
896 (-mfloat128-type): Likewise.
897 * config/rs6000/rs6000.c (rs6000_option_override_internal):
898 Delete the -mfloat128-type option and make -mfloat128 default on
899 PowerPC Linux systems. Always use __ieee128 to be the keyword for
900 the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
901 128-bit floating point is enabled. Change tests from using
902 -mfloat128-type to -mfloat128.
903 (rs6000_mangle_type): Use the correct mangling for the __float128
904 type even if normal long double is restricted to 64-bits.
905 (floatn_mode): Enable the _Float128 type by default on VSX Linux
906 systems.
907 * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
908 (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
909 (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
910 -mfloat128-type.
911 * doc/invoke.texi (RS/6000 and PowerPC Options): Update
912 documentation for -mfloat128.
913
914 2017-09-06 Olivier Hainque <hainque@adacore.com>
915
916 * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
917
918 2017-09-06 Wish Wu <wishwu007@gmail.com>
919 Jakub Jelinek <jakub@redhat.com>
920
921 * asan.c (initialize_sanitizer_builtins): Add
922 BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
923 BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
924 BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
925 BT_FN_VOID_UINT64_PTR variables.
926 * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
927 (BT_FN_VOID_UINT16_UINT16): Likewise.
928 (BT_FN_VOID_UINT32_UINT32): Likewise.
929 (BT_FN_VOID_FLOAT_FLOAT): Likewise.
930 (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
931 (BT_FN_VOID_UINT64_PTR): Likewise.
932 * common.opt (flag_sanitize_coverage): New variable.
933 (fsanitize-coverage=trace-pc): Remove.
934 (fsanitize-coverage=): Add.
935 * flag-types.h (enum sanitize_coverage_code): New enum.
936 * fold-const.c (fold_range_test): Disable non-short-circuit
937 optimization if flag_sanitize_coverage.
938 (fold_truth_andor): Likewise.
939 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
940 * opts.c (COVERAGE_SANITIZER_OPT): Define.
941 (coverage_sanitizer_opts): New array.
942 (get_closest_sanitizer_option): Add OPTS argument, handle also
943 OPT_fsanitize_coverage_.
944 (parse_sanitizer_options): Adjusted to also handle
945 OPT_fsanitize_coverage_.
946 (common_handle_option): Add OPT_fsanitize_coverage_.
947 * sancov.c (instrument_comparison, instrument_switch): New function.
948 (sancov_pass): Add trace-cmp support.
949 * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
950 BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
951 BUILT_IN_SANITIZER_COV_TRACE_CMP8,
952 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
953 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
954 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
955 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
956 BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
957 BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
958 * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
959
960 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
961
962 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
963 error. Only quit immediately if parsing is complete.
964 (BEGIN): Initialize fatal_err and parse_done.
965 (begin fpu, end fpu): Check number of arguments.
966 (begin arch, end arch): Likewise.
967 (begin cpu, end cpu): Likewise.
968 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
969 (optalias): Likewise.
970
971 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
972
973 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
974 * config/arm/arm-isa.h: Delete. Move definitions to ...
975 * arm-cpus.in: ... here. Use new feature and fgroup values.
976 * config/arm/arm.c (arm_option_override): Use lower case for feature
977 bit names.
978 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
979 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
980 * config/arm/parsecpu.awk (END): Add new command 'isa'.
981 (isa_pfx): Delete.
982 (print_isa_bits_for): New function.
983 (gen_isa): New function.
984 (gen_comm_data): Use print_isa_bits_for.
985 (define feature): New keyword.
986 (define fgroup): New keyword.
987 * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
988 (arm-isa.h): Add rule to generate file.
989 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
990 case for feature bit names.
991
992 2017-09-06 Richard Biener <rguenther@suse.de>
993
994 * tree-ssa-pre.c (NECESSARY): Remove.
995 (create_expression_by_pieces): Do not touch pass-local flags.
996 (insert_into_preds_of_block): Likewise.
997 (do_pre_regular_insertion): Likewise.
998 (eliminate_insert): Likewise.
999 (eliminate_dom_walker::before_dom_children): Likewise.
1000 (fini_eliminate): Do not look at inserted_exprs.
1001 (mark_operand_necessary): Remove.
1002 (remove_dead_inserted_code): Replace with simple work-list
1003 algorithm based on inserted_exprs and SSA uses.
1004 (pass_pre::execute): Re-order fini_eliminate and
1005 remove_dead_inserted_code.
1006
1007 2017-09-06 Olivier Hainque <hainque@adacore.com>
1008
1009 * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
1010 for VxWorks 7. Adjust surrounding comments.
1011
1012 2017-09-06 Richard Biener <rguenther@suse.de>
1013
1014 * gimple-ssa-strength-reduction.c
1015 (find_candidates_dom_walker::before_dom_children): Also allow
1016 pointer types.
1017
1018 2017-09-06 Richard Biener <rguenther@suse.de>
1019
1020 PR tree-optimization/82108
1021 * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
1022 for gap in the non-permutation SLP case.
1023
1024 2017-09-06 Martin Jambor <mjambor@suse.cz>
1025
1026 PR tree-optimization/82078
1027 * tree-sra.c (sort_and_splice_var_accesses): Move call to
1028 add_access_to_work_queue...
1029 (build_accesses_from_assign): ...here.
1030 (propagate_all_subaccesses): Make sure racc is the group
1031 representative, if there is one.
1032
1033 2017-09-06 Jakub Jelinek <jakub@redhat.com>
1034
1035 PR middle-end/82095
1036 * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
1037 NULL DECL_INITIAL.
1038
1039 2017-09-06 Richard Biener <rguenther@suse.de>
1040
1041 * gimple-ssa-strength-reduction.c
1042 (find_candidates_dom_walker::before_doom_children): Use a
1043 type and not a mode check.
1044
1045 2017-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
1046
1047 PR target/77308
1048 * config/arm/predicates.md (arm_general_adddi_operand): Create new
1049 non-vfp predicate.
1050 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
1051
1052 2017-09-05 Jeff Law <law@redhat.com>
1053
1054 PR tree-optimization/64910
1055 * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
1056 cases where we have 3 or more operands.
1057
1058 2017-09-05 Jakub Jelinek <jakub@redhat.com>
1059
1060 PR middle-end/81768
1061 * omp-low.c (lower_omp_for): Recompute tree invariant if
1062 gimple_omp_for_initial/final is ADDR_EXPR.
1063
1064 PR middle-end/81768
1065 * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
1066 into gimple val before gimplification fo the COND_EXPR.
1067
1068 2017-09-05 Aldy Hernandez <aldyh@redhat.com>
1069
1070 * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
1071 REGION_COPY argument.
1072 (thread_through_all_blocks): Remove unused argument to
1073 duplicate_thread_path.
1074
1075 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
1076 Alan Hayward <alan.hayward@arm.com>
1077 David Sherwood <david.sherwood@arm.com>
1078
1079 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
1080 Take a scalar_mode rather than a machine_mode.
1081 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
1082 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
1083 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
1084 (aarch64_gen_adjusted_ldpstp): Likewise.
1085 (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
1086
1087 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
1088 Alan Hayward <alan.hayward@arm.com>
1089 David Sherwood <david.sherwood@arm.com>
1090
1091 * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
1092 Take a scalar_int_mode instead of a machine_mode.
1093 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
1094 (aarch64_output_scalar_simd_mov_immediate): Likewise.
1095 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
1096 (aarch64_simd_attr_length_rglist): Delete.
1097 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
1098 a scalar_int_mode instead of a machine_mode.
1099 (aarch64_add_offset): Likewise.
1100 (aarch64_internal_mov_immediate): Likewise
1101 (aarch64_add_constant_internal): Likewise.
1102 (aarch64_add_constant): Likewise.
1103 (aarch64_movw_imm): Likewise.
1104 (aarch64_rtx_arith_op_extract_p): Likewise.
1105 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
1106 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
1107 Remove assert that the mode isn't a vector.
1108 (aarch64_output_scalar_simd_mov_immediate): Likewise.
1109 (aarch64_expand_mov_immediate): Update calls after above changes.
1110 (aarch64_output_casesi): Use as_a <scalar_int_mode>.
1111 (aarch64_and_bitmask_imm): Check for scalar integer modes.
1112 (aarch64_move_imm): Likewise.
1113 (aarch64_can_const_movi_rtx_p): Likewise.
1114 (aarch64_strip_extend): Likewise.
1115 (aarch64_extr_rtx_p): Likewise.
1116 (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
1117 a CONST_INT when the mode parameter is VOIDmode.
1118 (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
1119
1120 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
1121
1122 * machmode.h (bitwise_mode_for_mode): Return opt_mode.
1123 * stor-layout.c (bitwise_mode_for_mode): Likewise.
1124 (bitwise_type_for_mode): Update accordingly.
1125
1126 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
1127
1128 * stor-layout.h (mode_for_size_tree): Return an opt_mode.
1129 * stor-layout.c (mode_for_size_tree): Likewise.
1130 (mode_for_array): Update accordingly.
1131 (layout_decl): Likewise.
1132 (compute_record_mode): Likewise. Only set the mode once.
1133
1134 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
1135
1136 * target.def (get_mask_mode): Change return type to opt_mode.
1137 Expand commentary.
1138 * doc/tm.texi: Regenerate.
1139 * targhooks.h (default_get_mask_mode): Return an opt_mode.
1140 * targhooks.c (default_get_mask_mode): Likewise.
1141 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
1142 * optabs-query.c (can_vec_mask_load_store_p): Update use of
1143 targetm.get_mask_mode.
1144 * tree.c (build_truth_vector_type): Likewise.
1145
1146 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
1147
1148 * machmode.h (mode_for_vector): Return an opt_mode.
1149 * stor-layout.c (mode_for_vector): Likewise.
1150 (mode_for_int_vector): Update accordingly.
1151 (layout_type): Likewise.
1152 * config/i386/i386.c (emit_memmov): Likewise.
1153 (ix86_expand_set_or_movmem): Likewise.
1154 (ix86_expand_vector_init): Likewise.
1155 (ix86_get_mask_mode): Likewise.
1156 * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
1157 Likewise.
1158 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
1159 * expmed.c (extract_bit_field_1): Likewise.
1160 * expr.c (expand_expr_real_2): Likewise.
1161 * optabs-query.c (can_vec_perm_p): Likewise.
1162 (can_vec_mask_load_store_p): Likewise.
1163 * optabs.c (expand_vec_perm): Likewise.
1164 * targhooks.c (default_get_mask_mode): Likewise.
1165 * tree-vect-stmts.c (vectorizable_store): Likewise.
1166 (vectorizable_load): Likewise.
1167 (get_vectype_for_scalar_type_and_size): Likewise.
1168
1169 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
1170
1171 * machmode.h (mode_for_int_vector): New function.
1172 * stor-layout.c (mode_for_int_vector): Likewise.
1173 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
1174 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
1175 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
1176 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
1177 (s390_expand_vcond): Likewise.
1178
1179 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
1180
1181 * machmode.h (opt_machine_mode): New type.
1182 (opt_mode<T>): Allow construction from anything that can be
1183 converted to a T.
1184 (is_a, as_a, dyn_cast): Add overloads for opt_mode.
1185 (mode_for_size): Return an opt_machine_mode.
1186 * stor-layout.c (mode_for_size): Likewise.
1187 (mode_for_size_tree): Update call accordingly.
1188 (bitwise_mode_for_mode): Likewise.
1189 (make_fract_type): Likewise.
1190 (make_accum_type): Likewise.
1191 * caller-save.c (replace_reg_with_saved_mem): Update call
1192 accordingly.
1193 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
1194 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
1195 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
1196 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
1197 * expmed.c (extract_bit_field_1): Likewise.
1198 * reload.c (get_secondary_mem): Likewise.
1199 * varasm.c (assemble_integer): Likewise.
1200 * lower-subreg.c (simplify_subreg_concatn): Likewise. Move
1201 early-out.
1202
1203 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
1204
1205 * machmode.h (decimal_float_mode_for_size): New function.
1206 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
1207 (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
1208 (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
1209 (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
1210 (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
1211 (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
1212
1213 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
1214
1215 * builtins.c (expand_builtin_powi): Use int_mode_for_size.
1216 (get_builtin_sync_mode): Likewise.
1217 (expand_ifn_atomic_compare_exchange): Likewise.
1218 (expand_builtin_atomic_clear): Likewise.
1219 (expand_builtin_atomic_test_and_set): Likewise.
1220 (fold_builtin_atomic_always_lock_free): Likewise.
1221 * calls.c (compute_argument_addresses): Likewise.
1222 (emit_library_call_value_1): Likewise.
1223 (store_one_arg): Likewise.
1224 * combine.c (combine_instructions): Likewise.
1225 * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
1226 * config/arm/arm.c (arm_function_value): Likewise.
1227 (aapcs_allocate_return_reg): Likewise.
1228 * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
1229 * config/i386/i386.c (construct_container): Likewise.
1230 (ix86_gimplify_va_arg): Likewise.
1231 (ix86_expand_sse_cmp): Likewise.
1232 (emit_memmov): Likewise.
1233 (emit_memset): Likewise.
1234 (expand_small_movmem_or_setmem): Likewise.
1235 (ix86_expand_pextr): Likewise.
1236 (ix86_expand_pinsr): Likewise.
1237 * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
1238 * config/microblaze/microblaze.c (microblaze_block_move_straight):
1239 Likewise.
1240 * config/mips/mips.c (mips_function_value_1) Likewise.
1241 (mips_block_move_straight): Likewise.
1242 (mips_expand_ins_as_unaligned_store): Likewise.
1243 * config/powerpcspe/powerpcspe.c
1244 (rs6000_darwin64_record_arg_advance_flush): Likewise.
1245 (rs6000_darwin64_record_arg_flush): Likewise.
1246 * config/rs6000/rs6000.c
1247 (rs6000_darwin64_record_arg_advance_flush): Likewise.
1248 (rs6000_darwin64_record_arg_flush): Likewise.
1249 * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
1250 (sparc_function_value_1): Likewise.
1251 * config/spu/spu.c (adjust_operand): Likewise.
1252 (spu_emit_branch_or_set): Likewise.
1253 (arith_immediate_p): Likewise.
1254 * emit-rtl.c (gen_lowpart_common): Likewise.
1255 * expr.c (expand_expr_real_1): Likewise.
1256 * function.c (assign_parm_setup_block): Likewise.
1257 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
1258 * reload1.c (alter_reg): Likewise.
1259 * stor-layout.c (mode_for_vector): Likewise.
1260 (layout_type): Likewise.
1261
1262 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
1263
1264 * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
1265 (spu_convert_move): Likewise.
1266 * lower-subreg.c (resolve_simple_move): Likewise.
1267
1268 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1269
1270 PR target/81833
1271 * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
1272 define_insn to a define_expand.
1273 (altivec_vsum2sws_direct): New define_insn.
1274 (altivec_vsumsws): Convert from a define_insn to a define_expand.
1275
1276 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
1277
1278 * config/arm/arm.c (arm_option_params_internal): Improve setting of
1279 max_insns_skipped.
1280
1281 2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
1282
1283 PR target/59501
1284 PR target/81624
1285 PR target/81769
1286 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
1287 realign stack if stack alignment needed is less than incoming
1288 stack boundary.
1289
1290 2017-09-05 Marek Polacek <polacek@redhat.com>
1291
1292 PR sanitizer/82072
1293 * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
1294 check earlier.
1295
1296 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
1297
1298 * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
1299
1300 2017-09-05 Richard Biener <rguenther@suse.de>
1301
1302 PR tree-optimization/82084
1303 * fold-const.c (can_native_encode_string_p): Handle wide characters.
1304
1305 2017-09-05 Richard Biener <rguenther@suse.de>
1306
1307 PR tree-optimization/82102
1308 * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
1309
1310 2017-09-05 Martin Liska <mliska@suse.cz>
1311
1312 PR tree-optimization/82032
1313 * tree-cfg.c (generate_range_test): New function.
1314 * tree-cfg.h (generate_range_test): Declared here.
1315 * tree-cfgcleanup.c (convert_single_case_switch): New function.
1316 (cleanup_control_expr_graph): Use it.
1317 * tree-switch-conversion.c (try_switch_expansion): Remove
1318 assert.
1319 (emit_case_nodes): Use generate_range_test.
1320
1321 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
1322
1323 PR target/82098
1324 * config/i386/i386.md (*<btsc><mode>_mask): Add
1325 TARGET_USE_BT to insn constraint.
1326 (*btr<mode>_mask): Ditto.
1327
1328 2017-09-04 Wilco Dijkstra <wdijkstr@arm.com>
1329
1330 * config/arm/arm.c (arm_legitimate_index_p): Add comment.
1331 (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
1332
1333 2017-09-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
1334
1335 PR target/77308
1336 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
1337 TARGET_NEON and TARGET_IWMMXT.
1338 (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
1339 TARGET_NEON and TARGET_IWMMXT.
1340 (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
1341
1342 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
1343
1344 * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
1345 (ix86_rewrite_tls_address): Ditto.
1346 * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
1347 (ix86_rewrite_tls_address_1): Ditto.
1348 (ix86_rewrite_tls_address): Ditto.
1349 * config/i386/predicates.md (tls_address_pattern): New predicate.
1350 * config/i386/i386.md (TLS address splitter): New splitter.
1351
1352 2017-09-04 Richard Biener <rguenther@suse.de>
1353
1354 PR tree-optimization/82084
1355 * fold-const.h (can_native_encode_string_p): Declare.
1356 * fold-const.c (can_native_encode_string_p): Factor out from ...
1357 (native_encode_string): ... here.
1358 * tree-vect-stmts.c (vectorizable_store): Call it to avoid
1359 vectorizing stores from constants we later cannot handle.
1360
1361 2017-09-04 Marek Polacek <polacek@redhat.com>
1362
1363 PR c/81783
1364 * doc/invoke.texi: Update -Wtautological-compare documentation.
1365
1366 2017-09-04 Jeff Law <law@redhat.com>
1367
1368 PR tree-optimization/64910
1369 * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
1370 swap the first and last operand if the last is a constant.
1371
1372 2017-09-04 Marek Polacek <polacek@redhat.com>
1373
1374 PR sanitizer/82072
1375 * convert.c (do_narrow): When sanitizing signed integer overflows,
1376 bail out for signed types.
1377 (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
1378
1379 2017-09-04 Richard Biener <rguenther@suse.de>
1380
1381 PR tree-optimization/82060
1382 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1383 Move devirtualization after stmt folding and before EH/AB/noreturn
1384 cleanup to get the stmt refs canonicalized. Use a bool instead
1385 of gimple_modified_p since that doesn't work for NOPs. Schedule
1386 NOPs generated by folding for removal.
1387
1388 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
1389 Alan Hayward <alan.hayward@arm.com>
1390 David Sherwood <david.sherwood@arm.com>
1391
1392 * coretypes.h (pad_direction): New enum.
1393 * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
1394 (FUNCTION_ARG_PADDING): Likewise.
1395 * target.def (function_arg_padding): New hook.
1396 * targhooks.h (default_function_arg_padding): Declare.
1397 * targhooks.c (default_function_arg_padding): New function.
1398 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
1399 (TARGET_FUNCTION_ARG_PADDING): ...this.
1400 * doc/tm.texi: Regenerate.
1401 * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
1402 instead of direction.
1403 (compute_argument_addresses): Likewise.
1404 (load_register_parameters): Likewise.
1405 (emit_library_call_value_1): Likewise.
1406 (store_one_arg): Use targetm.calls.function_arg_padding instead
1407 of FUNCTION_ARG_PADDING.
1408 (must_pass_in_stack_var_size_or_pad): Likewise.
1409 * expr.c (emit_group_load_1): Use pad_direction instead of direction.
1410 (emit_group_store): Likewise.
1411 (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
1412 instead of FUNCTION_ARG_PADDING.
1413 (emit_push_insn): Likewise, and propagate enum change throughout
1414 function.
1415 * function.h (direction): Delete.
1416 (locate_and_pad_arg_data::where_pad): Use pad_direction instead
1417 of direction.
1418 * function.c (assign_parm_find_stack_rtl): Likewise.
1419 (assign_parm_setup_block_p): Likewise.
1420 (assign_parm_setup_block): Likewise.
1421 (gimplify_parameters): Likewise.
1422 (locate_and_pad_parm): Use targetm.calls.function_arg_padding
1423 instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
1424 function.
1425 * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
1426 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
1427 * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
1428 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
1429 (aarch64_function_arg_padding): ...this new function.
1430 (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
1431 (TARGET_FUNCTION_ARG_PADDING): Redefine.
1432 * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
1433 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
1434 * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
1435 * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
1436 (arm_pad_arg_upward): Replace with...
1437 (arm_function_arg_padding): ...this new function.
1438 * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
1439 of direction.
1440 * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
1441 * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
1442 * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
1443 (ia64_hpux_function_arg_padding): Replace with...
1444 (ia64_function_arg_padding): ...this new function. Use pad_direction
1445 instead of direction. Check for TARGET_HPUX.
1446 * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
1447 * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
1448 (iq2000_function_arg_padding): New function.
1449 * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
1450 * config/mips/mips.c (mips_pad_arg_upward): Replace with...
1451 (mips_function_arg_padding): ...this new function.
1452 (mips_pad_reg_upward): Update accordingly.
1453 (TARGET_FUNCTION_ARG_PADDING): Redefine.
1454 * config/mips/mips.h (PAD_VARARGS_DOWN): Use
1455 targetm.calls.function_arg_padding.
1456 (FUNCTION_ARG_PADDING): Delete.
1457 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
1458 * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
1459 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
1460 * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
1461 (nios2_block_reg_padding): Return pad_direction instead of direction.
1462 * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
1463 instead of direction.
1464 (nios2_function_arg_padding): Likewise. Make static.
1465 (TARGET_FUNCTION_ARG_PADDING): Redefine.
1466 * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
1467 (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
1468 * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
1469 * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
1470 (pa_function_arg_padding): Make static. Return pad_direction instead
1471 of direction.
1472 * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
1473 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
1474 * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
1475 instead of direction. Use targetm.calls.function_arg_padding.
1476 * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
1477 * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
1478 * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
1479 * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
1480 * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
1481 Redefine.
1482 (function_arg_padding): Rename to...
1483 (rs6000_function_arg_padding): ...this. Make static. Return
1484 pad_direction instead of direction.
1485 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
1486 * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
1487 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
1488 * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
1489 instead of direction. Use targetm.calls.function_arg_padding.
1490 * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
1491 * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
1492 * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
1493 * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
1494 * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
1495 (function_arg_padding): Rename to...
1496 (rs6000_function_arg_padding): ...this. Make static. Return
1497 pad_direction instead of direction.
1498 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
1499 * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
1500 * config/s390/s390.c (s390_function_arg_padding): New function.
1501 (TARGET_FUNCTION_ARG_PADDING): Redefine.
1502 * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
1503 * config/sparc/sparc-protos.h (function_arg_padding): Delete.
1504 * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
1505 (function_arg_padding): Rename to...
1506 (sparc_function_arg_padding): ...this. Make static. Return
1507 pad_direction instead of direction.
1508 * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
1509 * config/spu/spu.c (spu_function_arg_padding): New function.
1510 (TARGET_FUNCTION_ARG_PADDING): Redefine.
1511 * system.h (FUNCTION_ARG_PADDING): Poison.
1512
1513 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
1514 Alan Hayward <alan.hayward@arm.com>
1515 David Sherwood <david.sherwood@arm.com>
1516
1517 * target.def (modes_tieable_p): New hook.
1518 * doc/tm.texi (MODES_TIEABLE_P): Replace with...
1519 (TARGET_MODES_TIEABLE_P): ...this.
1520 * doc/tm.texi.in: Regenerate.
1521 * hooks.h (hook_bool_mode_mode_true): Declare.
1522 * hooks.c (hook_bool_mode_mode_true): New function.
1523 * combine.c (subst): Use targetm.modes_tieable_p instead of
1524 MODES_TIEABLE_P.
1525 * dse.c (find_shift_sequence): Likewise.
1526 * expmed.c (extract_low_bits): Likewise.
1527 * lower-subreg.c: Include target.h.
1528 (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
1529 MODES_TIEABLE_P.
1530 * rtlanal.c (rtx_cost): Likewise.
1531 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
1532 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
1533 * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
1534 (TARGET_MODES_TIEABLE_P): Redefine.
1535 * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
1536 * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
1537 (TARGET_MODES_TIEABLE_P): Redefine.
1538 * config/arc/arc.h (MODES_TIEABLE_P): Delete.
1539 * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
1540 (arc_modes_tieable_p): New function.
1541 * config/arm/arm.h (MODES_TIEABLE_P): Delete.
1542 * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
1543 * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
1544 (arm_modes_tieable_p): Make static.
1545 * config/avr/avr.h (MODES_TIEABLE_P): Delete.
1546 * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
1547 * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
1548 (TARGET_MODES_TIEABLE_P): Redefine.
1549 * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
1550 * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
1551 (TARGET_MODES_TIEABLE_P): Redefine.
1552 * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
1553 * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
1554 (cr16_modes_tieable_p): New function.
1555 * config/cris/cris.h (MODES_TIEABLE_P): Delete.
1556 * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
1557 * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
1558 (TRULY_NOOP_TRUNCATION): Update comment.
1559 * config/frv/frv.h (MODES_TIEABLE_P): Delete.
1560 (TRULY_NOOP_TRUNCATION): Update comment.
1561 * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
1562 (frv_modes_tieable_p): New function.
1563 * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
1564 * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
1565 * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
1566 (TARGET_MODES_TIEABLE_P): Redefine.
1567 * config/i386/i386.h (MODES_TIEABLE_P): Delete.
1568 * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
1569 * config/i386/i386.c (ix86_modes_tieable_p): Make static.
1570 (TARGET_MODES_TIEABLE_P): Redefine.
1571 * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
1572 * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
1573 (ia64_modes_tieable_p): New function.
1574 * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
1575 * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
1576 (iq2000_modes_tieable_p): New function.
1577 * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
1578 * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
1579 (lm32_modes_tieable_p): New function.
1580 * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
1581 * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
1582 * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
1583 (TARGET_MODES_TIEABLE_P): Redefine.
1584 * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
1585 * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
1586 (m32r_modes_tieable_p): New function.
1587 * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
1588 * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
1589 (m68k_modes_tieable_p): New function.
1590 * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
1591 * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
1592 (mcore_modes_tieable_p): New function.
1593 * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
1594 * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
1595 function.
1596 (TARGET_MODES_TIEABLE_P): Redefine.
1597 * config/mips/mips.h (MODES_TIEABLE_P): Delete.
1598 * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
1599 * config/mips/mips.c (mips_modes_tieable_p): Make static.
1600 (TARGET_MODES_TIEABLE_P): Redefine.
1601 * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
1602 * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
1603 * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
1604 * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
1605 (mn10300_modes_tieable_p): ...this and make static.
1606 (TARGET_MODES_TIEABLE_P): Redefine.
1607 * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
1608 * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
1609 * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
1610 * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
1611 (msp430_modes_tieable_p): Make static.
1612 * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
1613 * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
1614 (TARGET_MODES_TIEABLE_P): Redefine.
1615 * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
1616 * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
1617 * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
1618 (TARGET_MODES_TIEABLE_P): Redefine.
1619 * config/pa/pa.h (MODES_TIEABLE_P): Delete.
1620 * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
1621 * config/pa/pa.c (pa_modes_tieable_p): Make static.
1622 (TARGET_MODES_TIEABLE_P): Redefine.
1623 * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
1624 * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
1625 (pdp11_modes_tieable_p): New function.
1626 * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
1627 * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
1628 (rs6000_modes_tieable_p): New function.
1629 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
1630 * config/powerpcspe/powerpcspe.md: Update comment.
1631 * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
1632 * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
1633 (TARGET_MODES_TIEABLE_P): Redefine.
1634 * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
1635 * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
1636 (rl78_modes_tieable_p): New function.
1637 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
1638 * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
1639 (rs6000_modes_tieable_p): New function.
1640 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
1641 * config/rs6000/rs6000.md: Update comment.
1642 * config/rx/rx.h (MODES_TIEABLE_P): Delete.
1643 * config/rx/rx.c (rx_modes_tieable_p): New function.
1644 (TARGET_MODES_TIEABLE_P): Redefine.
1645 * config/s390/s390.h (MODES_TIEABLE_P): Delete.
1646 * config/s390/s390.c (s390_modes_tieable_p): New function.
1647 (TARGET_MODES_TIEABLE_P): Redefine.
1648 * config/sh/sh.h (MODES_TIEABLE_P): Delete.
1649 * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
1650 (sh_modes_tieable_p): New function.
1651 * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
1652 * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
1653 * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
1654 (sparc_modes_tieable_p): Make static.
1655 * config/spu/spu.h (MODES_TIEABLE_P): Delete.
1656 * config/spu/spu.c (spu_modes_tieable_p): New function.
1657 (TARGET_MODES_TIEABLE_P): Redefine.
1658 * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
1659 * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
1660 (TARGET_MODES_TIEABLE_P): Redefine.
1661 * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
1662 * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
1663 * config/v850/v850.h (MODES_TIEABLE_P): Delete.
1664 * config/v850/v850.c (v850_modes_tieable_p): New function.
1665 (TARGET_MODES_TIEABLE_P): Redefine.
1666 * config/vax/vax.h (MODES_TIEABLE_P): Delete.
1667 * config/visium/visium.h (MODES_TIEABLE_P): Delete.
1668 * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
1669 (visium_modes_tieable_p): New function.
1670 * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
1671 * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
1672 (xtensa_modes_tieable_p): New function.
1673 * system.h (MODES_TIEABLE_P): Poison.
1674
1675 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
1676 Alan Hayward <alan.hayward@arm.com>
1677 David Sherwood <david.sherwood@arm.com>
1678
1679 * target.def (hard_regno_mode_ok): New hook.
1680 * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
1681 (TARGET_HARD_REGNO_MODE_OK): ...this.
1682 * doc/tm.texi.in: Regenerate.
1683 * hooks.h (hook_bool_uint_mode_true): Declare.
1684 * hooks.c (hook_bool_uint_mode_true): New function.
1685 * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
1686 HARD_REGNO_MODE_OK.
1687 * genpreds.c (write_insn_preds_c): Add an include of target.h.
1688 * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
1689 instead of HARD_REGNO_MODE_OK.
1690 * caller-save.c: Include target.h.
1691 (reg_save_code): Use targetm.hard_regno_mode_ok instead of
1692 HARD_REGNO_MODE_OK.
1693 * combine.c (can_combine_p): Likewise.
1694 (combinable_i3pat): Likewise.
1695 (can_change_dest_mode): Likewise.
1696 * expr.c (init_expr_target): Likewise.
1697 (convert_move): Likewise.
1698 (convert_modes): Likewise.
1699 * ira.c (setup_prohibited_class_mode_regs): Likewise.
1700 (setup_prohibited_mode_move_regs): Likewise.
1701 * ira.h (target_ira): Likewise.
1702 * lra-assigns.c (find_hard_regno_for_1): Likewise.
1703 * lra-constraints.c (process_alt_operands): Likewise.
1704 (split_reg): Likewise.
1705 * recog.c (peep2_find_free_register): Likewise.
1706 * ree.c (combine_reaching_defs): Likewise.
1707 * regcprop.c (maybe_mode_change): Likewise.
1708 * reginfo.c (init_reg_sets_1): Likewise.
1709 (choose_hard_reg_mode): Likewise.
1710 (simplifiable_subregs): Likewise.
1711 * regrename.c (check_new_reg_p): Likewise.
1712 * reload.c (find_valid_class): Likewise.
1713 (find_valid_class_1): Likewise.
1714 (reload_inner_reg_of_subreg): Likewise.
1715 (push_reload): Likewise.
1716 (combine_reloads): Likewise.
1717 (find_dummy_reload): Likewise.
1718 (find_reloads): Likewise.
1719 * reload1.c (find_reg): Likewise.
1720 (set_reload_reg): Likewise.
1721 (allocate_reload_reg): Likewise.
1722 (choose_reload_regs): Likewise.
1723 (reload_adjust_reg_for_temp): Likewise.
1724 * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
1725 (simplify_subreg_regno): Likewise.
1726 * sel-sched.c (init_regs_for_mode): Likewise.
1727 * varasm.c (make_decl_rtl): Likewise.
1728 * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
1729 (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
1730 HARD_REGNO_MODE_OK.
1731 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
1732 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
1733 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1734 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
1735 * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
1736 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1737 * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
1738 (arc_mode_class): Delete.
1739 (HARD_REGNO_MODE_OK): Delete.
1740 * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1741 (arc_hard_regno_mode_ok): Rename old array to...
1742 (arc_hard_regno_mode_ok_modes): ...this.
1743 (arc_conditional_register_usage): Update accordingly.
1744 (arc_mode_class): Make static.
1745 (arc_hard_regno_mode_ok): New function.
1746 * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
1747 * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
1748 * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1749 (arm_hard_regno_mode_ok): Make static.
1750 * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
1751 HARD_REGNO_MODE_OK.
1752 * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
1753 * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
1754 * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
1755 return a bool.
1756 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1757 * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
1758 * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
1759 * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
1760 (bfin_hard_regno_mode_ok): ...this. Make static and return a bool.
1761 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1762 * config/bfin/predicates.md (valid_reg_operand): Use
1763 targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
1764 * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
1765 * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
1766 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1767 * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
1768 * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
1769 * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1770 (cr16_hard_regno_mode_ok): Make static and return a bool.
1771 * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
1772 * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1773 (cris_hard_regno_mode_ok): New function.
1774 * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
1775 (epiphany_mode_class): Delete.
1776 (HARD_REGNO_MODE_OK): Delete.
1777 * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
1778 * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1779 (hard_regno_mode_ok): Rename to...
1780 (epiphany_hard_regno_mode_ok): ...this. Make static and return a bool.
1781 * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
1782 * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
1783 HARD_REGNO_MODE_OK.
1784 * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
1785 * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
1786 * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1787 (frv_hard_regno_mode_ok): Make static and return a bool.
1788 * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
1789 HARD_REGNO_MODE_OK.
1790 * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
1791 * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
1792 * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
1793 * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
1794 and return a bool.
1795 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1796 * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
1797 * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
1798 * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
1799 return a bool.
1800 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1801 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
1802 * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1803 (ia64_hard_regno_mode_ok): New function.
1804 * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
1805 * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1806 (iq2000_hard_regno_mode_ok): New function.
1807 * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
1808 * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1809 (lm32_hard_regno_mode_ok): New function.
1810 * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
1811 * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
1812 * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
1813 instead of HARD_REGNO_MODE_OK.
1814 (m32c_hard_regno_ok): Rename to...
1815 (m32c_hard_regno_mode_ok): ...this. Make static and return a bool.
1816 (m32c_cannot_change_mode_class): Update accordingly.
1817 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1818 * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
1819 (m32r_mode_class): Delete.
1820 (HARD_REGNO_MODE_OK): Delete.
1821 * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1822 (m32r_hard_regno_mode_ok): Rename to...
1823 (m32r_hard_regno_modes): ...this.
1824 (m32r_mode_class): Make static.
1825 (m32r_hard_regno_mode_ok): New function.
1826 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
1827 * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
1828 * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1829 (m68k_hard_regno_mode_ok): Make static.
1830 * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
1831 * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1832 (mcore_hard_regno_mode_ok): New function.
1833 * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
1834 (HARD_REGNO_MODE_OK): Delete.
1835 * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
1836 Rename to...
1837 (microblaze_hard_regno_mode_ok_p): ...this and make static.
1838 (microblaze_hard_regno_mode_ok): New function.
1839 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1840 * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
1841 (mips_hard_regno_mode_ok): Delete.
1842 * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
1843 (mips_hard_regno_mode_ok_p): ...this and make static.
1844 (mips_hard_regno_mode_ok_p): Rename to...
1845 (mips_hard_regno_mode_ok_uncached): ...this.
1846 (mips_hard_regno_mode_ok): New function.
1847 (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
1848 of HARD_REGNO_MODE_OK.
1849 (mips_option_override): Update after above name changes.
1850 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1851 * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
1852 * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
1853 * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
1854 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
1855 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1856 * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
1857 * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
1858 * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
1859 * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1860 (msp430_hard_regno_mode_ok): Make static and return a bool.
1861 * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
1862 * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
1863 * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
1864 and return a bool.
1865 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1866 * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
1867 * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
1868 * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
1869 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
1870 (PA_HARD_REGNO_MODE_OK): ...this
1871 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
1872 (PA_HARD_REGNO_MODE_OK): ...this.
1873 * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1874 (pa_hard_regno_mode_ok): New function.
1875 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
1876 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1877 (pdp11_hard_regno_mode_ok): New function.
1878 * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
1879 * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
1880 Delete.
1881 * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
1882 Make static.
1883 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1884 (rs6000_hard_regno_mode_ok): Rename to...
1885 (rs6000_hard_regno_mode_ok_uncached): ...this.
1886 (rs6000_init_hard_regno_mode_ok): Update accordingly.
1887 (rs6000_hard_regno_mode_ok): New function.
1888 * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
1889 * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
1890 * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
1891 (riscv_hard_regno_mode_ok): ...this and make static.
1892 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1893 * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
1894 * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
1895 * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1896 (rl78_hard_regno_mode_ok): Make static and return bool.
1897 * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
1898 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
1899 Delete.
1900 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
1901 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1902 (rs6000_hard_regno_mode_ok): Rename to...
1903 (rs6000_hard_regno_mode_ok_uncached): ...this.
1904 (rs6000_init_hard_regno_mode_ok): Update accordingly.
1905 (rs6000_hard_regno_mode_ok): New function.
1906 * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
1907 * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
1908 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1909 * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
1910 * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
1911 * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
1912 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1913 * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
1914 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
1915 * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1916 (sh_hard_regno_mode_ok): Make static.
1917 * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
1918 instead of HARD_REGNO_MODE_OK.
1919 * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
1920 (sparc_mode_class): Delete.
1921 (HARD_REGNO_MODE_OK): Delete.
1922 * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1923 (hard_regno_mode_classes): Make static.
1924 (sparc_mode_class): Likewise.
1925 (sparc_hard_regno_mode_ok): New function.
1926 * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
1927 * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
1928 * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
1929 function.
1930 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1931 * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
1932 * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
1933 * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
1934 * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
1935 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1936 * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
1937 * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
1938 * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
1939 (visium_hard_regno_mode_ok): New function.
1940 * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
1941 instead of HARD_REGNO_MODE_OK.
1942 * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
1943 (HARD_REGNO_MODE_OK): Delete.
1944 * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
1945 (xtensa_hard_regno_mode_ok_p): ...this and make static.
1946 (xtensa_option_override): Update accordingly.
1947 (TARGET_HARD_REGNO_MODE_OK): Redefine.
1948 (xtensa_hard_regno_mode_ok): New function.
1949 * system.h (HARD_REGNO_MODE_OK): Poison.
1950
1951 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
1952 Alan Hayward <alan.hayward@arm.com>
1953 David Sherwood <david.sherwood@arm.com>
1954
1955 * target.def (hard_regno_call_part_clobbered): New hook.
1956 * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
1957 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
1958 * doc/tm.texi: Regenerate.
1959 * hooks.h (hook_bool_uint_mode_false): Declare.
1960 * hooks.c (hook_bool_uint_mode_false): New function.
1961 * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
1962 * cselib.c (cselib_process_insn): Use
1963 targetm.hard_regno_call_part_clobbered instead of
1964 HARD_REGNO_CALL_PART_CLOBBERED.
1965 * ira-conflicts.c (ira_build_conflicts): Likewise.
1966 * ira-costs.c (ira_tune_allocno_costs): Likewise.
1967 * lra-constraints.c (need_for_call_save_p): Likewise.
1968 * lra-lives.c: Include target.h.
1969 (check_pseudos_live_through_calls): Use
1970 targetm.hard_regno_call_part_clobbered instead of
1971 HARD_REGNO_CALL_PART_CLOBBERED.
1972 * regcprop.c: Include target.h.
1973 (copyprop_hardreg_forward_1): Use
1974 targetm.hard_regno_call_part_clobbered instead of
1975 HARD_REGNO_CALL_PART_CLOBBERED.
1976 * reginfo.c (choose_hard_reg_mode): Likewise.
1977 * regrename.c (check_new_reg_p): Likewise.
1978 * reload.c (find_equiv_reg): Likewise.
1979 * reload1.c (emit_reload_insns): Likewise.
1980 * sched-deps.c (deps_analyze_insn): Likewise.
1981 * sel-sched.c (init_regs_for_mode): Likewise.
1982 (mark_unavailable_hard_regs): Likewise.
1983 * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
1984 * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
1985 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
1986 New function.
1987 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
1988 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
1989 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
1990 Delete.
1991 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
1992 and return a bool.
1993 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
1994 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
1995 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
1996 function.
1997 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
1998 * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
1999 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
2000 function.
2001 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
2002 * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
2003 Delete.
2004 * config/powerpcspe/powerpcspe.c
2005 (rs6000_hard_regno_call_part_clobbered): New function.
2006 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
2007 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
2008 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
2009 New function.
2010 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
2011 * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
2012 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
2013 function.
2014 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
2015 * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
2016 * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
2017
2018 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
2019 Alan Hayward <alan.hayward@arm.com>
2020 David Sherwood <david.sherwood@arm.com>
2021
2022 * rtl.h (subreg_memory_offset): Declare.
2023 * emit-rtl.c (subreg_memory_offset): New function.
2024 * expmed.c (store_bit_field_1): Use it.
2025 * expr.c (undefined_operand_subword_p): Likewise.
2026 * simplify-rtx.c (simplify_subreg): Likewise.
2027
2028 2017-09-04 Alexander Monakov <amonakov@ispras.ru>
2029
2030 PR rtl-optimization/57448
2031 PR target/67458
2032 PR target/81316
2033 * optabs.c (expand_atomic_load): Place compiler memory barriers if
2034 using atomic_load pattern.
2035 (expand_atomic_store): Likewise.
2036
2037 2017-09-04 Jakub Jelinek <jakub@redhat.com>
2038
2039 PR sanitizer/81981
2040 * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
2041 and UBSAN_BOUNDS internal calls. Clean up IFN_UBSAN_OBJECT_SIZE
2042 handling. Use replace_call_with_value with NULL instead of
2043 gsi_replace, unlink_stmt_vdef and release_defs.
2044
2045 * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
2046 instead of tab.
2047
2048 * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
2049
2050 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
2051
2052 PR bootstrap/82045
2053 * rtl.h (emit_library_call_value_1): Declare.
2054 (emit_library_call): Replace declaration with a series of overloads.
2055 Remove the parameter count argument.
2056 (emit_library_call_value): Likewise.
2057 * calls.c (emit_library_call_value_1): Make global. Replace varargs
2058 with an "rtx_mode_t *".
2059 (emit_library_call_value): Delete.
2060 (emit_library_call): Likewise.
2061 * asan.c (asan_emit_stack_protection): Update calls accordingly.
2062 (asan_emit_allocas_unpoison): Likewise.
2063 * builtins.c (expand_builtin_powi): Likewise.
2064 (expand_asan_emit_allocas_unpoison): Likewise.
2065 * cfgexpand.c (expand_main_function): Likewise.
2066 * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
2067 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
2068 * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
2069 * config/arm/arm.c (arm_trampoline_init): Likewise.
2070 (arm_call_tls_get_addr): Likewise.
2071 (arm_expand_divmod_libfunc): Likewise.
2072 * config/bfin/bfin.md (umulsi3_highpart): Likewise.
2073 (smulsi3_highpart): Likewise.
2074 * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
2075 (c6x_expand_compare): Likewise.
2076 (c6x_expand_movmem): Likewise.
2077 * config/frv/frv.c (frv_trampoline_init): Likewise.
2078 * config/i386/i386.c (ix86_trampoline_init): Likewise.
2079 (ix86_expand_divmod_libfunc): Likewise.
2080 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
2081 (ia64_expand_compare): Likewise.
2082 (ia64_profile_hook): Likewise.
2083 * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
2084 (nonlocal_goto): Likewise.
2085 (restore_stack_nonlocal): Likewise.
2086 * config/m32r/m32r.c (block_move_call): Likewise.
2087 (m32r_trampoline_init): Likewise.
2088 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
2089 * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
2090 (m68k_call_m68k_read_tp): Likewise.
2091 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
2092 (microblaze_expand_divide): Likewise.
2093 * config/mips/mips.h (mips_args): Likewise.
2094 * config/mips/sdemtk.h (mips_sync_icache): Likewise.
2095 (MIPS_ICACHE_SYNC): Likewise.
2096 * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
2097 (nios2_trampoline_init): Likewise.
2098 * config/pa/pa.c (hppa_tls_call): Likewise.
2099 (pa_trampoline_init): Likewise.
2100 * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
2101 * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
2102 (expand_strn_compare): Likewise.
2103 (rs6000_generate_compare): Likewise.
2104 (rs6000_expand_float128_convert): Likewise.
2105 (output_profile_hook): Likewise.
2106 (rs6000_trampoline_init): Likewise.
2107 * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
2108 * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
2109 * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
2110 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
2111 (rs6000_generate_compare): Likewise.
2112 (rs6000_expand_float128_convert): Likewise.
2113 (output_profile_hook): Likewise.
2114 (rs6000_trampoline_init): Likewise.
2115 * config/rs6000/rs6000.md (neg<mode>2): Likewise.
2116 * config/sh/sh.c (sh_trampoline_init): Likewise.
2117 * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
2118 (sparc_emit_float_lib_cmp): Likewise.
2119 (sparc32_initialize_trampoline): Likewise.
2120 (sparc64_initialize_trampoline): Likewise.
2121 (sparc_profile_hook): Likewise.
2122 * config/spu/spu.c (ea_load_store): Likewise.
2123 * config/spu/spu.md (floatunssidf2): Likewise.
2124 * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
2125 * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
2126 * config/visium/visium.c (expand_block_move_4): Likewise.
2127 (expand_block_move_2): Likewise.
2128 (expand_block_move_1): Likewise.
2129 (expand_block_set_4): Likewise.
2130 (expand_block_set_2): Likewise.
2131 (expand_block_set_1): Likewise.
2132 (visium_trampoline_init): Likewise.
2133 (visium_profile_hook): Likewise.
2134 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
2135 (xtensa_setup_frame_addresses): Likewise.
2136 (xtensa_trampoline_init): Likewise.
2137 * except.c (sjlj_emit_function_enter): Likewise.
2138 (sjlj_emit_function_exit): Likewise.
2139 * explow.c (allocate_dynamic_stack_space): Likewise.
2140 (probe_stack_range): Likewise.
2141 * expr.c (convert_mode_scalar): Likewise.
2142 * optabs.c (expand_binop): Likewise.
2143 (expand_twoval_binop_libfunc): Likewise.
2144 (expand_unop): Likewise.
2145 (prepare_cmp_insn): Likewise.
2146 (prepare_float_lib_cmp): Likewise.
2147 (expand_float): Likewise.
2148 (expand_fix): Likewise.
2149 (expand_fixed_convert): Likewise.
2150 (maybe_emit_sync_lock_test_and_set): Likewise.
2151 (expand_atomic_compare_and_swap): Likewise.
2152 (expand_mem_thread_fence): Likewise.
2153 (expand_atomic_fetch_op): Likewise.
2154
2155 2017-09-03 Gerald Pfeifer <gerald@pfeifer.com>
2156
2157 * doc/generic.texi (OpenACC): Adjust URL.
2158 * doc/invoke.texi (C Dialect Options): Ditto.
2159
2160 2017-09-03 Uros Bizjak <ubizjak@gmail.com>
2161
2162 * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
2163 predicate for operand 1. Add (m,<S>) constraint.
2164 (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
2165 Prevent memory operand 1 with register operand 2.
2166
2167 2017-09-01 Segher Boessenkool <segher@kernel.crashing.org>
2168
2169 PR rtl-optimization/82024
2170 * combine.c (try_combine): If the combination result is a PARALLEL,
2171 and we only need to retain the SET in there that would be placed
2172 at I2, check that we can place that at I3 instead, before doing so.
2173
2174 2017-09-01 Jakub Jelinek <jakub@redhat.com>
2175
2176 PR target/81766
2177 * config/i386/i386.c (ix86_init_large_pic_reg): Return label
2178 instead of void.
2179 (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
2180 if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
2181 and label.
2182
2183 2017-09-01 Joerg Sonnenberger <joerg@bec.de>
2184 Jeff Law <law@redhat.com>
2185
2186 * varasm.c (bss_initializer_p): Do not put constants into .bss
2187 (categorize_decl_for_section): Handle bss_initializer_p returning
2188 false when DECL_INITIAL is NULL.
2189
2190 2017-09-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2191
2192 PR target/82012
2193 * config/s390/s390.c (s390_can_inline_p): New function.
2194
2195 2017-09-01 Jeff Law <law@redhat.com>
2196
2197 PR tree-optimization/82052
2198 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
2199 Always initialize the returned slot after a hash table miss
2200 when INSERT is true.
2201
2202 2017-09-01 Alexander Monakov <amonakov@ispras.ru>
2203
2204 * config/s390/s390.md (mem_signal_fence): Remove.
2205 * doc/md.texi (mem_signal_fence): Remove.
2206 * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
2207 Update comments.
2208 * target-insns.def (mem_signal_fence): Remove.
2209
2210 2017-09-01 Jakub Jelinek <jakub@redhat.com>
2211
2212 PR sanitizer/81902
2213 * doc/invoke.texi: Document -fsanitize=pointer-overflow.
2214
2215 PR sanitizer/81923
2216 * asan.c (create_odr_indicator): Strip name encoding from assembler
2217 name before appending it after __odr_asan_.
2218
2219 2017-09-01 Martin Liska <mliska@suse.cz>
2220
2221 PR tree-optimization/82059
2222 * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
2223 frequency only when an edge is redirected.
2224
2225 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
2226
2227 * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
2228 * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
2229 (arc_conditional_register_usage): Remove ARC600 lp_count
2230 exception.
2231 (arc_file_start): Emit Tag_ARC_CPU_variation.
2232 (arc_can_use_doloop_p): New conditions to use ZOLs.
2233 (hwloop_fail): New function.
2234 (hwloop_optimize): Likewise.
2235 (hwloop_pattern_reg): Likewise.
2236 (arc_doloop_hooks): New struct, to be used with reorg_loops.
2237 (arc_reorg_loops): New function, calls reorg_loops.
2238 (arc_reorg): Call arc_reorg_loops. Remove old ZOL handling.
2239 (arc600_corereg_hazard): Remove ZOL checking, case handled by
2240 hwloop_optimize.
2241 (arc_loop_hazard): Remove function, functionality moved into
2242 hwloop_optimize.
2243 (arc_hazard): Remove arc_loop_hazard call.
2244 (arc_adjust_insn_length): Remove ZOL handling, functionality moved
2245 into hwloop_optimize.
2246 (arc_label_align): Remove ZOL handling.
2247 * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
2248 * config/arc/arc.md (doloop_begin): Remove pattern.
2249 (doloop_begin_i): Likewise.
2250 (doloop_end_i): Likewise.
2251 (doloop_fallback): Likewise.
2252 (doloop_fallback_m): Likewise.
2253 (doloop_end): Reimplement expand.
2254 (arc_lp): New pattern for LP instruction.
2255 (loop_end): New pattern.
2256 (loop_fail): Likewise.
2257 (decrement_and_branch_until_zero): Likewise.
2258 * config/arc/arc.opt (mlpc-width): New option.
2259 * doc/invoke.texi (mlpc-width): Document option.
2260
2261 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
2262
2263 * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
2264 (arc_ccfsm_advance): Fix checking for delay slots.
2265 (arc_reorg): Add rtl dump after each call to arc_ifcvt.
2266
2267 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
2268
2269 * config/arc/arc.md (movqi_insn): Add stores to save constant long
2270 immediates.
2271 (movhi_insn): Update store instruction constraint which are saving
2272 6-bit short immediates.
2273 (movsi_insn): Consider also short scaled load operations.
2274 (zero_extendhisi2_i): Use Usd constraint instead of T.
2275 (extendhisi2_i): Add q constraint.
2276 (arc_clzsi2): Add type and length attributes.
2277 (arc_ctzsi2): Likewise.
2278 * config/arc/constraints.md (Usc): Update constraint, the
2279 assembler can parse two relocations for a single instruction.
2280
2281 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
2282
2283 * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
2284 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
2285
2286 2017-08-31 Olivier Hainque <hainque@adacore.com>
2287
2288 * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
2289 match as powerpc-wrs-vxworks*.
2290
2291 2017-08-31 James Greenhalgh <james.greenhalgh@arm.com>
2292
2293 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
2294 register constraint for by-element operand.
2295 (aarch64_mls_elt_merge<mode>): Likewise.
2296
2297 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
2298
2299 * config/arc/arc.c (arc_can_follow_jump): Check for short
2300 branches.
2301
2302 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
2303
2304 * config.gcc: Use g.opt for arc.
2305 * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
2306 functionality moved to ...
2307 (legitimate_scaled_address_p): New function, ...here.
2308 (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
2309 (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
2310 (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
2311 condition.
2312 (arc_override_options): Handle G option.
2313 (arc_output_pic_addr_const): Correct function definition.
2314 (arc_legitimate_address_p): Use legitimate_scaled_address_p.
2315 (arc_decl_anon_ns_mem_p): Delete.
2316 (arc_in_small_data_p): Overhaul this function to take into
2317 consideration the value given via G option.
2318 (arc_rewrite_small_data_1): Renamed and corrected old
2319 arc_rewrite_small_data function.
2320 (arc_rewrite_small_data): New function.
2321 (small_data_pattern): Don't use pic_offset_table_rtx.
2322 * config/arc/arc.h (CC1_SPEC): Recognize G option.
2323 * config/arc/simdext.md (movmisalignv2hi): Use
2324 prepare_move_operands function.
2325 (mov*): Likewise.
2326 (movmisalign*): Likewise.
2327 * doc/invoke.texi (ARC options): Document -G option.
2328
2329 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
2330
2331 * config/arc/arc-protos.h (compact_sda_memory_operand): Update
2332 prototype.
2333 * config/arc/arc.c (arc_print_operand): Output scalled address for
2334 sdata whenever is possible.
2335 (arc_in_small_data_p): Allow sdata for 64bit datum when double
2336 load/stores are available.
2337 (compact_sda_memory_operand): Check for the alignment required by
2338 code density instructions.
2339 * config/arc/arc.md (movsi_insn): Use newly introduced Us0
2340 constraint.
2341 * config/arc/constraints.md (Usd): Update constraint.
2342 (Us0): New constraint.
2343 (Usc): Update constraint.
2344
2345 2017-08-31 Richard Biener <rguenther@suse.de>
2346
2347 PR middle-end/82054
2348 * dwarf2out.c (dwarf2out_early_global_decl): Process each
2349 function only once.
2350
2351 2017-08-31 Tamar Christina <tamar.christina@arm.com>
2352
2353 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
2354 Resize type_signature.
2355
2356 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
2357 Alan Hayward <alan.hayward@arm.com>
2358 David Sherwood <david.sherwood@arm.com>
2359
2360 * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
2361 subregs whose inner modes can be stored in GPRs.
2362 (aarch64_classify_index): Likewise.
2363
2364 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
2365 Alan Hayward <alan.hayward@arm.com>
2366 David Sherwood <david.sherwood@arm.com>
2367
2368 * config/aarch64/iterators.md (V_cmp_result): Rename to...
2369 (V_INT_EQUIV): ...this.
2370 (v_cmp_result): Rename to...
2371 (v_int_equiv): ...this.
2372 * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
2373 * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
2374 (copysign<mode>3): Likewise.
2375 (aarch64_simd_bsl<mode>_internal): Likewise.
2376 (aarch64_simd_bsl<mode>): Likewise.
2377 (vec_cmp<mode><mode>): Likewise.
2378 (vcond<mode><mode>): Likewise.
2379 (vcond<v_cmp_mixed><mode>): Likewise.
2380 (vcondu<mode><v_cmp_mixed>): Likewise.
2381 (aarch64_cm<optab><mode>): Likewise.
2382 (aarch64_cmtst<mode>): Likewise.
2383 (aarch64_fac<optab><mode>): Likewise.
2384 (vec_perm_const<mode>): Likewise.
2385 (vcond_mask_<mode><v_cmp_result>): Rename to...
2386 (vcond_mask_<mode><v_int_equiv>): ...this.
2387 (vec_cmp<mode><v_cmp_result>): Rename to...
2388 (vec_cmp<mode><v_int_equiv>): ...this.
2389
2390 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
2391 Alan Hayward <alan.hayward@arm.com>
2392 David Sherwood <david.sherwood@arm.com>
2393
2394 * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
2395 vector modes.
2396 * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
2397 * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
2398 (UNSPEC_LD4_DREG): New unspecs.
2399 * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
2400 (aarch64_ld2<mode>_dreg_be): Replace with...
2401 (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
2402 unspec.
2403 (aarch64_ld3<mode>_dreg_le)
2404 (aarch64_ld3<mode>_dreg_be): Replace with...
2405 (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
2406 unspec.
2407 (aarch64_ld4<mode>_dreg_le)
2408 (aarch64_ld4<mode>_dreg_be): Replace with...
2409 (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
2410 unspec.
2411
2412 2017-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2413
2414 PR tree-optimization/81987
2415 * gimple-ssa-strength-reduction.c (insert_initializers): Don't
2416 insert an initializer in a location not dominated by the stride
2417 definition.
2418
2419 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
2420
2421 * tree-eh.c (lower_try_finally_switch): Set the location of the finally
2422 on the entire header of the finally block in the fallthru case.
2423
2424 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
2425
2426 * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
2427
2428 2017-08-30 Pat Haugen <pthaugen@us.ibm.com>
2429
2430 * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
2431 rs6000_emit_move_from_cr and call renamed function.
2432 (rs6000_emit_prologue): Call renamed functions.
2433 * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
2434 movesi_from_cr, remove volatile CRs.
2435
2436 2017-08-30 Jon Beniston <jon@beniston.com>
2437 Richard Biener <rguenther@suse.de>
2438
2439 * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
2440 of VECTOR_MODE_P check.
2441 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
2442 element vector types.
2443
2444 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2445
2446 * df.h (df_read_modify_subreg_p): Remove in favor of...
2447 * rtl.h (read_modify_subreg_p): ...this new function. Take a
2448 const_rtx instead of an rtx.
2449 * cprop.c (local_cprop_find_used_regs): Update accordingly.
2450 * df-problems.c (df_word_lr_mark_ref): Likewise.
2451 * ira-lives.c (mark_pseudo_reg_live): Likewise.
2452 (mark_pseudo_reg_dead): Likewise.
2453 (mark_ref_dead): Likewise.
2454 * reginfo.c (init_subregs_of_mode): Likewise.
2455 * sched-deps.c (sched_analyze_1): Likewise.
2456 * df-scan.c (df_def_record_1): Likewise.
2457 (df_uses_record): Likewise.
2458 (df_read_modify_subreg_p): Remove in favor of...
2459 * rtlanal.c (read_modify_subreg_p): ...this new function. Take a
2460 const_rtx instead of an rtx.
2461
2462 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2463 Alan Hayward <alan.hayward@arm.com>
2464 David Sherwood <david.sherwood@arm.com>
2465
2466 * rtl.h (partial_subreg_p): New function.
2467 * caller-save.c (save_call_clobbered_regs): Use it.
2468 * calls.c (expand_call): Likewise.
2469 * combine.c (combinable_i3pat): Likewise.
2470 (simplify_set): Likewise.
2471 (make_extraction): Likewise.
2472 (make_compound_operation_int): Likewise.
2473 (gen_lowpart_or_truncate): Likewise.
2474 (force_to_mode): Likewise.
2475 (make_field_assignment): Likewise.
2476 (reg_truncated_to_mode): Likewise.
2477 (record_truncated_value): Likewise.
2478 (move_deaths): Likewise.
2479 * cse.c (record_jump_cond): Likewise.
2480 (cse_insn): Likewise.
2481 * cselib.c (cselib_lookup_1): Likewise.
2482 * expmed.c (extract_bit_field_using_extv): Likewise.
2483 * function.c (assign_parm_setup_reg): Likewise.
2484 * ifcvt.c (noce_convert_multiple_sets): Likewise.
2485 * ira-build.c (create_insn_allocnos): Likewise.
2486 * lra-coalesce.c (merge_pseudos): Likewise.
2487 * lra-constraints.c (match_reload): Likewise.
2488 (simplify_operand_subreg): Likewise.
2489 (curr_insn_transform): Likewise.
2490 * lra-lives.c (process_bb_lives): Likewise.
2491 * lra.c (new_insn_reg): Likewise.
2492 (lra_substitute_pseudo): Likewise.
2493 * regcprop.c (mode_change_ok): Likewise.
2494 (maybe_mode_change): Likewise.
2495 (copyprop_hardreg_forward_1): Likewise.
2496 * reload.c (push_reload): Likewise.
2497 (find_reloads): Likewise.
2498 (find_reloads_subreg_address): Likewise.
2499 * reload1.c (alter_reg): Likewise.
2500 (eliminate_regs_1): Likewise.
2501 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
2502
2503 2017-08-30 David Edelsohn <dje.gcc@gmail.com>
2504
2505 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
2506 back to if statements, including unpack.
2507
2508 2017-08-30 Martin Liska <mliska@suse.cz>
2509
2510 PR inline-asm/82001
2511 * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
2512 Rename to ...
2513 (func_checker::compare_asm_inputs_outputs): ... this function.
2514 (func_checker::compare_gimple_asm): Use the function to compare
2515 also ASM constrains.
2516 * ipa-icf-gimple.h: Rename the function.
2517
2518 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2519 Alan Hayward <alan.hayward@arm.com>
2520 David Sherwood <david.sherwood@arm.com>
2521
2522 * coretypes.h (complex_mode): New type.
2523 * gdbhooks.py (build_pretty_printer): Handle it.
2524 * machmode.h (complex_mode): New class.
2525 (complex_mode::includes_p): New function.
2526 (is_complex_int_mode): Likewise.
2527 (is_complex_float_mode): Likewise.
2528 * genmodes.c (get_mode_class): Handle complex mode classes.
2529 * function.c (expand_function_end): Use is_complex_int_mode.
2530
2531 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2532 Alan Hayward <alan.hayward@arm.com>
2533 David Sherwood <david.sherwood@arm.com>
2534
2535 * coretypes.h (scalar_mode_pod): New typedef.
2536 * gdbhooks.py (build_pretty_printer): Handle it.
2537 * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
2538 * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
2539 * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
2540 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
2541 as_a <scalar_mode>.
2542
2543 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2544 Alan Hayward <alan.hayward@arm.com>
2545 David Sherwood <david.sherwood@arm.com>
2546
2547 * machmode.h (mode_for_vector): Take a scalar_mode instead
2548 of a machine_mode.
2549 * stor-layout.c (mode_for_vector): Likewise.
2550 * explow.c (promote_mode): Use as_a <scalar_mode>.
2551 * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
2552
2553 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2554 Alan Hayward <alan.hayward@arm.com>
2555 David Sherwood <david.sherwood@arm.com>
2556
2557 * target.def (preferred_simd_mode): Take a scalar_mode
2558 instead of a machine_mode.
2559 * targhooks.h (default_preferred_simd_mode): Likewise.
2560 * targhooks.c (default_preferred_simd_mode): Likewise.
2561 * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
2562 * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
2563 * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
2564 * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
2565 * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
2566 * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
2567 * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
2568 * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
2569 Likewise.
2570 * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
2571 * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
2572 * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
2573 * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
2574 (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
2575 * doc/tm.texi: Regenerate.
2576 * optabs-query.c (can_vec_mask_load_store_p): Return false for
2577 non-scalar modes.
2578
2579 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2580 Alan Hayward <alan.hayward@arm.com>
2581 David Sherwood <david.sherwood@arm.com>
2582
2583 * target.def (scalar_mode_supported_p): Take a scalar_mode
2584 instead of a machine_mode.
2585 * targhooks.h (default_scalar_mode_supported_p): Likewise.
2586 * targhooks.c (default_scalar_mode_supported_p): Likewise.
2587 * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
2588 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
2589 * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
2590 * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
2591 * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
2592 * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
2593 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
2594 * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
2595 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
2596 * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
2597 * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
2598 * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
2599 Likewise.
2600 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
2601 * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
2602 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
2603 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
2604 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
2605 Likewise.
2606 * doc/tm.texi: Regenerate.
2607
2608 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2609 Alan Hayward <alan.hayward@arm.com>
2610 David Sherwood <david.sherwood@arm.com>
2611
2612 * coretypes.h (opt_scalar_mode): New typedef.
2613 * gdbhooks.py (build_pretty_printers): Handle it.
2614 * machmode.h (mode_iterator::get_2xwider): Add overload for
2615 opt_mode<T>.
2616 * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
2617 over scalar modes.
2618 * expr.c (convert_mode_scalar): Likewise.
2619 * omp-low.c (omp_clause_aligned_alignment): Likewise.
2620 * optabs.c (expand_float): Likewise.
2621 (expand_fix): Likewise.
2622 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
2623
2624 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2625 Alan Hayward <alan.hayward@arm.com>
2626 David Sherwood <david.sherwood@arm.com>
2627
2628 * optabs.c (expand_float): Explicitly check for scalars before
2629 using a branching expansion.
2630 (expand_fix): Likewise.
2631
2632 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2633 Alan Hayward <alan.hayward@arm.com>
2634 David Sherwood <david.sherwood@arm.com>
2635
2636 * expr.c (convert_mode): Split scalar handling out into...
2637 (convert_mode_scalar): ...this new function. Treat the modes
2638 as scalar_modes.
2639
2640 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2641 Alan Hayward <alan.hayward@arm.com>
2642 David Sherwood <david.sherwood@arm.com>
2643
2644 * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
2645 and scalar_mode.
2646 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
2647
2648 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2649 Alan Hayward <alan.hayward@arm.com>
2650 David Sherwood <david.sherwood@arm.com>
2651
2652 * fixed-value.h (fixed_from_double_int): Take a scalar_mode
2653 rather than a machine_mode.
2654 (fixed_from_string): Likewise.
2655 (fixed_convert): Likewise.
2656 (fixed_convert_from_int): Likewise.
2657 (fixed_convert_from_real): Likewise.
2658 (real_convert_from_fixed): Likewise.
2659 * fixed-value.c (fixed_from_double_int): Likewise.
2660 (fixed_from_string): Likewise.
2661 (fixed_convert): Likewise.
2662 (fixed_convert_from_int): Likewise.
2663 (fixed_convert_from_real): Likewise.
2664 (real_convert_from_fixed): Likewise.
2665 * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
2666
2667 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2668 Alan Hayward <alan.hayward@arm.com>
2669 David Sherwood <david.sherwood@arm.com>
2670
2671 * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
2672 of separate mode class checks. Do not allow vector modes here.
2673 (immed_wide_int_const): Use as_a <scalar_mode>.
2674 * explow.c (trunc_int_for_mode): Likewise.
2675 * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
2676 (wi::shwi): Likewise.
2677 (wi::min_value): Likewise.
2678 (wi::max_value): Likewise.
2679 * dwarf2out.c (loc_descriptor): Likewise.
2680 * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
2681 for CONST_WIDE_INT.
2682
2683 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2684 Alan Hayward <alan.hayward@arm.com>
2685 David Sherwood <david.sherwood@arm.com>
2686
2687 * tree.h (SCALAR_TYPE_MODE): New macro.
2688 * expr.c (expand_expr_addr_expr_1): Use it.
2689 (expand_expr_real_2): Likewise.
2690 * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
2691 (fold_convert_const_fixed_from_int): Likewise.
2692 (fold_convert_const_fixed_from_real): Likewise.
2693 (native_encode_fixed): Likewise
2694 (native_encode_complex): Likewise
2695 (native_encode_vector): Likewise.
2696 (native_interpret_fixed): Likewise.
2697 (native_interpret_real): Likewise.
2698 (native_interpret_complex): Likewise.
2699 (native_interpret_vector): Likewise.
2700 * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
2701 (simd_clone_adjust_argument_types): Likewise.
2702 (simd_clone_init_simd_arrays): Likewise.
2703 (simd_clone_adjust): Likewise.
2704 * stor-layout.c (layout_type): Likewise.
2705 * tree.c (build_minus_one_cst): Likewise.
2706 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
2707 * tree-inline.c (estimate_move_cost): Likewise.
2708 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
2709 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
2710 (vectorizable_reduction): Likewise.
2711 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
2712 (vect_recog_mixed_size_cond_pattern): Likewise.
2713 (check_bool_pattern): Likewise.
2714 (adjust_bool_pattern): Likewise.
2715 (search_type_for_mask_1): Likewise.
2716 * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
2717 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
2718 (vectorizable_load): Likewise.
2719 (vectorizable_store): Likewise.
2720 * ubsan.c (ubsan_encode_value): Likewise.
2721 * varasm.c (output_constant): Likewise.
2722
2723 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2724 Alan Hayward <alan.hayward@arm.com>
2725 David Sherwood <david.sherwood@arm.com>
2726
2727 * coretypes.h (scalar_mode): New class.
2728 * machmode.h (scalar_mode): Likewise.
2729 (scalar_mode::includes_p): New function.
2730 (mode_to_inner): Return a scalar_mode rather than a machine_mode.
2731 * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
2732 * genmodes.c (get_mode_class): Handle remaining scalar modes.
2733 * cfgexpand.c (expand_debug_expr): Use scalar_mode.
2734 * expmed.c (store_bit_field_1): Likewise.
2735 (extract_bit_field_1): Likewise.
2736 * expr.c (write_complex_part): Likewise.
2737 (read_complex_part): Likewise.
2738 (emit_move_complex_push): Likewise.
2739 (expand_expr_real_2): Likewise.
2740 * function.c (assign_parm_setup_reg): Likewise.
2741 (assign_parms_unsplit_complex): Likewise.
2742 * optabs.c (expand_binop): Likewise.
2743 * rtlanal.c (subreg_get_info): Likewise.
2744 * simplify-rtx.c (simplify_immed_subreg): Likewise.
2745 * varasm.c (output_constant_pool_2): Likewise.
2746
2747 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2748 Alan Hayward <alan.hayward@arm.com>
2749 David Sherwood <david.sherwood@arm.com>
2750
2751 * expmed.c (extract_high_half): Use scalar_int_mode and remove
2752 assertion.
2753 (expmed_mult_highpart_optab): Likewise.
2754 (expmed_mult_highpart): Likewise.
2755
2756 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2757 Alan Hayward <alan.hayward@arm.com>
2758 David Sherwood <david.sherwood@arm.com>
2759
2760 * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
2761 instead of a machine_mode.
2762 (builtin_memset_read_str): Likewise.
2763 * builtins.c (c_readstr): Likewise.
2764 (builtin_memcpy_read_str): Likewise.
2765 (builtin_strncpy_read_str): Likewise.
2766 (builtin_memset_read_str): Likewise.
2767 (builtin_memset_gen_str): Likewise.
2768 (expand_builtin_signbit): Use scalar_int_mode for local variables.
2769 * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
2770 instead of a machine_mode.
2771 * combine.c (simplify_if_then_else): Use scalar_int_mode for local
2772 variables.
2773 (make_extraction): Likewise.
2774 (try_widen_shift_mode): Take and return scalar_int_modes instead
2775 of machine_modes.
2776 * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
2777 a scalar_int_mode instead of a machine_mode.
2778 * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
2779 (avr_addr_space_pointer_mode): Likewise.
2780 * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
2781 * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
2782 (msp430_unwind_word_mode): Likewise.
2783 * config/spu/spu.c (spu_unwind_word_mode): Likewise.
2784 (spu_addr_space_pointer_mode): Likewise.
2785 (spu_addr_space_address_mode): Likewise.
2786 (spu_libgcc_cmp_return_mode): Likewise.
2787 (spu_libgcc_shift_count_mode): Likewise.
2788 * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
2789 (rl78_addr_space_pointer_mode): Likewise.
2790 (fl78_unwind_word_mode): Likewise.
2791 (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
2792 machine_mode.
2793 * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
2794 * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
2795 * config/mips/mips.c (mips_mode_rep_extended): Likewise.
2796 (mips_valid_pointer_mode): Likewise.
2797 * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
2798 * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
2799 (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
2800 of a machine_mode.
2801 (ft32_addr_space_address_mode): Likewise.
2802 * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
2803 scalar_int_mode instead of a machine_mode.
2804 (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
2805 of a machine_mode.
2806 (m32c_addr_space_address_mode): Likewise.
2807 * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
2808 (rs6000_eh_return_filter_mode): Likewise.
2809 * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
2810 (rs6000_eh_return_filter_mode): Likewise.
2811 * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
2812 (s390_libgcc_shift_count_mode): Likewise.
2813 (s390_unwind_word_mode): Likewise.
2814 (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
2815 machine_mode.
2816 * target.def (mode_rep_extended): Likewise.
2817 (valid_pointer_mode): Likewise.
2818 (addr_space.valid_pointer_mode): Likewise.
2819 (eh_return_filter_mode): Return a scalar_int_mode rather than
2820 a machine_mode.
2821 (libgcc_cmp_return_mode): Likewise.
2822 (libgcc_shift_count_mode): Likewise.
2823 (unwind_word_mode): Likewise.
2824 (addr_space.pointer_mode): Likewise.
2825 (addr_space.address_mode): Likewise.
2826 * doc/tm.texi: Regenerate.
2827 * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
2828 a machine_mode.
2829 (do_jump): Use scalar_int_mode for local variables.
2830 * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
2831 rather than a machine_mode.
2832 * dwarf2out.c (convert_descriptor_to_mode): Likewise.
2833 (scompare_loc_descriptor_wide): Likewise.
2834 (scompare_loc_descriptor_narrow): Likewise.
2835 * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
2836 variables.
2837 * except.c (sjlj_emit_dispatch_table): Likewise.
2838 (expand_builtin_eh_copy_values): Likewise.
2839 * explow.c (convert_memory_address_addr_space_1): Likewise.
2840 Take a scalar_int_mode rather than a machine_mode.
2841 (convert_memory_address_addr_space): Take a scalar_int_mode rather
2842 than a machine_mode.
2843 (memory_address_addr_space): Use scalar_int_mode for local variables.
2844 * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
2845 rather than a machine_mode.
2846 * expmed.c (mask_rtx): Likewise.
2847 (init_expmed_one_conv): Likewise.
2848 (expand_mult_highpart_adjust): Likewise.
2849 (extract_high_half): Likewise.
2850 (expmed_mult_highpart_optab): Likewise.
2851 (expmed_mult_highpart): Likewise.
2852 (expand_smod_pow2): Likewise.
2853 (expand_sdiv_pow2): Likewise.
2854 (emit_store_flag_int): Likewise.
2855 (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
2856 variables.
2857 (extract_low_bits): Likewise.
2858 * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
2859 a machine_mode.
2860 * expr.c (pieces_addr::adjust): Likewise.
2861 (can_store_by_pieces): Likewise.
2862 (store_by_pieces): Likewise.
2863 (clear_by_pieces_1): Likewise.
2864 (expand_expr_addr_expr_1): Likewise.
2865 (expand_expr_addr_expr): Use scalar_int_mode for local variables.
2866 (expand_expr_real_1): Likewise.
2867 (try_casesi): Likewise.
2868 * final.c (shorten_branches): Likewise.
2869 * fold-const.c (fold_convert_const_int_from_fixed): Change the
2870 type of "mode" to machine_mode.
2871 * internal-fn.c (expand_arith_overflow_result_store): Take a
2872 scalar_int_mode rather than a machine_mode.
2873 (expand_mul_overflow): Use scalar_int_mode for local variables.
2874 * loop-doloop.c (doloop_modify): Likewise.
2875 (doloop_optimize): Likewise.
2876 * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
2877 than a machine_mode.
2878 (expand_doubleword_shift_condmove): Likewise.
2879 (expand_doubleword_shift): Likewise.
2880 (expand_doubleword_clz): Likewise.
2881 (expand_doubleword_popcount): Likewise.
2882 (expand_doubleword_parity): Likewise.
2883 (expand_absneg_bit): Use scalar_int_mode for local variables.
2884 (prepare_float_lib_cmp): Likewise.
2885 * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
2886 rather than a machine_mode.
2887 (convert_memory_address_addr_space): Likewise.
2888 (get_mode_bounds): Likewise.
2889 (get_address_mode): Return a scalar_int_mode rather than a
2890 machine_mode.
2891 * rtlanal.c (get_address_mode): Likewise.
2892 * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
2893 than a machine_mode.
2894 * targhooks.c (default_mode_rep_extended): Likewise.
2895 (default_valid_pointer_mode): Likewise.
2896 (default_addr_space_valid_pointer_mode): Likewise.
2897 (default_eh_return_filter_mode): Return a scalar_int_mode rather
2898 than a machine_mode.
2899 (default_libgcc_cmp_return_mode): Likewise.
2900 (default_libgcc_shift_count_mode): Likewise.
2901 (default_unwind_word_mode): Likewise.
2902 (default_addr_space_pointer_mode): Likewise.
2903 (default_addr_space_address_mode): Likewise.
2904 * targhooks.h (default_eh_return_filter_mode): Likewise.
2905 (default_libgcc_cmp_return_mode): Likewise.
2906 (default_libgcc_shift_count_mode): Likewise.
2907 (default_unwind_word_mode): Likewise.
2908 (default_addr_space_pointer_mode): Likewise.
2909 (default_addr_space_address_mode): Likewise.
2910 (default_mode_rep_extended): Take a scalar_int_mode rather than
2911 a machine_mode.
2912 (default_valid_pointer_mode): Likewise.
2913 (default_addr_space_valid_pointer_mode): Likewise.
2914 * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
2915 local variables.
2916 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
2917 rather than a machine_mode.
2918 * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
2919 for local variables.
2920 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
2921 * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
2922 than a machine_mode.
2923
2924 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2925 Alan Hayward <alan.hayward@arm.com>
2926 David Sherwood <david.sherwood@arm.com>
2927
2928 * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
2929 the mode argument to scalar_int_mode.
2930 (do_jump_by_parts_zero_rtx): Likewise.
2931 (do_jump_by_parts_equality_rtx): Likewise.
2932 (do_jump_by_parts_greater): Take a mode argument.
2933 (do_jump_by_parts_equality): Likewise.
2934 (do_jump_1): Update calls accordingly.
2935
2936 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2937 Alan Hayward <alan.hayward@arm.com>
2938 David Sherwood <david.sherwood@arm.com>
2939
2940 * is-a.h (safe_dyn_cast): New function.
2941 * rtl.h (rtx_jump_table_data::get_data_mode): New function.
2942 (jump_table_for_label): Likewise.
2943 * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
2944 instead of an rtx_insn *.
2945 (shorten_branches): Use dyn_cast instead of LABEL_P and
2946 JUMP_TABLE_DATA_P. Use jump_table_for_label and
2947 rtx_jump_table_data::get_data_mode.
2948 (final_scan_insn): Likewise.
2949
2950 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2951 Alan Hayward <alan.hayward@arm.com>
2952 David Sherwood <david.sherwood@arm.com>
2953
2954 * combine.c (try_combine): Use is_a <scalar_int_mode> when
2955 trying to combine a full-register integer set with a subreg
2956 integer set.
2957
2958 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2959 Alan Hayward <alan.hayward@arm.com>
2960 David Sherwood <david.sherwood@arm.com>
2961
2962 * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
2963 that is always either address_mode or pointer_mode.
2964
2965 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2966 Alan Hayward <alan.hayward@arm.com>
2967 David Sherwood <david.sherwood@arm.com>
2968
2969 * expr.c (expand_expr_real_2): Use word_mode instead of innermode
2970 when the two are known to be equal.
2971
2972 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2973 Alan Hayward <alan.hayward@arm.com>
2974 David Sherwood <david.sherwood@arm.com>
2975
2976 * simplify-rtx.c (simplify_const_unary_operation): Use
2977 is_a <scalar_int_mode> instead of checking for a nonzero
2978 precision. Forcibly convert op_mode to a scalar_int_mode
2979 in that case. More clearly differentiate the operand and
2980 result modes and use the former when deciding what the value
2981 of a count-bits operation should be. Use is_int_mode instead
2982 of checking for a MODE_INT. Remove redundant check for whether
2983 this mode has a zero precision.
2984
2985 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2986 Alan Hayward <alan.hayward@arm.com>
2987 David Sherwood <david.sherwood@arm.com>
2988
2989 * optabs.c (widen_leading): Change the type of the mode argument
2990 to scalar_int_mode. Use opt_scalar_int_mode for the mode iterator.
2991 (widen_bswap): Likewise.
2992 (expand_parity): Likewise.
2993 (expand_ctz): Change the type of the mode argument to scalar_int_mode.
2994 (expand_ffs): Likewise.
2995 (epand_unop): Check for scalar integer modes before calling the
2996 above routines.
2997
2998 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2999 Alan Hayward <alan.hayward@arm.com>
3000 David Sherwood <david.sherwood@arm.com>
3001
3002 * expr.c (const_scalar_mask_from_tree): Add a mode argument.
3003 Expand commentary.
3004 (expand_expr_real_1): Update call accordingly.
3005
3006 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3007 Alan Hayward <alan.hayward@arm.com>
3008 David Sherwood <david.sherwood@arm.com>
3009
3010 * expmed.c (store_bit_field_using_insv): Add op0_mode and
3011 value_mode arguments. Use scalar_int_mode internally.
3012 (store_bit_field_1): Rename the new integer mode from imode
3013 to op0_mode and use it instead of GET_MODE (op0). Update calls
3014 to store_split_bit_field, store_bit_field_using_insv and
3015 store_fixed_bit_field.
3016 (store_fixed_bit_field): Add op0_mode and value_mode arguments.
3017 Use scalar_int_mode internally. Use a bit count rather than a mode
3018 when calculating the largest bit size for get_best_mode.
3019 Update calls to store_split_bit_field and store_fixed_bit_field_1.
3020 (store_fixed_bit_field_1): Add mode and value_mode arguments.
3021 Remove assertion that OP0 has a scalar integer mode.
3022 (store_split_bit_field): Add op0_mode and value_mode arguments.
3023 Update calls to extract_fixed_bit_field.
3024 (extract_bit_field_using_extv): Add an op0_mode argument.
3025 Use scalar_int_mode internally.
3026 (extract_bit_field_1): Rename the new integer mode from imode to
3027 op0_mode and use it instead of GET_MODE (op0). Update calls to
3028 extract_split_bit_field, extract_bit_field_using_extv and
3029 extract_fixed_bit_field.
3030 (extract_fixed_bit_field): Add an op0_mode argument. Update calls
3031 to extract_split_bit_field and extract_fixed_bit_field_1.
3032 (extract_fixed_bit_field_1): Add a mode argument. Remove assertion
3033 that OP0 has a scalar integer mode. Use as_a <scalar_int_mode>
3034 on the target mode.
3035 (extract_split_bit_field): Add an op0_mode argument. Update call
3036 to extract_fixed_bit_field.
3037
3038 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3039 Alan Hayward <alan.hayward@arm.com>
3040 David Sherwood <david.sherwood@arm.com>
3041
3042 * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
3043 * explow.c (hard_function_value): Likewise.
3044 * expmed.c (extract_fixed_bit_field_1): Likewise. Move the
3045 convert_to_mode call outside the loop.
3046 * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
3047 for the mode iterator. Require the mode specified by max_pieces
3048 to exist.
3049 (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
3050 mode iterator.
3051 (copy_blkmode_to_reg): Likewise.
3052 (set_storage_via_setmem): Likewise.
3053 * optabs.c (prepare_cmp_insn): Likewise.
3054 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
3055 * stor-layout.c (finish_bitfield_representative): Likewise.
3056
3057 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3058 Alan Hayward <alan.hayward@arm.com>
3059 David Sherwood <david.sherwood@arm.com>
3060
3061 * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
3062 * expr.c (convert_move): Use them.
3063 (convert_modes): Likewise.
3064 (store_expr_with_bounds): Likewise.
3065
3066 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3067 Alan Hayward <alan.hayward@arm.com>
3068 David Sherwood <david.sherwood@arm.com>
3069
3070 * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
3071 parameter for the mode of "x". Remove the "known_x", "known_mode"
3072 and "known_ret" arguments. Change the type of the mode argument
3073 to scalar_int_mode.
3074 (rtl_hooks:reg_num_sign_bit_copies): Likewise.
3075 * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
3076 (reg_num_sign_bit_copies_for_combine): Likewise.
3077 * rtlanal.c (nonzero_bits1): Likewise.
3078 (num_sign_bit_copies1): Likewise.
3079 * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
3080 (reg_num_sign_bit_copies_general): Likewise.
3081 * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
3082 (reg_nonzero_bits_general): Likewise.
3083
3084 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3085 Alan Hayward <alan.hayward@arm.com>
3086 David Sherwood <david.sherwood@arm.com>
3087
3088 * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
3089 than in subroutines. Return 1 for non-integer modes.
3090 (cached_num_sign_bit_copies): Change the type of the mode parameter
3091 to scalar_int_mode.
3092 (num_sign_bit_copies1): Likewise. Remove early exit for other mode
3093 classes. Handle CONST_INT_P first and then check whether X also
3094 has a scalar integer mode. Check the same thing for inner registers
3095 of a SUBREG and for values that are being extended or truncated.
3096
3097 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3098 Alan Hayward <alan.hayward@arm.com>
3099 David Sherwood <david.sherwood@arm.com>
3100
3101 * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
3102 in subroutines. Return the mode mask for non-integer modes.
3103 (cached_nonzero_bits): Change the type of the mode parameter
3104 to scalar_int_mode.
3105 (nonzero_bits1): Likewise. Remove early exit for other mode
3106 classes. Handle CONST_INT_P first and then check whether X
3107 also has a scalar integer mode.
3108
3109 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3110 Alan Hayward <alan.hayward@arm.com>
3111 David Sherwood <david.sherwood@arm.com>
3112
3113 * expr.c (widest_int_mode_for_size): Make the comment match the code.
3114 Return a scalar_int_mode and assert that the size is greater than
3115 one byte.
3116 (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
3117 (op_by_pieces_d::op_by_pieces_d): Likewise.
3118 (op_by_pieces_d::run): Likewise.
3119 (can_store_by_pieces): Likewise.
3120
3121 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3122 Alan Hayward <alan.hayward@arm.com>
3123 David Sherwood <david.sherwood@arm.com>
3124
3125 * combine.c (extract_left_shift): Add a mode argument and update
3126 recursive calls.
3127 (make_compound_operation_int): Change the type of the mode parameter
3128 to scalar_int_mode and update the call to extract_left_shift.
3129
3130 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3131 Alan Hayward <alan.hayward@arm.com>
3132 David Sherwood <david.sherwood@arm.com>
3133
3134 * combine.c (simplify_and_const_int): Change the type of the mode
3135 parameter to scalar_int_mode.
3136 (simplify_and_const_int_1): Likewise. Update recursive call.
3137
3138 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3139 Alan Hayward <alan.hayward@arm.com>
3140 David Sherwood <david.sherwood@arm.com>
3141
3142 * combine.c (simplify_compare_const): Check that the mode is a
3143 scalar_int_mode (rather than VOIDmode) before testing its
3144 precision.
3145 (simplify_comparison): Move COMPARISON_P handling out of the
3146 loop and restrict the latter part of the loop to scalar_int_modes.
3147 Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
3148 and when considering SUBREG_REGs. Use is_int_mode instead of
3149 checking GET_MODE_CLASS against MODE_INT.
3150
3151 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3152 Alan Hayward <alan.hayward@arm.com>
3153 David Sherwood <david.sherwood@arm.com>
3154
3155 * combine.c (try_widen_shift_mode): Move check for equal modes to...
3156 (simplify_shift_const_1): ...here. Use scalar_int_mode for
3157 shift_unit_mode and for modes involved in scalar shifts.
3158
3159 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3160 Alan Hayward <alan.hayward@arm.com>
3161 David Sherwood <david.sherwood@arm.com>
3162
3163 * combine.c (force_int_to_mode): New function, split out from...
3164 (force_to_mode): ...here. Keep xmode up-to-date and use it
3165 instead of GET_MODE (x).
3166
3167 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3168 Alan Hayward <alan.hayward@arm.com>
3169 David Sherwood <david.sherwood@arm.com>
3170
3171 * optabs-query.h (extraction_insn::struct_mode): Change type to
3172 opt_scalar_int_mode and update comment.
3173 (extraction_insn::field_mode): Change type to scalar_int_mode.
3174 (extraction_insn::pos_mode): Likewise.
3175 * combine.c (make_extraction): Update accordingly.
3176 * optabs-query.c (get_traditional_extraction_insn): Likewise.
3177 (get_optab_extraction_insn): Likewise.
3178 * recog.c (simplify_while_replacing): Likewise.
3179 * expmed.c (narrow_bit_field_mem): Change the type of the mode
3180 parameter to opt_scalar_int_mode.
3181
3182 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3183 Alan Hayward <alan.hayward@arm.com>
3184 David Sherwood <david.sherwood@arm.com>
3185
3186 * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
3187 to a scalar_int_mode instead of a machine_mode.
3188 (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
3189 (get_best_mode): Return a boolean and use a pointer argument to store
3190 the selected mode. Replace the limit mode parameter with a bit limit.
3191 * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
3192 for the values returned by bit_field_mode_iterator::next_mode.
3193 (store_bit_field): Update call to get_best_mode.
3194 (store_fixed_bit_field): Likewise.
3195 (extract_fixed_bit_field): Likewise.
3196 * expr.c (optimize_bitfield_assignment_op): Likewise.
3197 * fold-const.c (optimize_bit_field_compare): Likewise.
3198 (fold_truth_andor_1): Likewise.
3199 * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
3200 Update for new type of m_mode.
3201 (get_best_mode): As above.
3202
3203 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3204 Alan Hayward <alan.hayward@arm.com>
3205 David Sherwood <david.sherwood@arm.com>
3206
3207 * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
3208 to scalar_int_mode. Remove check for SCALAR_INT_MODE_P.
3209 (store_bit_field): Check is_a <scalar_int_mode> before calling
3210 strict_volatile_bitfield_p.
3211 (extract_bit_field): Likewise.
3212
3213 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3214 Alan Hayward <alan.hayward@arm.com>
3215 David Sherwood <david.sherwood@arm.com>
3216
3217 * target.def (cstore_mode): Return a scalar_int_mode.
3218 * doc/tm.texi: Regenerate.
3219 * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
3220 * targhooks.h (default_cstore_mode): Likewise.
3221 * targhooks.c (default_cstore_mode): Likewise, using a forced
3222 conversion.
3223 * expmed.c (emit_cstore): Expect the target of the cstore to be
3224 a scalar_int_mode.
3225
3226 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3227 Alan Hayward <alan.hayward@arm.com>
3228 David Sherwood <david.sherwood@arm.com>
3229
3230 * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
3231 scalar_int_mode.
3232 (niter_desc): Likewise mode.
3233 (iv_analyze): Add a mode parameter.
3234 (biv_p): Likewise.
3235 (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
3236 and change its type to scalar_int_mode.
3237 * loop-iv.c: Update commentary at head of file.
3238 (iv_constant): Pass the mode paraeter before the rtx it describes
3239 and change its type to scalar_int_mode. Remove VOIDmode handling.
3240 (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
3241 (iv_extend): Likewise.
3242 (shorten_into_mode): Likewise.
3243 (iv_add): Use scalar_int_mode.
3244 (iv_mult): Likewise.
3245 (iv_shift): Likewise.
3246 (canonicalize_iv_subregs): Likewise.
3247 (get_biv_step_1): Pass the outer_mode parameter before the rtx
3248 it describes and change its mode to scalar_int_mode. Also change
3249 the type of the returned inner_mode to scalar_int_mode.
3250 (get_biv_step): Likewise, turning outer_mode from a pointer
3251 into a direct parameter. Update call to get_biv_step_1.
3252 (iv_analyze_biv): Add an outer_mode parameter. Update calls to
3253 iv_constant and get_biv_step.
3254 (iv_analyze_expr): Pass the mode parameter before the rtx it describes
3255 and change its type to scalar_int_mode. Don't initialise iv->mode
3256 to VOIDmode and remove later checks for its still being VOIDmode.
3257 Update calls to iv_analyze_op and iv_analyze_expr. Check
3258 is_a <scalar_int_mode> when changing the mode under consideration.
3259 (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
3260 Update call to iv_analyze_expr.
3261 (iv_analyze_op): Add a mode parameter. Reject subregs whose
3262 inner register is not also a scalar_int_mode. Update call to
3263 iv_analyze_biv.
3264 (iv_analyze): Add a mode parameter. Update call to iv_analyze_op.
3265 (biv_p): Add a mode parameter. Update call to iv_analyze_biv.
3266 (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
3267 separate mode class checks. Update calls to iv_analyze. Remove
3268 fix-up of VOIDmodes after iv_analyze_biv.
3269 * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
3270 don't have a scalar_int_mode. Update call to biv_p.
3271
3272 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3273 Alan Hayward <alan.hayward@arm.com>
3274 David Sherwood <david.sherwood@arm.com>
3275
3276 * cfgexpand.c (convert_debug_memory_address): Use
3277 as_a <scalar_int_mode>.
3278 * combine.c (expand_compound_operation): Likewise.
3279 (make_extraction): Likewise.
3280 (change_zero_ext): Likewise.
3281 (simplify_comparison): Likewise.
3282 * cse.c (cse_insn): Likewise.
3283 * dwarf2out.c (minmax_loc_descriptor): Likewise.
3284 (mem_loc_descriptor): Likewise.
3285 (loc_descriptor): Likewise.
3286 * expmed.c (init_expmed_one_mode): Likewise.
3287 (synth_mult): Likewise.
3288 (emit_store_flag_1): Likewise.
3289 (expand_divmod): Likewise. Use HWI_COMPUTABLE_MODE_P instead
3290 of a comparison with size.
3291 * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
3292 (reduce_to_bit_field_precision): Likewise.
3293 * function.c (expand_function_end): Likewise.
3294 * internal-fn.c (expand_arith_overflow_result_store): Likewise.
3295 * loop-doloop.c (doloop_modify): Likewise.
3296 * optabs.c (expand_binop): Likewise.
3297 (expand_unop): Likewise.
3298 (expand_copysign_absneg): Likewise.
3299 (prepare_cmp_insn): Likewise.
3300 (maybe_legitimize_operand): Likewise.
3301 * recog.c (const_scalar_int_operand): Likewise.
3302 * rtlanal.c (get_address_mode): Likewise.
3303 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3304 (simplify_cond_clz_ctz): Likewise.
3305 * tree-nested.c (get_nl_goto_field): Likewise.
3306 * tree.c (build_vector_type_for_mode): Likewise.
3307 * var-tracking.c (use_narrower_mode): Likewise.
3308
3309 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3310 Alan Hayward <alan.hayward@arm.com>
3311 David Sherwood <david.sherwood@arm.com>
3312
3313 * tree.h (SCALAR_INT_TYPE_MODE): New macro.
3314 * builtins.c (expand_builtin_signbit): Use it.
3315 * cfgexpand.c (expand_debug_expr): Likewise.
3316 * dojump.c (do_jump): Likewise.
3317 (do_compare_and_jump): Likewise.
3318 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
3319 * expmed.c (make_tree): Likewise.
3320 * expr.c (expand_expr_real_2): Likewise.
3321 (expand_expr_real_1): Likewise.
3322 (try_casesi): Likewise.
3323 * fold-const-call.c (fold_const_call_ss): Likewise.
3324 * fold-const.c (unextend): Likewise.
3325 (extract_muldiv_1): Likewise.
3326 (fold_single_bit_test): Likewise.
3327 (native_encode_int): Likewise.
3328 (native_encode_string): Likewise.
3329 (native_interpret_int): Likewise.
3330 * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
3331 * internal-fn.c (expand_addsub_overflow): Likewise.
3332 (expand_neg_overflow): Likewise.
3333 (expand_mul_overflow): Likewise.
3334 (expand_arith_overflow): Likewise.
3335 * match.pd: Likewise.
3336 * stor-layout.c (layout_type): Likewise.
3337 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
3338 * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
3339 * tree-ssanames.c (get_range_info): Likewise.
3340 * tree-switch-conversion.c (array_value_type) Likewise.
3341 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
3342 (vect_recog_divmod_pattern): Likewise.
3343 (vect_recog_mixed_size_cond_pattern): Likewise.
3344 * tree-vrp.c (extract_range_basic): Likewise.
3345 (simplify_float_conversion_using_ranges): Likewise.
3346 * tree.c (int_fits_type_p): Likewise.
3347 * ubsan.c (instrument_bool_enum_load): Likewise.
3348 * varasm.c (mergeable_string_section): Likewise.
3349 (narrowing_initializer_constant_valid_p): Likewise.
3350 (output_constant): Likewise.
3351
3352 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3353 Alan Hayward <alan.hayward@arm.com>
3354 David Sherwood <david.sherwood@arm.com>
3355
3356 * machmode.h (NARROWEST_INT_MODE): New macro.
3357 * expr.c (alignment_for_piecewise_move): Use it instead of
3358 GET_CLASS_NARROWEST_MODE (MODE_INT).
3359 (push_block): Likewise.
3360 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
3361 Likewise.
3362 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
3363
3364 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3365 Alan Hayward <alan.hayward@arm.com>
3366 David Sherwood <david.sherwood@arm.com>
3367
3368 * postreload.c (move2add_valid_value_p): Change the type of the
3369 mode parameter to scalar_int_mode.
3370 (move2add_use_add2_insn): Add a mode parameter and use it instead
3371 of GET_MODE (reg).
3372 (move2add_use_add3_insn): Likewise.
3373 (reload_cse_move2add): Update accordingly.
3374
3375 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3376 Alan Hayward <alan.hayward@arm.com>
3377 David Sherwood <david.sherwood@arm.com>
3378
3379 * expr.c (expand_expr_real_2): Use scalar_int_mode for the
3380 double-word mode.
3381 * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
3382 * optabs.c (expand_unop): Likewise.
3383
3384 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3385 Alan Hayward <alan.hayward@arm.com>
3386 David Sherwood <david.sherwood@arm.com>
3387
3388 * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
3389 (clz_loc_descriptor): Likewise. Remove SCALAR_INT_MODE_P check.
3390 (popcount_loc_descriptor): Likewise.
3391 (bswap_loc_descriptor): Likewise.
3392 (rotate_loc_descriptor): Likewise.
3393 (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
3394 calling the functions above.
3395
3396 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3397 Alan Hayward <alan.hayward@arm.com>
3398 David Sherwood <david.sherwood@arm.com>
3399
3400 * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
3401 checks.
3402 (try_combine): Likewise.
3403 (simplify_if_then_else): Likewise.
3404 * cse.c (cse_insn): Likewise.
3405 * dwarf2out.c (mem_loc_descriptor): Likewise.
3406 * emit-rtl.c (gen_lowpart_common): Likewise.
3407 * simplify-rtx.c (simplify_truncation): Likewise.
3408 (simplify_binary_operation_1): Likewise.
3409 (simplify_const_relational_operation): Likewise.
3410 (simplify_ternary_operation): Likewise.
3411 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3412
3413 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3414 Alan Hayward <alan.hayward@arm.com>
3415 David Sherwood <david.sherwood@arm.com>
3416
3417 * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
3418 * reload.c (push_reload): Likewise.
3419 (find_reloads): Likewise.
3420
3421 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3422 Alan Hayward <alan.hayward@arm.com>
3423 David Sherwood <david.sherwood@arm.com>
3424
3425 * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
3426 (make_compound_operation_int): Likewise.
3427 (change_zero_ext): Likewise.
3428 * expr.c (convert_move): Likewise.
3429 (convert_modes): Likewise.
3430 * fwprop.c (forward_propagate_subreg): Likewise.
3431 * loop-iv.c (get_biv_step_1): Likewise.
3432 * optabs.c (widen_operand): Likewise.
3433 * postreload.c (move2add_valid_value_p): Likewise.
3434 * recog.c (simplify_while_replacing): Likewise.
3435 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3436 (simplify_binary_operation_1): Likewise. Remove redundant
3437 mode equality check.
3438
3439 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3440 Alan Hayward <alan.hayward@arm.com>
3441 David Sherwood <david.sherwood@arm.com>
3442
3443 * combine.c (combine_simplify_rtx): Add checks for
3444 is_a <scalar_int_mode>.
3445 (simplify_if_then_else): Likewise.
3446 (make_field_assignment): Likewise.
3447 (simplify_comparison): Likewise.
3448 * ifcvt.c (noce_try_bitop): Likewise.
3449 * loop-invariant.c (canonicalize_address_mult): Likewise.
3450 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3451
3452 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3453 Alan Hayward <alan.hayward@arm.com>
3454 David Sherwood <david.sherwood@arm.com>
3455
3456 * gimple-fold.c (gimple_fold_builtin_memory_op): Use
3457 is_a <scalar_int_mode> instead of != BLKmode.
3458
3459 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3460 Alan Hayward <alan.hayward@arm.com>
3461 David Sherwood <david.sherwood@arm.com>
3462
3463 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
3464 instead of != VOIDmode.
3465 * combine.c (if_then_else_cond): Likewise.
3466 (change_zero_ext): Likewise.
3467 * dwarf2out.c (mem_loc_descriptor): Likewise.
3468 (loc_descriptor): Likewise.
3469 * rtlanal.c (canonicalize_condition): Likewise.
3470 * simplify-rtx.c (simplify_relational_operation_1): Likewise.
3471
3472 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3473 Alan Hayward <alan.hayward@arm.com>
3474 David Sherwood <david.sherwood@arm.com>
3475
3476 * simplify-rtx.c (simplify_binary_operation_1): Use
3477 is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
3478
3479 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3480 Alan Hayward <alan.hayward@arm.com>
3481 David Sherwood <david.sherwood@arm.com>
3482
3483 * wide-int.h (int_traits<unsigned char>) New class.
3484 (int_traits<unsigned short>) Likewise.
3485 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
3486 Use GET_MODE_UNIT_PRECISION and remove redundant test for
3487 SCALAR_INT_MODE_P.
3488 * combine.c (set_nonzero_bits_and_sign_copies): Use
3489 is_a <scalar_int_mode>.
3490 (find_split_point): Likewise.
3491 (combine_simplify_rtx): Likewise.
3492 (simplify_logical): Likewise.
3493 (expand_compound_operation): Likewise.
3494 (expand_field_assignment): Likewise.
3495 (make_compound_operation): Likewise.
3496 (extended_count): Likewise.
3497 (change_zero_ext): Likewise.
3498 (simplify_comparison): Likewise.
3499 * dwarf2out.c (scompare_loc_descriptor): Likewise.
3500 (ucompare_loc_descriptor): Likewise.
3501 (minmax_loc_descriptor): Likewise.
3502 (mem_loc_descriptor): Likewise.
3503 (loc_descriptor): Likewise.
3504 * expmed.c (init_expmed_one_mode): Likewise.
3505 * lra-constraints.c (lra_constraint_offset): Likewise.
3506 * optabs.c (prepare_libcall_arg): Likewise.
3507 * postreload.c (move2add_note_store): Likewise.
3508 * reload.c (operands_match_p): Likewise.
3509 * rtl.h (load_extend_op): Likewise.
3510 * rtlhooks.c (gen_lowpart_general): Likewise.
3511 * simplify-rtx.c (simplify_truncation): Likewise.
3512 (simplify_unary_operation_1): Likewise.
3513 (simplify_binary_operation_1): Likewise.
3514 (simplify_const_binary_operation): Likewise.
3515 (simplify_const_relational_operation): Likewise.
3516 (simplify_subreg): Likewise.
3517 * stor-layout.c (bitwise_mode_for_mode): Likewise.
3518 * var-tracking.c (adjust_mems): Likewise.
3519 (prepare_call_arguments): Likewise.
3520
3521 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3522 Alan Hayward <alan.hayward@arm.com>
3523 David Sherwood <david.sherwood@arm.com>
3524
3525 * machmode.h (is_int_mode): New fuction.
3526 * combine.c (find_split_point): Use it.
3527 (combine_simplify_rtx): Likewise.
3528 (simplify_if_then_else): Likewise.
3529 (simplify_set): Likewise.
3530 (simplify_shift_const_1): Likewise.
3531 (simplify_comparison): Likewise.
3532 * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
3533 * cse.c (notreg_cost): Likewise.
3534 (cse_insn): Likewise.
3535 * cselib.c (cselib_lookup_1): Likewise.
3536 * dojump.c (do_jump_1): Likewise.
3537 (do_compare_rtx_and_jump): Likewise.
3538 * dse.c (get_call_args): Likewise.
3539 * dwarf2out.c (rtl_for_decl_init): Likewise.
3540 (native_encode_initializer): Likewise.
3541 * expmed.c (emit_store_flag_1): Likewise.
3542 (emit_store_flag): Likewise.
3543 * expr.c (convert_modes): Likewise.
3544 (store_field): Likewise.
3545 (expand_expr_real_1): Likewise.
3546 * fold-const.c (fold_read_from_constant_string): Likewise.
3547 * gimple-ssa-sprintf.c (get_format_string): Likewise.
3548 * optabs-libfuncs.c (gen_int_libfunc): Likewise.
3549 * optabs.c (expand_binop): Likewise.
3550 (expand_unop): Likewise.
3551 (expand_abs_nojump): Likewise.
3552 (expand_one_cmpl_abs_nojump): Likewise.
3553 * simplify-rtx.c (mode_signbit_p): Likewise.
3554 (val_signbit_p): Likewise.
3555 (val_signbit_known_set_p): Likewise.
3556 (val_signbit_known_clear_p): Likewise.
3557 (simplify_relational_operation_1): Likewise.
3558 * tree.c (vector_type_mode): Likewise.
3559
3560 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3561 Alan Hayward <alan.hayward@arm.com>
3562 David Sherwood <david.sherwood@arm.com>
3563
3564 * machmode.h (smallest_mode_for_size): Fix formatting.
3565 (smallest_int_mode_for_size): New function.
3566 * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
3567 instead of smallest_mode_for_size.
3568 * combine.c (make_extraction): Likewise.
3569 * config/arc/arc.c (arc_expand_movmem): Likewise.
3570 * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
3571 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
3572 * config/s390/s390.c (s390_expand_insv): Likewise.
3573 * config/sparc/sparc.c (assign_int_registers): Likewise.
3574 * config/spu/spu.c (spu_function_value): Likewise.
3575 (spu_function_arg): Likewise.
3576 * coverage.c (get_gcov_type): Likewise.
3577 (get_gcov_unsigned_t): Likewise.
3578 * dse.c (find_shift_sequence): Likewise.
3579 * expmed.c (store_bit_field_1): Likewise.
3580 * expr.c (convert_move): Likewise.
3581 (store_field): Likewise.
3582 * internal-fn.c (expand_arith_overflow): Likewise.
3583 * optabs-query.c (get_best_extraction_insn): Likewise.
3584 * optabs.c (expand_twoval_binop_libfunc): Likewise.
3585 * stor-layout.c (layout_type): Likewise.
3586 (initialize_sizetypes): Likewise.
3587 * targhooks.c (default_get_mask_mode): Likewise.
3588 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
3589
3590 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3591 Alan Hayward <alan.hayward@arm.com>
3592 David Sherwood <david.sherwood@arm.com>
3593
3594 * machmode.h (opt_mode::else_blk): New function.
3595 (int_mode_for_mode): Declare.
3596 * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
3597 * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
3598 return type.
3599 * cfgexpand.c (expand_debug_expr): Likewise.
3600 * combine.c (gen_lowpart_or_truncate): Likewise.
3601 (gen_lowpart_for_combine): Likewise.
3602 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
3603 * config/avr/avr.c (avr_to_int_mode): Likewise.
3604 (avr_out_plus_1): Likewise.
3605 (avr_out_plus): Likewise.
3606 (avr_out_round): Likewise.
3607 * config/i386/i386.c (ix86_split_to_parts): Likewise.
3608 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
3609 (s390_expand_vcond): Likewise.
3610 * config/spu/spu.c (spu_split_immediate): Likewise.
3611 (spu_expand_mov): Likewise.
3612 * dse.c (get_stored_val): Likewise.
3613 * expmed.c (store_bit_field_1): Likewise.
3614 (convert_extracted_bit_field): Use int_mode_for_mode instead of
3615 int_mode_for_size.
3616 (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
3617 (extract_low_bits): Likewise.
3618 * expr.c (emit_group_load_1): Likewise. Separate out the BLKmode
3619 handling rather than repeating the check.
3620 (emit_group_store): Likewise.
3621 (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
3622 * optabs.c (expand_absneg_bit): Likewise.
3623 (expand_copysign_absneg): Likewise.
3624 (expand_copysign_bit): Likewise.
3625 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
3626 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
3627 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
3628 * var-tracking.c (prepare_call_arguments): Likewise.
3629 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
3630 int_mode_for_mode instead of mode_for_size.
3631 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
3632
3633 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3634 Alan Hayward <alan.hayward@arm.com>
3635 David Sherwood <david.sherwood@arm.com>
3636
3637 * machmode.h (int_mode_for_size): New function.
3638 * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
3639 instead of mode_for_size.
3640 * calls.c (save_fixed_argument_area): Likewise. Make use of BLKmode
3641 explicit.
3642 * combine.c (expand_field_assignment): Use int_mode_for_size
3643 instead of mode_for_size.
3644 (make_extraction): Likewise.
3645 (simplify_shift_const_1): Likewise.
3646 (simplify_comparison): Likewise.
3647 * dojump.c (do_jump): Likewise.
3648 * dwarf2out.c (mem_loc_descriptor): Likewise.
3649 * emit-rtl.c (init_derived_machine_modes): Likewise.
3650 * expmed.c (flip_storage_order): Likewise.
3651 (convert_extracted_bit_field): Likewise.
3652 * expr.c (copy_blkmode_from_reg): Likewise.
3653 * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
3654 * internal-fn.c (expand_mul_overflow): Likewise.
3655 * lower-subreg.c (simple_move): Likewise.
3656 * optabs-libfuncs.c (init_optabs): Likewise.
3657 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3658 * tree.c (vector_type_mode): Likewise.
3659 * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
3660 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
3661 * tree-vect-generic.c (expand_vector_parallel): Likewise.
3662 * tree-vect-stmts.c (vectorizable_load): Likewise.
3663 (vectorizable_store): Likewise.
3664
3665 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3666 Alan Hayward <alan.hayward@arm.com>
3667 David Sherwood <david.sherwood@arm.com>
3668
3669 * coretypes.h (pod_mode): New type.
3670 (scalar_int_mode_pod): New typedef.
3671 * machmode.h (pod_mode): New class.
3672 (int_n_data_t::m): Change type to scalar_int_mode_pod.
3673 * genmodes.c (emit_mode_int_n): Update accordingly.
3674 * lower-subreg.h (target_lower_subreg): Change type to
3675 scalar_int_mode_pod.
3676 * gdbhooks.py (build_pretty_printer): Handle pod_mode and
3677 scalar_int_mode_pod.
3678
3679 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3680 Alan Hayward <alan.hayward@arm.com>
3681 David Sherwood <david.sherwood@arm.com>
3682
3683 * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
3684 machine_mode to scalar_int_mode.
3685 * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
3686 (rs6000_option_override_internal): Remove cast to int.
3687 * config/rs6000/rs6000.h (rs6000_pmode): Change type from
3688 machine_mode to scalar_int_mode.
3689 * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
3690 (rs6000_option_override_internal): Remove cast to int.
3691 * config/s390/s390.h (Pmode): Remove cast to machine_mode.
3692 * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
3693 to machine_mode.
3694 * config/s390/s390.c (s390_expand_builtin): Likewise.
3695 * coretypes.h (scalar_int_mode): New type.
3696 (opt_scalar_int_mode): New typedef.
3697 * machmode.h (scalar_int_mode): New class.
3698 (scalar_int_mode::includes_p): New function.
3699 (byte_mode): Change type to scalar_int_mode.
3700 (word_mode): Likewise.
3701 (ptr_mode): Likewise.
3702 * emit-rtl.c (byte_mode): Likewise.
3703 (word_mode): Likewise.
3704 (ptr_mode): Likewise.
3705 (init_derived_machine_modes): Update accordingly.
3706 * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
3707 and MODE_PARTIAL_INT.
3708 * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
3709 opt_scalar_int_mode.
3710
3711 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3712 Alan Hayward <alan.hayward@arm.com>
3713 David Sherwood <david.sherwood@arm.com>
3714
3715 * target.def (libgcc_floating_mode_supported_p): Take a
3716 scalar_float_mode.
3717 * doc/tm.texi: Regenerate.
3718 * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
3719 scalar_float_mode.
3720 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
3721 * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
3722 Likewise.
3723
3724 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3725 Alan Hayward <alan.hayward@arm.com>
3726 David Sherwood <david.sherwood@arm.com>
3727
3728 * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
3729 * doc/tm.texi: Regenerate.
3730 * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
3731 * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
3732 * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
3733 * targhooks.h (default_floatn_mode): Likewise.
3734 * targhooks.c (default_floatn_mode): Likewise.
3735 * tree.c (build_common_tree_nodes): Update accordingly.
3736
3737 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3738 Alan Hayward <alan.hayward@arm.com>
3739 David Sherwood <david.sherwood@arm.com>
3740
3741 * machmode.h (mode_iterator::start): Provide overload for opt_modes.
3742 (mode_iterator::iterate_p): Likewise.
3743 (mode_iterator::get_wider): Likewise.
3744 * expr.c (init_expr_target): Use opt_scalar_float_mode.
3745
3746 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3747 Alan Hayward <alan.hayward@arm.com>
3748 David Sherwood <david.sherwood@arm.com>
3749
3750 * coretypes.h (opt_scalar_float_mode): New typedef.
3751 * machmode.h (float_mode_for_size): New function.
3752 * emit-rtl.c (double_mode): Delete.
3753 (init_emit_once): Use float_mode_for_size.
3754 * stor-layout.c (layout_type): Likewise.
3755 * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
3756
3757 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3758 Alan Hayward <alan.hayward@arm.com>
3759 David Sherwood <david.sherwood@arm.com>
3760
3761 * output.h (assemble_real): Take a scalar_float_mode.
3762 * config/arm/arm.c (arm_assemble_integer): Update accordingly.
3763 * config/arm/arm.md (consttable_4): Likewise.
3764 (consttable_8): Likewise.
3765 (consttable_16): Likewise.
3766 * config/mips/mips.md (consttable_float): Likewise.
3767 * config/s390/s390.c (s390_output_pool_entry): Likewise.
3768 * varasm.c (assemble_real): Take a scalar_float_mode.
3769 (output_constant_pool_2): Update accordingly.
3770 (output_constant): Likewise.
3771
3772 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3773 Alan Hayward <alan.hayward@arm.com>
3774 David Sherwood <david.sherwood@arm.com>
3775
3776 * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
3777 * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
3778 * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
3779 (native_encode_real): Likewise.
3780 (native_interpret_real): Likewise.
3781 * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
3782 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
3783
3784 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3785 Alan Hayward <alan.hayward@arm.com>
3786 David Sherwood <david.sherwood@arm.com>
3787
3788 * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
3789 <scalar_float_mode>. Simplify.
3790 (gen_extend_conv_libfunc): Likewise.
3791
3792 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3793 Alan Hayward <alan.hayward@arm.com>
3794 David Sherwood <david.sherwood@arm.com>
3795
3796 * coretypes.h (scalar_float_mode): New type.
3797 * machmode.h (mode_traits::from_int): Use machine_mode if
3798 USE_ENUM_MODES is defined.
3799 (is_a): New function.
3800 (as_a): Likewise.
3801 (dyn_cast): Likewise.
3802 (scalar_float_mode): New class.
3803 (scalar_float_mode::includes_p): New function.
3804 (is_float_mode): Likewise.
3805 * gdbhooks.py (MachineModePrinter): New class.
3806 (build_pretty_printer): Use it for scalar_float_mode.
3807 * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
3808 (format_helper::format_helper): Turn into a template.
3809 * genmodes.c (get_mode_class): New function.
3810 (emit_insn_modes_h): Give modes the class returned by get_mode_class,
3811 or machine_mode if none.
3812 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
3813 as_a <scalar_float_mode>.
3814 * dwarf2out.c (mem_loc_descriptor): Likewise.
3815 (insert_float): Likewise.
3816 (add_const_value_attribute): Likewise.
3817 * simplify-rtx.c (simplify_immed_subreg): Likewise.
3818 * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
3819 (expand_unop): Update accordingly.
3820 (expand_abs_nojump): Likewise.
3821 (expand_copysign_absneg): Take a scalar_float_mode.
3822 (expand_copysign_bit): Likewise.
3823 (expand_copysign): Update accordingly.
3824
3825 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3826 Alan Hayward <alan.hayward@arm.com>
3827 David Sherwood <david.sherwood@arm.com>
3828
3829 * coretypes.h (opt_mode): New class.
3830 * machmode.h (opt_mode): Likewise.
3831 (opt_mode::else_void): New function.
3832 (opt_mode::require): Likewise.
3833 (opt_mode::exists): Likewise.
3834 (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
3835 (GET_MODE_2XWIDER_MODE): Likewise.
3836 (mode_iterator::get_wider): Update accordingly.
3837 (mode_iterator::get_2xwider): Likewise.
3838 (mode_iterator::get_known_wider): Likewise, turning into a template.
3839 * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
3840 forcing a wider mode to exist.
3841 * config/cr16/cr16.h (LONG_REG_P): Likewise.
3842 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
3843 * config/c6x/c6x.c (c6x_rtx_costs): Update use of
3844 GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
3845 * lower-subreg.c (init_lower_subreg): Likewise.
3846 * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
3847 on the final iteration.
3848 * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
3849 a wider mode exists before asking for a move pattern.
3850 (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
3851 forcing a wider mode to exist.
3852 (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
3853 returning false if no such mode exists.
3854 * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
3855 * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
3856 * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
3857 Avoid checking for a MODE_INT if we already know the mode is not a
3858 SCALAR_INT_MODE_P.
3859 (extract_high_half): Update use of GET_MODE_WIDER_MODE,
3860 forcing a wider mode to exist.
3861 (expmed_mult_highpart_optab): Likewise.
3862 (expmed_mult_highpart): Likewise.
3863 * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
3864 using else_void.
3865 * lto-streamer-in.c (lto_input_mode_table): Likewise.
3866 * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
3867 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
3868 * internal-fn.c (expand_mul_overflow): Update use of
3869 GET_MODE_2XWIDER_MODE.
3870 * omp-low.c (omp_clause_aligned_alignment): Likewise.
3871 * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
3872 GET_MODE_WIDER_MODE.
3873 (convert_plusminus_to_widen): Likewise.
3874 * tree-switch-conversion.c (array_value_type): Likewise.
3875 * var-tracking.c (emit_note_insn_var_location): Likewise.
3876 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
3877 Return false inside rather than outside the loop if no wider mode
3878 exists
3879 * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
3880 and GET_MODE_2XWIDER_MODE
3881 (can_compare_p): Use else_void.
3882 * gdbhooks.py (OptMachineModePrinter): New class.
3883 (build_pretty_printer): Use it for opt_mode.
3884
3885 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3886 Alan Hayward <alan.hayward@arm.com>
3887 David Sherwood <david.sherwood@arm.com>
3888
3889 * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
3890 once. Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
3891
3892 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3893 Alan Hayward <alan.hayward@arm.com>
3894 David Sherwood <david.sherwood@arm.com>
3895
3896 * machmode.h (mode_traits): New structure.
3897 (get_narrowest_mode): New function.
3898 (mode_iterator::start): Likewise.
3899 (mode_iterator::iterate_p): Likewise.
3900 (mode_iterator::get_wider): Likewise.
3901 (mode_iterator::get_known_wider): Likewise.
3902 (mode_iterator::get_2xwider): Likewise.
3903 (FOR_EACH_MODE_IN_CLASS): New mode iterator.
3904 (FOR_EACH_MODE): Likewise.
3905 (FOR_EACH_MODE_FROM): Likewise.
3906 (FOR_EACH_MODE_UNTIL): Likewise.
3907 (FOR_EACH_WIDER_MODE): Likewise.
3908 (FOR_EACH_2XWIDER_MODE): Likewise.
3909 * builtins.c (expand_builtin_strlen): Use new mode iterators.
3910 * combine.c (simplify_comparison): Likewise
3911 * config/i386/i386.c (type_natural_mode): Likewise.
3912 * cse.c (cse_insn): Likewise.
3913 * dse.c (find_shift_sequence): Likewise.
3914 * emit-rtl.c (init_derived_machine_modes): Likewise.
3915 (init_emit_once): Likewise.
3916 * explow.c (hard_function_value): Likewise.
3917 * expmed.c (extract_fixed_bit_field_1): Likewise.
3918 (extract_bit_field_1): Likewise.
3919 (expand_divmod): Likewise.
3920 (emit_store_flag_1): Likewise.
3921 * expr.c (init_expr_target): Likewise.
3922 (convert_move): Likewise.
3923 (alignment_for_piecewise_move): Likewise.
3924 (widest_int_mode_for_size): Likewise.
3925 (emit_block_move_via_movmem): Likewise.
3926 (copy_blkmode_to_reg): Likewise.
3927 (set_storage_via_setmem): Likewise.
3928 (compress_float_constant): Likewise.
3929 * omp-low.c (omp_clause_aligned_alignment): Likewise.
3930 * optabs-query.c (get_best_extraction_insn): Likewise.
3931 * optabs.c (expand_binop): Likewise.
3932 (expand_twoval_unop): Likewise.
3933 (expand_twoval_binop): Likewise.
3934 (widen_leading): Likewise.
3935 (widen_bswap): Likewise.
3936 (expand_parity): Likewise.
3937 (expand_unop): Likewise.
3938 (prepare_cmp_insn): Likewise.
3939 (prepare_float_lib_cmp): Likewise.
3940 (expand_float): Likewise.
3941 (expand_fix): Likewise.
3942 (expand_sfix_optab): Likewise.
3943 * postreload.c (move2add_use_add2_insn): Likewise.
3944 * reg-stack.c (reg_to_stack): Likewise.
3945 * reginfo.c (choose_hard_reg_mode): Likewise.
3946 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
3947 * stor-layout.c (mode_for_size): Likewise.
3948 (smallest_mode_for_size): Likewise.
3949 (mode_for_vector): Likewise.
3950 (finish_bitfield_representative): Likewise.
3951 * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
3952 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
3953 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
3954 * var-tracking.c (prepare_call_arguments): Likewise.
3955
3956 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3957 Alan Hayward <alan.hayward@arm.com>
3958 David Sherwood <david.sherwood@arm.com>
3959
3960 * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
3961 * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
3962 USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
3963 * machmode.h (mode_size): Move earlier in file.
3964 (mode_precision): Likewise.
3965 (mode_inner): Likewise.
3966 (mode_nunits): Likewise.
3967 (mode_unit_size): Likewise.
3968 (unit_unit_precision): Likewise.
3969 (mode_wider): Likewise.
3970 (mode_2xwider): Likewise.
3971 (machine_mode): New class.
3972 (mode_to_bytes): New function.
3973 (mode_to_bits): Likewise.
3974 (mode_to_precision): Likewise.
3975 (mode_to_inner): Likewise.
3976 (mode_to_unit_size): Likewise.
3977 (mode_to_unit_precision): Likewise.
3978 (mode_to_nunits): Likewise.
3979 (GET_MODE_SIZE): Use mode_to_bytes.
3980 (GET_MODE_BITSIZE): Use mode_to_bits.
3981 (GET_MODE_PRECISION): Use mode_to_precision.
3982 (GET_MODE_INNER): Use mode_to_inner.
3983 (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
3984 (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
3985 (GET_MODE_NUNITS): Use mode_to_nunits.
3986 * system.h (ALWAYS_INLINE): New macro.
3987 * config/powerpcspe/powerpcspe-c.c
3988 (altivec_resolve_overloaded_builtin): Use machine_mode instead of
3989 int for arg1_mode and arg2_mode.
3990
3991 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
3992 Alan Hayward <alan.hayward@arm.com>
3993 David Sherwood <david.sherwood@arm.com>
3994
3995 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
3996 Prefix mode names with E_ in case statements.
3997 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
3998 * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
3999 (aarch64_split_simd_move): Likewise.
4000 (aarch64_gen_storewb_pair): Likewise.
4001 (aarch64_gen_loadwb_pair): Likewise.
4002 (aarch64_gen_store_pair): Likewise.
4003 (aarch64_gen_load_pair): Likewise.
4004 (aarch64_get_condition_code_1): Likewise.
4005 (aarch64_constant_pool_reload_icode): Likewise.
4006 (get_rsqrte_type): Likewise.
4007 (get_rsqrts_type): Likewise.
4008 (get_recpe_type): Likewise.
4009 (get_recps_type): Likewise.
4010 (aarch64_gimplify_va_arg_expr): Likewise.
4011 (aarch64_simd_container_mode): Likewise.
4012 (aarch64_emit_load_exclusive): Likewise.
4013 (aarch64_emit_store_exclusive): Likewise.
4014 (aarch64_expand_compare_and_swap): Likewise.
4015 (aarch64_gen_atomic_cas): Likewise.
4016 (aarch64_emit_bic): Likewise.
4017 (aarch64_emit_atomic_swap): Likewise.
4018 (aarch64_emit_atomic_load_op): Likewise.
4019 (aarch64_evpc_trn): Likewise.
4020 (aarch64_evpc_uzp): Likewise.
4021 (aarch64_evpc_zip): Likewise.
4022 (aarch64_evpc_ext): Likewise.
4023 (aarch64_evpc_rev): Likewise.
4024 (aarch64_evpc_dup): Likewise.
4025 (aarch64_gen_ccmp_first): Likewise.
4026 (aarch64_gen_ccmp_next): Likewise.
4027 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
4028 (alpha_emit_xfloating_libcall): Likewise.
4029 (emit_insxl): Likewise.
4030 (alpha_arg_type): Likewise.
4031 * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
4032 (arc_preferred_simd_mode): Likewise.
4033 (arc_secondary_reload): Likewise.
4034 (get_arc_condition_code): Likewise.
4035 (arc_print_operand): Likewise.
4036 (arc_legitimate_constant_p): Likewise.
4037 * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4038 * config/arc/arc.md (casesi_load): Likewise.
4039 (casesi_compact_jump): Likewise.
4040 * config/arc/predicates.md (proper_comparison_operator): Likewise.
4041 (cc_use_register): Likewise.
4042 * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4043 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
4044 (arm_init_iwmmxt_builtins): Likewise.
4045 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
4046 (neon_expand_vector_init): Likewise.
4047 (arm_attr_length_move_neon): Likewise.
4048 (maybe_get_arm_condition_code): Likewise.
4049 (arm_emit_vector_const): Likewise.
4050 (arm_preferred_simd_mode): Likewise.
4051 (arm_output_iwmmxt_tinsr): Likewise.
4052 (thumb1_output_casesi): Likewise.
4053 (thumb2_output_casesi): Likewise.
4054 (arm_emit_load_exclusive): Likewise.
4055 (arm_emit_store_exclusive): Likewise.
4056 (arm_expand_compare_and_swap): Likewise.
4057 (arm_evpc_neon_vuzp): Likewise.
4058 (arm_evpc_neon_vzip): Likewise.
4059 (arm_evpc_neon_vrev): Likewise.
4060 (arm_evpc_neon_vtrn): Likewise.
4061 (arm_evpc_neon_vext): Likewise.
4062 (arm_validize_comparison): Likewise.
4063 * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
4064 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
4065 * config/avr/avr.c (avr_rtx_costs_1): Likewise.
4066 * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
4067 (c6x_preferred_simd_mode): Likewise.
4068 * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
4069 (epiphany_rtx_costs): Likewise.
4070 * config/epiphany/predicates.md (proper_comparison_operator):
4071 Likewise.
4072 * config/frv/frv.c (condexec_memory_operand): Likewise.
4073 (frv_emit_move): Likewise.
4074 (output_move_single): Likewise.
4075 (output_condmove_single): Likewise.
4076 (frv_hard_regno_mode_ok): Likewise.
4077 (frv_matching_accg_mode): Likewise.
4078 * config/h8300/h8300.c (split_adds_subs): Likewise.
4079 (h8300_rtx_costs): Likewise.
4080 (h8300_print_operand): Likewise.
4081 (compute_mov_length): Likewise.
4082 (output_logical_op): Likewise.
4083 (compute_logical_op_length): Likewise.
4084 (compute_logical_op_cc): Likewise.
4085 (h8300_shift_needs_scratch_p): Likewise.
4086 (output_a_shift): Likewise.
4087 (compute_a_shift_length): Likewise.
4088 (compute_a_shift_cc): Likewise.
4089 (expand_a_rotate): Likewise.
4090 (output_a_rotate): Likewise.
4091 * config/i386/i386.c (classify_argument): Likewise.
4092 (function_arg_advance_32): Likewise.
4093 (function_arg_32): Likewise.
4094 (function_arg_64): Likewise.
4095 (function_value_64): Likewise.
4096 (ix86_gimplify_va_arg): Likewise.
4097 (ix86_legitimate_constant_p): Likewise.
4098 (put_condition_code): Likewise.
4099 (split_double_mode): Likewise.
4100 (ix86_avx256_split_vector_move_misalign): Likewise.
4101 (ix86_expand_vector_logical_operator): Likewise.
4102 (ix86_split_idivmod): Likewise.
4103 (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
4104 (ix86_build_const_vector): Likewise.
4105 (ix86_build_signbit_mask): Likewise.
4106 (ix86_match_ccmode): Likewise.
4107 (ix86_cc_modes_compatible): Likewise.
4108 (ix86_expand_branch): Likewise.
4109 (ix86_expand_sse_cmp): Likewise.
4110 (ix86_expand_sse_movcc): Likewise.
4111 (ix86_expand_int_sse_cmp): Likewise.
4112 (ix86_expand_vec_perm_vpermi2): Likewise.
4113 (ix86_expand_vec_perm): Likewise.
4114 (ix86_expand_sse_unpack): Likewise.
4115 (ix86_expand_int_addcc): Likewise.
4116 (ix86_split_to_parts): Likewise.
4117 (ix86_vectorize_builtin_gather): Likewise.
4118 (ix86_vectorize_builtin_scatter): Likewise.
4119 (avx_vpermilp_parallel): Likewise.
4120 (inline_memory_move_cost): Likewise.
4121 (ix86_tieable_integer_mode_p): Likewise.
4122 (x86_maybe_negate_const_int): Likewise.
4123 (ix86_expand_vector_init_duplicate): Likewise.
4124 (ix86_expand_vector_init_one_nonzero): Likewise.
4125 (ix86_expand_vector_init_one_var): Likewise.
4126 (ix86_expand_vector_init_concat): Likewise.
4127 (ix86_expand_vector_init_interleave): Likewise.
4128 (ix86_expand_vector_init_general): Likewise.
4129 (ix86_expand_vector_set): Likewise.
4130 (ix86_expand_vector_extract): Likewise.
4131 (emit_reduc_half): Likewise.
4132 (ix86_emit_i387_round): Likewise.
4133 (ix86_mangle_type): Likewise.
4134 (ix86_expand_round_sse4): Likewise.
4135 (expand_vec_perm_blend): Likewise.
4136 (canonicalize_vector_int_perm): Likewise.
4137 (ix86_expand_vec_one_operand_perm_avx512): Likewise.
4138 (expand_vec_perm_1): Likewise.
4139 (expand_vec_perm_interleave3): Likewise.
4140 (expand_vec_perm_even_odd_pack): Likewise.
4141 (expand_vec_perm_even_odd_1): Likewise.
4142 (expand_vec_perm_broadcast_1): Likewise.
4143 (ix86_vectorize_vec_perm_const_ok): Likewise.
4144 (ix86_expand_vecop_qihi): Likewise.
4145 (ix86_expand_mul_widen_hilo): Likewise.
4146 (ix86_expand_sse2_abs): Likewise.
4147 (ix86_expand_pextr): Likewise.
4148 (ix86_expand_pinsr): Likewise.
4149 (ix86_preferred_simd_mode): Likewise.
4150 (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
4151 * config/i386/sse.md (*andnot<mode>3): Likewise.
4152 (<mask_codefor><code><mode>3<mask_name>): Likewise.
4153 (*<code><mode>3): Likewise.
4154 * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
4155 (ia64_expand_atomic_op): Likewise.
4156 (ia64_arg_type): Likewise.
4157 (ia64_mode_to_int): Likewise.
4158 (ia64_scalar_mode_supported_p): Likewise.
4159 (ia64_vector_mode_supported_p): Likewise.
4160 (expand_vec_perm_broadcast): Likewise.
4161 * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
4162 (iq2000_function_arg_advance): Likewise.
4163 (iq2000_function_arg): Likewise.
4164 * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
4165 * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
4166 (m68k_libcall_value): Likewise.
4167 (m68k_function_value): Likewise.
4168 (sched_attr_op_type): Likewise.
4169 * config/mcore/mcore.c (mcore_output_move): Likewise.
4170 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
4171 Likewise.
4172 (microblaze_function_arg): Likewise.
4173 * config/mips/mips.c (mips16_build_call_stub): Likewise.
4174 (mips_print_operand): Likewise.
4175 (mips_mode_ok_for_mov_fmt_p): Likewise.
4176 (mips_vector_mode_supported_p): Likewise.
4177 (mips_preferred_simd_mode): Likewise.
4178 (mips_expand_vpc_loongson_even_odd): Likewise.
4179 (mips_expand_vec_unpack): Likewise.
4180 (mips_expand_vi_broadcast): Likewise.
4181 (mips_expand_vector_init): Likewise.
4182 (mips_expand_vec_reduc): Likewise.
4183 (mips_expand_msa_cmp): Likewise.
4184 * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
4185 * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
4186 (cc_flags_for_mode): Likewise.
4187 * config/msp430/msp430.c (msp430_print_operand): Likewise.
4188 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
4189 (nds32_output_casesi_pc_relative): Likewise.
4190 * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4191 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
4192 (nvptx_gen_unpack): Likewise.
4193 (nvptx_gen_pack): Likewise.
4194 (nvptx_gen_shuffle): Likewise.
4195 (nvptx_gen_wcast): Likewise.
4196 (nvptx_preferred_simd_mode): Likewise.
4197 * config/pa/pa.c (pa_secondary_reload): Likewise.
4198 * config/pa/predicates.md (base14_operand): Likewise.
4199 * config/powerpcspe/powerpcspe-c.c
4200 (altivec_resolve_overloaded_builtin): Likewise.
4201 * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
4202 Likewise.
4203 (rs6000_preferred_simd_mode): Likewise.
4204 (output_vec_const_move): Likewise.
4205 (rs6000_expand_vector_extract): Likewise.
4206 (rs6000_split_vec_extract_var): Likewise.
4207 (reg_offset_addressing_ok_p): Likewise.
4208 (rs6000_legitimate_offset_address_p): Likewise.
4209 (rs6000_legitimize_address): Likewise.
4210 (rs6000_emit_set_const): Likewise.
4211 (rs6000_const_vec): Likewise.
4212 (rs6000_emit_move): Likewise.
4213 (spe_build_register_parallel): Likewise.
4214 (rs6000_darwin64_record_arg_recurse): Likewise.
4215 (swap_selector_for_mode): Likewise.
4216 (spe_init_builtins): Likewise.
4217 (paired_init_builtins): Likewise.
4218 (altivec_init_builtins): Likewise.
4219 (do_load_for_compare): Likewise.
4220 (rs6000_generate_compare): Likewise.
4221 (rs6000_expand_float128_convert): Likewise.
4222 (emit_load_locked): Likewise.
4223 (emit_store_conditional): Likewise.
4224 (rs6000_output_function_epilogue): Likewise.
4225 (rs6000_handle_altivec_attribute): Likewise.
4226 (rs6000_function_value): Likewise.
4227 (emit_fusion_gpr_load): Likewise.
4228 (emit_fusion_p9_load): Likewise.
4229 (emit_fusion_p9_store): Likewise.
4230 * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
4231 (fusion_gpr_mem_load): Likewise.
4232 (fusion_addis_mem_combo_load): Likewise.
4233 (fusion_addis_mem_combo_store): Likewise.
4234 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
4235 (fusion_gpr_mem_load): Likewise.
4236 (fusion_addis_mem_combo_load): Likewise.
4237 (fusion_addis_mem_combo_store): Likewise.
4238 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4239 Likewise.
4240 * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
4241 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
4242 (rs6000_preferred_simd_mode): Likewise.
4243 (output_vec_const_move): Likewise.
4244 (rs6000_expand_vector_extract): Likewise.
4245 (rs6000_split_vec_extract_var): Likewise.
4246 (reg_offset_addressing_ok_p): Likewise.
4247 (rs6000_legitimate_offset_address_p): Likewise.
4248 (rs6000_legitimize_address): Likewise.
4249 (rs6000_emit_set_const): Likewise.
4250 (rs6000_const_vec): Likewise.
4251 (rs6000_emit_move): Likewise.
4252 (rs6000_darwin64_record_arg_recurse): Likewise.
4253 (swap_selector_for_mode): Likewise.
4254 (paired_init_builtins): Likewise.
4255 (altivec_init_builtins): Likewise.
4256 (rs6000_expand_float128_convert): Likewise.
4257 (emit_load_locked): Likewise.
4258 (emit_store_conditional): Likewise.
4259 (rs6000_output_function_epilogue): Likewise.
4260 (rs6000_handle_altivec_attribute): Likewise.
4261 (rs6000_function_value): Likewise.
4262 (emit_fusion_gpr_load): Likewise.
4263 (emit_fusion_p9_load): Likewise.
4264 (emit_fusion_p9_store): Likewise.
4265 * config/rx/rx.c (rx_gen_move_template): Likewise.
4266 (flags_from_mode): Likewise.
4267 * config/s390/predicates.md (s390_alc_comparison): Likewise.
4268 (s390_slb_comparison): Likewise.
4269 * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
4270 (s390_vector_mode_supported_p): Likewise.
4271 (s390_cc_modes_compatible): Likewise.
4272 (s390_match_ccmode_set): Likewise.
4273 (s390_canonicalize_comparison): Likewise.
4274 (s390_emit_compare_and_swap): Likewise.
4275 (s390_branch_condition_mask): Likewise.
4276 (s390_rtx_costs): Likewise.
4277 (s390_secondary_reload): Likewise.
4278 (__SECONDARY_RELOAD_CASE): Likewise.
4279 (s390_expand_cs): Likewise.
4280 (s390_preferred_simd_mode): Likewise.
4281 * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
4282 * config/sh/sh.c (sh_print_operand): Likewise.
4283 (dump_table): Likewise.
4284 (sh_secondary_reload): Likewise.
4285 * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4286 * config/sh/sh.md (casesi_worker_1): Likewise.
4287 (casesi_worker_2): Likewise.
4288 * config/sparc/predicates.md (icc_comparison_operator): Likewise.
4289 (fcc_comparison_operator): Likewise.
4290 * config/sparc/sparc.c (sparc_expand_move): Likewise.
4291 (emit_soft_tfmode_cvt): Likewise.
4292 (sparc_preferred_simd_mode): Likewise.
4293 (output_cbranch): Likewise.
4294 (sparc_print_operand): Likewise.
4295 (sparc_expand_vec_perm_bmask): Likewise.
4296 (vector_init_bshuffle): Likewise.
4297 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
4298 (spu_vector_mode_supported_p): Likewise.
4299 (spu_expand_insv): Likewise.
4300 (spu_emit_branch_or_set): Likewise.
4301 (spu_handle_vector_attribute): Likewise.
4302 (spu_builtin_splats): Likewise.
4303 (spu_builtin_extract): Likewise.
4304 (spu_builtin_promote): Likewise.
4305 (spu_expand_sign_extend): Likewise.
4306 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
4307 (tilegx_simd_int): Likewise.
4308 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
4309 (tilepro_simd_int): Likewise.
4310 * config/v850/v850.c (const_double_split): Likewise.
4311 (v850_print_operand): Likewise.
4312 (ep_memory_offset): Likewise.
4313 * config/vax/vax.c (vax_rtx_costs): Likewise.
4314 (vax_output_int_move): Likewise.
4315 (vax_output_int_add): Likewise.
4316 (vax_output_int_subtract): Likewise.
4317 * config/visium/predicates.md (visium_branch_operator): Likewise.
4318 * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
4319 (visium_print_operand_address): Likewise.
4320 * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4321 * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
4322 (xtensa_expand_conditional_branch): Likewise.
4323 (xtensa_copy_incoming_a7): Likewise.
4324 (xtensa_output_literal): Likewise.
4325 * dfp.c (decimal_real_maxval): Likewise.
4326 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
4327
4328 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
4329 Alan Hayward <alan.hayward@arm.com>
4330 David Sherwood <david.sherwood@arm.com>
4331
4332 * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
4333 (mode_nunits_inline): Likewise.
4334 (mode_inner_inline): Likewise.
4335 (mode_unit_size_inline): Likewise.
4336 (mode_unit_precision_inline): Likewise.
4337 (emit_insn_modes_h): Likewise. Also emit a #define of the
4338 unprefixed name.
4339 (emit_mode_wider): Add an E_ prefix to mode names.
4340 (emit_mode_complex): Likewise.
4341 (emit_mode_inner): Likewise.
4342 (emit_mode_adjustments): Likewise.
4343 (emit_mode_int_n): Likewise.
4344 * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
4345 (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
4346 (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
4347 (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
4348 (CRC32_BUILTIN, ENTRY): Likewise.
4349 * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
4350 (aarch64_pop_regs): Likewise.
4351 (aarch64_process_components): Likewise.
4352 * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
4353 * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
4354 (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
4355 (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
4356 * config/arm/arm.c (arm_init_libfuncs): Likewise.
4357 * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
4358 Likewise.
4359 * config/i386/i386-builtin.def (pcmpestr): Likewise.
4360 (pcmpistr): Likewise.
4361 * config/microblaze/microblaze.c (double_memory_operand): Likewise.
4362 * config/mmix/mmix.c (mmix_output_condition): Likewise.
4363 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
4364 Likewise.
4365 * config/rl78/rl78.c (mduc_regs): Likewise.
4366 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
4367 (htm_expand_builtin): Likewise.
4368 * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
4369 * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
4370 * config/xtensa/xtensa.c (print_operand): Likewise.
4371 * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
4372 (NUM_MODE_VECTOR_INT): Likewise.
4373 * genoutput.c (null_operand): Likewise.
4374 (output_operand_data): Likewise.
4375 * genrecog.c (print_parameter_value): Likewise.
4376 * lra.c (debug_operand_data): Likewise.
4377
4378 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
4379
4380 * dwarf2out.c (scompare_loc_descriptor_wide)
4381 (scompare_loc_descriptor_narrow): New functions, split out from...
4382 (scompare_loc_descriptor): ...here.
4383 * expmed.c (emit_store_flag_int): New function, split out from...
4384 (emit_store_flag): ...here.
4385
4386 2017-08-30 Richard Biener <rguenther@suse.de>
4387
4388 * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
4389 (dwarf2out_early_finish): Move setting of AT_pubnames from
4390 early debug output to early finish.
4391
4392 2017-08-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
4393
4394 * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
4395 and -mdata-region to the assembler.
4396
4397 2017-08-30 Richard Biener <rguenther@suse.de>
4398
4399 * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
4400 attributes.
4401 (gen_subprogram_die): Add DW_AT_object_pointer only early.
4402 (dwarf2out_early_global_decl): Only generate a DIE for the
4403 abstract origin if it doesn't already exist or is a declaration DIE.
4404 (resolve_addr): Do not add the linkage name twice when
4405 generating a stub DIE for the DW_TAG_GNU_call_site target.
4406
4407 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
4408
4409 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4410 Use machine_mode rather than int for arg1_mode.
4411
4412 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
4413
4414 PR target/82015
4415 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
4416 that the second argument of the built-in functions to unpack
4417 128-bit scalar types to 64-bit values is 0 or 1. Change to use a
4418 switch statement instead a lot of if statements.
4419 * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
4420 Allow 64-bit values to be in Altivec registers as well as
4421 traditional floating point registers.
4422 (pack<mode>, FMOVE128_VSX iterator): Likewise.
4423
4424 2017-08-29 Alexander Monakov <amonakov@ispras.ru>
4425
4426 * ira-costs.c (record_address_regs): Handle both operands of PLUS for
4427 MAX_REGS_PER_ADDRESS == 1.
4428
4429 2017-08-29 Uros Bizjak <ubizjak@gmail.com>
4430
4431 * config/i386/i386.opt (flag_fentry): Do not init to -1.
4432 * config/i386/i386.c (ix86_option_override_internal): Simplify
4433 setting of opts->x_flag_entry.
4434
4435 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4436 Jakub Jelinek <jakub@redhat.com>
4437 Richard Biener <rguenther@suse.de>
4438
4439 PR tree-optimization/81503
4440 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
4441 folded constant fits in the target type; reorder tests for clarity.
4442
4443 2017-08-29 Martin Liska <mliska@suse.cz>
4444
4445 * passes.def: Include pass_lower_switch.
4446 * stmt.c (dump_case_nodes): Remove and move to
4447 tree-switch-conversion.
4448 (case_values_threshold): Likewise.
4449 (expand_switch_as_decision_tree_p): Likewise.
4450 (emit_case_decision_tree): Likewise.
4451 (expand_case): Likewise.
4452 (balance_case_nodes): Likewise.
4453 (node_has_low_bound): Likewise.
4454 (node_has_high_bound): Likewise.
4455 (node_is_bounded): Likewise.
4456 (emit_case_nodes): Likewise.
4457 (struct simple_case_node): New struct.
4458 (add_case_node): Remove.
4459 (emit_case_dispatch_table): Use vector instead of case_list.
4460 (reset_out_edges_aux): Remove.
4461 (compute_cases_per_edge): Likewise.
4462 (expand_case): Build list of simple_case_node.
4463 (expand_sjlj_dispatch_table): Use it.
4464 * tree-switch-conversion.c (struct case_node): Moved from
4465 stmt.c and adjusted.
4466 (emit_case_nodes): Likewise.
4467 (node_has_low_bound): Likewise.
4468 (node_has_high_bound): Likewise.
4469 (node_is_bounded): Likewise.
4470 (case_values_threshold): Likewise.
4471 (reset_out_edges_aux): Likewise.
4472 (compute_cases_per_edge): Likewise.
4473 (add_case_node): Likewise.
4474 (dump_case_nodes): Likewise.
4475 (balance_case_nodes): Likewise.
4476 (expand_switch_as_decision_tree_p): Likewise.
4477 (emit_jump): Likewise.
4478 (emit_case_decision_tree): Likewise.
4479 (try_switch_expansion): Likewise.
4480 (do_jump_if_equal): Likewise.
4481 (emit_cmp_and_jump_insns): Likewise.
4482 (fix_phi_operands_for_edge): New function.
4483 (record_phi_operand_mapping): Likewise.
4484 (class pass_lower_switch): New pass.
4485 (pass_lower_switch::execute): New function.
4486 (make_pass_lower_switch): Likewise.
4487 (conditional_probability):
4488 * timevar.def: Add TV_TREE_SWITCH_LOWERING.
4489 * tree-pass.h: Add make_pass_lower_switch.
4490
4491 2017-08-29 Jozef Lawrynowicz <jozef.l@somniumtech.com>
4492
4493 PR target/80993
4494 * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
4495 handlers as used.
4496
4497 2017-08-29 Richard Biener <rguenther@suse.de>
4498
4499 * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
4500 we do not add a DW_AT_inline attribute twice.
4501 (gen_subprogram_die): Remove code setting DW_AT_inline on
4502 DECL_ABSTRACT_P nodes.
4503
4504 2017-08-29 Richard Sandiford <richard.sandiford@linaro.org>
4505
4506 * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
4507 calls to internal functions.
4508 (gimplify_modify_expr): Likewise.
4509 * tree-call-cdce.c (use_internal_fn): Likewise.
4510 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
4511 (convert_to_divmod): Set the nothrow flag.
4512 * tree-if-conv.c (predicate_mem_writes): Likewise.
4513 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
4514 (vectorizable_call): Likewise.
4515 (vectorizable_store): Likewise.
4516 (vectorizable_load): Likewise.
4517 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
4518 (vect_recog_mask_conversion_pattern): Likewise.
4519
4520 2017-08-29 Martin Liska <mliska@suse.cz>
4521
4522 PR other/39851
4523 * gcc.c (driver_handle_option): Add new argument.
4524 * opts-common.c (handle_option): Pass
4525 target_option_override_hook.
4526 * opts-global.c (lang_handle_option): Add new option.
4527 (set_default_handlers): Add new argument.
4528 (decode_options): Likewise.
4529 * opts.c (target_handle_option): Likewise.
4530 (common_handle_option): Call target_option_override_hook.
4531 * opts.h (struct cl_option_handler_func): Add hook for
4532 target option override.
4533 (struct cl_option_handlers): Likewise.
4534 (set_default_handlers): Add new argument.
4535 (decode_options): Likewise.
4536 (common_handle_option): Likewise.
4537 (target_handle_option): Likewise.
4538 * toplev.c (toplev::main): Pass targetm.target_option.override
4539 hook.
4540
4541 2017-08-29 Richard Biener <rguenther@suse.de>
4542 Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
4543
4544 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
4545 life to the active subtree.
4546
4547 2017-08-28 Jeff Law <law@redhat.com>
4548
4549 * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
4550 derive_equivalences.
4551 (derive_equivalences_from_bit_ior, record_temporary_equivalences):
4552 Code moved into....
4553 (edge_info::derive_equivalences): New private member function
4554
4555 * tree-ssa-dom.c (class edge_info): Changed from a struct
4556 to a class. Add ctor/dtor, methods and data members.
4557 (edge_info::edge_info): Renamed from allocate_edge_info.
4558 Initialize additional members.
4559 (edge_info::~edge_info): New.
4560 (free_dom_edge_info): Delete the edge info.
4561 (record_edge_info): Use new class & associated member functions.
4562 Tighten forms for testing for edge equivalences.
4563 (record_temporary_equivalences): Iterate over the simple
4564 equivalences rather than assuming there's only one per edge.
4565 (cprop_into_successor_phis): Iterate over the simple
4566 equivalences rather than assuming there's only one per edge.
4567 (optimize_stmt): Use operand_equal_p rather than pointer
4568 equality for mini-DSE code.
4569
4570 2017-08-28 Nathan Sidwell <nathan@acm.org>
4571
4572 * gcc.c (execute): Fold SIGPIPE handling into switch
4573 statement. Adjust internal error message.
4574
4575 2017-08-28 Richard Biener <rguenther@suse.de>
4576
4577 PR debug/81993
4578 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
4579 Do nothing for removed DIEs.
4580
4581 2017-08-28 Richard Biener <rguenther@suse.de>
4582
4583 PR tree-optimization/81977
4584 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
4585 memcpy.
4586
4587 2017-08-28 Alexander Monakov <amonakov@ispras.ru>
4588
4589 PR target/80640
4590 * doc/md.texi (mem_thread_fence): Remove mention of mode. Rewrite.
4591 * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
4592 using targetm.gen_mem_thread_fence.
4593
4594 2017-08-27 Uros Bizjak <ubizjak@gmail.com>
4595
4596 PR target/81995
4597 * config/i386/i386.md (*<btsc><mode>): Change operand 2
4598 predicate to register_operand. Reorder operands.
4599 (*btr<mode>): Ditto.
4600 (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
4601 (*btr<mode>_mask): Ditto.
4602
4603 2017-08-25 Steven Munroe <munroesj@gcc.gnu.org>
4604
4605 * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
4606 * config/rs6000/xmmintrin.h: New file.
4607 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
4608
4609 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4610
4611 PR target/81504
4612 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
4613 parameter and_insn and return it.
4614 (recombine_lvx_pattern): Insert a copy to ensure availability of
4615 the base register of the copied masking operation at the point of
4616 the instruction replacement.
4617 (recombine_stvx_pattern): Likewise.
4618
4619 2017-08-25 Michael Meissner <meissner@linux.vnet.ibm.com>
4620
4621 * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
4622 undocumented switches.
4623 (-mpower9-dform-vector): Likewise.
4624 (-mpower9-dform): Likewise.
4625 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
4626 comments to delete references to -mpower9-dform* switches.
4627 * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
4628 Delete reference to -mpower9-dform* switches, test for
4629 -mpower9-vector instead.
4630 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
4631 (OTHER_P9_VECTOR_MASKS): Likewise.
4632 (POWERPC_MASKS): Likewise.
4633 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
4634 tests against -mpower9-dform* to -mpower9-vector. Delete code
4635 that checked for -mpower9-dform* consistancy with other options.
4636 Add test for -mpower9-misc to enable other power9 switches.
4637 (rs6000_init_hard_regno_mode_ok): Likewise.
4638 (rs6000_option_override_internal): Likewise.
4639 (rs6000_emit_prologue): Likewise.
4640 (rs6000_emit_epilogue): Likewise.
4641 (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
4642 (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
4643 (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
4644 -mpower9-vector.
4645 (emit_fusion_p9_store): Likewise.
4646 * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
4647 resetting these macros if the assembler does not support ISA 3.0
4648 instructions.
4649 (TARGET_P9_DFORM_VECTOR): Likewise.
4650 * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
4651 Change to use -mpower9-vector instead of -mpower9-dform-scalar.
4652
4653 2017-08-25 Alan Modra <amodra@gmail.com>
4654
4655 PR rtl-optimization/81747
4656 * cse.c (cse_extended_basic_block): Don't attempt to record
4657 equivalences for degenerate conditional branches that branch
4658 to their fall-through.
4659
4660 2017-08-24 Martin Sebor <msebor@redhat.com>
4661
4662 PR middle-end/81908
4663 * gimple-fold.c (size_must_be_zero_p): New function.
4664 (gimple_fold_builtin_memory_op): Call it.
4665
4666 2017-08-24 Steven Munroe <munroesj@gcc.gnu.org>
4667
4668 * config/rs6000/mm_malloc.h: New file.
4669
4670 2017-08-24 Bin Cheng <bin.cheng@arm.com>
4671
4672 PR tree-optimization/81913
4673 * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
4674 analysis when either IVs in condition can wrap.
4675
4676 2017-08-24 Uros Bizjak <ubizjak@gmail.com>
4677
4678 * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
4679 * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
4680
4681 2017-08-24 Richard Biener <rguenther@suse.de>
4682
4683 PR target/81921
4684 * targhooks.c (default_target_can_inline_p): Properly
4685 use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
4686 is present and always compare.
4687 * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
4688 infer -mfpmath=sse from TARGET_SSE_P.
4689 (ix86_can_inline_p): Properly use target_option_default_node when
4690 no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
4691
4692 2017-08-24 Richard Biener <rguenther@suse.de>
4693
4694 PR debug/81936
4695 * dwarf2out.c (output_die): Handle flag_generate_offload like
4696 flag_generate_lto.
4697 (output_comp_unit): Likewise.
4698 (gen_array_type_die): Likewise.
4699 (dwarf2out_early_finish): Likewise.
4700 (note_variable_value_in_expr): Likewise.
4701 (dwarf2out_finish): Likewise. Adjust assert.
4702 * cgraphunit.c (symbol_table::compile): Move setting of
4703 flag_generate_offload earlier ...
4704 (symbol_table::finalize_compilation_unit): ... here, before
4705 early debug finalization.
4706
4707 2017-08-24 Richard Biener <rguenther@suse.de>
4708
4709 * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
4710 and ipa-fnsummary.h.
4711 (ix86_can_inline_p): When ix86_fpmath flags do not match
4712 check whether the callee uses FP math at all.
4713
4714 2017-08-24 Aldy Hernandez <aldyh@redhat.com>
4715
4716 PR middle-end/81931
4717 * tree-ssanames.c (get_nonzero_bits): Use element_precision
4718 instead of TYPE_PRECISION.
4719
4720 2017-08-24 Richard Sandiford <richard.sandiford@linaro.org>
4721 Alan Hayward <alan.hayward@arm.com>
4722 David Sherwood <david.sherwood@arm.com>
4723
4724 * combine.c (make_extraction): Use subreg_offset_from_lsb.
4725
4726 2017-08-23 Daniel Santos <daniel.santos@pobox.com>
4727
4728 * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
4729 Remove field.
4730 (ix86_frame::stack_realign_allocate): New field.
4731 (struct machine_frame_state): Modify comments.
4732 (machine_frame_state::sp_realigned_fp_end): New field.
4733 * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
4734 layout calculation.
4735 (sp_valid_at): Add assertion to assure no attempt to access invalid
4736 offset of a realigned stack.
4737 (fp_valid_at): Likewise.
4738 (choose_baseaddr): Modify comments.
4739 (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
4740 ix86_expand_prologue.
4741 (ix86_expand_prologue): Modify stack realignment and allocation.
4742 (ix86_expand_epilogue): Modify comments.
4743 * doc/sourcebuild.texi: Add documentation for target selectors avx2,
4744 avx2_runtime, avx512f, and avx512f_runtime.
4745
4746 2017-08-23 Uros Bizjak <ubizjak@gmail.com>
4747
4748 * config/i386/i386.opt: Remove unneeded Init(0) initializations.
4749 (mstackrealign): Do not init to -1.
4750 * config/i386/i386.c (ix86_option_override_internal):
4751 Check opts_set, not opts when setting default value of
4752 opts->x_ix86_force_align_arg_pointer.
4753
4754 2017-08-23 Richard Biener <rguenther@suse.de>
4755
4756 * function.c (fndecl_name): Use verbosity 1 (no arguments) for
4757 lang_hooks.decl_printable_name.
4758 * print-rtl-function.c (print_rtx_function): Likewise.
4759 * tree-pretty-print.c (dump_function_header): Likewise.
4760
4761 2017-08-23 Richard Biener <rguenther@suse.de>
4762
4763 PR lto/81940
4764 * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
4765 -g0 at compile-time.
4766
4767 2017-08-23 Tamar Christina <tamar.christina@arm.com>
4768
4769 PR middle-end/19706
4770 * doc/sourcebuild.texi (Other hardware attributes):
4771 Document xorsign.
4772
4773 2017-08-23 Tamar Christina <tamar.christina@arm.com>
4774
4775 PR middle-end/19706
4776 * tree-ssa-math-opts.c (convert_expand_mult_copysign):
4777 Fix single-use check.
4778
4779 2017-08-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
4780
4781 * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
4782
4783 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
4784
4785 * doc/install.texi: Modify to add more details on running selected
4786 tests.
4787
4788 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
4789
4790 * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
4791 is combined with -mabi=ms.
4792 (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
4793 ms_abi.
4794
4795 2017-08-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4796
4797 PR tree-optimization/81488
4798 * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
4799 and cached_basis fields.
4800 (MAX_SPREAD): New constant.
4801 (alloc_cand_and_find_basis): Initialize new fields.
4802 (clear_visited): New function.
4803 (create_phi_basis_1): Rename from create_phi_basis, set visited
4804 and cached_basis fields.
4805 (create_phi_basis): New wrapper function.
4806 (phi_add_costs_1): Rename from phi_add_costs, add spread
4807 parameter, set visited field, short-circuit when limits reached.
4808 (phi_add_costs): New wrapper function.
4809 (record_phi_increments_1): Rename from record_phi_increments, set
4810 visited field.
4811 (record_phi_increments): New wrapper function.
4812 (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
4813 (phi_incr_cost): New wrapper function.
4814 (all_phi_incrs_profitable_1): Rename from
4815 all_phi_incrs_profitable, set visited field.
4816 (all_phi_incrs_profitable): New wrapper function.
4817
4818 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
4819 Alan Hayward <alan.hayward@arm.com>
4820 David Sherwood <david.sherwood@arm.com>
4821
4822 * rtl.h (paradoxical_subreg_p): Define inline, and add a version
4823 that takes the outer and inner modes.
4824 * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
4825 comparison as the canonical test for a paradoxical subreg.
4826 * combine.c (simplify_set): Use paradoxical_subreg_p.
4827 (make_extraction): Likewise.
4828 (force_to_mode): Likewise.
4829 (rtx_equal_for_field_assignment_p): Likewise.
4830 (gen_lowpart_for_combine): Likewise.
4831 (simplify_comparison): Likewise.
4832 * cse.c (equiv_constant): Likewise.
4833 * expmed.c (store_bit_field_1): Likewise.
4834 * final.c (alter_subreg): Likewise.
4835 * fwprop.c (propagate_rtx): Likewise.
4836 (forward_propagate_subreg): Likewise.
4837 * ira-conflicts.c (ira_build_conflicts): Likewise.
4838 * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
4839 * lra-constraints.c (curr_insn_transform): Likewise.
4840 (split_reg): Likewise.
4841 * lra-eliminations.c (move_plus_up): Likewise.
4842 (lra_eliminate_regs_1): Likewise.
4843 * recog.c (general_operand): Likewise.
4844 * ree.c (combine_reaching_defs): Likewise.
4845 * reload.c (push_reload): Likewise.
4846 (find_reloads): Likewise.
4847 * reload1.c (elimination_effects): Likewise.
4848 (compute_reload_subreg_offset): Likewise.
4849 (choose_reload_regs): Likewise.
4850 * rtlanal.c (subreg_lsb_1): Likewise.
4851 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
4852 (simplify_subreg): Likewise.
4853 * var-tracking.c (track_loc_p): Likewise.
4854 * emit-rtl.c (byte_lowpart_offset): Likewise.
4855 (paradoxical_subreg_p): Delete out-of-line definition.
4856
4857 2017-08-22 Jeff Law <law@redhat.com>
4858
4859 PR tree-optimization/81741
4860 PR tree-optimization/71947
4861 * tree-ssa-dom.c: Include tree-inline.h.
4862 (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
4863 equivalences if one is more expensive to compute than the other.
4864 * tree-ssa-scopedtables.h (class const_or_copies): Make
4865 record_const_or_copy_raw method private.
4866 (class avail_exprs_stack): New method simplify_binary_operation.
4867 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
4868 avail_exprs_stack::simplify_binary_operation as needed.
4869 (avail_exprs_stack::simplify_binary_operation): New function.
4870
4871 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
4872
4873 * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
4874 * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
4875 (DOT_SYMBOLS): Likewise.
4876 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
4877 (RELOCATABLE_NEEDS_FIXUP): Likewise.
4878 (RS6000_ABI_NAME): Likewise.
4879 (TARGET_CMODEL): Likewise.
4880 (TOC_SECTION_ASM_OP): Likewise.
4881 (SET_CMODEL): New macro.
4882 (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
4883
4884 2017-08-22 Richard Biener <rguenther@suse.de>
4885
4886 * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
4887 to allow for free-lang-data replacements similar to verify_type_variant.
4888
4889 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
4890 Alan Hayward <alan.hayward@arm.com>
4891 David Sherwood <david.sherwood@arm.com>
4892
4893 * config/aarch64/aarch64.md (casesi): Use DImode rather than
4894 VOIDmode for the LABEL_REF.
4895
4896 2017-08-22 Richard Biener <rguenther@suse.de>
4897
4898 * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
4899
4900 2017-08-22 Richard Biener <rguenther@suse.de>
4901
4902 * common.opt (feliminate-dwarf2-dups): Ignore.
4903 * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
4904 * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
4905 same_die_p_wrap, compute_section_prefix,
4906 is_symbol_die, assign_symbol_names, break_out_includes): Remove.
4907 (comdat_symbol_id, comdat_symbol_number): Likewise.
4908 (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
4909 Likewise.
4910 (check_duplicate_cu, record_comdat_symbol_number): Likewise.
4911 (output_die): Mark unreachable path unreachable.
4912 (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
4913 (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
4914 (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
4915 (dwarf2out_early_finish): Likewise.
4916
4917 2017-08-22 Aldy Hernandez <aldyh@redhat.com>
4918
4919 * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
4920
4921 2017-08-22 Georg-Johann Lay <avr@gjlay.de>
4922
4923 PR target/81910
4924 * config/avr/avr.c (avr_handle_addr_attribute): Early return if
4925 not VAR_P. Filter attribute warnings with OPT_Wattributes.
4926 (avr_attribute_table) <io, io_low, address>: Initialize
4927 .decl_required with true.
4928
4929 2017-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
4930
4931 * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
4932 undocumented debugging options.
4933 (-mvsx-scalar-double): Likewise.
4934 (-mallow-df-permute): Likewise.
4935 (-mvectorize-builtins): Likewise.
4936 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
4937 (rs6000_builtin_vectorized_function): Likewise.
4938 (rs6000_builtin_md_vectorized_function): Likewise.
4939 (rs6000_opt_vars): Likewise.
4940
4941 2017-08-21 Uros Bizjak <ubizjak@gmail.com>
4942
4943 PR target/46091
4944 * config/i386/i386.md (*btsq_imm): Rename from *btsq.
4945 (*btrq_imm): Rename from *btrq.
4946 (*btcq_imm): Rename from *btcq.
4947 (btsc): New code attribute.
4948 (*<btsc><mode>): New insn pattern.
4949 (*btr<mode>): Ditto.
4950 (*<btsc><mode>_mask): New insn_and_split pattern.
4951 (*btr<mode>_mask): Ditto.
4952
4953 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
4954 Alan Hayward <alan.hayward@arm.com>
4955 David Sherwood <david.sherwood@arm.com>
4956
4957 * function.c (pad_below): Simplify padding calculation.
4958
4959 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
4960 Alan Hayward <alan.hayward@arm.com>
4961 David Sherwood <david.sherwood@arm.com>
4962
4963 * target.def (function_prologue): Remove frame size argument.
4964 (function_epilogue): Likewise.
4965 * doc/tm.texi: Regenerate.
4966 * final.c (final_start_function): Update call to function_prologue.
4967 (final_end_function): Update call to function_epilogue.
4968 (default_function_pro_epilogue): Remove frame size argument.
4969 * output.h (default_function_pro_epilogue): Likewise.
4970 * config/arm/arm.c (arm_output_function_epilogue): Likewise.
4971 (arm_output_function_prologue): Likewise.
4972 * config/frv/frv.c (frv_function_prologue): Likewise.
4973 (frv_function_epilogue): Likewise.
4974 * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
4975 * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
4976 (ia64_output_function_epilogue): Likewise.
4977 * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
4978 (m32r_output_function_epilogue): Likewise.
4979 * config/microblaze/microblaze.c (microblaze_function_prologue)
4980 (microblaze_function_epilogue): Likewise.
4981 * config/mips/mips.c (mips_output_function_prologue): Likewise.
4982 (mips_output_function_epilogue): Likewise.
4983 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
4984 (mmix_target_asm_function_epilogue): Likewise.
4985 * config/msp430/msp430.c (msp430_start_function): Likewise.
4986 * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
4987 (nds32_asm_function_epilogue): Likewise.
4988 * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
4989 * config/pa/pa.c (pa_output_function_prologue): Likewise.
4990 (pa_output_function_epilogue): Likewise.
4991 * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
4992 (rs6000_output_function_epilogue): Likewise.
4993 * config/rl78/rl78.c (rl78_start_function): Likewise.
4994 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
4995 (rs6000_output_function_epilogue): Likewise.
4996 * config/rx/rx.c (rx_output_function_prologue): Likewise.
4997 * config/sh/sh.c (sh_output_function_epilogue): Likewise.
4998 * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
4999 (sparc_asm_function_epilogue): Likewise.
5000
5001 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
5002
5003 * tree.h (type_has_mode_precision_p): New function.
5004 * convert.c (convert_to_integer_1): Use it.
5005 * expr.c (expand_expr_real_2): Likewise.
5006 (expand_expr_real_1): Likewise.
5007 * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
5008 * match.pd: Likewise.
5009 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
5010 * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
5011 * tree-tailcall.c (process_assignment): Likewise.
5012 * tree-vect-loop.c (vectorizable_reduction): Likewise.
5013 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
5014 (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
5015 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
5016 (vectorizable_assignment): Likewise.
5017 (vectorizable_shift): Likewise.
5018 (vectorizable_operation): Likewise.
5019 * tree-vrp.c (register_edge_assert_for_2): Likewise.
5020
5021 2017-08-21 Wilco Dijkstra <wdijkstr@arm.com>
5022
5023 * match.pd: Add pow (C, x) simplification.
5024
5025 2017-08-21 Richard Biener <rguenther@suse.de>
5026
5027 PR tree-optimization/81900
5028 * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
5029 for blocks with abnormal predecessors.
5030 (compute_antic): Do not set visited flag prematurely.
5031
5032 2017-08-21 Georg-Johann Lay <avr@gjlay.de>
5033
5034 PR target/79883
5035 * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
5036
5037 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
5038
5039 * stor-layout.h (vector_type_mode): Move to...
5040 * tree.h (vector_type_mode): ...here.
5041 * stor-layout.c (vector_type_mode): Move to...
5042 * tree.c (vector_type_mode): ...here. Include rtl.h and regs.h.
5043
5044 2017-08-21 Richard Biener <rguenther@suse.de>
5045
5046 * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
5047 register_external_die hooks.
5048 (debug_false_tree_charstarstar_uhwistar): Declare.
5049 (debug_nothing_tree_charstar_uhwi): Likewise.
5050 * debug.c (do_nothing_debug_hooks): Adjust.
5051 (debug_false_tree_charstarstar_uhwistar): New do nothing.
5052 (debug_nothing_tree_charstar_uhwi): Likewise.
5053 * dbxout.c (dbx_debug_hooks): Adjust.
5054 (xcoff_debug_hooks): Likewise.
5055 * sdbout.c (sdb_debug_hooks): Likewise.
5056 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5057 * dwarf2out.c (macinfo_label_base): New global.
5058 (dwarf2out_register_external_die): New function for the
5059 register_external_die hook.
5060 (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
5061 (dwarf2_debug_hooks): Use them.
5062 (dwarf2_lineno_debug_hooks): Adjust.
5063 (struct die_struct): Add with_offset flag.
5064 (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
5065 DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
5066 DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
5067 DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
5068 DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
5069 DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
5070 defining section names for the early LTO debug variants.
5071 (reset_indirect_string): New helper.
5072 (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
5073 (print_dw_val): Add support for offsetted symbol references.
5074 (get_ultimate_context): Split out from is_cxx.
5075 (is_cxx): Use get_ultimate_context.
5076 (is_fortran): Add decl overload.
5077 (compute_comp_unit_symbol): Split out worker from
5078 compute_section_prefix.
5079 (compute_section_prefix): Call compute_comp_unit_symbol and
5080 set comdat_type_p here.
5081 (output_die): Skip DIE symbol output for the LTO added one.
5082 Handle DIE symbol references with offset.
5083 (output_comp_unit): Guard section name mangling properly.
5084 For LTO debug sections emit a symbol at the section beginning
5085 which we use to refer to its DIEs.
5086 (add_abstract_origin_attribute): For DIEs registered via
5087 dwarf2out_register_external_die directly refer to the early
5088 DIE rather than indirectly through the shadow one we created.
5089 Remove obsolete call to dwarf2out_abstract_function for
5090 non-function/block origins.
5091 (gen_array_type_die): When generating early LTO debug do
5092 not emit DW_AT_string_length.
5093 (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
5094 late when in LTO. As suggested place a gcc_unreachable for
5095 the DECL_ABSTRACT_P case.
5096 (gen_subprogram_die): Avoid another specification DIE
5097 for early built declarations/definitions for the late LTO case.
5098 (gen_variable_die): Add type references for late duplicated VLA dies
5099 when in late LTO.
5100 (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
5101 we have the abstract instance already.
5102 (process_scope_var): Adjust decl DIE contexts in LTO which
5103 first puts them in limbo.
5104 (gen_decl_die): Do not generate type DIEs late apart from
5105 types for VLAs or for decls we do not yet have a DIE. Do not
5106 call dwarf2out_abstract_function late.
5107 (dwarf2out_early_global_decl): Make sure to create DIEs
5108 for abstract instances of a decl first.
5109 (dwarf2out_late_global_decl): Adjust comment.
5110 (output_macinfo_op): With multiple macro sections use
5111 macinfo_label_base to distinguish labels.
5112 (output_macinfo): Likewise. Update macinfo_label_base.
5113 Pass in the line info label.
5114 (note_variable_value_in_expr): When generating LTO resolve
5115 all variable values here by generating DIEs as needed.
5116 (init_sections_and_labels): Add early LTO debug flag parameter
5117 and generate different sections and names if set. Add generation
5118 counter for the labels so we can have multiple of them.
5119 (reset_dies): Helper to allow DIEs to be output multiple times.
5120 (dwarf2out_finish): When outputting DIEs to the fat part of an
5121 LTO object first reset DIEs.
5122 (dwarf2out_early_finish): Output early DIEs when generating LTO.
5123 (modified_type_die): Check for decl_ultimate_origin being self
5124 before recursing.
5125 (gen_type_die_with_usage): Likewise.
5126 (gen_typedef_die): Allow decl_ultimate_origin being self.
5127 (set_decl_abstract_flags): Remove.
5128 (set_block_abstract_flags): Likewise.
5129 (dwarf2out_abstract_function): Treat the early generated DIEs
5130 as the abstract copy and only add DW_AT_inline and
5131 DW_AT_artificial here and call set_decl_origin_self.
5132 If the DIE has an abstract origin don't do anything.
5133 * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
5134 if we have none yet (Go fails to build one, PR78628).
5135 (variably_modified_type_p): Prevent endless recursion for Ada
5136 cyclic pointer types.
5137 * lto-streamer-in.c: Include debug.h.
5138 (dref_queue): New global.
5139 (lto_read_tree_1): Stream in DIE references.
5140 (lto_input_tree): Register DIE references.
5141 (input_function): Stream DECL_DEBUG_ARGS.
5142 * lto-streamer-out.c: Include debug.h.
5143 (lto_write_tree_1): Output DIE references.
5144 (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
5145 Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
5146 (output_function): Stream DECL_DEBUG_ARGS.
5147 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
5148 Stream DECL_ABSTRACT_ORIGIN.
5149 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
5150 (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
5151 DECL_CONTEXT for file-scope decls.
5152 * lto-streamer.h (struct dref_entry): Declare.
5153 (dref_queue): Likewise.
5154 * cfgexpand.c (pass_expand::execute): Do not call the
5155 outlining_inline_function hook here.
5156 * lto-wrapper.c (debug_obj): New global.
5157 (tool_cleanup): Unlink it if required.
5158 (debug_objcopy): New function.
5159 (run_gcc): Handle early debug sections in the IL files by
5160 extracting them to separate files, partially linkin them and
5161 feeding the result back as result to the linker.
5162 * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
5163 DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
5164 DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
5165 sections into a separate segment.
5166 * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
5167 segments.
5168 (darwin_asm_dwarf_section): Likewise.
5169 (darwin_asm_output_dwarf_offset): Likewise.
5170 * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
5171
5172 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
5173 Alan Hayward <alan.hayward@arm.com>
5174 David Sherwood <david.sherwood@arm.com>
5175
5176 * read-md.h (md_reader::record_potential_iterator_use): Replace
5177 pointer argument with an rtx and an index.
5178 * read-rtl.c (iterator_group::apply_iterator): Likewise.
5179 (apply_mode_iterator): Likewise.
5180 (apply_code_iterator): Likewise.
5181 (apply_int_iterator): Likewise.
5182 (apply_subst_iterator): Likewise.
5183 (record_iterator_use): Likewise.
5184 (record_attribute_use): Likewise.
5185 (md_reader::record_potential_iterator_use): Likewise. Update calls
5186 to record_iterator_use and apply_iterator.
5187 (iterator_use): Replace ptr with x and index.
5188 (attribute_use): Likewise.
5189 (apply_attribute_uses): Update calls to apply_iterator.
5190 (apply_iterators): Likewise. Update initialization of iterator_use.
5191 (rtx_reader::read_rtx_code): Update calls to record_iterator_use
5192 and record_potential_iterator_use.
5193 (rtx_reader::read_rtx_operand): Likewise.
5194
5195 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
5196 Alan Hayward <alan.hayward@arm.com>
5197 David Sherwood <david.sherwood@arm.com>
5198
5199 * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
5200 CONST_WIDE_INT.
5201
5202 2017-08-21 Richard Biener <rguenther@suse.de>
5203
5204 PR middle-end/81884
5205 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
5206 at struct end conservatively when comparing common bases.
5207
5208 2017-08-21 Richard Biener <rguenther@suse.de>
5209
5210 * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
5211 (mem_ref_in_stmt): Remove.
5212 (determine_max_movement): Use ref index to get at the reference.
5213 (invariantness_dom_walker::before_dom_children): Deal with
5214 lim data already initialized.
5215 (gather_mem_refs_stmt): Initialize lim data and record ref index.
5216
5217 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
5218
5219 * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
5220 (TARGET_ISA_ROUND): Ditto.
5221 (TARGET_ROUND): Ditto.
5222 * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
5223 * config/i386/i386.md: Ditto.
5224 * config/i386/sse.md: Ditto.
5225 * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
5226 with OPTION_MASK_ISA_SSE4_1.
5227
5228 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
5229
5230 PR target/81894
5231 * doc/extend.texi (x86 Built-in Functions): Correct the name of
5232 __builtin_ia32_lzcnt_u16.
5233
5234 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
5235
5236 PR target/80210
5237 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
5238 (rs6000_set_current_function): Rewrite function to use it.
5239
5240 2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
5241
5242 PR c/53037
5243 * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
5244 and TYPE_WARN_IF_NOT_ALIGN.
5245 * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
5246 (handle_warn_if_not_align): New.
5247 (place_union_field): Call handle_warn_if_not_align.
5248 (place_field): Call handle_warn_if_not_align.
5249 Copy TYPE_WARN_IF_NOT_ALIGN.
5250 (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
5251 (layout_type): Likewise.
5252 * tree-core.h (tree_type_common): Add warn_if_not_align. Set
5253 spare to 18.
5254 (tree_decl_common): Add warn_if_not_align.
5255 * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
5256 * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
5257 (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
5258 (DECL_WARN_IF_NOT_ALIGN): Likewise.
5259 (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
5260 * doc/extend.texi: Document warn_if_not_aligned attribute.
5261 * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
5262
5263 2017-08-17 Martin Liska <mliska@suse.cz>
5264
5265 PR bootstrap/81864
5266 * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
5267 (get_data_dependence): Use it as pointer type.
5268 (distribute_loop): Likewise.
5269
5270 2017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5271
5272 * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
5273 (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
5274 (p8_vmrgow_<mode>_direct): New define_insn.
5275 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
5276 handle endianness for vmrgew and vmrgow permute patterns.
5277
5278 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
5279
5280 * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
5281 * config/rs6000/rs6000-cpus.def: Remove comment.
5282 (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
5283 (POWERPC_MASKS): Likewise.
5284 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
5285 use of TARGET_VSX_TIMODE.
5286 (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
5287 (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
5288 TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX.
5289 (rs6000_option_override_internal): Remove dead code.
5290 (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
5291 (rs6000_legitimize_reload_address): Likewise.
5292 (rs6000_legitimate_address_p): Likewise.
5293 (rs6000_opt_masks): Delete "vsx-timode".
5294 (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
5295 from function comment.
5296 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
5297 * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
5298 (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
5299 condition.
5300 * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
5301 * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
5302 * config/rs6000/vsx.md (VSX_LE_128): Likewise.
5303 (VSX_TI): Likewise.
5304 (VSX_M): Likewise.
5305 (define_peephole2): Likewise.
5306
5307 2017-08-17 Martin Sebor <msebor@redhat.com>
5308
5309 PR c/81859
5310 * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
5311 past the end of an array.
5312 (test_pp_format): Add test cases.
5313
5314 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org>
5315
5316 * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
5317 missing ECF_NOTHROW flags.
5318
5319 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
5320
5321 PR target/72804
5322 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
5323 operands residing in integer registers.
5324 (*vsx_le_perm_load_<mode>): Likewise.
5325 (*vsx_le_perm_store_<mode>): Likewise.
5326 (define_peephole2): Add peepholes to optimize the above.
5327
5328 2017-08-17 Marek Polacek <polacek@redhat.com>
5329
5330 PR middle-end/81814
5331 * fold-const.c (operand_equal_for_comparison_p): Remove code that used
5332 to mimic what shorten_compare did. Change the return type to bool.
5333 (fold_cond_expr_with_comparison): Update call to
5334 operand_equal_for_comparison_p.
5335 (fold_ternary_loc): Likewise.
5336
5337 2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com>
5338
5339 * aarch64-simd.md (mov<mode>): No longer force zero immediate into
5340 register.
5341 (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
5342
5343 2017-08-17 Richard Biener <rguenther@suse.de>
5344
5345 * tree-ssa-structalias.c (solve_graph): When propagating
5346 to successors update the graphs succ edges and avoid duplicate work.
5347
5348 2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com>
5349
5350 PR target/81861
5351 * config/i386/i386.c (ix86_option_override_internal): Save target
5352 specific options after ix86_stack_protector_guard_reg was changed.
5353
5354 2017-08-17 Richard Biener <rguenther@suse.de>
5355
5356 PR tree-optimization/81827
5357 * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
5358 (new_var_info): Initialize it conservatively.
5359 (get_call_vi): Mark register vars.
5360 (new_scalar_tmp_constraint_exp): Likewise.
5361 (handle_rhs_call): Likewise.
5362 (handle_const_call): Likewise.
5363 (create_function_info_for): Likewise.
5364 (solve_constraints): Sort varinfos to separate register from
5365 non-register vars to pack points-to solution bitmaps during
5366 iteration.
5367
5368 2017-08-17 Marek Polacek <polacek@redhat.com>
5369
5370 * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
5371
5372 2017-08-17 Richard Biener <rguenther@suse.de>
5373
5374 * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
5375 to true when overflow is undefined and we saturated the result.
5376
5377 2017-08-17 Alan Modra <amodra@gmail.com>
5378
5379 PR target/80938
5380 * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
5381 Don't use store multiple if only one reg needs saving.
5382 (interesting_frame_related_regno): New function.
5383 (rs6000_frame_related): Don't emit frame info for regs that
5384 don't need saving.
5385 (rs6000_emit_epilogue): Likewise.
5386
5387 2017-08-16 Nathan Sidwell <nathan@acm.org>
5388
5389 * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
5390 * tree.h (TYPE_BINFO): Use type_non_common.maxval.
5391 (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
5392 * tree.c (free_lang_data_in_type): Use else-if chain. Always
5393 clear TYPE_LANG_1. Remove obsolete member-function stripping.
5394 (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
5395 (verify_type): Adjust for TYPE_BINFO move.
5396 * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
5397 process TYPE_BINFO directly.
5398 (hash_tree): Likewise.
5399 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
5400 Likewise.
5401 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
5402 Likewise.
5403
5404 2017-08-16 David Malcolm <dmalcolm@redhat.com>
5405
5406 * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
5407
5408 2017-08-16 Uros Bizjak <ubizjak@gmail.com>
5409
5410 PR target/46091
5411 * config/i386/i386.md (*anddi_1_btr): Change predicates of
5412 operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
5413 Add ix86_binary_operator_ok to insn constraint.
5414 (*iordi_1_bts): Ditto.
5415 (*xordi_1_btc): Ditto.
5416 (*btsq): Change predicate of operand 0 to nonimmediate_operand.
5417 Update corresponding peephole2 pattern.
5418 (*btrq): Ditto.
5419 (*btcq): Ditto.
5420
5421 2017-08-16 Bin Cheng <bin.cheng@arm.com>
5422
5423 PR tree-optimization/81832
5424 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
5425 copy loop header which has IFN_LOOP_DIST_ALIAS call.
5426
5427 2017-08-16 Marek Polacek <polacek@redhat.com>
5428
5429 PR middle/81695
5430 * fold-const.c (fold_indirect_ref_1): Restore original behavior
5431 regarding size_zero_node.
5432
5433 2017-08-16 Martin Liska <mliska@suse.cz>
5434
5435 PR target/81753
5436 * config.gcc: Respect previously set extra_objs in case
5437 of darwin target.
5438
5439 2017-08-16 Richard Sandiford <richard.sandiford@linaro.org>
5440
5441 PR tree-optimization/81835
5442 * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
5443 the phi SSA_NAME. Check that the condition in a COND_EXPR does
5444 not depend on the phi.
5445
5446 2017-08-16 Alan Modra <amodra@gmail.com>
5447
5448 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
5449 dead code.
5450
5451 2017-08-16 Alan Modra <amodra@gmail.com>
5452
5453 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
5454 (save_reg_p): ..into this. Update all callers.
5455 (first_reg_to_save): Simplify.
5456
5457 2017-08-16 Alan Modra <amodra@gmail.com>
5458
5459 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
5460 fixed regs.
5461
5462 2017-08-15 Joseph Myers <joseph@codesourcery.com>
5463
5464 PR target/78460
5465 PR target/67712
5466 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
5467 constant count if that count is less than 32.
5468
5469 2017-08-15 Nathan Sidwell <nathan@acm.org>
5470
5471 * gcc.c (execute): Emit friendlier message if inferior is killed
5472 by an external cause.
5473
5474 2017-08-15 Richard Biener <rguenther@suse.de>
5475
5476 PR tree-optimization/81790
5477 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
5478 CONSTRUCTORs from simplifying and VN.
5479
5480 2017-08-14 Martin Sebor <msebor@redhat.com>
5481
5482 * builtin-attrs.def: Add comments.
5483
5484 2017-08-14 Martin Sebor <msebor@redhat.com>
5485
5486 PR c/81117
5487 * doc/extend.texi (attribute nonstring): Document new attribute.
5488
5489 2017-08-14 Martin Sebor <msebor@redhat.com>
5490
5491 PR c/81117
5492 * tree-diagnostic.c (default_tree_printer): Handle %G.
5493 * gimple-pretty-print.h (percent_G_format): Declare new function.
5494 * gimple-pretty-print.c (percent_G_format): Define.
5495 * tree-pretty-print.c (percent_K_format): Add argument.
5496
5497 2017-08-14 Martin Sebor <msebor@redhat.com>
5498
5499 PR translation/79998
5500 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
5501 Remove a stray space.
5502
5503 2017-08-14 Uros Bizjak <ubizjak@gmail.com>
5504
5505 PR target/46091
5506 * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
5507 (*iordi_1_bts): Ditto.
5508 (*xordi_1_btc): Ditto.
5509
5510 2017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5511
5512 PR target/79845
5513 * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
5514 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5515 Likewise.
5516 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
5517 quoted strings, and make more translator-friendly.
5518 (darwin_rs6000_override_options): Likewise.
5519 (rs6000_option_override_internal): Likewise.
5520 (rs6000_return_in_memory): Fix overlong line.
5521 (init_cmulative_args): Use quoted strings, and make more
5522 translator-friendly.
5523 (rs6000_pass_by_reference): Fix overlong line.
5524 (def_builtin): Use quoted strings.
5525 (altivec_expand_predicate_builtin): Use quoted strings, and make
5526 more translator-friendly.
5527 (htm_expand_builtin): Use quoted strings.
5528 (cpu_expand_builtin): Use quoted strings, and make more
5529 translator-friendly.
5530 (altivec_expand_builtin): Likewise.
5531 (paired_expand_predicate_builtin): Likewise.
5532 (rs6000_invalid_builtin): Likewise.
5533 (builtin_function_type): Use quoted strings.
5534 (rs6000_expand_split_stack_prologue): Use quoted strings, and make
5535 more translator-friendly.
5536 (rs6000_trampoline_init): Likewise.
5537 (rs6000_handle_altivec_attribute): Likewise.
5538 (rs6000_inner_target_options): Use quoted strings.
5539 (rs6000_disable_incompatible_switches): Likewise.
5540 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
5541 strings, and make more translator-friendly.
5542 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
5543
5544 2017-08-14 Bin Cheng <bin.cheng@arm.com>
5545
5546 PR tree-optimization/81799
5547 * tree-loop-distribution.c (version_loop_by_alias_check): Force
5548 cond_expr to simple gimple operand.
5549
5550 2017-08-14 Wilco Dijkstra <wdijkstr@arm.com>
5551
5552 PR middle-end/46932
5553 * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
5554
5555 2017-08-14 Georg-Johann Lay <avr@gjlay.de>
5556
5557 PR target/81754
5558 PR target/81268
5559 * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
5560 * config/avr/avr.md (gasisr, *gasisr): Use it instead of
5561 TARGET_GASISR_PROLOGUES.
5562 * config/avr/avr.c (avr_option_override): Same.
5563 (avr_pass_pre_proep::execute): Same.
5564
5565 2017-08-13 H.J. Lu <hongjiu.lu@intel.com>
5566
5567 PR target/81820
5568 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
5569 frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
5570
5571 2017-08-13 Uros Bizjak <ubizjak@gmail.com>
5572
5573 * config/i386/i386.md (*load_tp_<mode>): Redefine as
5574 define_insn_and_split. Split to a memory load from 0 in
5575 DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32
5576 using PTR mode iterator.
5577 (*load_tp_x32_zext"): Redefine as define_insn_and_split.
5578 Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
5579 (*add_tp_<mode>): Redefine as define_insn_and_split.
5580 Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
5581 address space. Merge with *add_tp_x32 using PTR mode iterator.
5582 (*add_tp_x32_zext"): Redefine as define_insn_and_split.
5583 Split to an add with a memory load from 0 in
5584 DEFAULT_TLS_SEG_REG address space.
5585
5586 2017-08-12 Andrew Pinski <apinski@cavium.com>
5587
5588 * config/aarch64/aarch64-option-extensions.def (rdma):
5589 Fix feature string to what Linux prints out in /proc/cpuinfo.
5590
5591 2017-08-12 Pierre-Marie de Rodat <derodat@adacore.com>
5592
5593 PR ada/79542
5594 * dwarf2out.c (modified_type_die): For C typedef types that have
5595 an ultimate origin, process the ultimate origin instead of the
5596 input type.
5597 (gen_typedef_die): Assert that input DECLs have no ultimate
5598 origin.
5599 (gen_type_die_with_usage): For typedef variants that have an
5600 ultimate origin, just call gen_decl_die on the original DECL.
5601 (process_scope_var): Avoid creating DIEs for local typedefs and
5602 concrete static variables.
5603
5604 2017-08-12 Alan Modra <amodra@gmail.com>
5605
5606 PR target/81170
5607 PR target/81295
5608 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
5609 match gnu-user.h startfile.
5610 (ENDFILE_LINUX_SPEC): Similarly.
5611
5612 2017-08-11 Thomas Schwinge <thomas@codesourcery.com>
5613
5614 PR lto/81430
5615 * config/nvptx/nvptx.c (nvptx_override_options_after_change):
5616 Remove function.
5617 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
5618
5619 2017-08-11 Tamar Christina <tamar.christina@arm.com>
5620 * config/aarch64/aarch64.md (mov<mode>): Change.
5621 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
5622 aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
5623 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
5624
5625 2017-08-11 Eric Botcazou <ebotcazou@adacore.com>
5626
5627 * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
5628 for storage order barriers.
5629
5630 2017-08-11 Martin Liska <mliska@suse.cz>
5631
5632 PR tree-opt/79987
5633 * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
5634 variables of void type.
5635
5636 2017-08-11 Martin Liska <mliska@suse.cz>
5637
5638 * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
5639 TARGET_SUPPORTS_ALIASES.
5640 * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
5641 * ipa-visibility.c (can_replace_by_local_alias): Likewise.
5642 (optimize_weakref): Likewise.
5643 * symtab.c (symtab_node::noninterposable_alias): Likewise.
5644 * varpool.c (varpool_node::create_extra_name_alias): Likewise.
5645 * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
5646
5647 2017-08-11 Martin Liska <mliska@suse.cz>
5648
5649 PR ipa/81213
5650 * config/i386/i386.c (make_resolver_func): Do complete
5651 refactoring of the function.
5652
5653 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
5654
5655 PR target/81708
5656 * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
5657 * config/i386/i386.c (ix86_stack_protect_guard): Use
5658 ix86_stack_protect_guard_symbol_str to generate varible declaration.
5659 * doc/invoke.texi (x86 Options): Document
5660 -mstack-protector-guard-symbol= option.
5661
5662 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
5663
5664 * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
5665 * config/i386/i386.c (ix86_split_stack_guard): New function.
5666 (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
5667 (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
5668 (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
5669 (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
5670 * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
5671 (split_stack_space_check): Call ix86_split_stack_guard.
5672
5673 2017-08-10 Martin Sebor <msebor@redhat.com>
5674
5675 * print-tree.c (print_node): Print location using the established
5676 format %s:%i%i.
5677 Replace spaces with colons.
5678 (debug_raw, debug): Ditto.
5679
5680 2017-08-10 Martin Sebor <msebor@redhat.com>
5681
5682 PR c++/81586
5683 * pretty-print.c (pp_format): Correct the handling of %s precision.
5684
5685 2017-08-10 H.J. Lu <hongjiu.lu@intel.com>
5686
5687 PR target/81736
5688 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
5689 to ...
5690 (ix86_finalize_stack_frame_flags): This. Also clear
5691 frame_pointer_needed if -fno-omit-frame-pointer is used without
5692 stack access.
5693 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
5694 with ix86_finalize_stack_frame_flags.
5695 (ix86_expand_epilogue): Likewise.
5696 (ix86_expand_split_stack_prologue): Likewise.
5697 * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
5698
5699 2017-08-10 Martin Liska <mliska@suse.cz>
5700
5701 PR c++/81355
5702 * c-attribs.c (handle_target_attribute):
5703 Report warning for an empty string argument of target attribute.
5704
5705 2017-08-09 Jakub Jelinek <jakub@redhat.com>
5706
5707 PR c/81687
5708 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
5709 LABEL_DECLs.
5710 * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
5711 or DECL_NONLOCAL labels.
5712 (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
5713 or DECL_NONLOCAL labels here.
5714
5715 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com>
5716
5717 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
5718 to indicate when early gimple folding has been disabled.
5719 (rs6000_gimple_fold_builtin): Add debug content.
5720 (rs6000_invalid_builtin): Fix whitespace.
5721 (rs6000_expand_builtin): Fix whitespace.
5722 * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
5723
5724 2017-08-09 Segher Boessenkool <segher@kernel.crashing.org>
5725
5726 PR target/80938
5727 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
5728 SAVE_MULTIPLE if not all the registers that saves, should be saved.
5729
5730 2017-08-09 Jim Wilson <jim.wilson@linaro.org>
5731
5732 * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
5733 (qdf24xx): Likewise.
5734 * config/aarch64/aarch64.md: Include falkor.md.
5735 * config/aarch64/falkor.md: New.
5736
5737 2017-08-09 Marek Polacek <polacek@redhat.com>
5738
5739 PR c/81233
5740 * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
5741 * diagnostic.c (emit_diagnostic): Add a comment.
5742 (emit_diagnostic_valist): New function.
5743
5744 2017-08-09 Marek Polacek <polacek@redhat.com>
5745
5746 PR c/81417
5747 * input.c (make_location): New overload.
5748 * input.h (make_location): Declare.
5749
5750 2017-08-08 Alan Modra <amodra@gmail.com>
5751 H.J. Lu <hongjiu.lu@intel.com>
5752
5753 PR driver/81523
5754 * gcc.c (NO_PIE_SPEC): Delete.
5755 (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r
5756 exclusion..
5757 (LINK_PIE_SPEC): ..to here.
5758 (LINK_COMMAND_SPEC): Support -no-pie.
5759 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
5760 chain of crtbegin*.o selection, update for PIE_SPEC changes and
5761 format.
5762 (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
5763 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
5764 (ENDFILE_CRTEND_SPEC): Similarly.
5765
5766 2017-08-08 Uros Bizjak <ubizjak@gmail.com>
5767
5768 PR target/81708
5769 * config/i386/i386.opt (mstack-protector-guard-reg=): New option
5770 (mstack-protector-guard-offset=): Ditto.
5771 * config/i386/i386.c (ix86_option_override): Handle
5772 -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
5773 options.
5774 (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
5775 ix86_stack_protect_guard_offset variables.
5776 (TARGET_STACK_PROTECT_GUARD): Always define.
5777 * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
5778 and -mstack-protector-guard-offset= options.
5779
5780 2017-08-08 Bin Cheng <bin.cheng@arm.com>
5781
5782 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
5783 boundary case for the last candidate.
5784
5785 2017-08-08 Bin Cheng <bin.cheng@arm.com>
5786
5787 * doc/invoke.texi: Document -ftree-loop-distribution for O3.
5788 * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
5789
5790 2017-08-08 Tamar Christina <tamar.christina@arm.com>
5791
5792 PR middle-end/19706
5793 * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
5794 * config/aarch64/aarch64-builtins.c
5795 (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
5796 * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
5797 * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
5798
5799 2017-08-08 Tamar Christina <tamar.christina@arm.com>
5800 Andrew Pinski <pinskia@gmail.com>
5801
5802 PR middle-end/19706
5803 * internal-fn.def (XORSIGN): New.
5804 * optabs.def (xorsign_optab): New.
5805 * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
5806 (convert_expand_mult_copysign): New.
5807 (pass_optimize_widening_mul::execute): Call
5808 convert_expand_mult_copysign.
5809
5810 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5811
5812 PR tree-optimization/81354
5813 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
5814 Insert on edges rather than explicitly creating landing pads.
5815 (analyze_candidates_and_replace): Commit edge inserts.
5816
5817 2017-08-08 Richard Biener <rguenther@suse.de>
5818
5819 PR middle-end/81719
5820 * tree-ssa-loop-niter.c: Include tree-dfa.h.
5821 (expand_simple_operations): Also look through ADDR_EXPRs with
5822 MEM_REF bases treating them as POINTER_PLUS_EXPR.
5823
5824 2017-08-08 Richard Biener <rguenther@suse.de>
5825
5826 PR tree-optimization/81723
5827 * tree-vect-slp.c (struct bst_traits): New hash traits.
5828 (bst_fail): New global.
5829 (vect_build_slp_tree_2): New worker, split out from ...
5830 (vect_build_slp_tree): ... this now wrapping it with using
5831 bst_fail set to cache SLP tree build fails. Properly handle
5832 max_tree_size.
5833 (vect_analyze_slp_instance): Allocate and free bst_fail.
5834
5835 2017-08-08 Martin Liska <mliska@suse.cz>
5836
5837 PR tree-opt/81696
5838 * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
5839 LABEL_DECLs that can be from a different function.
5840
5841 2017-08-08 Bin Cheng <bin.cheng@arm.com>
5842
5843 PR tree-optimization/81744
5844 * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
5845 loop's number of iterations.
5846
5847 2017-08-08 Martin Liska <mliska@suse.cz>
5848
5849 * asan.c: Include header files.
5850 * attribs.c (build_decl_attribute_variant): New function moved
5851 from tree.[ch].
5852 (build_type_attribute_qual_variant): Likewise.
5853 (cmp_attrib_identifiers): Likewise.
5854 (simple_cst_list_equal): Likewise.
5855 (omp_declare_simd_clauses_equal): Likewise.
5856 (attribute_value_equal): Likewise.
5857 (comp_type_attributes): Likewise.
5858 (build_type_attribute_variant): Likewise.
5859 (lookup_ident_attribute): Likewise.
5860 (remove_attribute): Likewise.
5861 (merge_attributes): Likewise.
5862 (merge_type_attributes): Likewise.
5863 (merge_decl_attributes): Likewise.
5864 (merge_dllimport_decl_attributes): Likewise.
5865 (handle_dll_attribute): Likewise.
5866 (attribute_list_equal): Likewise.
5867 (attribute_list_contained): Likewise.
5868 * attribs.h (lookup_attribute): New function moved from tree.[ch].
5869 (lookup_attribute_by_prefix): Likewise.
5870 * bb-reorder.c: Include header files.
5871 * builtins.c: Likewise.
5872 * calls.c: Likewise.
5873 * cfgexpand.c: Likewise.
5874 * cgraph.c: Likewise.
5875 * cgraphunit.c: Likewise.
5876 * convert.c: Likewise.
5877 * dwarf2out.c: Likewise.
5878 * final.c: Likewise.
5879 * fold-const.c: Likewise.
5880 * function.c: Likewise.
5881 * gimple-expr.c: Likewise.
5882 * gimple-fold.c: Likewise.
5883 * gimple-pretty-print.c: Likewise.
5884 * gimple.c: Likewise.
5885 * gimplify.c: Likewise.
5886 * hsa-common.c: Likewise.
5887 * hsa-gen.c: Likewise.
5888 * internal-fn.c: Likewise.
5889 * ipa-chkp.c: Likewise.
5890 * ipa-cp.c: Likewise.
5891 * ipa-devirt.c: Likewise.
5892 * ipa-fnsummary.c: Likewise.
5893 * ipa-inline.c: Likewise.
5894 * ipa-visibility.c: Likewise.
5895 * ipa.c: Likewise.
5896 * lto-cgraph.c: Likewise.
5897 * omp-expand.c: Likewise.
5898 * omp-general.c: Likewise.
5899 * omp-low.c: Likewise.
5900 * omp-offload.c: Likewise.
5901 * omp-simd-clone.c: Likewise.
5902 * opts-global.c: Likewise.
5903 * passes.c: Likewise.
5904 * predict.c: Likewise.
5905 * sancov.c: Likewise.
5906 * sanopt.c: Likewise.
5907 * symtab.c: Likewise.
5908 * toplev.c: Likewise.
5909 * trans-mem.c: Likewise.
5910 * tree-chkp.c: Likewise.
5911 * tree-eh.c: Likewise.
5912 * tree-into-ssa.c: Likewise.
5913 * tree-object-size.c: Likewise.
5914 * tree-parloops.c: Likewise.
5915 * tree-profile.c: Likewise.
5916 * tree-ssa-ccp.c: Likewise.
5917 * tree-ssa-live.c: Likewise.
5918 * tree-ssa-loop.c: Likewise.
5919 * tree-ssa-sccvn.c: Likewise.
5920 * tree-ssa-structalias.c: Likewise.
5921 * tree-ssa.c: Likewise.
5922 * tree-streamer-in.c: Likewise.
5923 * tree-vectorizer.c: Likewise.
5924 * tree-vrp.c: Likewise.
5925 * tsan.c: Likewise.
5926 * ubsan.c: Likewise.
5927 * varasm.c: Likewise.
5928 * varpool.c: Likewise.
5929 * tree.c: Remove functions moved to attribs.[ch].
5930 * tree.h: Likewise.
5931 * config/aarch64/aarch64.c: Add attrs.h header file.
5932 * config/alpha/alpha.c: Likewise.
5933 * config/arc/arc.c: Likewise.
5934 * config/arm/arm.c: Likewise.
5935 * config/avr/avr.c: Likewise.
5936 * config/bfin/bfin.c: Likewise.
5937 * config/c6x/c6x.c: Likewise.
5938 * config/cr16/cr16.c: Likewise.
5939 * config/cris/cris.c: Likewise.
5940 * config/darwin.c: Likewise.
5941 * config/epiphany/epiphany.c: Likewise.
5942 * config/fr30/fr30.c: Likewise.
5943 * config/frv/frv.c: Likewise.
5944 * config/ft32/ft32.c: Likewise.
5945 * config/h8300/h8300.c: Likewise.
5946 * config/i386/winnt.c: Likewise.
5947 * config/ia64/ia64.c: Likewise.
5948 * config/iq2000/iq2000.c: Likewise.
5949 * config/lm32/lm32.c: Likewise.
5950 * config/m32c/m32c.c: Likewise.
5951 * config/m32r/m32r.c: Likewise.
5952 * config/m68k/m68k.c: Likewise.
5953 * config/mcore/mcore.c: Likewise.
5954 * config/microblaze/microblaze.c: Likewise.
5955 * config/mips/mips.c: Likewise.
5956 * config/mmix/mmix.c: Likewise.
5957 * config/mn10300/mn10300.c: Likewise.
5958 * config/moxie/moxie.c: Likewise.
5959 * config/msp430/msp430.c: Likewise.
5960 * config/nds32/nds32-isr.c: Likewise.
5961 * config/nds32/nds32.c: Likewise.
5962 * config/nios2/nios2.c: Likewise.
5963 * config/nvptx/nvptx.c: Likewise.
5964 * config/pa/pa.c: Likewise.
5965 * config/pdp11/pdp11.c: Likewise.
5966 * config/powerpcspe/powerpcspe.c: Likewise.
5967 * config/riscv/riscv.c: Likewise.
5968 * config/rl78/rl78.c: Likewise.
5969 * config/rx/rx.c: Likewise.
5970 * config/s390/s390.c: Likewise.
5971 * config/sh/sh.c: Likewise.
5972 * config/sol2.c: Likewise.
5973 * config/sparc/sparc.c: Likewise.
5974 * config/spu/spu.c: Likewise.
5975 * config/stormy16/stormy16.c: Likewise.
5976 * config/tilegx/tilegx.c: Likewise.
5977 * config/tilepro/tilepro.c: Likewise.
5978 * config/v850/v850.c: Likewise.
5979 * config/vax/vax.c: Likewise.
5980 * config/visium/visium.c: Likewise.
5981 * config/xtensa/xtensa.c: Likewise.
5982
5983 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5984
5985 PR target/81593
5986 * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
5987 constraints since the -mupper-regs-* switches have been
5988 eliminated.
5989 (vsx_concat_<mode>_1): New combiner insns to recognize inserting
5990 into a vector from a double word element that was extracted from
5991 another vector, and eliminate extra XXPERMDI instructions.
5992 (vsx_concat_<mode>_2): Likewise.
5993 (vsx_concat_<mode>_3): Likewise.
5994 (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
5995 concat to allow optimizing inserts from previous extracts.
5996
5997 2017-08-07 Uros Bizjak <ubizjak@gmail.com>
5998
5999 * config/i386/i386.c (ix86_stack_protect_guard): Generate
6000 memory reference to a SSP offset in TLS address space.
6001 (ix86_print_operand) <case '@'>: Remove.
6002 (ix86_print_operand_punct_valid_p): Remove '@' code.
6003 * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
6004 UNSPEC_SP_TLS_TEST.
6005 (stack_tls_protect_set_<mode>): Remove.
6006 (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
6007 (stack_tls_protect_test_<mode>): Remove.
6008 (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
6009
6010 2017-08-07 Olivier Hainque <hainque@adacore.com>
6011
6012 PR target/81755
6013 * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
6014
6015 2017-08-07 Douglas Rupp <rupp@adacore.com>
6016
6017 * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
6018 variable was referenced as multidir in command.
6019
6020 2017-08-07 Jakub Jelinek <jakub@redhat.com>
6021
6022 PR c/69389
6023 * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
6024 BIT_FIELD_REF.
6025
6026 2017-08-07 Martin Liska <mliska@suse.cz>
6027
6028 * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
6029 * config/rl78/rl78.c: Add include of attribs.h.
6030 * config/sh/sh.c: Likewise.
6031 * config/v850/v850.c: Likewise.
6032
6033 2017-08-07 Tom de Vries <tom@codesourcery.com>
6034
6035 PR middle-end/78266
6036 * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
6037
6038 2017-08-07 Martin Liska <mliska@suse.cz>
6039
6040 * config/mips/mips.c: Include attribs.h.
6041
6042 2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
6043
6044 PR fortran/68829
6045 * doc/invoke.texi: Document change in behvaior for -Ofast for
6046 Fortran.
6047
6048 2017-08-07 Wilco Dijkstra <wdijkstr@arm.com>
6049
6050 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
6051 Use gen_frame_mem.
6052 (aarch64_pop_regs): Likewise.
6053 (aarch64_gen_load_pair): Likewise.
6054 (aarch64_save_callee_saves): Likewise.
6055 (aarch64_restore_callee_saves): Likewise.
6056
6057 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
6058
6059 * config/i386/i386.c: Revert the last change.
6060
6061 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
6062
6063 PR target/81736
6064 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
6065 to ...
6066 (ix86_finalize_stack_frame_flags): This. Also clear
6067 frame_pointer_needed if -fno-omit-frame-pointer is used without
6068 stack access.
6069 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
6070 with ix86_finalize_stack_frame_flags.
6071 (ix86_expand_epilogue): Likewise.
6072 (ix86_expand_split_stack_prologue): Likewise.
6073
6074 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
6075
6076 PR target/81743
6077 * config/i386/i386.c (get_builtin_code_for_version): Set priority
6078 to P_AES for Westmere.
6079
6080 2017-08-07 Jonathan Yong <10walls@gmail.com>
6081
6082 * config/i386/mingw.opt (fset-stack-executable): Removed.
6083 * config/i386/cygming.opt (fset-stack-executable): Moved
6084 from mingw.opt.
6085 * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
6086
6087 2017-08-07 Segher Boessenkool <segher@kernel.crashing.org>
6088
6089 * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
6090
6091 2017-08-07 Marek Polacek <polacek@redhat.com>
6092
6093 PR middle-end/81737
6094 * fold-const.c (fold_indirect_ref_1): Check type_domain.
6095
6096 2017-08-07 Martin Liska <mliska@suse.cz>
6097
6098 * attribs.h (canonicalize_attr_name): New function.
6099 (cmp_attribs): Move from c-format.c and adjusted.
6100 (is_attribute_p): Moved from tree.h.
6101 * tree-inline.c: Add new includes.
6102 * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
6103 (private_is_attribute_p): Remove.
6104 (private_lookup_attribute): Likewise.
6105 (private_lookup_attribute_by_prefix): Simplify.
6106 (remove_attribute): Use is_attribute_p.
6107 * tree.h: Remove removed declarations.
6108
6109 2017-08-07 Jakub Jelinek <jakub@redhat.com>
6110
6111 PR middle-end/81698
6112 * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
6113 instead of computing it in the function. Formatting fix.
6114 (expand_case): Don't rely on default_edge being the first edge,
6115 clear it if removing it, pass default_edge to
6116 emit_case_dispatch_table.
6117 (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
6118 fix.
6119
6120 2017-08-06 Uros Bizjak <ubizjak@gmail.com>
6121
6122 * config/alpha/alpha.c (alpha_reorg): If trap is the last active
6123 insn in the function, emit NOP after the insn.
6124
6125 2017-08-06 Tom de Vries <tom@codesourcery.com>
6126
6127 * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
6128 and element loops.
6129
6130 2017-08-06 Tom de Vries <tom@codesourcery.com>
6131
6132 * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
6133 loop.
6134
6135 2017-08-04 Yury Gribov <tetra2005@gmail.com>
6136
6137 PR tree-optimization/57371
6138 * match.pd: New pattern.
6139
6140 2017-08-04 Marek Polacek <polacek@redhat.com>
6141
6142 PR middle-end/81695
6143 * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
6144 perform the computation in offset_int.
6145
6146 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
6147
6148 PR tree-optimization/81136
6149 * tree-vectorizer.h: Include tree-hash-traits.h.
6150 (vec_base_alignments): New typedef.
6151 (vec_info): Add a base_alignments field.
6152 (vect_record_base_alignments): Declare.
6153 * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
6154 field.
6155 (DR_IS_CONDITIONAL_IN_STMT): New macro.
6156 (create_data_ref): Add an is_conditional_in_stmt argument.
6157 * tree-data-ref.c (create_data_ref): Likewise. Use it to initialize
6158 the is_conditional_in_stmt field.
6159 (data_ref_loc): Add an is_conditional_in_stmt field.
6160 (get_references_in_stmt): Set the is_conditional_in_stmt field.
6161 (find_data_references_in_stmt): Update call to create_data_ref.
6162 (graphite_find_data_references_in_stmt): Likewise.
6163 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
6164 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
6165 (vect_record_base_alignment): New function.
6166 (vect_record_base_alignments): Likewise.
6167 (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
6168 for nested statements even if we fail to compute a misalignment.
6169 Use pooled base alignments for unconditional references.
6170 (vect_find_same_alignment_drs): Compare base addresses instead
6171 of base objects.
6172 (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
6173 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
6174
6175 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
6176
6177 * tree-vectorizer.h (vec_info): Add a constructor and destructor.
6178 Add an explicit name for the enum. Use auto_vec for slp_instances
6179 and grouped_stores.
6180 (_loop_vec_info): Add a constructor and destructor. Use auto_vec
6181 for all vectors.
6182 (_bb_vec_info): Add a constructor and destructor.
6183 (vinfo_for_stmt): Return NULL for uids of -1 as well.
6184 (destroy_loop_vec_info): Delete.
6185 (vect_destroy_datarefs): Likewise.
6186 * tree-vectorizer.c (vect_destroy_datarefs): Delete.
6187 (vec_info::vec_info): New function.
6188 (vec_info::~vec_info): Likewise.
6189 (vectorize_loops): Use delete instead of destroy_loop_vec_info.
6190 * tree-parloops.c (gather_scalar_reductions): Use delete instead of
6191 destroy_loop_vec_info.
6192 * tree-vect-loop.c (new_loop_vec_info): Replace with...
6193 (_loop_vec_info::_loop_vec_info): ...this.
6194 (destroy_loop_vec_info): Replace with...
6195 (_loop_vec_info::~_loop_vec_info): ...this. Unconditionally delete
6196 the stmt_vec_infos. Leave handling of vec_info information to its
6197 destructor. Remove explicit vector releases.
6198 (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
6199 (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
6200 * tree-vect-slp.c (new_bb_vec_info): Replace with...
6201 (_bb_vec_info::_bb_vec_info): ...this. Don't reserve space in
6202 BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
6203 (destroy_bb_vec_info): Replace with...
6204 (_bb_vec_info::~_bb_vec_info): ...this. Leave handling of vec_info
6205 information to its destructor.
6206 (vect_slp_analyze_bb_1): Use new and delete instead of
6207 new_bb_vec_info and destroy_bb_vec_info.
6208 (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
6209 single delete.
6210
6211 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
6212
6213 * tree-data-ref.h (subscript): Add access_fn field.
6214 (data_dependence_relation): Add could_be_independent_p.
6215 (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
6216 (same_access_functions): Move to tree-data-ref.c.
6217 * tree-data-ref.c (ref_contains_union_access_p): New function.
6218 (access_fn_component_p): Likewise.
6219 (access_fn_components_comparable_p): Likewise.
6220 (dr_analyze_indices): Add a reference to access_fn_component_p.
6221 (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
6222 DR_ACCESS_FN.
6223 (constant_access_functions): Likewise.
6224 (add_other_self_distances): Likewise.
6225 (same_access_functions): Likewise. (Moved from tree-data-ref.h.)
6226 (initialize_data_dependence_relation): Use XCNEW and remove
6227 explicit zeroing of DDR_REVERSED_P. Look for a subsequence
6228 of access functions that have the same type. Allow the
6229 subsequence to end with different bases in some circumstances.
6230 Record the chosen access functions in SUB_ACCESS_FN.
6231 (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
6232 a_index and b_index. Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
6233 (subscript_dependence_tester_1): Likewise dra and drb.
6234 (build_classic_dist_vector): Update calls accordingly.
6235 (subscript_dependence_tester): Likewise.
6236 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
6237 DDR_COULD_BE_INDEPENDENT_P.
6238 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
6239 comp_alias_ddrs instead of may_alias_ddrs.
6240 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
6241 New function.
6242 (vect_analyze_data_ref_dependence): Use it if
6243 DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
6244 distance vectors if that fails.
6245 (dependence_distance_ge_vf): New function.
6246 (vect_prune_runtime_alias_test_list): Use it. Don't clear
6247 LOOP_VINFO_MAY_ALIAS_DDRS.
6248
6249 2017-08-04 Richard Biener <rguenther@suse.de>
6250
6251 PR middle-end/81705
6252 * fold-const.c (fold_binary_loc): Properly restrict
6253 minus_var0 && minus_var1 case when associating undefined overflow
6254 entities.
6255
6256 2017-08-04 Tom de Vries <tom@codesourcery.com>
6257
6258 * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
6259
6260 2017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6261
6262 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6263 Don't start diagnostic messages with a capital letter.
6264 * config/rs6000/rs6000.c (rs6000_option_override_internal):
6265 Likewise.
6266 (rs6000_invalid_builtin): Likewise.
6267 (rs6000_trampoline_init): Likewise.
6268
6269 2017-08-03 Jakub Jelinek <jakub@redhat.com>
6270
6271 PR target/81621
6272 * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
6273 after setting changeable df flags.
6274
6275 2017-08-03 Richard Biener <rguenther@suse.de>
6276
6277 * tree-ssa-reassoc.c (should_break_up_subtract): Also break
6278 up if the use is in USE - X.
6279
6280 2017-08-03 Alexander Monakov <amonakov@ispras.ru>
6281
6282 * toplev.c (dumpfile.h): New include.
6283 (internal_error_reentered): New static function. Use it...
6284 (internal_error_function): ...here to handle reentered internal_error.
6285
6286 2017-08-03 Richard Biener <rguenther@suse.de>
6287
6288 PR middle-end/81148
6289 * fold-const.c (split_tree): Add minus_var and minus_con
6290 arguments, remove unused loc arg. Never generate NEGATE_EXPRs
6291 here but always use minus_*.
6292 (associate_trees): Assert we never associate with MINUS_EXPR
6293 and NULL first operand. Do not recurse for PLUS_EXPR operands
6294 when associating as MINUS_EXPR either.
6295 (fold_binary_loc): Track minus_var and minus_con.
6296
6297 2017-08-03 Tom de Vries <tom@codesourcery.com>
6298
6299 PR lto/81430
6300 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
6301 ACCEL_COMPILER, apply finish_options on
6302 DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
6303
6304 2017-08-03 Tom de Vries <tom@codesourcery.com>
6305
6306 PR target/81662
6307 * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
6308 function_entry_patch_area_size > 0.
6309
6310 2017-08-03 Jakub Jelinek <jakub@redhat.com>
6311
6312 PR driver/81650
6313 * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
6314 instead of 10??LU, perform unit multiplication in wide_int,
6315 don't change alloc_object_size_limit if the limit is larger
6316 than SSIZE_MAX.
6317
6318 PR tree-optimization/81655
6319 PR tree-optimization/81588
6320 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
6321 the case when ranges[i].low and high are 1 for unsigned type with
6322 precision 1.
6323
6324 PR middle-end/81052
6325 * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
6326 (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
6327
6328 2017-08-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6329
6330 * tree-vrp.h: Add include guard.
6331
6332 2017-08-02 Uros Bizjak <ubizjak@gmail.com>
6333
6334 PR target/81644
6335 * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
6336 (ud2): New insn pattern.
6337 * config/i386/i386.c (ix86_expand_epilogue):
6338 For naked functions, generate ud2 instead of trap insn.
6339
6340 2017-08-02 Marek Polacek <polacek@redhat.com>
6341
6342 PR other/81667
6343 * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
6344
6345 2017-08-02 Tom de Vries <tom@codesourcery.com>
6346 Cesar Philippidis <cesar@codesourcery.com>
6347
6348 * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
6349 Add missing edge probabilities.
6350
6351 2017-08-02 Tamar Christina <tamar.christina@arm.com>
6352
6353 * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
6354 Correct endianness.
6355
6356 2017-08-02 Jakub Jelinek <jakub@redhat.com>
6357
6358 PR middle-end/79499
6359 * function.c (thread_prologue_and_epilogue_insns): Determine blocks
6360 for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
6361 of first NONDEBUG_INSN_P in each of the split_prologue_seq and
6362 prologue_seq sequences - if any.
6363
6364 2017-08-02 Richard Biener <rguenther@suse.de>
6365
6366 * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
6367 via vectors if supported, integer extracts via punning if supported
6368 or otherwise vector extracts.
6369
6370 2017-08-02 Richard Biener <rguenther@suse.de>
6371
6372 * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
6373 into ...
6374 (bitmap_insert_into_set): ... this.
6375
6376 2017-08-02 Richard Biener <rguenther@suse.de>
6377
6378 PR tree-optimization/81633
6379 Revert
6380 2015-08-17 Alan Hayward <alan.hayward@arm.com>
6381
6382 PR tree-optimization/71752
6383 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
6384
6385 2017-08-01 Daniel Santos <daniel.santos@pobox.com>
6386
6387 * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
6388 (machine_function::call_ms2sysv_pad_out): Remove field.
6389 * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
6390 (ix86_compute_frame_layout): Likewise.
6391
6392 2017-08-01 H.J. Lu <hongjiu.lu@intel.com>
6393
6394 PR target/81654
6395 * config/i386/i386.c (ix86_set_func_type): Disallow naked
6396 attribute with interrupt attribute.
6397
6398 2017-08-01 Andrew Pinski <apinski@cavium.com>
6399
6400 * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
6401 BIT_INSERT_EXPR's operand 1
6402 to see if the types precision matches.
6403
6404 2017-08-01 Martin Liska <mliska@suse.cz>
6405
6406 PR middle-end/70140
6407 * builtins.c (expand_builtin_memcpy_args): Remove.
6408 (expand_builtin_memcpy): Call newly added function
6409 expand_builtin_memory_copy_args.
6410 (expand_builtin_memcpy_with_bounds): Likewise.
6411 (expand_builtin_mempcpy): Remove last argument.
6412 (expand_builtin_mempcpy_with_bounds): Likewise.
6413 (expand_builtin_memory_copy_args): New function created from
6414 expand_builtin_mempcpy_args with small modifications.
6415 (expand_builtin_mempcpy_args): Remove.
6416 (expand_builtin_stpcpy): Remove unused argument.
6417 (expand_builtin): Likewise.
6418 (expand_builtin_with_bounds): Likewise.
6419
6420 2017-08-01 Martin Liska <mliska@suse.cz>
6421
6422 Revert r250771
6423 Make mempcpy more optimal (PR middle-end/70140).
6424
6425 2017-08-01 Jakub Jelinek <jakub@redhat.com>
6426
6427 PR target/81622
6428 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
6429 __builtin_vec_cmpne verify both arguments are compatible vectors
6430 before looking at TYPE_MODE on the element type. For __builtin_vec_ld
6431 verify arg1_type is a pointer or array type. For __builtin_vec_st,
6432 move computation of aligned to after checking the argument types.
6433 Formatting fixes.
6434
6435 PR target/80846
6436 * config/rs6000/vsx.md (vextract_fp_from_shorth,
6437 vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
6438 calls.
6439
6440 2017-08-01 Jerome Lambourg <lambourg@adacore.com>
6441 Doug Rupp <rupp@adacore.com>
6442 Olivier Hainque <hainque@adacore.com>
6443
6444 * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
6445 well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
6446 arm8 (arch v4).
6447 * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
6448 for TARGET_OS_CPP_BUILTIN.
6449 (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
6450 refine CPU definitions for arm_arch5 and add those for arm_arch6 and
6451 arm_arch7.
6452 (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
6453 passing required abi options to the assembler for EABI configurations.
6454 (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
6455 of .text.hot and .text.unlikely sections for kernel modules when
6456 using ARM style exceptions.
6457 (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
6458 options. Add EXTRA_CC1_SPEC.
6459 (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
6460 toolchain options.
6461 (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
6462 transition.
6463 (ARM_TARGET2_DWARF_FORMAT): Define.
6464 * config/arm/t-vxworks: Adjust multilib control to removal of the
6465 Diab command line options.
6466
6467 2017-08-01 Martin Liska <mliska@suse.cz>
6468
6469 PR gcov-profile/81561
6470 * gcov.c (unblock): Make unblocking safe as we need to preserve
6471 index correspondence of blocks and block_lists.
6472
6473 2017-08-01 Richard Biener <rguenther@suse.de>
6474
6475 PR tree-optimization/81181
6476 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
6477 (compute_antic): ... end of iteration here.
6478
6479 2017-08-01 James Greenhalgh <james.greenhalgh@arm.com>
6480
6481 * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
6482 (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
6483 (ftree-slp-vectorize): Likewise.
6484 * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
6485 can no longer be set independent of flag_tree_loop_vectorize.
6486 * omp-general.c (emp_max_vf): Likewise.
6487 * opts.c (enable_fdo_optimizations): Remove references to
6488 flag_tree_vectorize, these are now implicit.
6489 (common_handle_option): Remove handling for OPT_ftree_vectorize,
6490 and leave it for the options machinery.
6491
6492 2017-08-01 Martin Liska <mliska@suse.cz>
6493
6494 PR middle-end/70140
6495 * builtins.c (expand_builtin_memcpy_args): Remove.
6496 (expand_builtin_memcpy): Call newly added function
6497 expand_builtin_memory_copy_args.
6498 (expand_builtin_memcpy_with_bounds): Likewise.
6499 (expand_builtin_mempcpy): Remove last argument.
6500 (expand_builtin_mempcpy_with_bounds): Likewise.
6501 (expand_builtin_memory_copy_args): New function created from
6502 expand_builtin_mempcpy_args with small modifications.
6503 (expand_builtin_mempcpy_args): Remove.
6504 (expand_builtin_stpcpy): Remove unused argument.
6505 (expand_builtin): Likewise.
6506 (expand_builtin_with_bounds): Likewise.
6507
6508 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
6509
6510 PR target/81641
6511 * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
6512 print "ds:" only for immediates in generic address space.
6513
6514 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
6515
6516 PR target/81639
6517 * config/i386/i386.c (ix86_funciton_naked): New prototype.
6518 (ix86_function_ok_for_sibcall): Return false for naked functions.
6519
6520 2017-08-01 Richard Biener <rguenther@suse.de>
6521
6522 * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
6523 (compute_antic): Seed worklist with exit block predecessors.
6524 * cfganal.c (dfs_find_deadend): For a cycle return the source
6525 of the edge closing it.
6526
6527 2017-08-01 Tamar Christina <tamar.christina@arm.com>
6528
6529 * config/aarch64/aarch64.c
6530 (aarch64_can_const_movi_rtx_p): Move 0 check.
6531
6532 2017-08-01 Bin Cheng <bin.cheng@arm.com>
6533
6534 * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
6535 * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
6536 above macro.
6537 * match.pd: Ditto in address comparison pattern.
6538
6539 2017-08-01 Bin Cheng <bin.cheng@arm.com>
6540
6541 PR tree-optimization/81627
6542 * tree-predcom.c (prepare_finalizers): Always rewrite into loop
6543 closed ssa form for store-store chain.
6544
6545 2017-08-01 Bin Cheng <bin.cheng@arm.com>
6546
6547 PR tree-optimization/81620
6548 * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
6549 for store-store chain.
6550
6551 2017-08-01 Jakub Jelinek <jakub@redhat.com>
6552
6553 PR tree-optimization/81588
6554 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
6555 ranges[i].in_p, invert comparison code ccode. For >/>=,
6556 swap rhs1 and rhs2 and comparison code unconditionally,
6557 for </<= don't do that. Don't swap rhs1/rhs2 again if
6558 ranges[i].in_p, instead invert comparison code ccode if
6559 opcode or oe->rank is BIT_IOR_EXPR.
6560
6561 PR target/80846
6562 * optabs.def (vec_extract_optab, vec_init_optab): Change from
6563 a direct optab to conversion optab.
6564 * optabs.c (expand_vector_broadcast): Use convert_optab_handler
6565 with GET_MODE_INNER as last argument instead of optab_handler.
6566 * expmed.c (extract_bit_field_1): Likewise. Use vector from
6567 vector extraction if possible and optab is available.
6568 * expr.c (store_constructor): Use convert_optab_handler instead
6569 of optab_handler. Use vector initialization from smaller
6570 vectors if possible and optab is available.
6571 * tree-vect-stmts.c (vectorizable_load): Likewise.
6572 * doc/md.texi (vec_extract, vec_init): Document that the optabs
6573 now have two modes.
6574 * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
6575 of vec_init from half-sized vectors with the same element mode.
6576 * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
6577 (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
6578 (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
6579 reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
6580 reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
6581 after mode in gen_vec_extract* calls.
6582 (vec_extract<mode>): Renamed to ...
6583 (vec_extract<mode><ssescalarmodelower>): ... this.
6584 (vec_extract<mode><ssehalfvecmodelower>): New expander.
6585 (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
6586 element mode after mode in gen_vec_init* calls.
6587 (VEC_INIT_HALF_MODE): New mode iterator.
6588 (vec_init<mode>): Renamed to ...
6589 (vec_init<mode><ssescalarmodelower>): ... this.
6590 (vec_init<mode><ssehalfvecmodelower>): New expander.
6591 * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
6592 (vec_extractv2sfsf): ... this.
6593 (vec_initv2sf): Renamed to ...
6594 (vec_initv2sfsf): ... this.
6595 (vec_extractv2si): Renamed to ...
6596 (vec_extractv2sisi): ... this.
6597 (vec_initv2si): Renamed to ...
6598 (vec_initv2sisi): ... this.
6599 (vec_extractv4hi): Renamed to ...
6600 (vec_extractv4hihi): ... this.
6601 (vec_initv4hi): Renamed to ...
6602 (vec_initv4hihi): ... this.
6603 (vec_extractv8qi): Renamed to ...
6604 (vec_extractv8qiqi): ... this.
6605 (vec_initv8qi): Renamed to ...
6606 (vec_initv8qiqi): ... this.
6607 * config/rs6000/vector.md (VEC_base_l): New mode attribute.
6608 (vec_init<mode>): Renamed to ...
6609 (vec_init<mode><VEC_base_l>): ... this.
6610 (vec_extract<mode>): Renamed to ...
6611 (vec_extract<mode><VEC_base_l>): ... this.
6612 * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
6613 (vec_initv2sfsf): ... this.
6614 * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
6615 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
6616 vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
6617 element mode after mode in gen_vec_init* calls.
6618 * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
6619 (vec_init<mode><Vel>): ... this.
6620 (vec_extract<mode>): Renamed to ...
6621 (vec_extract<mode><Vel>): ... this.
6622 * config/aarch64/iterators.md (Vel): New mode attribute.
6623 * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
6624 Add element mode after mode in gen_vec_extract* calls.
6625 * config/s390/vector.md (non_vec_l): New mode attribute.
6626 (vec_extract<mode>): Renamed to ...
6627 (vec_extract<mode><non_vec_l>): ... this.
6628 (vec_init<mode>): Renamed to ...
6629 (vec_init<mode><non_vec_l>): ... this.
6630 * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
6631 s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
6632 vec_extract mode.
6633 * config/arm/iterators.md (V_elem_l): New mode attribute.
6634 * config/arm/neon.md (vec_extract<mode>): Renamed to ...
6635 (vec_extract<mode><V_elem_l>): ... this.
6636 (vec_extractv2di): Renamed to ...
6637 (vec_extractv2didi): ... this.
6638 (vec_init<mode>): Renamed to ...
6639 (vec_init<mode><V_elem_l>): ... this.
6640 (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
6641 reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
6642 reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
6643 Add element mode after gen_vec_extract* calls.
6644 * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
6645 (vec_init<mode><unitmode>): ... this.
6646 (vec_extract<mode>): Renamed to ...
6647 (vec_extract<mode><unitmode>): ... this.
6648 * config/mips/loongson.md (vec_init<mode>): Renamed to ...
6649 (vec_init<mode><unitmode>): ... this.
6650 * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
6651 (vec_initv2sfsf): ... this.
6652 (vec_extractv2sf): Renamed to ...
6653 (vec_extractv2sfsf): ... this.
6654 (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
6655 Add element mode after gen_vec_extract* calls.
6656 * config/mips/mips.md (unitmode): New mode iterator.
6657 * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
6658 spu_builtin_extract): Add element mode after gen_vec_extract* calls.
6659 * config/spu/spu.md (inner_l): New mode attribute.
6660 (vec_init<mode>): Renamed to ...
6661 (vec_init<mode><inner_l>): ... this.
6662 (vec_extract<mode>): Renamed to ...
6663 (vec_extract<mode><inner_l>): ... this.
6664 * config/sparc/sparc.md (veltmode): New mode iterator.
6665 (vec_init<VMALL:mode>): Renamed to ...
6666 (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
6667 * config/ia64/vect.md (vec_initv2si): Renamed to ...
6668 (vec_initv2sisi): ... this.
6669 (vec_initv2sf): Renamed to ...
6670 (vec_initv2sfsf): ... this.
6671 (vec_extractv2sf): Renamed to ...
6672 (vec_extractv2sfsf): ... this.
6673 * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
6674 (vec_init<mode>): Renamed to ...
6675 (vec_init<mode><VEC_base_l>): ... this.
6676 (vec_extract<mode>): Renamed to ...
6677 (vec_extract<mode><VEC_base_l>): ... this.
6678 * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
6679 (vec_initv2sfsf): ... this.
6680 * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
6681 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
6682 vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
6683 gen_vec_init* calls.
6684
6685 2017-08-01 Richard Biener <rguenther@suse.de>
6686
6687 PR tree-optimization/81297
6688 * tree-vrp.c (get_single_symbol): Remove assert, instead drop
6689 TREE_OVERFLOW from INTEGER_CSTs.
6690
6691 2017-07-31 Segher Boessenkool <segher@kernel.crashing.org>
6692
6693 * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
6694
6695 2017-07-31 Carl Love <cel@us.ibm.com>
6696
6697 * config/rs6000/rs6000-c: Add support for built-in functions
6698 vector signed char vec_xl_be (signed long long, signed char *);
6699 vector unsigned char vec_xl_be (signed long long, unsigned char *);
6700 vector signed int vec_xl_be (signed long long, signed int *);
6701 vector unsigned int vec_xl_be (signed long long, unsigned int *);
6702 vector signed long long vec_xl_be (signed long long, signed long long *);
6703 vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
6704 vector signed short vec_xl_be (signed long long, signed short *);
6705 vector unsigned short vec_xl_be (signed long long, unsigned short *);
6706 vector double vec_xl_be (signed long long, double *);
6707 vector float vec_xl_be (signed long long, float *);
6708 * config/rs6000/altivec.h (vec_xl_be): Add #define.
6709 * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
6710 XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
6711 for the builtins.
6712 * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
6713 (altivec_expand_builtin): Add switch statement to call
6714 altivec_expand_xl_be for each builtin.
6715 (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
6716 __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
6717 __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
6718 __builtin_vsx_le_be_v16qi.
6719 * doc/extend.texi: Update the built-in documentation file for the
6720 new built-in functions.
6721
6722 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
6723
6724 PR target/25967
6725 * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
6726 New function.
6727 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
6728
6729 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6730
6731 * config.gcc: Add z14.
6732 * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
6733 CPU model numbers for z13s and z14.
6734 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
6735 arch12 with z14.
6736 * config/s390/s390-opts.h (enum processor_type): Rename
6737 PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
6738 * config/s390/s390.c (processor_table): Add field for CPU name to
6739 be passed to Binutils.
6740 (s390_asm_output_machine_for_arch): Use the new field in
6741 processor_table for Binutils.
6742 (s390_expand_builtin): Replace arch12 with z14.
6743 (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
6744 (s390_get_sched_attrmask): Likewise.
6745 (s390_get_unit_mask): Likewise.
6746 * config/s390/s390.opt: Add z14 to processor_type enum.
6747
6748 2017-07-31 Martin Jambor <mjambor@suse.cz>
6749
6750 PR hsa/81477
6751 * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
6752 regardless of optimization level.
6753
6754 2017-07-31 Jan Hubicka <hubicka@ucw.cz>
6755 Martin Liska <mliska@suse.cz>
6756
6757 * predict.def: Remove old comment and adjust probability.
6758 * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
6759 PREDICT statements.
6760
6761 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
6762
6763 PR target/25967
6764 * config/i386/i386.c (ix86_function_naked): New function.
6765 (ix86_can_use_return_insn_p): Return false for naked functions.
6766 (ix86_expand_prologue): Skip prologue for naked functions.
6767 (ix86_expand_epilogue): Skip epilogue for naked functions
6768 and emit trap instruction.
6769 (ix86_warn_func_return): New function.
6770 (ix86_attribute_table): Add "naked" attribute specification.
6771 (TARGET_WARN_FUNC_RETURN): Define.
6772 * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
6773
6774 2017-07-31 Martin Liska <mliska@suse.cz>
6775
6776 * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
6777 (dump_gimple_bb_header): Always dump BB info.
6778 (pp_cfg_jump): Do not append info about BB when dumping a jump.
6779
6780 2017-07-31 Martin Liska <mliska@suse.cz>
6781
6782 PR sanitize/81530
6783 * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
6784 also with current_function_decl non-null equality.
6785
6786 2017-07-31 Jakub Jelinek <jakub@redhat.com>
6787
6788 PR sanitizer/81604
6789 * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
6790 change type to the element type, instead add eltype variable and
6791 use it where we are interested in the element type.
6792
6793 PR tree-optimization/81603
6794 * ipa-polymorphic-call.c
6795 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
6796 offset arithmetic in offset_int, bail out if the resulting bit offset
6797 doesn't fit into shwi.
6798
6799 2017-07-31 Martin Liska <mliska@suse.cz>
6800
6801 * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
6802 (gimplify_save_expr): Fix comment.
6803
6804 2017-07-30 H.J. Lu <hongjiu.lu@intel.com>
6805
6806 PR target/79793
6807 * config/i386/i386.c (ix86_function_arg): Update arguments for
6808 exception handler.
6809 (ix86_compute_frame_layout): Set the initial stack offset to
6810 INCOMING_FRAME_SP_OFFSET. Update red-zone offset with
6811 INCOMING_FRAME_SP_OFFSET.
6812 (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
6813 stack before exception handler returns.
6814 * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
6815 the 'ERROR_CODE' for exception handler.
6816
6817 2017-07-30 Uros Bizjak <ubizjak@gmail.com>
6818
6819 * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
6820 (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
6821 (ASM_OUTPUT_REG_POP): Ditto.
6822 * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
6823 instead of asm_fprintf to output pure string.
6824
6825 2017-07-29 Jakub Jelinek <jakub@redhat.com>
6826
6827 * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
6828 to imported_module_or_decl hook.
6829 (debug_nothing_tree_tree_tree_bool): Remove.
6830 (debug_nothing_tree_tree_tree_bool_bool): New declaration.
6831 * debug.c (do_nothing_debug_hooks): Use
6832 debug_nothing_tree_tree_tree_bool_bool instead of
6833 debug_nothing_tree_tree_tree_bool.
6834 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
6835 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
6836 * sdbout.c (sdb_debug_hooks): Likewise.
6837 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
6838 (gen_namespace_die): Add DW_AT_export_symbols attribute if
6839 langhook wants it.
6840 (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
6841 if true, -gdwarf-5 and decl will have DW_AT_export_symbols
6842 attribute, don't add anything.
6843
6844 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6845
6846 * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
6847 (fold_build2_stat_loc): Likewise.
6848 (fold_build3_stat_loc): Likewise.
6849 * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
6850 (fold_build1_loc): Remove macro.
6851 (fold_build2_loc): Likewise.
6852 (fold_build3_loc): Likewise.
6853
6854 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6855
6856 * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
6857 (gimple_build_debug_bind_source_stat): Likewise.
6858 * gimple.h (gimple_build_debug_bind): Remove macro.
6859 (gimple_build_debug_bind_source): Likewise.
6860
6861 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6862
6863 * bitmap.c (bitmap_alloc): Adjust.
6864 (bitmap_gc_alloc): Likewise.
6865 * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
6866
6867 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6868
6869 * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
6870 (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
6871 * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
6872 (bitmap_gc_alloc_stat): Likewise.
6873 (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
6874
6875 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6876
6877 * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
6878 * rtl.h (shallow_copy_rtx): Remove macro.
6879
6880 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6881
6882 * emit-rtl.c (gen_raw_REG): Adjust.
6883 * gengenrtl.c (gendef): Likewise.
6884 * rtl.c (rtx_alloc_stat): Remove _stat from name.
6885 * rtl.h (rtx_alloc): Remove macro.
6886
6887 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6888
6889 * tree.c (build_tree_list_vec_stat): Remove _stat from name.
6890 (build_tree_list_stat): Likewise.
6891 * tree.h (build_tree_list): Remove macro.
6892 (build_tree_list_vec): Likewise.
6893
6894 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6895
6896 * tree.c (make_vector_stat): Remove _stat from name.
6897 (build_vector_stat): Likewise.
6898 * tree.h (make_vector_stat): Remove macro.
6899 (build_vector_stat): Likewise.
6900
6901 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6902
6903 * tree.h (build_var_debug_value): Remove prototype.
6904
6905 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6906
6907 * tree.c (tree_cons_stat): Remove _stat from name.
6908 * tree.h (tree_cons): Remove macro.
6909
6910 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6911
6912 * tree.c (build_vl_exp_stat): Remove _stat from name.
6913 * tree.h (build_vl_exp): Remove macro.
6914
6915 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6916
6917 * tree.c (build_decl_stat): Remove _stat from name.
6918 * tree.h (build_decl): Remove macro.
6919
6920 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6921
6922 * gimple.c (gimple_build_with_ops_stat): Adjust.
6923 (gimple_alloc_stat): Remove _stat from name.
6924 * gimple.h (gimple_alloc): Remove macro.
6925
6926 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6927
6928 * tree.c (make_tree_vec_stat): Remove _stat from name.
6929 (grow_tree_vec_stat): Likewise.
6930 * tree.h (make_tree_vec_stat): Adjust prototype.
6931 (grow_tree_vec_stat): Likewise.
6932 (make_tree_vec): Remove macro.
6933 (grow_tree_vec): Likewise.
6934
6935 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6936
6937 * fold-const.c (fold_build1_stat_loc): Adjust.
6938 (fold_build2_stat_loc): Likewise.
6939 (fold_build3_stat_loc): Likewise.
6940 * tree.c (build0_stat): Remove _stat from name.
6941 (build1_stat): Likewise.
6942 (build2_stat): Likewise.
6943 (build3_stat): Likewise.
6944 (build4_stat): Likewise.
6945 (build5_stat): Likewise.
6946 * tree.h (build1_loc): Remove macro, and rename _stat function
6947 to this.
6948 (build2_loc): Likewise.
6949 (build3_loc): Likewise.
6950 (build4_loc): Likewise.
6951 (build5_loc): Likewise.
6952
6953 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6954
6955 * tree.c (make_int_cst_stat): Remove _stat from name.
6956 * tree.h (make_int_cst_stat): Adjust prototype.
6957 (make_int_cst): Remove macro.
6958
6959 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6960
6961 * tree.c (make_tre_binfo_stat): Remove _stat from name.
6962 * tree.h (make_tree_binfo_stat): Adjust prototype.
6963 (make_tree_binfo): Remove.
6964
6965 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6966
6967 * tree.c (copy_node_stat): Rename to copy_node.
6968 (build_distinct_type_copy): Adjust.
6969 * tree.h (copy_node_stat): Adjust prototype.
6970 (copy_node): Remove macro.
6971
6972 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6973
6974 * tree.c (make_node_stat): rename to make_node.
6975 (build_tree_list_stat): Adjust.
6976 (build0_stat): Likewise.
6977 (build2_stat): Likewise.
6978 (build3_stat): Likewise.
6979 (build4_stat): Likewise.
6980 (build5_stat): Likewise.
6981 (build_decl_stat): Likewise.
6982 * tree.h (make_node_stat): Adjust prototype.
6983 (make_node): remove macro.
6984
6985 2017-07-28 Peter Bergner <bergner@vnet.ibm.com>
6986
6987 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
6988 (PPC_FEATURE2_SCV): Likewise.
6989 * config/rs6000/rs6000.c (cpu_supports_info): Use them.
6990
6991 2017-07-28 Tamar Christina <tamar.christina@arm.com>
6992
6993 * config/aarch64/aarch64.c
6994 (aarch64_internal_mov_immediate): Add new special pattern.
6995 * config/aarch64/aarch64.md (*movdi_aarch64):
6996 Add reg/32bit const mov case.
6997
6998 2017-07-28 Tamar Christina <tamar.christina@arm.com>
6999 Richard Sandiford <richard.sandiford@linaro.org>
7000
7001 * config/aarch64/aarch64.md (mov<mode>): Generalize.
7002 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
7003 Add integer and movi cases.
7004 (movi-split-hf-df-sf split, fp16): New.
7005 (enabled): Added TARGET_FP_F16INST.
7006 * config/aarch64/iterators.md (GPF_HF): New.
7007 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
7008
7009 2017-07-28 Tamar Christina <tamar.christina@arm.com>
7010
7011 * config/aarch64/aarch64.c
7012 (aarch64_simd_container_mode): Add prototype.
7013 (aarch64_expand_mov_immediate): Add HI support.
7014 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
7015 (aarch64_can_const_movi_rtx_p): New.
7016 (aarch64_preferred_reload_class):
7017 Remove restrictions of using FP registers for certain SIMD operations.
7018 (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
7019 (aarch64_valid_floating_const): Add integer move validation.
7020 (aarch64_simd_imm_scalar_p): Remove.
7021 (aarch64_output_scalar_simd_mov_immediate): Generalize function.
7022 (aarch64_legitimate_constant_p): Expand list of supported cases.
7023 * config/aarch64/aarch64-protos.h
7024 (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
7025 (aarch64_reinterpret_float_as_int): New.
7026 (aarch64_simd_imm_scalar_p): Remove.
7027 * config/aarch64/constraints.md (Uvi): New.
7028 (Dd): Split into Ds and new Dd.
7029 * config/aarch64/aarch64.md (*movsi_aarch64):
7030 Add SIMD mov case.
7031 (*movdi_aarch64): Add SIMD mov case.
7032
7033 2017-07-28 Bin Cheng <bin.cheng@arm.com>
7034
7035 * tree-predcom.c: (struct chain): Handle store-store chain in which
7036 stores for elimination only store loop invariant values.
7037 (execute_pred_commoning_chain): Ditto.
7038 (prepare_initializers_chain_store_elim): Ditto.
7039 (prepare_finalizers): Ditto.
7040 (is_inv_store_elimination_chain): New function.
7041 (initialize_root_vars_store_elim_1): New function.
7042
7043 2017-07-28 Bin Cheng <bin.cheng@arm.com>
7044
7045 * tree-predcom.c: Revise general description of the pass.
7046 (enum chain_type): New enum type for store elimination.
7047 (struct chain): New field supporting store elimination.
7048 (struct component): Ditto.
7049 (dump_chain): Dump store-stores chain.
7050 (release_chain): Release resources.
7051 (split_data_refs_to_components): Compute and create component
7052 contains only stores for elimination.
7053 (get_chain_last_ref_at): New function.
7054 (make_invariant_chain): Initialization.
7055 (make_rooted_chain): Specify chain type in parameter and record it.
7056 (add_looparound_copies): Skip for store-stores chain.
7057 (determine_roots_comp): Compute type of chain and pass it to
7058 make_rooted_chain.
7059 (initialize_root_vars_store_elim_2): New function.
7060 (finalize_eliminated_stores): New function.
7061 (remove_stmt): Handle store for elimination.
7062 (execute_pred_commoning_chain): Execute predictive commoning on
7063 store-store chains.
7064 (determine_unroll_factor): Skip unroll for store-stores chain.
7065 (prepare_initializers_chain_store_elim): New function.
7066 (prepare_initializers_chain): Hanlde store-store chain.
7067 (prepare_finalizers_chain, prepare_finalizers): New function.
7068 (tree_predictive_commoning_loop): Return integer value indicating
7069 if loop is unrolled or lcssa form is corrupted.
7070 (tree_predictive_commoning): Rewrite for lcssa form if necessary.
7071
7072 2017-07-28 Bin Cheng <bin.cheng@arm.com>
7073
7074 * tree-predcom.c (initialize_root): Delete.
7075 (execute_pred_commoning_chain): Initialize root vars and replace
7076 reference of non-combined chain directly, rather than call above
7077 function.
7078
7079 2017-07-28 Bin Cheng <bin.cheng@arm.com>
7080
7081 * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute
7082 memory reference to DR at (NITERS + ITERS)-th iteration of loop.
7083
7084 2017-07-28 Bin Cheng <bin.cheng@arm.com>
7085
7086 * tree-predcom.c (struct chain): New field init_seq.
7087 (release_chain): Release init_seq.
7088 (prepare_initializers_chain): Record intialization stmts in above
7089 field.
7090 (insert_init_seqs): New function.
7091 (tree_predictive_commoning_loop): Call insert_init_seqs.
7092
7093 2017-07-28 Bin Cheng <bin.cheng@arm.com>
7094
7095 * tree-predcom.c (determine_roots_comp): Skip trivial components.
7096
7097 2017-07-28 Richard Biener <rguenther@suse.de>
7098
7099 * match.pd: Remove superfluous :c.
7100 * genmatch.c (simplify::id): Add member.
7101 (lower_commutative, lower_opt_convert, lower_cond, lower_for):
7102 Copy id.
7103 (current_id): New global.
7104 (dt_node::parent): Move from ...
7105 (dt_operand::parent): ... here. Add for_id member.
7106 (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
7107 (decision_tree::find_node): Relax order requirement when
7108 merging DT_TRUE nodes to ones inbetween the current simplify
7109 and the one we try to merge with. Add diagnostic whenever
7110 we need to enforce pattern order by not merging.
7111 (decision_tree::insert): Set current_id.
7112 (decision_tree::print_node): Dump parent node and for_id.
7113 (parser::last_id): Add member.
7114 (parser::push_simplify): Assign unique id.
7115 (parser::parser): Initialize last_id.
7116
7117 2017-07-28 Martin Liska <mliska@suse.cz>
7118
7119 PR sanitizer/81340
7120 * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
7121 gimple_build_debug_bind.
7122
7123 2017-07-28 Richard Biener <rguenther@suse.de>
7124
7125 PR tree-optimization/81502
7126 * match.pd: Add pattern combining BIT_INSERT_EXPR with
7127 BIT_FIELD_REF.
7128 * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
7129 size/pos operands.
7130 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
7131 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
7132 for BIT_FIELD_REF args.
7133 * fold-const.c (make_bit_field_ref): Likewise.
7134 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
7135
7136 2017-07-28 Jakub Jelinek <jakub@redhat.com>
7137
7138 PR sanitizer/80998
7139 * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
7140 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
7141 * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
7142 Or it into SANITIZER_UNDEFINED.
7143 * ubsan.c: Include gimple-fold.h and varasm.h.
7144 (ubsan_expand_ptr_ifn): New function.
7145 (instrument_pointer_overflow): New function.
7146 (maybe_instrument_pointer_overflow): New function.
7147 (instrument_object_size): Formatting fix.
7148 (pass_ubsan::execute): Call instrument_pointer_overflow
7149 and maybe_instrument_pointer_overflow.
7150 * internal-fn.c (expand_UBSAN_PTR): New function.
7151 * ubsan.h (ubsan_expand_ptr_ifn): Declare.
7152 * sanitizer.def (__ubsan_handle_pointer_overflow,
7153 __ubsan_handle_pointer_overflow_abort): New builtins.
7154 * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
7155 * internal-fn.def (UBSAN_PTR): New internal function.
7156 * opts.c (sanitizer_opts): Add pointer-overflow.
7157 * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
7158 * fold-const.c (build_range_check): Compute pointer range check in
7159 integral type if pointer arithmetics would be needed. Formatting
7160 fixes.
7161
7162 2017-07-28 Martin Liska <mliska@suse.cz>
7163
7164 PR sanitizer/81460
7165 * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
7166 parameters that are of a variable-length.
7167
7168 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
7169
7170 * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add
7171 rs6000/biarch64.h.
7172 * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
7173 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7174 (CRT_CALL_STATIC_FUNCTION): Likewise.
7175 (ASM_DEFAULT_SPEC): New define.
7176 (ASM_SPEC32): Likewise.
7177 (ASM_SPEC64): Likewise.
7178 (ASM_SPEC_COMMON): Likewise.
7179 (ASM_SPEC): Likewise.
7180 (INVALID_64BIT): Likewise.
7181 (LINK_OS_DEFAULT_SPEC): Likewise.
7182 (LINK_OS_SPEC32): Likewise.
7183 (LINK_OS_SPEC64): Likewise.
7184 (POWERPC_LINUX): Likewise.
7185 (PTRDIFF_TYPE): Likewise.
7186 (RESTORE_FP_PREFIX): Likewise.
7187 (RESTORE_FP_SUFFIX): Likewise.
7188 (SAVE_FP_PREFIX): Likewise.
7189 (SAVE_FP_SUFFIX): Likewise.
7190 (SIZE_TYPE): Likewise.
7191 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
7192 (TARGET_64BIT): Likewise.
7193 (TARGET_64BIT): Likewise.
7194 (TARGET_AIX): Likewise.
7195 (WCHAR_TYPE_SIZE): Likewise.
7196 (WCHAR_TYPE): Undefine.
7197 (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
7198 (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
7199 (CPP_OS_RTEMS_SPEC): Delete.
7200 (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add
7201 asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
7202 link_os_spec64.
7203 * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
7204
7205 2017-07-28 Jakub Jelinek <jakub@redhat.com>
7206
7207 PR tree-optimization/81578
7208 * tree-parloops.c (build_new_reduction): Bail out if
7209 reduction_code isn't one of the standard OpenMP reductions.
7210 Move the details printing after that decision.
7211
7212 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
7213
7214 * config/rs6000/predicates.md (volatile_mem_operand): Remove code
7215 related to reload_in_progress.
7216 (splat_input_operand): Likewise.
7217 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
7218 Delete prototype.
7219 * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
7220 field.
7221 (TARGET_EXPAND_TO_RTL_HOOK): Delete.
7222 (TARGET_INSTANTIATE_DECLS): Likewise.
7223 (legitimate_indexed_address_p): Delete reload_in_progress code.
7224 (rs6000_debug_legitimate_address_p): Likewise.
7225 (rs6000_eliminate_indexed_memrefs): Likewise.
7226 (rs6000_emit_le_vsx_store): Likewise.
7227 (rs6000_emit_move_si_sf_subreg): Likewise.
7228 (rs6000_emit_move): Likewise.
7229 (register_to_reg_type): Likewise.
7230 (rs6000_pre_atomic_barrier): Likewise.
7231 (rs6000_machopic_legitimize_pic_address): Likewise.
7232 (rs6000_allocate_stack_temp): Likewise.
7233 (rs6000_address_for_fpconvert): Likewise.
7234 (rs6000_address_for_altivec): Likewise.
7235 (rs6000_secondary_memory_needed_rtx): Delete function.
7236 (rs6000_check_sdmode): Likewise.
7237 (rs6000_alloc_sdmode_stack_slot): Likewise.
7238 (rs6000_instantiate_decls): Likewise.
7239 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
7240 * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
7241 Delete reload_in_progress.
7242 (*vec_reload_and_plus_<mptrsize>): Likewise.
7243 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
7244 (vsx_div_v2di): Likewise.
7245 (vsx_udiv_v2di): Likewise.
7246
7247 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
7248
7249 * config/rs6000/rs6000.opt (mlra): Replace with stub.
7250 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
7251 * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
7252 (rs6000_debug_reg_global): Delete print of LRA status.
7253 (rs6000_option_override_internal): Delete dead LRA related code.
7254 (rs6000_lra_p): Delete function.
7255 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
7256
7257 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
7258
7259 * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
7260 * config/riscv/rtems.h: New file.
7261
7262 2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7263 Sudakshina Das <sudi.das@arm.com>
7264
7265 * config/aarch64/aarch64.md
7266 (define_split for and<mode>3nr_compare): Move
7267 non aarch64_logical_operand to a register.
7268 (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
7269 register immediate operand to a register.
7270 * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
7271
7272 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
7273
7274 PR middle-end/81564
7275 * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
7276
7277 2017-07-27 Richard Biener <rguenther@suse.de>
7278
7279 PR tree-optimization/81573
7280 PR tree-optimization/81494
7281 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
7282 multi defuse cycle case.
7283
7284 2017-07-27 Richard Biener <rguenther@suse.de>
7285
7286 PR tree-optimization/81571
7287 * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
7288 PHIs.
7289
7290 2017-07-27 Eric Botcazou <ebotcazou@adacore.com>
7291
7292 * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
7293 earlier and only if MASK_FPU is set. Adjust formatting.
7294
7295 2017-07-27 Martin Liska <mliska@suse.cz>
7296
7297 * opt-functions.awk: Add validation of value of Init.
7298 * optc-gen.awk: Pass new argument.
7299
7300 2017-07-27 Martin Liska <mliska@suse.cz>
7301
7302 * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
7303 Fix wrong condition.
7304
7305 2017-07-27 Martin Liska <mliska@suse.cz>
7306
7307 * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
7308 BBs and edges seen by autoFDO.
7309
7310 2017-07-27 Richard Biener <rguenther@suse.de>
7311
7312 PR tree-optimization/81502
7313 * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
7314 with incompatible but same sized type.
7315 (execute_update_addresses_taken): Likewise.
7316
7317 2017-07-27 James Greenhalgh <james.greenhalgh@arm.com>
7318
7319 * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
7320 flag_tree_loop_vectorize rather than flag_tree_vectorize.
7321
7322 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7323
7324 PR target/81534
7325 * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
7326 ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
7327 Change s_operand to memory_operand.
7328
7329 2017-07-27 Richard Sandiford <richard.sandiford@linaro.org>
7330
7331 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
7332 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
7333 (rs6000_emit_le_vsx_permute): ...this. Take the destination as input.
7334 Emit instructions rather than returning an expression. Handle TFmode
7335 and KFmode by casting to TImode.
7336 (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
7337 (rs6000_emit_le_vsx_store): Likewise.
7338 * config/rs6000/vsx.md (VSX_TI): New iterator.
7339 (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
7340 (*vsx_le_undo_permute_<mode>): Likewise.
7341 (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
7342 emit the split sequence.
7343 (*vsx_le_perm_store_<mode>): Likewise.
7344
7345 2017-07-27 Jakub Jelinek <jakub@redhat.com>
7346
7347 PR tree-optimization/81555
7348 PR tree-optimization/81556
7349 * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
7350 if true, force CHANGED for the recursive invocation.
7351 (reassociate_bb): Remember original length of ops array, pass
7352 len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
7353
7354 * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
7355 attributes for noipa attribute. For naked attribute use
7356 lookup_attribute first before lookup_attribute_spec.
7357 * final.c (rest_of_handle_final): Disable IPA RA for functions with
7358 noipa attribute.
7359 * ipa-visibility.c (non_local_p): Fix comment typos. Return true
7360 for functions with noipa attribute.
7361 (cgraph_externally_visible_p): Return true for functions with noipa
7362 attribute.
7363 * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
7364 for functions with noipa attribute.
7365 * doc/extend.texi: Document noipa function attribute.
7366 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
7367 also for functions with noipa attribute.
7368 (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
7369
7370 2017-07-26 Andrew Pinski <apinski@cavium.com>
7371
7372 * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
7373 vec_unalign_load_cost and vec_unalign_store_cost.
7374
7375 2017-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
7376
7377 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
7378 -mvsx-small-integer option.
7379 (ISA_3_0_MASKS_IEEE): Likewise.
7380 (OTHER_VSX_VECTOR_MASKS): Likewise.
7381 (POWERPC_MASKS): Likewise.
7382 * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
7383 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
7384 code, only testing for DImode being allowed in non-VSX floating
7385 point registers.
7386 (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
7387 to TARGET_P8_VECTOR test. Remove redundant VSX test inside of
7388 another VSX test.
7389 (rs6000_option_override_internal): Delete -mvsx-small-integer.
7390 (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
7391 TARGET_P8_VECTOR test.
7392 (rs6000_secondary_reload_simple_move): Likewise.
7393 (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
7394 since TARGET_P9_VECTOR was already tested.
7395 (rs6000_opt_masks): Remove -mvsx-small-integer.
7396 * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
7397 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
7398 used.
7399 (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
7400 test for TARGET_VEXTRACTUB was used, and that uses
7401 TARGET_P9_VECTOR.
7402 (p9 extract splitter): Likewise.
7403 (vsx_extract_<mode>_di_p9): Likewise.
7404 (vsx_extract_<mode>_store_p9): Likewise.
7405 (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
7406 for TARGET_P9_VECTOR was used. Delete code that is now dead with
7407 the elimination of TARGET_VSX_SMALL_INTEGER.
7408 (vsx_extract_<mode>_p8): Likewise.
7409 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
7410 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
7411 (vsx_set_<mode>_p9): Likewise.
7412 (vsx_set_v4sf_p9): Likewise.
7413 (vsx_set_v4sf_p9_zero): Likewise.
7414 (vsx_insert_extract_v4sf_p9): Likewise.
7415 (vsx_insert_extract_v4sf_p9_2): Likewise.
7416 * config/rs6000/rs6000.md (sign extend splitter): Change
7417 TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
7418 (floatsi<mode>2_lfiwax_mem): Likewise.
7419 (floatunssi<mode>2_lfiwzx_mem): Likewise.
7420 (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
7421 since a test for TARGET_P9_VECTOR was used.
7422 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
7423 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
7424 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
7425 (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
7426 TARGET_P8_VECTOR test.
7427 (fix_trunc<mode>si2_stfiwx): Likewise.
7428 (fix_trunc<mode>si2_internal): Likewise.
7429 (fix_trunc<SFDF:mode><QHI:mode>2): Delete
7430 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
7431 used.
7432 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
7433 (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
7434 TARGET_P8_VECTOR test.
7435 (fixuns_trunc<mode>si2_stfiwx): Likewise.
7436 (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
7437 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
7438 used.
7439 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
7440 (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
7441 since a test for TARGET_P9_VECTOR was used.
7442 (splitter for loading small constants): Likewise.
7443
7444 2017-07-26 Andrew Pinski <apinski@cavium.com>
7445
7446 * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
7447 vec_fp_stmt_cost.
7448
7449 2017-07-26 H.J. Lu <hongjiu.lu@intel.com>
7450
7451 PR target/81563
7452 * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
7453 (fp_valid_at): Likewise.
7454
7455 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
7456
7457 * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
7458 (qdf24xx_addrcost_table): Likewise.
7459 (cortexa57_tunings): Update to use generic_branch_cost.
7460 (cortexa72_tunings): Likewise.
7461 (cortexa73_tunings): Likewise.
7462 (qdf24xx_tunings): Likewise.
7463
7464 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
7465
7466 * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
7467 (thunderx2t99_branch_cost): Likewise.
7468 (cortexa35_tunings): Update to use generic_branch_cost.
7469 (cortexa53_tunings): Likewise.
7470 (cortexa57_tunings): Likewise.
7471 (cortexa72_tunings): Likewise.
7472 (cortexa73_tunings): Likewise.
7473 (thunderx2t99_tunings): Likewise.
7474
7475 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
7476
7477 * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
7478 (sparc_option_override): Honour MASK_FSMULD.
7479 * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
7480 * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
7481 * config/sparc/sparc.opt (mfsmuld): New option.
7482 * doc/invoke.texi (mfsmuld): Document option.
7483
7484 2017-07-26 Marek Polacek <polacek@redhat.com>
7485
7486 PR middle-end/70992
7487 * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
7488
7489 2017-07-26 Richard Biener <rguenther@suse.de>
7490
7491 * gimple-match-head.c (do_valueize): Return OP if valueize
7492 returns NULL_TREE.
7493 (get_def): New helper to get at the def stmt of a SSA name
7494 if valueize allows.
7495 * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
7496 do_valueize to get at the def stmt.
7497 (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
7498
7499 2017-07-26 Wilco Dijkstra <wdijkstr@arm.com>
7500
7501 PR middle-end/46932
7502 * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
7503
7504 2017-07-26 Martin Liska <mliska@suse.cz>
7505
7506 PR sanitize/81186
7507 * function.c (expand_function_start): Make expansion of
7508 nonlocal_goto_save_area after parm_birth_insn.
7509
7510 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
7511
7512 * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
7513 from all CPU target flags enable members.
7514
7515 2017-07-26 Richard Biener <rguenther@suse.de>
7516
7517 * genmatch.c (dt_simplify::gen): Make iterator vars const.
7518 (decision_tree::gen): Make 'type' const.
7519 (write_predicate): Likewise.
7520
7521 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
7522
7523 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
7524 Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
7525 (rs6000_option_override_internal): Likewise.
7526 (rs6000_expand_vector_set): Likewise.
7527 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
7528 (TARGET_UPPER_REGS_SF): Likewise.
7529 (TARGET_UPPER_REGS_DI): Likewise.
7530 (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
7531 (TARGET_DIRECT_MOVE_64BIT): Likewise.
7532 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
7533 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
7534 (Splitters for DI constants in Altivec registers): Likewise.
7535 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
7536 (vsx_set_v4sf_p9): Likewise.
7537 (vsx_set_v4sf_p9_zero): Likewise.
7538 (vsx_insert_extract_v4sf_p9): Likewise.
7539 (vsx_insert_extract_v4sf_p9_2): Likewise.
7540
7541 2017-07-25 Carl Love <cel@us.ibm.com>
7542
7543 * doc/extend.texi: Update the built-in documentation file for the
7544 existing built-in functions
7545 vector signed char vec_cnttz (vector signed char);
7546 vector unsigned char vec_cnttz (vector unsigned char);
7547 vector signed short vec_cnttz (vector signed short);
7548 vector unsigned short vec_cnttz (vector unsigned short);
7549 vector signed int vec_cnttz (vector signed int);
7550 vector unsigned int vec_cnttz (vector unsigned int);
7551 vector signed long long vec_cnttz (vector signed long long);
7552 vector unsigned long long vec_cnttz (vector unsigned long long);
7553
7554 2017-07-25 Andrew Pinski <apinski@cavium.com>
7555
7556 * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
7557 accesses where the use is for the first operand of a BIT_INSERT.
7558
7559 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
7560
7561 PR bootstrap/81521
7562 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
7563 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
7564
7565 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
7566
7567 * config/i386/gstabs.h: Delete.
7568 * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
7569
7570 2017-07-25 Uros Bizjak <ubizjak@gmail.com>
7571
7572 * config/i386/i386.c (ix86_decompose_address): Do not check for
7573 register RTX when looking at index_reg or base_reg.
7574 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
7575
7576 2017-07-25 Eric Botcazou <ebotcazou@adacore.com>
7577
7578 * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
7579 to update EH info here.
7580
7581 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
7582
7583 * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
7584
7585 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
7586
7587 * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
7588
7589 2017-07-25 Torsten Duwe <duwe@suse.de>
7590
7591 * common.opt: Introduce -fpatchable-function-entry
7592 command line option, and its variables function_entry_patch_area_size
7593 and function_entry_patch_area_start.
7594 * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
7595 including a two-value parser.
7596 * target.def (print_patchable_function_entry): New target hook.
7597 * targhooks.h (default_print_patchable_function_entry): New function.
7598 * targhooks.c (default_print_patchable_function_entry): Likewise.
7599 * toplev.c (process_options): Switch off IPA-RA if
7600 patchable function entries are being generated.
7601 * varasm.c (assemble_start_function): Look at the
7602 patchable-function-entry command line switch and current
7603 function attributes and maybe generate NOP instructions by
7604 calling the print_patchable_function_entry hook.
7605 * doc/extend.texi: Document patchable_function_entry attribute.
7606 * doc/invoke.texi: Document -fpatchable_function_entry
7607 command line option.
7608 * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
7609 New target hook.
7610 * doc/tm.texi: Re-generate.
7611
7612 2017-07-25 Jakub Jelinek <jakub@redhat.com>
7613
7614 PR target/81532
7615 * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
7616 TARGET_AVX512DQ rather than TARGET_AVX512BW.
7617
7618 2017-07-25 Tamar Christina <tamar.christina@arm.com>
7619
7620 * config/arm/parsecpu.awk (all_cores): Remove duplicates.
7621
7622 2017-07-25 Richard Biener <rguenther@suse.de>
7623
7624 PR tree-optimization/81455
7625 * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
7626 not walk in cycles when looking for guards.
7627
7628 2017-07-25 Richard Biener <rguenther@suse.de>
7629
7630 PR tree-optimization/81529
7631 * tree-vect-stmts.c (process_use): Disregard live induction PHIs
7632 when optimizing backedge uses.
7633
7634 2017-07-25 David Edelsohn <dje.gcc@gmail.com>
7635
7636 * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
7637 character for AIX.
7638 * dwarf2out.c (output_macinfo): Copy debug_line_section_label
7639 to dl_section_ref. On AIX, append an expression to subtract
7640 the size of the section length to dl_section_ref.
7641
7642 2017-07-25 Segher Boessenkool <segher@kernel.crashing.org>
7643
7644 * configure.ac: If any of the config.* scripts fail, exit 1.
7645 * configure: Regenerate.
7646
7647 2017-07-25 Richard Biener <rguenther@suse.de>
7648
7649 PR middle-end/81546
7650 * tree-ssa-operands.c (verify_imm_links): Remove cap on number
7651 of immediate uses, be more verbose on errors.
7652
7653 2017-07-25 Richard Biener <rguenther@suse.de>
7654
7655 PR tree-optimization/81510
7656 * tree-vect-loop.c (vect_is_simple_reduction): When the
7657 reduction stmt is not inside the loop bail out.
7658
7659 2017-07-25 Richard Biener <rguenther@suse.de>
7660
7661 PR tree-optimization/81303
7662 * tree-vect-loop-manip.c (vect_loop_versioning): Build
7663 profitability check against LOOP_VINFO_NITERSM1.
7664
7665 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
7666
7667 * domwalk.c (cmp_bb_postorder): Simplify.
7668 (sort_bbs_postorder): New function. Use it...
7669 (dom_walker::walk): ...here to optimize common cases.
7670
7671 2017-07-25 Martin Liska <mliska@suse.cz>
7672
7673 PR ipa/81520
7674 * ipa-visibility.c (function_and_variable_visibility): Make the
7675 redirection just on target that supports aliasing.
7676 Fix GNU coding style.
7677
7678 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
7679
7680 PR libgcc/61152
7681 * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
7682 Format changes.
7683 * config/arm/rtems.h: Likewise.
7684 * config/bfin/rtems.h: Likewise.
7685 * config/i386/rtemself.h: Likewise.
7686 * config/lm32/rtems.h: Likewise.
7687 * config/m32c/rtems.h: Likewise.
7688 * config/m68k/rtemself.h: Likewise.
7689 * config/microblaze/rtems.h: Likewise.
7690 * config/mips/rtems.h: Likewise.
7691 * config/moxie/rtems.h: Likewise.
7692 * config/nios2/rtems.h: Likewise.
7693 * config/powerpcspe/rtems.h: Likewise.
7694 * config/rs6000/rtems.h: Likewise.
7695 * config/rtems.h: Likewise.
7696 * config/sh/rtems.h: Likewise.
7697 * config/sh/rtemself.h: Likewise.
7698 * config/sparc/rtemself.h: Likewise.
7699
7700 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
7701
7702 PR 81487
7703 * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
7704 * gimple-pretty-print.c (dump_profile, dump_probability): Same.
7705 * tree-ssa-structalias.c (alias_get_name): Same.
7706
7707 2017-07-25 Bin Cheng <bin.cheng@arm.com>
7708
7709 PR target/81414
7710 * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
7711 instructions if no du chain is found.
7712
7713 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
7714
7715 * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
7716
7717 2017-07-25 Richard Biener <rguenther@suse.de>
7718
7719 PR middle-end/81505
7720 * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
7721 sticky.
7722
7723 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
7724
7725 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
7726 upper-regs options.
7727 (ISA_2_7_MASKS_SERVER): Likewise.
7728 (ISA_3_0_MASKS_IEEE): Likewise.
7729 (OTHER_P8_VECTOR_MASKS): Likewise.
7730 (OTHER_VSX_VECTOR_MASKS): Likewise.
7731 (POWERPC_MASKS): Likewise.
7732 (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
7733 duplicate list of options.
7734 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
7735 explicit -mupper-regs options.
7736 * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
7737 -mupper-regs* options. Delete -mvsx-scalar-memory, which was an
7738 alias for -mupper-regs-df.
7739 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
7740 (rs6000_init_hard_regno_mode_ok): Likewise.
7741 (rs6000_option_override_internal): Likewise.
7742 (rs6000_opt_masks): Likewise.
7743 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
7744 options in terms of whether -mvsx or -mpower8-vector was used.
7745 (TARGET_UPPER_REGS_DI): Likewise.
7746 (TARGET_UPPER_REGS_SF): Likewise.
7747 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
7748 -mupper-regs-* options.
7749
7750 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
7751
7752 * passes.c (emergency_dump_function): Print some empty lines and a
7753 header before the RTL dump.
7754
7755 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
7756
7757 * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
7758
7759 2017-07-24 Wilco Dijkstra <wdijkstr@arm.com>
7760
7761 PR target/79041
7762 * config/aarch64/aarch64.c (aarch64_classify_symbol):
7763 Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
7764
7765 2017-07-24 Carl Love <cel@us.ibm.com>
7766
7767 * config/rs6000/rs6000-c.c: Add support for built-in functions
7768 vector float vec_extract_fp32_from_shorth (vector unsigned short);
7769 vector float vec_extract_fp32_from_shortl (vector unsigned short);
7770 * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
7771 vec_extract_fp_from_shortl): Add defines for the two builtins.
7772 * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
7773 VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
7774 new builtins.
7775 * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
7776 (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
7777 * doc/extend.texi: Update the built-in documentation file for the
7778 new built-in function.
7779
7780 2017-07-24 Jakub Jelinek <jakub@redhat.com>
7781
7782 PR bootstrap/81521
7783 * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
7784 documentation.
7785 * doc/generic.texi: Likewise.
7786 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
7787 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
7788
7789 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com>
7790
7791 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
7792 (aarch64_mls_elt_merge<mode>): Likewise.
7793
7794 2017-07-23 Krister Walfridsson <krister.walfridsson@gmail.com>
7795
7796 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
7797 having __cxa_atexit.
7798
7799 2017-07-23 Michael Collison <michael.collison@arm.com>
7800
7801 * config/arm/arm.c (arm_option_override): Deprecate
7802 use of -mstructure-size-boundary.
7803 * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
7804 * doc/invoke.texi: Deprecate -mstructure-size-boundary.
7805
7806 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7807
7808 PR target/80695
7809 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
7810 Reduce cost estimate for direct moves.
7811
7812 2017-07-23 Uros Bizjak <ubizjak@gmail.com>
7813
7814 PR target/80569
7815 * config/i386/i386.c (ix86_option_override_internal): Disable
7816 BMI, BMI2 and TBM instructions for -m16.
7817
7818 2017-07-21 Carl Love <cel@us.ibm.com>
7819
7820 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7821 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
7822 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
7823 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
7824 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
7825 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
7826 VMULOSW): New enum "unspec" values.
7827 (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
7828 altivec_vmulosw): New patterns.
7829 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
7830 VMULOSW): Add definitions.
7831
7832 2017-07-21 Jim Wilson <jim.wilson@linaro.org>
7833
7834 * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
7835 (qdf24xx): Likewise.
7836 * config/aarch64/aarch64-options-extensions.def (rdma); New.
7837 * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
7838 (AARCH64_FL_V8_1): Renumber.
7839 (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
7840 (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
7841 * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
7842 * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add
7843 rdma to feature modifiers list.
7844
7845 2017-07-21 Yury Gribov <tetra2005@gmail.com>
7846
7847 PR middle-end/56727
7848 * ipa-visibility (function_and_variable_visibility): Convert
7849 recursive PLT call to direct call if appropriate.
7850
7851 2017-07-21 Andrew Pinski <apinski@cavium.com>
7852
7853 * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
7854 operand 1 to see if the types precision matches.
7855 * fold-const.c (operand_equal_p): Likewise.
7856
7857 2017-07-21 Richard Biener <rguenther@suse.de>
7858
7859 PR tree-optimization/81303
7860 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
7861 in datarefs vector. Allow NULL dr0 for no peeling cost estimate.
7862 (vect_peeling_hash_get_lowest_cost): Adjust.
7863 (vect_enhance_data_refs_alignment): Likewise. Use
7864 vect_get_peeling_costs_all_drs to compute the penalty for no
7865 peeling to match up costs.
7866
7867 2017-07-21 Richard Biener <rguenther@suse.de>
7868
7869 PR tree-optimization/81500
7870 * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
7871 we didn't identify a reduction path.
7872
7873 2017-07-21 Tom de Vries <tom@codesourcery.com>
7874 Cesar Philippidis <cesar@codesourcery.com>
7875
7876 PR gcov-profile/81442
7877 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
7878 probabilities.
7879
7880 2017-07-21 Tom de Vries <tom@codesourcery.com>
7881
7882 PR lto/81430
7883 * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
7884 function.
7885 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
7886 nvptx_override_options_after_change.
7887
7888 2017-07-21 Ulrich Drepper <drepper@redhat.com>
7889
7890 * dwarf2out.c (output_file_names): Avoid double testing for
7891 dwarf_version >= 5.
7892
7893 2017-07-21 Georg-Johann Lay <avr@gjlay.de>
7894
7895 * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
7896
7897 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
7898
7899 * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
7900 hot/cold regions.
7901 (try_crossjump_to_edge): Do not punt on partitioned functions.
7902
7903 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
7904
7905 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
7906 Put all BBs reachable only via paths crossing cold region to cold
7907 region.
7908 * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
7909
7910 2016-07-21 Richard Biener <rguenther@suse.de>
7911
7912 PR tree-optimization/81303
7913 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
7914 into account prologue and epilogue iterations when raising
7915 min_profitable_iters to sth at least covering one vector iteration.
7916
7917 2017-07-21 Tamar Christina <tamar.christina@arm.com>
7918
7919 * config/arm/arm.c (arm_test_cpu_arch_dat):
7920 Check for overlap.
7921
7922 2017-07-20 Nathan Sidwell <nathan@acm.org>
7923
7924 Remove TYPE_METHODS.
7925 * tree.h (TYPE_METHODS): Delete.
7926 * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
7927 * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
7928 (dbxout_type_methods): Scan TYPE_FIELDS.
7929 (dbxout_type): Don't check TYPE_METHODS here.
7930 * function.c (use_register_for_decl): Always ignore register for
7931 class types when not optimizing.
7932 * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
7933 * tree.c (free_lang_data_in_type): Stitch out member functions and
7934 templates from TYPE_FIELDS.
7935 (build_distinct_type_copy, verify_type_variant,
7936 verify_type): Member fns are on TYPE_FIELDS.
7937 * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
7938 * tree-pretty-print.c (dump_generic_node): Likewise.
7939
7940 2017-07-20 Jakub Jelinek <jakub@redhat.com>
7941
7942 PR target/80846
7943 * config/i386/i386.c (ix86_expand_vector_init_general): Handle
7944 V2TImode and V4TImode.
7945 (ix86_expand_vector_extract): Likewise.
7946 * config/i386/sse.md (VMOVE): Enable V4TImode even for just
7947 TARGET_AVX512F, instead of only for TARGET_AVX512BW.
7948 (ssescalarmode): Handle V4TImode and V2TImode.
7949 (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
7950 (*vec_extractv2ti, *vec_extractv4ti): New insns.
7951 (VEXTRACTI128_MODE): New mode iterator.
7952 (splitter for *vec_extractv?ti first element): New.
7953 (VEC_INIT_MODE): New mode iterator.
7954 (vec_init<mode>): Consolidate 3 expanders into one using
7955 VEC_INIT_MODE mode iterator.
7956
7957 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
7958
7959 * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
7960 non_spilled_static_chain_regno_p.
7961
7962 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
7963
7964 * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
7965
7966 2017-07-20 Jan Hubicka <hubicka@ucw.cz>
7967
7968 * bb-reorder.c (connect_traces): Allow copying of blocks within
7969 single partition.
7970
7971 2017-07-20 Richard Biener <rguenther@suse.de>
7972
7973 * gimple.h (gimple_phi_result): Add gphi * overload.
7974 (gimple_phi_result_ptr): Likewise.
7975 (gimple_phi_arg): Likewise. Adjust index assert to only
7976 allow actual argument accesses rather than all slots available
7977 by capacity.
7978 (gimple_phi_arg_def): Add gphi * overload.
7979 * tree-phinodes.c (make_phi_node): Initialize only actual
7980 arguments.
7981 (resize_phi_node): Clear memory not covered by old node,
7982 do not initialize excess argument slots.
7983 (reserve_phi_args_for_new_edge): Initialize new argument slot
7984 completely.
7985
7986 2017-07-20 Bin Cheng <bin.cheng@arm.com>
7987
7988 PR tree-optimization/81388
7989 Revert r238585:
7990 2016-07-21 Bin Cheng <bin.cheng@arm.com>
7991
7992 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
7993 by removing computation of may_be_zero.
7994
7995 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
7996 Tom de Vries <tom@codesourcery.com>
7997
7998 PR middle-end/81030
7999 * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
8000 when gimple level profile disagrees with what RTL expander did.
8001
8002 2017-07-20 Richard Biener <rguenther@suse.de>
8003
8004 PR tree-optimization/61171
8005 * tree-vectorizer.h (slp_instance): Add reduc_phis member.
8006 (vect_analyze_stmt): Add slp instance parameter.
8007 (vectorizable_reduction): Likewise.
8008 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
8009 (vect_is_simple_reduction): Deal with chains not detected
8010 as SLP reduction chain, specifically not properly associated
8011 chains containing a mix of plus/minus.
8012 (get_reduction_op): Remove.
8013 (get_initial_defs_for_reduction): Simplify, pass in whether
8014 this is a reduction chain, pass in the SLP node for the PHIs.
8015 (vect_create_epilog_for_reduction): Get the SLP instance as
8016 arg and adjust.
8017 (vectorizable_reduction): Get the SLP instance as arg.
8018 During analysis remember the SLP node with the PHIs in the
8019 instance. Simplify getting at the vectorized reduction PHIs.
8020 * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
8021 through SLP instance.
8022 (vect_slp_analyze_operations): Likewise.
8023 * tree-vect-stms.c (vect_analyze_stmt): Likewise.
8024 (vect_transform_stmt): Likewise.
8025
8026 2017-07-20 Tom de Vries <tom@codesourcery.com>
8027
8028 PR tree-optimization/81489
8029 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
8030 read of phi arg location to before loop that modifies phi.
8031
8032 2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8033
8034 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
8035 New pattern.
8036
8037 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
8038
8039 PR middle-end/81331
8040 * except.c (execute): Fix ordering issue.
8041
8042 2018-07-19 Segher Boessenkool <segher@kernel.crashing.org>
8043
8044 PR rtl-optimization/81423
8045 * combine.c (make_compound_operation_int): Don't try to optimize
8046 the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
8047
8048 2017-07-19 Segher Boessenkool <segher@kernel.crashing.org>
8049
8050 PR rtl-optimization/81423
8051 * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
8052 with a constant that is -1 in the truncated to mode.
8053
8054 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
8055
8056 * predict.c (propagate_unlikely_bbs_forward): Break out from ...
8057 (determine_unlikely_bbs): ... here.
8058 * predict.h (propagate_unlikely_bbs_forward): Declare.
8059 * cfgexpand.c (pass_expand::execute): Use it.
8060 * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
8061 unlikely edges.
8062 (find_rarely_executed_basic_blocks_and_crossing_edges): Use
8063 propagate_unlikely_bbs_forward.
8064
8065 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
8066
8067 PR middle-end/81331
8068 * except.c (maybe_add_nop_after_section_switch): New function.
8069 (execute): Use it.
8070
8071 2017-07-19 Tom de Vries <tom@codesourcery.com>
8072
8073 * gimple.h (gimple_phi_set_arg): Make assert more strict.
8074
8075 2017-07-19 Tom de Vries <tom@codesourcery.com>
8076
8077 * gimple.h (gimple_phi_arg): Make assert more strict.
8078
8079 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org>
8080
8081 * config.gcc (powerpc*-*-*): Add mmintrin.h.
8082 * config/rs6000/mmintrin.h: New file.
8083 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
8084
8085 2017-07-19 Jakub Jelinek <jakub@redhat.com>
8086
8087 PR tree-optimization/81346
8088 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
8089
8090 2017-07-19 Tom de Vries <tom@codesourcery.com>
8091
8092 * config/nvptx/nvptx.md (VECIM): Add V2DI.
8093
8094 2017-07-19 Tom de Vries <tom@codesourcery.com>
8095
8096 * config/nvptx/nvptx-modes.def: Add V2DImode.
8097 * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
8098 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
8099 (nvptx_output_mov_insn): Handle lack of mov.b128.
8100 (nvptx_print_operand): Handle 'H' and 'L' codes.
8101 (nvptx_vector_mode_supported): Allow V2DImode.
8102 (nvptx_preferred_simd_mode): New function.
8103 (nvptx_data_alignment): New function.
8104 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
8105 nvptx_preferred_simd_mode.
8106 * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
8107 64 to 128 bits.
8108 (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment.
8109
8110 2017-07-19 Tom de Vries <tom@codesourcery.com>
8111
8112 * config/nvptx/nvptx-modes.def: New file. Add V2SImode.
8113 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
8114 (nvptx_vector_mode_supported): New function. Allow V2SImode.
8115 (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
8116 * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
8117 (mov<VECIM>_insn): New define_insn.
8118 (define_expand "mov<VECIM>): New define_expand.
8119
8120 2017-07-19 Tom de Vries <tom@codesourcery.com>
8121
8122 * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
8123
8124 2017-07-19 Jakub Jelinek <jakub@redhat.com>
8125
8126 PR tree-optimization/81346
8127 * fold-const.h (fold_div_compare, range_check_type): Declare.
8128 * fold-const.c (range_check_type): New function.
8129 (build_range_check): Use range_check_type.
8130 (fold_div_compare): No longer static, rewritten into
8131 a match.pd helper function.
8132 (fold_comparison): Don't call fold_div_compare here.
8133 * match.pd (X / C1 op C2): New optimization using fold_div_compare
8134 as helper function.
8135
8136 2017-07-19 Nathan Sidwell <nathan@acm.org>
8137
8138 * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
8139 (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
8140 * tree.c (find_decls_types_r, verify_type): Use
8141 TYPE_{MIN,MAX}_VALUE_RAW.
8142 * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
8143 (hash_tree): Likewise.
8144 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
8145 Likewise.
8146 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
8147 Likewise.
8148
8149 2017-07-18 Tom de Vries <tom@codesourcery.com>
8150
8151 PR middle-end/81464
8152 * omp-expand.c (expand_omp_for_static_chunk): Handle
8153 equal-argument loop exit phi.
8154
8155 2017-07-18 Uros Bizjak <ubizjak@gmail.com>
8156
8157 PR target/81471
8158 * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
8159 (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
8160 operand 2 predicate.
8161 (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
8162 operand 2 predicate.
8163 (ror,rol -> rorx splitters): Use const_int_operand as
8164 operand 2 predicate.
8165
8166 2017-06-18 Richard Biener <rguenther@suse.de>
8167
8168 PR tree-optimization/81410
8169 * tree-vect-stmts.c (vectorizable_load): Properly adjust for
8170 the gap in the ! slp_perm SLP case after each group.
8171
8172 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
8173
8174 PR middle-end/81463
8175 * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
8176 again.
8177
8178 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
8179
8180 PR middle-end/81462
8181 * predict.c (set_even_probabilities): Cleanup; do not affect
8182 probabilities that are already known.
8183 (combine_predictions_for_bb): Call even when count is set.
8184
8185 2017-07-18 Nathan Sidwell <nathan@acm.org>
8186
8187 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
8188 TYPE_MAX_VALUE.
8189
8190 2017-07-18 Bin Cheng <bin.cheng@arm.com>
8191
8192 PR target/81408
8193 * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
8194 optimization for loop niter analysis.
8195
8196 2017-07-18 Georg-Johann Lay <avr@gjlay.de>
8197
8198 PR target/81473
8199 * config/avr/avr.c (avr_optimize_casesi): Don't use
8200 INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
8201
8202 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
8203
8204 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
8205 body_cost_vec from _vect_peel_extended_info.
8206 (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
8207 (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
8208 npeel.
8209
8210 2017-07-18 Bin Cheng <bin.cheng@arm.com>
8211
8212 * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
8213
8214 2017-07-18 Richard Biener <rguenther@suse.de>
8215
8216 PR tree-optimization/80620
8217 PR tree-optimization/81403
8218 * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
8219 info when re-using a VN table entry.
8220
8221 2017-07-18 Richard Biener <rguenther@suse.de>
8222
8223 PR tree-optimization/81418
8224 * tree-vect-loop.c (vectorizable_reduction): Properly compute
8225 vectype_in. Verify that with lane-reducing reduction operations
8226 we have a single def-use cycle.
8227
8228 2017-07-17 Carl Love <cel@us.ibm.com>
8229
8230 Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com>
8231
8232 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8233 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
8234 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
8235 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
8236 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
8237 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
8238 VMULOSW): New enum "unspec" values.
8239 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
8240 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
8241 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
8242 altivec_vmulosw): New patterns.
8243 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
8244 VMULOSW): Add definitions.
8245 2017-07-17 Uros Bizjak <ubizjak@gmail.com>
8246
8247 * config/alpha/alpha.c: Include predict.h.
8248
8249 2017-07-17 Yury Gribov <tetra2005@gmail.com>
8250
8251 * tree-vrp.c (compare_assert_loc): Fix comparison function
8252 to return predictable results.
8253
8254 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
8255
8256 * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
8257 option.
8258 (subdi3): Likewise.
8259 * config/arc/arc.opt (mexpand-adddi): Deprecate it.
8260 * doc/invoke.texi (mexpand-adddi): Update text.
8261
8262 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
8263
8264 * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
8265 that also clobbers the CC register. The old expand code is moved
8266 to ...
8267 (*arc_clzsi2): ... here.
8268 (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
8269 the CC register. The old expand code is moved to ...
8270 (arc_ctzsi2): ... here.
8271
8272 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
8273
8274 * config/arc/arc.opt (mindexed-loads): Use initial value
8275 TARGET_INDEXED_LOADS_DEFAULT.
8276 (mauto-modify-reg): Use initial value
8277 TARGET_AUTO_MODIFY_REG_DEFAULT.
8278 * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
8279 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
8280 * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
8281 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
8282
8283 2017-07-17 Martin Liska <mliska@suse.cz>
8284
8285 PR sanitizer/81302
8286 * opts.c (finish_options): Do not allow -fgnu-tm
8287 w/ -fsanitize={kernel-,}address. Say sorry.
8288
8289 2017-07-17 Bin Cheng <bin.cheng@arm.com>
8290
8291 PR target/81369
8292 * tree-loop-distribution.c (classify_partition): Only assert on
8293 numer of iterations.
8294 (merge_dep_scc_partitions): Delete prameter. Update function call.
8295 (distribute_loop): Remove code handling loop with unknown niters.
8296 (pass_loop_distribution::execute): Skip loop with unknown niters.
8297
8298 2017-07-17 Bin Cheng <bin.cheng@arm.com>
8299
8300 PR target/81369
8301 * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
8302 function sort_partitions_by_post_order.
8303
8304 2017-07-17 Bin Cheng <bin.cheng@arm.com>
8305
8306 PR tree-optimization/81374
8307 * tree-loop-distribution.c (pass_loop_distribution::execute): Record
8308 the max index of basic blocks, rather than number of basic blocks.
8309
8310 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
8311
8312 * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
8313 proto.
8314 (arc_legitimate_pic_operand_p): Likewise.
8315 * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
8316 function.
8317 (arc_needs_pcl_p): Likewise.
8318 (arc_legitimate_pc_offset_p): Likewise.
8319 (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
8320 function is also used in constrains.md.
8321 (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
8322 validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
8323 PLUS. Only return true/false in known cases, otherwise assert.
8324 (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
8325 is already called in arc_legitimate_constant_p.
8326 * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
8327 pic addresses.
8328 (LEGITIMATE_PIC_OPERAND_P): Use
8329 arc_raw_symbolic_reference_mentioned_p function.
8330 * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
8331 function.
8332 (Cal): Likewise.
8333 (C32): Likewise.
8334
8335 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
8336 Andrew Burgess <andrew.burgess@embecosm.com>
8337
8338 * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
8339 (arc_return_address_register): New function.
8340 * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
8341 (arc_handle_fndecl_attribute): Add naked attribute.
8342 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
8343 (TARGET_WARN_FUNC_RETURN): Likewise.
8344 (arc_allocate_stack_slots_for_args): New function.
8345 (arc_warn_func_return): Likewise.
8346 (machine_function): Change type fn_type.
8347 (arc_compute_function_type): Consider new naked function type,
8348 change function return type.
8349 (arc_must_save_register): Adapt to handle new
8350 arc_compute_function_type's return type.
8351 (arc_expand_prologue): Likewise.
8352 (arc_expand_epilogue): Likewise.
8353 (arc_return_address_regs): Delete.
8354 (arc_return_address_register): New function.
8355 (arc_epilogue_uses): Use above function.
8356 * config/arc/arc.h (arc_return_address_regs): Delete prototype.
8357 (arc_function_type): Change encoding, add naked type.
8358 (ARC_INTERRUPT_P): Change to handle the new encoding.
8359 (ARC_FAST_INTERRUPT_P): Likewise.
8360 (ARC_NORMAL_P): Define.
8361 (ARC_NAKED_P): Likewise.
8362 (arc_compute_function_type): Delete prototype.
8363 * config/arc/arc.md (in_ret_delay_slot): Use
8364 arc_return_address_register function.
8365 (simple_return): Likewise.
8366 (p_return_i): Likewise.
8367
8368 2017-07-17 Jakub Jelinek <jakub@redhat.com>
8369
8370 PR tree-optimization/81428
8371 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
8372 can't be built for those types.
8373
8374 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
8375
8376 Remove stuff dead since r239246.
8377
8378 * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
8379 * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
8380 (avr_inform_devices): Remove dead stuff.
8381
8382 2017-07-17 Tamar Christina <tamar.christina@arm.com>
8383
8384 * config/arm/arm_neon.h: Fix softp typo.
8385
8386 2017-07-17 Jakub Jelinek <jakub@redhat.com>
8387
8388 PR tree-optimization/81365
8389 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
8390 aggregate moves onto bb predecessor edges, make sure there are no
8391 loads that could alias the lhs in between the start of bb and the
8392 loads from *phi.
8393
8394 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
8395
8396 PR 80929
8397 * config/avr/avr.c (avr_mul_highpart_cost): New static function.
8398 (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
8399 [LSHIFTRT, outer_code = TRUNCATE]: Same.
8400
8401 2017-07-17 Jakub Jelinek <jakub@redhat.com>
8402
8403 PR tree-optimization/81396
8404 * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
8405 (init_symbolic_number): Initialize it to 1.
8406 (perform_symbolic_merge): Add n_ops from both operands into the new
8407 n_ops.
8408 (find_bswap_or_nop): Don't consider n->n == cmpnop computations
8409 without base_addr as useless if they need more than one operation.
8410 (bswap_replace): Handle !bswap case for NULL base_addr.
8411
8412 2017-07-17 Tom de Vries <tom@codesourcery.com>
8413
8414 PR target/81069
8415 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
8416 as possible.
8417
8418 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
8419
8420 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
8421 conditional builtin define __FIX_LEON3FT_B2BST.
8422
8423 2017-07-17 Daniel Cederman <cederman@gaisler.com>
8424
8425 * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
8426 MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
8427 with -mfix-ut700.
8428
8429 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
8430
8431 PR rtl-optimization/81424
8432 * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
8433 to remove potential trapping from operands if -fnon-call-exceptions.
8434
8435 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
8436
8437 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
8438 profile_proability for scalling.
8439 * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
8440
8441 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
8442
8443 * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
8444
8445 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
8446
8447 * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
8448 fixpoint arithmetics.
8449
8450 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
8451
8452 * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
8453 fixpoint arithmetics.
8454
8455 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
8456
8457 * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
8458 fixpoint arithmetics.
8459
8460 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
8461
8462 * profile-count.h (profile_probability::from_reg_br_prob_note,
8463 profile_probability::to_reg_br_prob_note): New functions.
8464 * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
8465 * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
8466 * predict.c (probability_reliable_p): Update.
8467 (edge_probability_reliable_p): Update.
8468 (br_prob_note_reliable_p): Update.
8469 (invert_br_probabilities): Update.
8470 (add_reg_br_prob_note): New function.
8471 (combine_predictions_for_insn): Update.
8472 * asan.c (asan_clear_shadow): Update.
8473 * cfgbuild.c (compute_outgoing_frequencies): Update.
8474 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
8475 (update_br_prob_note): Update.
8476 (rtl_verify_edges): Update.
8477 (purge_dead_edges): Update.
8478 (fixup_reorder_chain): Update.
8479 * emit-rtl.c (try_split): Update.
8480 * ifcvt.c (cond_exec_process_insns): Update.
8481 (cond_exec_process_if_block): Update.
8482 (dead_or_predicable): Update.
8483 * internal-fn.c (expand_addsub_overflow): Update.
8484 (expand_neg_overflow): Update.
8485 (expand_mul_overflow): Update.
8486 * loop-doloop.c (doloop_modify): Update.
8487 * loop-unroll.c (compare_and_jump_seq): Update.
8488 * optabs.c (emit_cmp_and_jump_insn_1): Update.
8489 * predict.h: Update.
8490 * reorg.c (mostly_true_jump): Update.
8491 * rtl.h: Update.
8492 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
8493 * config/alpha/alpha.c (emit_unlikely_jump): Update.
8494 * config/arc/arc.c: (emit_unlikely_jump): Update.
8495 * config/arm/arm.c: (emit_unlikely_jump): Update.
8496 * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
8497 * config/frv/frv.c (frv_print_operand_jump_hint): Update.
8498 * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
8499 (ix86_print_operand): Update.
8500 (ix86_split_fp_branch): Update.
8501 (predict_jump): Update.
8502 * config/ia64/ia64.c (ia64_print_operand): Update.
8503 * config/mmix/mmix.c (mmix_print_operand): Update.
8504 * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
8505 (rs6000_expand_split_stack_prologue): Update.
8506 * config/rs6000/rs6000.c: Update.
8507 * config/s390/s390.c (s390_expand_vec_strlen): Update.
8508 (s390_expand_vec_movstr): Update.
8509 (s390_expand_cs_tdsi): Update.
8510 (s390_expand_split_stack_prologue): Update.
8511 * config/sh/sh.c (sh_print_operand): Update.
8512 (expand_cbranchsi4): Update.
8513 (expand_cbranchdi4): Update.
8514 * config/sparc/sparc.c (output_v9branch): Update.
8515 * config/spu/spu.c (get_branch_target): Update.
8516 (ea_load_store_inline): Update.
8517 * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
8518 * config/tilepro/tilepro.c: Update.
8519
8520 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
8521
8522 * gimplify.c (mostly_copy_tree_r): Revert latest change.
8523 (gimplify_save_expr): Likewise.
8524
8525 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
8526
8527 * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
8528
8529 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
8530
8531 * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
8532 TV_IPA_FNSUMMARY.
8533 * timevar.def (TV_IPA_FNSUMMARY): Define.
8534
8535 2017-07-16 Daniel Cederman <cederman@gaisler.com>
8536
8537 * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
8538 to back store errata sensitive sequence from being generated.
8539 (sqrtdf2_fix): Likewise.
8540
8541 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
8542
8543 * tree-ssa-threadupdate.c (compute_path_counts,
8544 update_joiner_offpath_counts): Use profile_probability.
8545
8546 2017-07-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
8547
8548 Revert:
8549 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
8550
8551 * config/arm/arm-c.c (arm_cpu_builtins): Define
8552 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
8553
8554 2017-07-14 Kelvin Nilsen <kelvin@gcc.gnu.org>
8555
8556 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8557 array entries to represent __ieee128 versions of the
8558 scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
8559 scalar_extract_sig, and scalar_insert_exp built-in functions.
8560 (altivec_resolve_overloaded_builtin): Add special case handling
8561 for the __builtin_scalar_insert_exp function, as represented by
8562 the P9V_BUILTIN_VEC_VSIEDP constant.
8563 * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
8564 exponent support for __ieee128 argument.
8565 (VSESQP): Add scalar extract signature support for __ieee128
8566 argument.
8567 (VSTDCNQP): Add scalar test negative support for __ieee128
8568 argument.
8569 (VSIEQP): Add scalar insert exponent support for __int128 argument
8570 with __ieee128 result.
8571 (VSIEQPF): Add scalar insert exponent support for __ieee128
8572 argument with __ieee128 result.
8573 (VSTDCQP): Add scalar test data class support for __ieee128
8574 argument.
8575 (VSTDCNQP): Add overload support for scalar test negative with
8576 __ieee128 argument.
8577 (VSTDCQP): Add overload support for scalar test data class
8578 __ieee128 argument.
8579 * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
8580 UNSPEC_VSX_SXSIGDP.
8581 (UNSPEC_VSX_SIEXPQP): New constant.
8582 (xsxexpqp): New insn for VSX scalar extract exponent quad
8583 precision.
8584 (xsxsigqp): New insn for VSX scalar extract significand quad
8585 precision.
8586 (xsiexpqpf): New insn for VSX scalar insert exponent quad
8587 precision with floating point argument.
8588 (xststdcqp): New expand for VSX scalar test data class quad
8589 precision.
8590 (xststdcnegqp): New expand for VSX scalar test negative quad
8591 precision.
8592 (xststdcqp): New insn to match expansions for VSX scalar test data
8593 class quad precision and VSX scalar test negative quad precision.
8594 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
8595 special case operand checking to enforce that second operand of
8596 VSX scalar test data class with quad precision argument is a 7-bit
8597 unsigned literal.
8598 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
8599 prototypes and descriptions of __ieee128 versions of
8600 scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
8601 scalar_test_data_class, and scalar_test_neg built-in functions.
8602
8603 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8604
8605 PR tree-optimization/81162
8606 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
8607 replace a negate with an add.
8608
8609 2017-07-14 James Greenhalgh <james.greenhalgh@arm.com>
8610
8611 * doc/invoke.texi (arm/-mcpu): Document +crypto.
8612
8613 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
8614
8615 * config/arm/arm-c.c (arm_cpu_builtins): Define
8616 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
8617
8618 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
8619
8620 * config/arm/arm-cpus.in (cortex-r52): Add new entry.
8621 (armv8-r): Set ARM Cortex-R52 as default CPU.
8622 * config/arm/arm-tables.opt: Regenerate.
8623 * config/arm/arm-tune.md: Regenerate.
8624 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
8625 Cortex-R52.
8626 * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
8627 extension for -mcpu=cortex-r52.
8628
8629 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
8630
8631 * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
8632 (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
8633 * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
8634 (fp-armv8): Define it as FP_ARMv8 only.
8635 config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
8636 (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
8637 TARGET_FPU_ARMV8.
8638 config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
8639 TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
8640 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
8641 first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
8642 than TARGET_FPU_ARMV8.
8643 * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
8644 __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
8645 * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
8646 TARGET_FPU_ARMV8.
8647 * config/arm/neon.md (neon_vrint): Likewise.
8648 (neon_vcvt): Likewise.
8649 (neon_<fmaxmin_op><mode>): Likewise.
8650 (<fmaxmin><mode>3): Likewise.
8651 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
8652 * config/arm/predicates.md (arm_cond_move_operator): Check against
8653 TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
8654
8655 2017-07-14 Jackson Woodruff <jackson.woodruff@arm.com>
8656
8657 * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
8658 to top of function.
8659
8660 2017-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8661
8662 * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
8663 loop in comment with memset.
8664
8665 2017-07-14 Martin Liska <mliska@suse.cz>
8666
8667 * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
8668 * dwarf2out.c (is_java): Remove the function.
8669 (output_pubname): Remove usage of the function.
8670 (lower_bound_default): Remove usage of DW_LANG_Java.
8671 (gen_compile_unit_die): Likewise.
8672 * gcc.c: Remove compiler defaults for .java and .zip files.
8673 * gimple-expr.c (remove_suffix): Change as there's no longer
8674 extension than 4-letter one.
8675 * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
8676 (gimplify_save_expr): Likewise.
8677 * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
8678 as it's possible even for other languages than Java.
8679 * langhooks.h (struct lang_hooks): Remove Java from a comment.
8680 * lto-opts.c (lto_write_options): Remove reference to Java.
8681 * opts.c (strip_off_ending): Update file extension handling.
8682 * tree-cfg.c (verify_gimple_call): Remove comment with Java.
8683 * tree-eh.c (lower_resx): Likewise.
8684 * tree.c (free_lang_data_in_type): Remove dead code.
8685 (find_decls_types_r): Likewise.
8686 (build_common_builtin_nodes): Remove Java from a comment.
8687 (verify_type): Remove dead code.
8688 * varasm.c (assemble_external): Remove Java from a comment.
8689
8690 2017-07-14 Martin Liska <mliska@suse.cz>
8691
8692 * opts.c (finish_options): Add quotes.
8693 (common_handle_option): Likewise.
8694
8695 2017-07-14 Martin Liska <mliska@suse.cz>
8696
8697 * dbxout.c (get_lang_number): Do not handle GNU Pascal.
8698 * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
8699 Remove N_SO_PASCAL.
8700 * dwarf2out.c (lower_bound_default): Do not handle
8701 DW_LANG_Pascal83.
8702 (gen_compile_unit_die): Likewise.
8703 * gcc.c: Remove default extension binding for GNU Pascal.
8704 * stmt.c: Remove Pascal language from a comment.
8705 * xcoffout.c: Likewise.
8706
8707 2017-07-13 David Malcolm <dmalcolm@redhat.com>
8708
8709 PR c/81405
8710 * diagnostic-show-locus.c (fixit_cmp): New function.
8711 (layout::layout): Sort m_fixit_hints.
8712 (column_range::column_range): Assert that the values are valid.
8713 (struct char_span): New struct.
8714 (correction::overwrite): New method.
8715 (struct source_line): New struct.
8716 (line_corrections::add_hint): Add assertions. Reimplement memcpy
8717 calls in terms of classes source_line and char_span, and
8718 correction::overwrite.
8719 (selftest::test_overlapped_fixit_printing_2): New function.
8720 (selftest::diagnostic_show_locus_c_tests): Call it.
8721
8722 2017-07-13 Will Schmidt <will_schmidt@vnet.ibm.com>
8723
8724 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
8725 early if there is no lhs.
8726
8727 2017-07-13 Martin Liska <mliska@suse.cz>
8728
8729 * dwarf2out.c (gen_pointer_type_die): Remove dead code.
8730 (gen_reference_type_die): Likewise.
8731 * stor-layout.c: Remove Pascal-related comment.
8732
8733 2017-07-13 Martin Liska <mliska@suse.cz>
8734
8735 * opts.c (finish_options): Add quotes to error messages.
8736 (parse_sanitizer_options): Likewise.
8737
8738 2017-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
8739
8740 * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
8741
8742 2017-07-13 Richard Earnshaw <rearnsha@arm.com>
8743
8744 * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
8745
8746 2017-07-13 Maxim Ostapenko <m.ostapenko@samsung.com>
8747
8748 * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
8749 during expansion.
8750 * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
8751
8752 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8753
8754 PR target/81193
8755 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
8756 provides the hardware capability bits, define the macro
8757 __BUILTIN_CPU_SUPPORTS__.
8758 * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
8759 if GLIBC does not provide the hardware capability bits. Add a
8760 gcc_unreachable call if the built-in cpu function is neither
8761 __builtin_cpu_is nor __builtin_cpu_supports.
8762 (rs6000_get_function_versions_dispatcher): Change the warning
8763 that an old GLIBC is used which does not export the capability
8764 bits to be an error.
8765 * doc/extend.texi (target_clones attribute): Document the
8766 restriction that GLIBC 2.23 or newer is needed on the PowerPC.
8767 (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
8768 needed by __builtin_cpu_is and __builtin_cpu_supports. Document
8769 the macros defined by GCC if the newer GLIBC is available.
8770
8771 2017-07-12 Jeff Law <law@redhat.com>
8772
8773 * config/riscv/riscv.c: Remove unnecessary includes. Reorder
8774 remaining includes slightly.
8775 * config/riscv/riscv-builtins.c: Include profile-count.h.
8776
8777 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
8778
8779 PR target/79883
8780 * config/avr/avr.c (avr_set_current_function): In diagnostic
8781 messages: Quote keywords and (parts of) identifiers.
8782 [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
8783 "INTERUPT".
8784
8785 2017-07-12 Carl Love <cel@us.ibm.com>
8786
8787 * config/rs6000/rs6000-c.c: Add support for built-in functions
8788 vector bool char vec_revb (vector bool char);
8789 vector bool short vec_revb (vector short char);
8790 vector bool int vec_revb (vector bool int);
8791 vector bool long long vec_revb (vector bool long long);
8792 * doc/extend.texi: Update the built-in documentation file for the
8793 new built-in functions.
8794
8795 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8796
8797 * config/s390/s390.md: Remove movcc splitter.
8798
8799 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8800
8801 * config/s390/s390.c (s390_rtx_costs): Return proper costs for
8802 load/store on condition.
8803
8804 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
8805
8806 PR target/81407
8807 * config/avr/avr.c (avr_encode_section_info)
8808 [progmem && !TREE_READONLY]: Error if progmem object needs
8809 constructing.
8810
8811 2017-07-11 Michael Collison <michael.collison@arm.com>
8812
8813 * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
8814 New pattern.
8815
8816 2017-07-11 Carl Love <cel@us.ibm.com>
8817
8818 * config/rs6000/rs6000-c.c: Add support for builtins
8819 vector unsigned int vec_parity_lsbb (vector signed int);
8820 vector unsigned int vec_parity_lsbb (vector unsigned int);
8821 vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
8822 vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
8823 vector unsigned long long vec_parity_lsbb (vector signed long long);
8824 vector unsigned long long vec_parity_lsbb (vector unsigned long long);
8825 * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
8826 * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
8827 * doc/extend.texi: Update the built-in documentation file for the
8828 new built-in functions.
8829
8830 2017-07-11 David Malcolm <dmalcolm@redhat.com>
8831
8832 * diagnostic-show-locus.c: Include "gcc-rich-location.h".
8833 (layout::m_primary_loc): New field.
8834 (layout::layout): Initialize new field. Move location filtering
8835 logic from here to...
8836 (layout::maybe_add_location_range): ...this new method. Add
8837 support for filtering to just the lines already specified by other
8838 locations.
8839 (layout::will_show_line_p): New method.
8840 (gcc_rich_location::add_location_if_nearby): New method.
8841 (selftest::test_add_location_if_nearby): New test function.
8842 (selftest::diagnostic_show_locus_c_tests): Call it.
8843 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
8844 New method.
8845
8846 2017-07-11 Tom de Vries <tom@codesourcery.com>
8847
8848 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
8849 (bb_first_real_insn): New function.
8850 (nvptx_single): Add extra initialization of broadcasted condition
8851 variables.
8852
8853 2017-07-11 Nathan Sidwell <nathan@acm.org>
8854
8855 * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
8856
8857 2017-07-11 Georg-Johann Lay <avr@gjlay.de>
8858
8859 * doc/extend.texi (AVR Function Attributes): Remove weblink to
8860 Binutils doc as TEXI will mess them up.
8861 * doc/invoke.texi (AVR Options): Same here.
8862
8863 2017-07-11 Daniel Cederman <cederman@gaisler.com>
8864
8865 * config/sparc/sparc.opt (mfix-ut700): New option.
8866 (mfix-gr712rc): Likewise.
8867 (sparc_fix_b2bst): New variable.
8868 * doc/invoke.texi (SPARC options): Document them.
8869 (ARM options): Fix warnings.
8870 * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
8871 instructions to prevent sequences that can trigger the store-store
8872 errata for certain LEON3FT processors.
8873 (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
8874 (sparc_option_override): Set sparc_fix_b2bst appropriately.
8875 * config/sparc/sparc.md (fix_b2bst): New attribute.
8876 (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
8877
8878 2017-07-10 Uros Bizjak <ubizjak@gmail.com>
8879
8880 PR target/81375
8881 * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
8882 (rcpps): Ditto.
8883 (*rsqrtsf2_sse): Ditto.
8884 (rsqrtsf2): Ditto.
8885 (div<mode>3): Macroize insn from divdf3 and divsf3
8886 using MODEF mode iterator.
8887
8888 2017-07-10 Martin Sebor <msebor@redhat.com>
8889
8890 PR tree-optimization/80397
8891 * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
8892 instead of testing for equality to INTEGER_TYPE.
8893
8894 2017-07-10 Vineet Gupta <vgupta@synopsys.com>
8895
8896 * config.gcc: Remove uclibc from arc target spec.
8897
8898 2017-07-10 Claudiu Zissulescu <claziss@synopsys.com>
8899
8900 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
8901
8902 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
8903
8904 PR lto/80838
8905 * lto-wrapper.c (remove_option): New function.
8906 (merge_and_complain): Merge PIC/PIE options more realistically.
8907
8908 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
8909
8910 Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
8911
8912 PR target/20296
8913 PR target/81268
8914 * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
8915 (HAVE_AS_AVR_MGCCISR_OPTION): If so, AC_DEFINE it.
8916 * config.in: Regenerate.
8917 * configure: Regenerate.
8918 * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
8919 * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
8920 * config/avr/avr.opt (-mgas-isr-prologues): New option and...
8921 (TARGET_GASISR_PROLOGUES): ...target mask.
8922 * common/config/avr/avr-common.c
8923 (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
8924 Set -mgas-isr-prologues.
8925 * config/avr/avr-passes.def (avr_pass_pre_proep): Add
8926 INSERT_PASS_BEFORE for it.
8927 * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
8928 * config/avr/avr.c (avr_option_override)
8929 [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
8930 (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
8931 (avr_attribute_table) <no_gccisr>: Add new function attribute.
8932 (avr_set_current_function) <is_no_gccisr>: Init machine field.
8933 (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
8934 and rtl_opt_pass.
8935 (make_avr_pass_pre_proep): New function.
8936 (emit_push_sfr) <treg>: Add argument to function and use it
8937 instead of TMP_REG.
8938 (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
8939 and set machine->gasisr.yes.
8940 (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
8941 (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
8942 __gcc_isr.n_pushed to .L__stack_usage.
8943 (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
8944 (avr_asm_final_postscan_insn): ...this new static function.
8945 * config/avr/avr.h (machine_function)
8946 <is_no_gccisr, use_L__stack_usage>: New fields.
8947 <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
8948 * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
8949 (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
8950 (gasisr, *gasisr): New expander and insn.
8951 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
8952 [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
8953 * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
8954
8955 2017-07-10 Richard Earnshaw <rearnsha@arm.com>
8956
8957 * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
8958 in quoted strings.
8959
8960 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
8961
8962 Move jump-tables out of .text again.
8963
8964 PR target/81075
8965 * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
8966 (ASM_OUTPUT_ADDR_VEC): New function.
8967 (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
8968 (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
8969 INSN_ADDRESSes as asm comment.
8970 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
8971 (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
8972 (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
8973 * config/avr/avr.md (*tablejump): Adjust comment.
8974 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
8975 * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
8976 New detail.
8977 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
8978 (avr_output_addr_vec): New proto.
8979 (avr_log_t) <insn_addresses>: New field.
8980
8981 2017-07-09 H.J. Lu <hongjiu.lu@intel.com>
8982
8983 PR target/81313
8984 * config/i386/i386.c (ix86_function_arg_advance): Set
8985 outgoing_args_on_stack to true if there are outgoing arguments
8986 on stack.
8987 (ix86_function_arg): Likewise.
8988 (ix86_get_drap_rtx): Use DRAP only if there are outgoing
8989 arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
8990 * config/i386/i386.h (machine_function): Add
8991 outgoing_args_on_stack.
8992
8993 2017-07-09 Krister Walfridsson <krister.walfridsson@gmail.com>
8994
8995 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
8996 supporting pthreds.
8997 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
8998
8999 2017-07-08 Richard Sandiford <richard.sandiford@linaro.org>
9000
9001 * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
9002 (REAL_H): Remove $(MACHMODE_H).
9003 (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
9004 double-int.h.
9005 (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
9006 $(MACHMODE_H) and double-int.h.
9007 (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
9008 $(MACHMODE_H).
9009 (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
9010 double-int.h.
9011
9012 2017-07-07 Andrew Pinski <apinski@cavium.com>
9013
9014 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
9015 prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
9016
9017 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
9018
9019 * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
9020 Add warning if GCC was not configured to link against a GLIBC that
9021 exports the hardware capability bits.
9022 (make_resolver_func): Make resolver function private and not a
9023 COMDAT function. Create the name with clone_function_name instead
9024 of make_unique_name.
9025
9026 PR target/81348
9027 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
9028 correct operand in doing the split.
9029
9030 2017-07-07 Carl Love <cel@us.ibm.com>
9031
9032 * config/rs6000/rs6000-c: Add support for built-in function
9033 vector unsigned short vec_pack_to_short_fp32 (vector float,
9034 vector float).
9035 * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
9036 BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
9037 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
9038 * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
9039 (convert_4f32_8i16): Add define_expand.
9040 * doc/extend.texi: Update the built-in documentation file for the
9041 new built-in function.
9042
9043 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
9044
9045 * config/sparc/m8.md: New file.
9046 * config/sparc/sparc.md: Include m8.md.
9047
9048 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
9049
9050 * config/sparc/sparc.opt: New option -mvis4b.
9051 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
9052 (sparc_option_override): Handle VIS4B.
9053 (enum sparc_builtins): Define
9054 SPARC_BUILTIN_DICTUNPACK{8,16,32},
9055 SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
9056 SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
9057 SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
9058 SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
9059 (check_constant_argument): New function.
9060 (sparc_vis_init_builtins): Define builtins
9061 __builtin_vis_dictunpack{8,16,32},
9062 __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
9063 __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
9064 __builtin_vis_fpcmpde{8,16,32}shl and
9065 __builtin_vis_fpcmpur{8,16,32}shl.
9066 (sparc_expand_builtin): Check that the constant operands to
9067 __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
9068 constant and in range.
9069 * config/sparc/sparc-c.c (sparc_target_macros): Handle
9070 TARGET_VIS4B.
9071 * config/sparc/sparc.h (SPARC_IMM2_P): Define.
9072 (SPARC_IMM5_P): Likewise.
9073 * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
9074 (enabled): Handle vis4b.
9075 (UNSPEC_DICTUNPACK): New unspec.
9076 (UNSPEC_FPCMPSHL): Likewise.
9077 (UNSPEC_FPUCMPSHL): Likewise.
9078 (UNSPEC_FPCMPDESHL): Likewise.
9079 (UNSPEC_FPCMPURSHL): Likewise.
9080 (cpu_feature): New CPU feature `vis4b'.
9081 (dictunpack{8,16,32}): New insns.
9082 (FPCSMODE): New mode iterator.
9083 (fpcscond): New code iterator.
9084 (fpcsucond): Likewise.
9085 (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
9086 (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
9087 (fpcmpde{8,16,32}{si,di}shl): Likewise.
9088 (fpcmpur{8,16,32}{si,di}shl): Likewise.
9089 * config/sparc/constraints.md: Define constraints `q' for unsigned
9090 2-bit integer constants and `t' for unsigned 5-bit integer
9091 constants.
9092 * config/sparc/predicates.md (imm5_operand_dictunpack8): New
9093 predicate.
9094 (imm5_operand_dictunpack16): Likewise.
9095 (imm5_operand_dictunpack32): Likewise.
9096 (imm2_operand): Likewise.
9097 * doc/invoke.texi (SPARC Options): Document -mvis4b.
9098 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
9099 ditunpack* and fpcmp*shl builtins.
9100
9101 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
9102
9103 * config.gcc: Handle m8 in --with-{cpu,tune} options.
9104 * config.in: Add HAVE_AS_SPARC6 define.
9105 * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
9106 M8.
9107 * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
9108 TARGET_CPU_m8.
9109 (ASM_CPU32_DEFAUILT_SPEC): Likewise.
9110 (CPP_CPU_SPEC): Handle m8.
9111 (ASM_CPU_SPEC): Likewise.
9112 * config/sparc/sparc-opts.h (enum processor_type): Add
9113 PROCESSOR_M8.
9114 * config/sparc/sparc.c (m8_costs): New struct.
9115 (sparc_option_override): Handle TARGET_CPU_m8.
9116 (sparc32_initialize_trampoline): Likewise.
9117 (sparc64_initialize_trampoline): Likewise.
9118 (sparc_issue_rate): Likewise.
9119 (sparc_register_move_cost): Likewise.
9120 * config/sparc/sparc.h (TARGET_CPU_m8): Define.
9121 (CPP_CPU64_DEFAULT_SPEC): Define for M8.
9122 (ASM_CPU64_DEFAULT_SPEC): Likewise.
9123 (CPP_CPU_SPEC): Handle M8.
9124 (ASM_CPU_SPEC): Likewise.
9125 (AS_M8_FLAG): Define.
9126 * config/sparc/sparc.md: Add m8 to the cpu attribute.
9127 * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
9128 * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
9129 M8 instructions.
9130 * configure: Regenerate.
9131 * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
9132 -mtune=m8.
9133
9134 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
9135
9136 * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
9137 subtypes.
9138 * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
9139 ("*movdi_insn_sp32"): Do not set v3pipe.
9140 ("*movsi_insn"): Likewise.
9141 ("*movdi_insn_sp64"): Likewise.
9142 ("*movsf_insn"): Likewise.
9143 ("*movdf_insn_sp32"): Likewise.
9144 ("*movdf_insn_sp64"): Likewise.
9145 ("*zero_extendsidi2_insn_sp64"): Likewise.
9146 ("*sign_extendsidi2_insn"): Likewise.
9147 ("*mov<VM32:mode>_insn"): Likewise.
9148 ("*mov<VM64:mode>_insn_sp64"): Likewise.
9149 ("*mov<VM64:mode>_insn_sp32"): Likewise.
9150 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
9151 ("<vlop:code><VL:mode>3"): Likewise.
9152 ("*not_<vlop:code><VL:mode>3"): Likewise.
9153 ("*nand<VL:mode>_vis"): Likewise.
9154 ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
9155 ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
9156 ("one_cmpl<VL:mode>2"): Likewise.
9157 ("faligndata<VM64:mode>_vis"): Likewise.
9158 ("alignaddrsi_vis"): Likewise.
9159 ("alignaddrdi_vis"): Likweise.
9160 ("alignaddrlsi_vis"): Likewise.
9161 ("alignaddrldi_vis"): Likewise.
9162 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
9163 ("bmaskdi_vis"): Likewise.
9164 ("bmasksi_vis"): Likewise.
9165 ("bshuffle<VM64:mode>_vis"): Likewise.
9166 ("cmask8<P:mode>_vis"): Likewise.
9167 ("cmask16<P:mode>_vis"): Likewise.
9168 ("cmask32<P:mode>_vis"): Likewise.
9169 ("pdistn<P:mode>_vis"): Likewise.
9170 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
9171
9172 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
9173
9174 * config/sparc/sparc.md ("subtype"): New insn attribute.
9175 ("*wrgsr_sp64"): Set insn subtype.
9176 ("*rdgsr_sp64"): Likewise.
9177 ("alignaddrsi_vis"): Likewise.
9178 ("alignaddrdi_vis"): Likewise.
9179 ("alignaddrlsi_vis"): Likewise.
9180 ("alignaddrldi_vis"): Likewise.
9181 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
9182 ("fexpand_vis"): Likewise.
9183 ("fpmerge_vis"): Likewise.
9184 ("faligndata<VM64:mode>_vis"): Likewise.
9185 ("bshuffle<VM64:mode>_vis"): Likewise.
9186 ("cmask8<P:mode>_vis"): Likewise.
9187 ("cmask16<P:mode>_vis"): Likewise.
9188 ("cmask32<P:mode>_vis"): Likewise.
9189 ("fchksm16_vis"): Likewise.
9190 ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
9191 ("fmean16_vis"): Likewise.
9192 ("fp<plusminus_insn>64_vis"): Likewise.
9193 ("<plusminus_insn>v8qi3"): Likewise.
9194 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
9195 ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
9196 ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
9197 ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
9198 ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
9199 ("*movqi_insn"): Likewise.
9200 ("*movhi_insn"): Likewise.
9201 ("*movsi_insn"): Likewise.
9202 ("movsi_pic_gotdata_op"): Likewise.
9203 ("*movdi_insn_sp32"): Likewise.
9204 ("*movdi_insn_sp64"): Likewise.
9205 ("movdi_pic_gotdata_op"): Likewise.
9206 ("*movsf_insn"): Likewise.
9207 ("*movdf_insn_sp32"): Likewise.
9208 ("*movdf_insn_sp64"): Likewise.
9209 ("*zero_extendhisi2_insn"): Likewise.
9210 ("*zero_extendqihi2_insn"): Likewise.
9211 ("*zero_extendqisi2_insn"): Likewise.
9212 ("*zero_extendqidi2_insn"): Likewise.
9213 ("*zero_extendhidi2_insn"): Likewise.
9214 ("*zero_extendsidi2_insn_sp64"): Likewise.
9215 ("ldfsr"): Likewise.
9216 ("prefetch_64"): Likewise.
9217 ("prefetch_32"): Likewise.
9218 ("tie_ld32"): Likewise.
9219 ("tie_ld64"): Likewise.
9220 ("*tldo_ldub_sp32"): Likewise.
9221 ("*tldo_ldub1_sp32"): Likewise.
9222 ("*tldo_ldub2_sp32"): Likewise.
9223 ("*tldo_ldub_sp64"): Likewise.
9224 ("*tldo_ldub1_sp64"): Likewise.
9225 ("*tldo_ldub2_sp64"): Likewise.
9226 ("*tldo_ldub3_sp64"): Likewise.
9227 ("*tldo_lduh_sp32"): Likewise.
9228 ("*tldo_lduh1_sp32"): Likewise.
9229 ("*tldo_lduh_sp64"): Likewise.
9230 ("*tldo_lduh1_sp64"): Likewise.
9231 ("*tldo_lduh2_sp64"): Likewise.
9232 ("*tldo_lduw_sp32"): Likewise.
9233 ("*tldo_lduw_sp64"): Likewise.
9234 ("*tldo_lduw1_sp64"): Likewise.
9235 ("*tldo_ldx_sp64"): Likewise.
9236 ("*mov<VM32:mode>_insn"): Likewise.
9237 ("*mov<VM64:mode>_insn_sp64"): Likewise.
9238 ("*mov<VM64:mode>_insn_sp32"): Likewise.
9239
9240 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
9241
9242 * config/sparc/sparc.md ("type"): New insn type viscmp.
9243 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
9244 viscmp.
9245 ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
9246 ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
9247 ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
9248 * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
9249 viscmp.
9250 ("n7_vis_logical_11cycle"): Likewise.
9251 * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
9252 * config/sparc/niagara2.md ("niag3_vis": Likewise.
9253 * config/sparc/niagara.md ("niag_vis"): Likewise.
9254 * config/sparc/ultra3.md ("us3_fga"): Likewise.
9255 * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
9256
9257 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
9258
9259 * config/sparc/sparc.md: New instruction type `bmask'.
9260 (bmaskdi_vis): Use the `bmask' type.
9261 (bmasksi_vis): Likewise.
9262 * config/sparc/ultra3.md (us3_array): Likewise.
9263 * config/sparc/niagara7.md (n7_array): Likewise.
9264 * config/sparc/niagara4.md (n4_array): Likewise.
9265 * config/sparc/niagara2.md (niag2_vis): Likewise.
9266 (niag3_vis): Likewise.
9267 * config/sparc/niagara.md (niag_vis): Likewise.
9268
9269 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
9270
9271 * ipa-comdats.c: Remove optimize check from gate.
9272 * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
9273 for functions not optimized.
9274 (ipa_fn_summary_read): Skip optimize check.
9275 (ipa_fn_summary_write): Likewise.
9276 * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
9277 is optimized.
9278 * ipa-inline.c (can_inline_edge_p): Not optimized functions are
9279 uninlinable.
9280 (can_inline_edge_p): Check flag_pcc_struct_return for match.
9281 (check_callers): Give up on caller which is not optimized.
9282 (inline_small_functions): Likewise.
9283 (ipa_inline): Do not give up when not optimizing.
9284 * ipa-visbility.c (function_and_variable_visibility): Do not optimize
9285 away unoptimizes cdtors.
9286 (whole_program_function_and_variable_visibility): Do
9287 ipa_discover_readonly_nonaddressable_vars in LTO mode.
9288 * ipa.c (process_references): Do not check optimize.
9289 (symbol_table::remove_unreachable_nodes): Update optimize check.
9290 (set_writeonly_bit): Update optimize check.
9291 (pass_ipa_cdtor_merge::gate): Do not check optimize.
9292 (pass_ipa_single_use::gate): Remove.
9293
9294 2017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
9295
9296 * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
9297 insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
9298 rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
9299 mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
9300 permute_load, permute_store, adjust_extract, adjust_splat,
9301 adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
9302 replace_swap_with_copy, dump_swap_insn_table,
9303 alignment_with_canonical_addr, alignment_mask, find_alignment_op,
9304 recombine_lvx_pattern, recombine_stvx_pattern,
9305 recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
9306 make_pass_analyze_swaps): Move all code related to p8 swap optimizations
9307 to file rs6000-p8swap.c.
9308 * config/rs6000/rs6000-p8swap.c: New file.
9309 * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
9310 * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
9311 and rs6000*-*-* targets.
9312
9313 2017-07-06 David Malcolm <dmalcolm@redhat.com>
9314
9315 * Makefile.in (selftest): Remove dependency on s-selftest-c++.
9316
9317 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
9318
9319 * lto-wrapper.c (merge_and_complain): Do not merge
9320 fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
9321 fsigned_zeros, ftrapping_math, fwrapv.
9322 (append_compiler_options): Do not track these options.
9323 (append_linker_options): Likewie
9324
9325 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
9326
9327 * cgraphunit.c (cgraph_node::finalize_function): When
9328 !flag_toplevel_reorde set no_reorder flag.
9329 (varpool_node::finalize_decl): Likewise.
9330 (symbol_table::compile): Drop no toplevel reorder path.
9331
9332 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
9333
9334 * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
9335 edges; zero probability is not better than uninitialized.
9336
9337 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
9338
9339 * asan.h (asan_sanitize_allocas_p): Declare.
9340 * asan.c (asan_sanitize_allocas_p): New function.
9341 (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
9342 (handle_builtin_alloca): Likewise.
9343 * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
9344 if !asan_sanitize_allocas_p.
9345 * params.def (asan-instrument-allocas): Add new option.
9346 * params.h (ASAN_PROTECT_ALLOCAS): Define.
9347 * opts.c (common_handle_option): Disable allocas sanitization for
9348 KASan by default.
9349
9350 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
9351
9352 * asan.c: Include gimple-fold.h.
9353 (get_last_alloca_addr): New function.
9354 (handle_builtin_stackrestore): Likewise.
9355 (handle_builtin_alloca): Likewise.
9356 (asan_emit_allocas_unpoison): Likewise.
9357 (get_mem_refs_of_builtin_call): Add new parameter, remove const
9358 quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
9359 BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
9360 (instrument_builtin_call): Pass gimple iterator to
9361 get_mem_refs_of_builtin_call.
9362 (last_alloca_addr): New global.
9363 * asan.h (asan_emit_allocas_unpoison): Declare.
9364 * builtins.c (expand_asan_emit_allocas_unpoison): New function.
9365 (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
9366 * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
9367 if function calls alloca.
9368 * gimple-fold.c (replace_call_with_value): Remove static keyword.
9369 * gimple-fold.h (replace_call_with_value): Declare.
9370 * internal-fn.c: Include asan.h.
9371 * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
9372 BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
9373
9374 2017-07-06 David Malcolm <dmalcolm@redhat.com>
9375
9376 * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
9377 (C_SELFTEST_FLAGS): New.
9378 (CPP_SELFTEST_FLAGS): New.
9379 (SELFTEST_DEPS): New, from deps of s-selftest.
9380 (C_SELFTEST_DEPS): New, from deps of s-selftest.
9381 (CPP_SELFTEST_DEPS): New.
9382 (selftest): Add dependency on s-selftest-c++.
9383 (s-selftest): Rename to...
9384 (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
9385 and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
9386 than SELFTEST_FLAGS.
9387 (selftest-gdb): Rename to...
9388 (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
9389 C_SELFTEST_FLAGS.
9390 (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
9391 (selftest-valgrind): Rename to...
9392 (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
9393 C_SELFTEST_FLAGS.
9394 (selftest-valgrind): Reintroduce as an alias for
9395 selftest-c-valgrind.
9396 (s-selftest-c++): New.
9397 (selftest-c++-gdb): New.
9398 (selftest-c++-valgrind): New.
9399
9400 2017-07-06 Olivier Hainque <hainque@adacore.com>
9401
9402 * gcc.c (process_command): When deciding if undefined variables
9403 should be ignored when processing specs, accept "gcc -v" as well.
9404
9405 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
9406
9407 * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
9408 afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
9409
9410 2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
9411
9412 * config/arm/arm-cpus.in (armv8-r): Add new entry.
9413 * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
9414 * config/arm/arm-tables.opt: Regenerate.
9415 * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
9416 enumerator.
9417 * doc/invoke.texi: Mention -march=armv8-r and its extensions.
9418
9419 2017-07-06 Carl Love <cel@us.ibm.com>
9420
9421 * ChangeLog: Clean up from mid air collision
9422
9423 2017-07-06 Carl Love <cel@us.ibm.com>
9424
9425 * config/rs6000/rs6000-c.c: Add support for built-in functions
9426 vector signed int vec_subc (vector signed int, vector signed int);
9427 vector signed __int128 vec_subc (vector signed __int128,
9428 vector signed __int128);
9429 vector unsigned __int128 vec_subc (vector unsigned __int128,
9430 vector unsigned __int128);
9431 vector signed int vec_sube (vector signed int, vector signed int,
9432 vector signed int);
9433 vector unsigned int vec_sube (vector unsigned int,
9434 vector unsigned int,
9435 vector unsigned int);
9436 vector signed __int128 vec_sube (vector signed __int128,
9437 vector signed __int128,
9438 vector signed__int128);
9439 vector unsigned __int128 vec_sube (vector unsigned __int128,
9440 vector unsigned __int128,
9441 vector unsigned __int128);
9442 vector signed int vec_subec (vector signed int, vector signed int,
9443 vector signed int);
9444 vector unsigned int vec_subec (vector unsigned int,
9445 vector unsigned int,
9446 vector unsigned int);
9447 vector signed __int128 vec_subec (vector signed __int128,
9448 vector signed __int128,
9449 vector signed__int128);
9450 vector unsigned __int128 vec_subec (vector unsigned __int128,
9451 vector unsigned __int128,
9452 vector unsigned __int128);
9453 * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
9454 ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
9455 * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
9456 BU_ALTIVEC_OVERLOAD_X definitions.
9457 * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
9458 * doc/extend.texi: Update the built-in documentation file for the new
9459 built-in functions.
9460
9461 2017-07-06 David Malcolm <dmalcolm@redhat.com>
9462
9463 PR c++/79300
9464 * diagnostic-show-locus.c (layout::layout): Use start and finish
9465 spelling location for the start and finish of each range.
9466 * genmatch.c (linemap_client_expand_location_to_spelling_point):
9467 Add unused aspect param.
9468 * input.c (expand_location_1): Add "aspect" param, and use it
9469 to access the correct part of the location.
9470 (expand_location): Pass LOCATION_ASPECT_CARET to new param of
9471 expand_location_1.
9472 (expand_location_to_spelling_point): Likewise.
9473 (linemap_client_expand_location_to_spelling_point): Add "aspect"
9474 param, and pass it to expand_location_1.
9475
9476 2017-07-06 Sebastian Peryt <sebastian.peryt@intel.com>
9477
9478 * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
9479 _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
9480 _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
9481 _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
9482 _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
9483 _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
9484 _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
9485 _mm_maskz_getmant_ss): New intrinsics.
9486 (__builtin_ia32_getexpss128_mask): Changed to ...
9487 __builtin_ia32_getexpss128_round ... this.
9488 (__builtin_ia32_getexpsd128_mask): Changed to ...
9489 __builtin_ia32_getexpsd128_round ... this.
9490 * config/i386/i386-builtin-types.def
9491 ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
9492 (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
9493 * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
9494 __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round,
9495 __builtin_ia32_getmantss_mask_round): New builtins.
9496 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
9497 V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
9498 (CODE_FOR_avx512f_vgetmantv2df_mask_round,
9499 CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
9500 * config/i386/sse.md
9501 (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
9502 avx512f_sgetexp<mode><mask_scalar_name>
9503 <round_saeonly_scalar_name> ... this.
9504 (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
9505 %0, %1, %2<round_saeonly_op3>}): Changed to ...
9506 vgetexp<ssescalarmodesuffix>
9507 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
9508 %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
9509 (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
9510 avx512f_vgetmant<mode><mask_scalar_name>
9511 <round_saeonly_scalar_name> ... this.
9512 (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
9513 %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
9514 vgetmant<ssescalarmodesuffix>
9515 \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
9516 %0<mask_scalar_operand4>, %1, %2
9517 <round_saeonly_scalar_mask_op4>, %3} ... this.
9518 * config/i386/subst.md (mask_scalar_operand4,
9519 round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4,
9520 round_saeonly_scalar_nimm_predicate): New subst attributes.
9521
9522 2017-07-06 Julia Koval <julia.koval@intel.com>
9523
9524 * config/i386/i386.c (ix86_erase_embedded_rounding):
9525 Remove code for old rounding pattern.
9526
9527 2017-07-06 Richard Earnshaw <rearnsha@arm.com>
9528
9529 * config/arm/t-arm (GTM_H): Add arm-cpu.h.
9530
9531 2017-07-06 Christophe Lyon <christophe.lyon@linaro.org>
9532
9533 * doc/sourcebuild.texi (Test Directives, Variants of
9534 dg-require-support): Add documentation for dg-require-stack-check.
9535
9536 2017-07-05 Sebastian Peryt <sebastian.peryt@intel.com>
9537
9538 * config/i386/subst.md (mask_scalar, round_scalar,
9539 round_saeonly_scalar): New meta-templates.
9540 (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
9541 round_scalar_mask_operand3, round_scalar_mask_op3,
9542 round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
9543 round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
9544 round_saeonly_scalar_constraint,
9545 round_saeonly_scalar_prefix): New subst attribute.
9546 * config/i386/sse.md
9547 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
9548 <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
9549 <round_scalar_name> ... this.
9550 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
9551 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
9552 <round_scalar_name> ... this.
9553 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
9554 <sse>_vm<code><mode>3<mask_scalar_name>
9555 <round_saeonly_scalar_name> ... this.
9556 (v<plusminus_mnemonic><ssescalarmodesuffix>
9557 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
9558 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
9559 v<plusminus_mnemonic><ssescalarmodesuffix>
9560 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
9561 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
9562 (v<multdiv_mnemonic><ssescalarmodesuffix>
9563 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
9564 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
9565 v<multdiv_mnemonic><ssescalarmodesuffix>
9566 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
9567 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
9568 (v<maxmin_float><ssescalarmodesuffix>
9569 \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
9570 %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
9571 v<maxmin_float><ssescalarmodesuffix>
9572 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
9573 %0<mask_scalar_operand3>, %1, %<iptr>2
9574 <round_saeonly_scalar_mask_op3>} ... this.
9575
9576 2017-07-05 Richard Earnshaw <rearnsha@arm.com>
9577
9578 * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
9579 (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
9580
9581 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
9582 Alan Hayward <alan.hayward@arm.com>
9583 David Sherwood <david.sherwood@arm.com>
9584
9585 * combine.c (simplify_if_then_else): Remove "enum" before
9586 "machine_mode".
9587 * compare-elim.c (can_eliminate_compare): Likewise.
9588 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
9589 Likewise.
9590 (aarch64_lookup_simd_builtin_type): Likewise.
9591 (aarch64_simd_builtin_type): Likewise.
9592 (aarch64_init_simd_builtin_types): Likewise.
9593 (aarch64_simd_expand_args): Likewise.
9594 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
9595 Likewise.
9596 (aarch64_reverse_mask): Likewise.
9597 (aarch64_simd_emit_reg_reg_move): Likewise.
9598 (aarch64_gen_adjusted_ldpstp): Likewise.
9599 (aarch64_ccmp_mode_to_code): Likewise.
9600 (aarch64_operands_ok_for_ldpstp): Likewise.
9601 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
9602 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
9603 Likewise.
9604 (aarch64_min_divisions_for_recip_mul): Likewise.
9605 (aarch64_reassociation_width): Likewise.
9606 (aarch64_get_condition_code_1): Likewise.
9607 (aarch64_simd_emit_reg_reg_move): Likewise.
9608 (aarch64_simd_attr_length_rglist): Likewise.
9609 (aarch64_reverse_mask): Likewise.
9610 (aarch64_operands_ok_for_ldpstp): Likewise.
9611 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
9612 (aarch64_gen_adjusted_ldpstp): Likewise.
9613 * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
9614 Likewise.
9615 * config/arc/arc.c (legitimate_offset_address_p): Likewise.
9616 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
9617 (arm_lookup_simd_builtin_type): Likewise.
9618 (arm_simd_builtin_type): Likewise.
9619 (arm_init_simd_builtin_types): Likewise.
9620 (arm_expand_builtin_args): Likewise.
9621 * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
9622 * config/ft32/ft32.c (ft32_libcall_value): Likewise.
9623 (ft32_setup_incoming_varargs): Likewise.
9624 (ft32_function_arg): Likewise.
9625 (ft32_function_arg_advance): Likewise.
9626 (ft32_pass_by_reference): Likewise.
9627 (ft32_arg_partial_bytes): Likewise.
9628 (ft32_valid_pointer_mode): Likewise.
9629 (ft32_addr_space_pointer_mode): Likewise.
9630 (ft32_addr_space_legitimate_address_p): Likewise.
9631 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
9632 Likewise.
9633 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
9634 (ix86_emit_outlined_ms2sysv_restore): Likewise.
9635 (iamcu_alignment): Likewise.
9636 (canonicalize_vector_int_perm): Likewise.
9637 (ix86_noce_conversion_profitable_p): Likewise.
9638 (ix86_mpx_bound_mode): Likewise.
9639 (ix86_operands_ok_for_move_multiple): Likewise.
9640 * config/microblaze/microblaze-protos.h
9641 (microblaze_expand_conditional_branch_reg): Likewise.
9642 * config/microblaze/microblaze.c
9643 (microblaze_expand_conditional_branch_reg): Likewise.
9644 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
9645 Likewise.
9646 (rs6000_reassociation_width): Likewise.
9647 (rs6000_invalid_binary_op): Likewise.
9648 (fusion_p9_p): Likewise.
9649 (emit_fusion_p9_load): Likewise.
9650 (emit_fusion_p9_store): Likewise.
9651 * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
9652 Likewise.
9653 (riscv_hard_regno_mode_ok_p): Likewise.
9654 (riscv_address_insns): Likewise.
9655 (riscv_split_symbol): Likewise.
9656 (riscv_legitimize_move): Likewise.
9657 (riscv_function_value): Likewise.
9658 (riscv_hard_regno_nregs): Likewise.
9659 (riscv_expand_builtin): Likewise.
9660 * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
9661 (riscv_build_integer): Likewise.
9662 (riscv_split_integer): Likewise.
9663 (riscv_legitimate_constant_p): Likewise.
9664 (riscv_cannot_force_const_mem): Likewise.
9665 (riscv_regno_mode_ok_for_base_p): Likewise.
9666 (riscv_valid_base_register_p): Likewise.
9667 (riscv_valid_offset_p): Likewise.
9668 (riscv_valid_lo_sum_p): Likewise.
9669 (riscv_classify_address): Likewise.
9670 (riscv_legitimate_address_p): Likewise.
9671 (riscv_address_insns): Likewise.
9672 (riscv_load_store_insns): Likewise.
9673 (riscv_force_binary): Likewise.
9674 (riscv_split_symbol): Likewise.
9675 (riscv_force_address): Likewise.
9676 (riscv_legitimize_address): Likewise.
9677 (riscv_move_integer): Likewise.
9678 (riscv_legitimize_const_move): Likewise.
9679 (riscv_legitimize_move): Likewise.
9680 (riscv_address_cost): Likewise.
9681 (riscv_subword): Likewise.
9682 (riscv_output_move): Likewise.
9683 (riscv_canonicalize_int_order_test): Likewise.
9684 (riscv_emit_int_order_test): Likewise.
9685 (riscv_function_arg_boundary): Likewise.
9686 (riscv_pass_mode_in_fpr_p): Likewise.
9687 (riscv_pass_fpr_single): Likewise.
9688 (riscv_pass_fpr_pair): Likewise.
9689 (riscv_get_arg_info): Likewise.
9690 (riscv_function_arg): Likewise.
9691 (riscv_function_arg_advance): Likewise.
9692 (riscv_arg_partial_bytes): Likewise.
9693 (riscv_function_value): Likewise.
9694 (riscv_pass_by_reference): Likewise.
9695 (riscv_setup_incoming_varargs): Likewise.
9696 (riscv_print_operand): Likewise.
9697 (riscv_elf_select_rtx_section): Likewise.
9698 (riscv_save_restore_reg): Likewise.
9699 (riscv_for_each_saved_reg): Likewise.
9700 (riscv_register_move_cost): Likewise.
9701 (riscv_hard_regno_mode_ok_p): Likewise.
9702 (riscv_hard_regno_nregs): Likewise.
9703 (riscv_class_max_nregs): Likewise.
9704 (riscv_memory_move_cost): Likewise.
9705 * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
9706 * config/rl78/rl78.c (rl78_split_movsi): Likewise.
9707 (rl78_addr_space_address_mode): Likewise.
9708 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9709 Likewise.
9710 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
9711 (rs6000_reassociation_width): Likewise.
9712 (rs6000_invalid_binary_op): Likewise.
9713 (fusion_p9_p): Likewise.
9714 (emit_fusion_p9_load): Likewise.
9715 (emit_fusion_p9_store): Likewise.
9716 * config/visium/visium-protos.h (prepare_move_operands): Likewise.
9717 (ok_for_simple_move_operands): Likewise.
9718 (ok_for_simple_move_strict_operands): Likewise.
9719 (ok_for_simple_arith_logic_operands): Likewise.
9720 (visium_legitimize_reload_address): Likewise.
9721 (visium_select_cc_mode): Likewise.
9722 (output_cbranch): Likewise.
9723 (visium_split_double_move): Likewise.
9724 (visium_expand_copysign): Likewise.
9725 (visium_expand_int_cstore): Likewise.
9726 (visium_expand_fp_cstore): Likewise.
9727 * config/visium/visium.c (visium_pass_by_reference): Likewise.
9728 (visium_function_arg): Likewise.
9729 (visium_function_arg_advance): Likewise.
9730 (visium_libcall_value): Likewise.
9731 (visium_setup_incoming_varargs): Likewise.
9732 (visium_legitimate_constant_p): Likewise.
9733 (visium_legitimate_address_p): Likewise.
9734 (visium_legitimize_address): Likewise.
9735 (visium_secondary_reload): Likewise.
9736 (visium_register_move_cost): Likewise.
9737 (visium_memory_move_cost): Likewise.
9738 (prepare_move_operands): Likewise.
9739 (ok_for_simple_move_operands): Likewise.
9740 (ok_for_simple_move_strict_operands): Likewise.
9741 (ok_for_simple_arith_logic_operands): Likewise.
9742 (visium_function_value_1): Likewise.
9743 (rtx_ok_for_offset_p): Likewise.
9744 (visium_legitimize_reload_address): Likewise.
9745 (visium_split_double_move): Likewise.
9746 (visium_expand_copysign): Likewise.
9747 (visium_expand_int_cstore): Likewise.
9748 (visium_expand_fp_cstore): Likewise.
9749 (visium_split_cstore): Likewise.
9750 (visium_select_cc_mode): Likewise.
9751 (visium_split_cbranch): Likewise.
9752 (output_cbranch): Likewise.
9753 (visium_print_operand_address): Likewise.
9754 * expmed.c (flip_storage_order): Likewise.
9755 * expmed.h (emit_cstore): Likewise.
9756 (flip_storage_order): Likewise.
9757 * genrecog.c (validate_pattern): Likewise.
9758 * hsa-gen.c (gen_hsa_addr): Likewise.
9759 * internal-fn.c (expand_arith_overflow): Likewise.
9760 * ira-color.c (allocno_copy_cost_saving): Likewise.
9761 * lra-assigns.c (find_hard_regno_for_1): Likewise.
9762 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
9763 (process_invariant_for_inheritance): Likewise.
9764 * lra-eliminations.c (move_plus_up): Likewise.
9765 * omp-low.c (lower_oacc_reductions): Likewise.
9766 * simplify-rtx.c (simplify_subreg): Likewise.
9767 * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
9768 (TARGET_CHKP_BOUND_MODE): Likewise..
9769 * targhooks.c (default_chkp_bound_mode): Likewise.
9770 (default_setup_incoming_vararg_bounds): Likewise.
9771 * targhooks.h (default_chkp_bound_mode): Likewise.
9772 (default_setup_incoming_vararg_bounds): Likewise.
9773 * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
9774 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
9775 (have_whole_vector_shift): Likewise.
9776 * tree-vect-stmts.c (vectorizable_load): Likewise.
9777 * doc/tm.texi: Regenerate.
9778
9779 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
9780
9781 Graceful degrade if Binutils PR21472 is not available.
9782
9783 PR target/81072
9784 * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
9785 .rodata in flash test fails.
9786 (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
9787 * confgure: Regenerate.
9788 * config.in: Regenerate.
9789 * config/avr/avr.c (avr_asm_named_section)
9790 [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
9791 __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
9792 (avr_asm_init_sections): Same.
9793
9794 2017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9795
9796 * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
9797 (fma<VH:mode>4_intrinsic): Likewise.
9798 (*fmsub<VCVTF:mode>4): Likewise.
9799 (*fmsub<VH:mode>4_intrinsic): Likewise.
9800
9801 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
9802
9803 PR target/81305
9804 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
9805 Don't depend on "optimize > 0".
9806 (out_movhi_r_mr, out_movqi_mr_r): Same.
9807 (out_movhi_mr_r, out_movqi_r_mr): Same.
9808 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
9809 io_address_operand on "optimize > 0".
9810
9811 2017-07-05 Bin Cheng <bin.cheng@arm.com>
9812
9813 * tree-loop-distribution.c: Add general explanantion on the pass.
9814 (generate_loops_for_partition): Mark distributed loop.
9815 (pg_add_dependence_edges): New parameter. Handle alias data
9816 dependence specially and record it in the parameter if asked.
9817 (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
9818 (init_partition_graph_vertices, add_partition_graph_edge): New.
9819 (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
9820 (free_partition_graph_vdata, build_partition_graph): New.
9821 (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
9822 (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
9823 (data_ref_segment_size, latch_dominated_by_data_ref): New.
9824 (compute_alias_check_pairs, version_loop_by_alias_check): New.
9825 (version_for_distribution_p, finalize_partitions): New.
9826 (distribute_loop): Handle alias data dependence specially. Factor
9827 out loop fusion code as functions and call these functions.
9828
9829 2017-07-05 Bin Cheng <bin.cheng@arm.com>
9830
9831 * tree-loop-distribution.c (classify_partition): New parameter and
9832 better handle reduction statement.
9833 (rdg_build_partitions): Revise comment.
9834 (distribute_loop): Compute statements in all partitions and pass it
9835 to classify_partition.
9836
9837 2017-07-05 Bin Cheng <bin.cheng@arm.com>
9838
9839 * tree-loop-distribution.c (enum partition_type): New.
9840 (struct partition): New field type.
9841 (partition_merge_into): Add parameter. Update partition type.
9842 (data_dep_in_cycle_p, update_type_for_merge): New functions.
9843 (build_rdg_partition_for_vertex): Compute partition type.
9844 (rdg_build_partitions): Dump partition type.
9845 (distribute_loop): Update calls to partition_merge_into.
9846
9847 2017-07-05 Bin Cheng <bin.cheng@arm.com>
9848
9849 * tree-loop-distribution.c (struct ddr_hasher): New.
9850 (ddr_hasher::hash, ::equal, get_data_dependence): New function.
9851 (ddrs_table): New.
9852 (classify_partition): Call get_data_dependence.
9853 (pg_add_dependence_edges): Ditto.
9854 (distribute_loop): Release data dependence hash table.
9855
9856 2017-07-05 Bin Cheng <bin.cheng@arm.com>
9857
9858 * tree-loop-distribution.c (ref_base_address): Delete.
9859 (similar_memory_accesses): Rename ...
9860 (share_memory_accesses): ... to this. Check if partitions access
9861 the same memory reference.
9862 (distribute_loop): Call share_memory_accesses.
9863
9864 2017-07-05 Bin Cheng <bin.cheng@arm.com>
9865
9866 * tree-loop-distribution.c (struct partition): New field recording
9867 its data reference.
9868 (partition_alloc, partition_free): Init and release data refs.
9869 (partition_merge_into): Merge data refs.
9870 (build_rdg_partition_for_vertex): Collect data refs for partition.
9871 (pg_add_dependence_edges): Change parameters from vector to bitmap.
9872 Update uses.
9873 (distribute_loop): Remve data refs from vertice data of partition
9874 graph.
9875
9876 2017-07-05 Bin Cheng <bin.cheng@arm.com>
9877
9878 * tree-loop-distribution.c (params.h): Include header file.
9879 (MAX_DATAREFS_NUM, DR_INDEX): New macro.
9880 (datarefs_vec): New global var.
9881 (create_rdg_vertices): Use datarefs_vec directly.
9882 (free_rdg): Don't free data references.
9883 (build_rdg): Update use. Don't free data references.
9884 (distribute_loop): Compute global variable for data references.
9885 Bail out if there are too many data references.
9886
9887 2017-07-05 Bin Cheng <bin.cheng@arm.com>
9888
9889 * tree-loop-distribution.c (loop_nest): New global var.
9890 (build_rdg): Use loop directly, rather than loop nest.
9891 (pg_add_dependence_edges): Remove loop nest parameter. Use global
9892 variable directly.
9893 (distribute_loop): Compute global variable loop nest. Update use.
9894
9895 2017-07-05 Bin Cheng <bin.cheng@arm.com>
9896
9897 * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
9898 (partition_merge_into): New parameter. Dump reason for fusion.
9899 (distribute_loop): Update use of partition_merge_into.
9900
9901 2017-07-05 Bin Cheng <bin.cheng@arm.com>
9902
9903 * tree-loop-distribution.c (bb_top_order_index): New.
9904 (bb_top_order_index_size, bb_top_order_cmp): New.
9905 (stmts_from_loop): Use topological order.
9906 (pass_loop_distribution::execute): Compute and release topological
9907 order for basic blocks.
9908
9909 2017-07-05 Bin Cheng <bin.cheng@arm.com>
9910
9911 * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
9912 if no loops.
9913
9914 2017-07-05 Bin Cheng <bin.cheng@arm.com>
9915
9916 * cfgloop.h (struct loop): Add comment. New field orig_loop_num.
9917 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
9918 * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
9919 * internal-fn.def (LOOP_DIST_ALIAS): New.
9920 * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
9921 (fold_loop_internal_call): ... this.
9922 (vect_loop_dist_alias_call): New function.
9923 (set_uid_loop_bbs): Call fold_loop_internal_call.
9924 (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
9925 internal calls.
9926
9927 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
9928
9929 PR target/81300
9930 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
9931 Require dead FLAGS_REG at the beginning of a peephole.
9932
9933 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
9934
9935 PR target/81294
9936 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
9937 arguments in the call to __builtin_ia32_sbb_u32.
9938 (_subborrow_u64): Swap _X and _Y arguments in the call to
9939 __builtin_ia32_sbb_u64.
9940
9941 2017-07-04 Jakub Jelinek <jakub@redhat.com>
9942
9943 PR debug/81278
9944 * tree-vrp.c (compare_assert_loc): Turn into a function template
9945 with stable template parameter. Only test if a->e is NULL,
9946 !a->e == !b->e has been verified already. Use e == NULL or
9947 e != NULL instead of e or ! e tests. If stable is true, don't use
9948 iterative_hash_expr, on the other side allow a or b or both NULL
9949 and sort the NULLs last.
9950 (process_assert_insertions): Sort using compare_assert_loc<false>
9951 instead of compare_assert_loc, later sort using
9952 compare_assert_loc<true> before calling process_assert_insertions_for
9953 in a loop. Use break instead of continue once seen NULL pointer.
9954
9955 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
9956
9957 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
9958 Cortex-R7 and Cortex-R8 processors.
9959
9960 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
9961
9962 * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
9963 uninitialized while src is not.
9964
9965 2017-07-04 Richard Earnshaw <rearnsha@arm.com>
9966
9967 * common/config/arm/arm-common.c: Adjust include path for
9968 arm-cpu-cdata.h
9969 * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
9970 (arm-cpu.h): Create in build directory. Adjust dependency rules.
9971 (arm-cpu-data.h): Likewise.
9972 (arm-cpu-cdata.h): Likewise.
9973 * config/arm/arm-cpu.h: Delete.
9974 * config/arm/arm-cpu-cdata.h: Delete.
9975 * config/arm/arm-cpu-data.h: Delete.
9976
9977 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com>
9978
9979 * config/arm/arm-cpus.in (cortex-a55): New.
9980 (cortex-a75): Likewise.
9981 (cortex-a75.cortex-a55): Likewise.
9982 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
9983 cortex-a75.
9984 * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
9985 * config/arm/arm-cpu-cdata.h: Regenerate.
9986 * config/arm/arm-cpu-data.h: Regenerate.
9987 * config/arm/arm-cpu.h: Regenerate.
9988 * config/arm/arm-tables.opt: Regenerate.
9989 * config/arm/arm-tune.md: Regenerate.
9990
9991 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
9992
9993 * haifa-sched.c (sched_create_recovery_edges): Update profile.
9994
9995 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
9996
9997 * bb-reorder.c (better_edge_p): Fix handling of uninitialized
9998 probability.
9999
10000 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org>
10001
10002 PR tree-optimization/81292
10003 * tree-ssa-strlen.c (handle_builtin_strlen): When setting
10004 full_string_p, also call adjust_related_strinfos if the adjustment
10005 is simple, otherwise invalidate related strinfos.
10006
10007 2017-07-04 Martin Liska <mliska@suse.cz>
10008
10009 PR sanitizer/81040
10010 * sanopt.c (sanitize_rewrite_addressable_params): Mark the
10011 newly created variable as DECL_IGNORED_P.
10012
10013 2017-07-04 Martin Liska <mliska@suse.cz>
10014
10015 PR ipa/81293
10016 * ipa-inline.c (inline_small_functions):
10017 Use xstrdup_for_dump.
10018
10019 2017-07-04 Tom de Vries <tom@codesourcery.com>
10020
10021 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
10022
10023 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
10024
10025 PR target/81033
10026 * config/darwin.c (darwin_function_switched_text_sections):
10027 Fix spaces.
10028
10029 2017-07-03 Jan Hubicka <hubicka@ucw.cz>
10030
10031 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
10032
10033 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
10034
10035 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
10036
10037 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
10038
10039 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
10040 min_profitable_iters, and th as inclusive lower bounds.
10041 Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
10042 (vect_estimate_min_profitable_iters): Return inclusive lower bounds
10043 for min_profitable_iters and min_profitable_estimate.
10044 (vect_transform_loop): Treat th as an inclusive lower bound.
10045 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
10046
10047 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
10048
10049 PR target/81033
10050 * config/darwin.c (darwin_function_switched_text_sections):
10051 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
10052 in two pieces, and suppress the use of buf.
10053
10054 2017-07-03 Nathan Sidwell <nathan@acm.org>
10055
10056 * hash-table.h (hash_table_mod1): Fix indentation.
10057
10058 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
10059
10060 PR middle-end/81290
10061 * predict.c (force_edge_cold): Be more careful about propagation
10062 backward.
10063 * profile-count.h (profile_probability::guessed,
10064 profile_probability::fdo, profile_count::guessed, profile_count::fdo):
10065 New.
10066 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
10067
10068 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com>
10069
10070 * doc/invoke.texi (rcpc architecture extension): Document it.
10071
10072 2017-07-03 Richard Biener <rguenther@suse.de>
10073
10074 PR tree-optimization/60510
10075 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
10076 the scalar reduction PHI and use it.
10077 (vectorizable_reduction): Properly guard the single_defuse_cycle
10078 path for non-SLP reduction chains where we cannot use it.
10079 Rework reduc_def/index and vector type deduction. Rework
10080 vector operand gathering during reduction op code-gen.
10081 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
10082 chains dissolve the chain and leave it to non-SLP reduction
10083 handling.
10084
10085 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
10086
10087 * tree-data-ref.h (dr_alignment): Declare.
10088 * tree-data-ref.c (dr_alignment): New function.
10089 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
10090 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
10091 set it.
10092 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
10093
10094 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
10095
10096 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
10097 and base_misalignment fields.
10098 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
10099 * tree-data-ref.c: Include builtins.h.
10100 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
10101 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
10102 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
10103 * tree-vect-data-refs.c: Include tree-cfg.h.
10104 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
10105 fields instead of calculating an alignment here.
10106 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new
10107 innermost_loop_behavior fields.
10108
10109 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
10110
10111 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
10112 field.
10113 (DR_STEP_ALIGNMENT): New macro.
10114 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
10115 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
10116 (create_data_ref): Print it.
10117 * tree-vect-stmts.c (vectorizable_load): Use the step alignment
10118 to tell whether the step preserves vector (mis)alignment.
10119 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
10120 Move the check for an integer step and generalise to all INTEGER_CST.
10121 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
10122 Print the outer step alignment.
10123
10124 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
10125
10126 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
10127 with offset_alignment.
10128 (DR_ALIGNED_TO): Delete.
10129 (DR_OFFSET_ALIGNMENT): New macro.
10130 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
10131 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
10132 * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
10133 (create_data_ref): Likewise.
10134 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
10135 (vect_analyze_data_refs): Likewise.
10136 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
10137 creating dummy innermost behavior.
10138
10139 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
10140
10141 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
10142 with a "innermost_loop_behavior *" and refeence tree.
10143 * tree-data-ref.c (dr_analyze_innermost): Likewise.
10144 (create_data_ref): Update call accordingly.
10145 * tree-predcom.c (find_looparound_phi): Likewise.
10146
10147 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
10148
10149 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
10150 fields with dr_wrt_vec_loop.
10151 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
10152 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
10153 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
10154 (vect_dr_behavior): New function.
10155 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
10156 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
10157 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to
10158 track whether the step preserves the misalignment.
10159 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
10160 Use vect_dr_behavior.
10161 (vect_setup_realignment): Update call accordingly.
10162 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior.
10163 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
10164 call to vect_create_addr_base_for_vector_ref.
10165 (vect_create_cond_for_align_checks): Likewise.
10166 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
10167 STMT_VINFO_DR_WRT_VEC_LOOP as a block.
10168 (vect_recog_mask_conversion_pattern): Likewise.
10169 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
10170 (new_stmt_vec_info): Remove redundant zeroing.
10171
10172 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
10173
10174 * common/config/arm/arm-common.c (arm_be8_option): New function.
10175 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
10176 (ISA_ARMv6): Add isa_bit_be8.
10177 * config/arm/arm.h (arm_be8_option): Add prototype.
10178 (BE8_SPEC_FUNCTION): New define.
10179 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
10180 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
10181 (mlittle-endian): Similarly.
10182 (mbe8, mbe32): New options.
10183 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
10184 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
10185
10186 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
10187
10188 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
10189
10190 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
10191
10192 * tree-cfgcleanup.c (want_merge_blocks_p): New function.
10193 (cleanup_tree_cfg_bb): Use it.
10194 * profile-count.h (profile_count::of_for_merging, profile_count::merge):
10195 New functions.
10196 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
10197
10198 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
10199
10200 PR bootstrap/81285
10201 * loop-doloop.c (add_test): Update profile.
10202
10203 2017-07-03 Martin Liska <mliska@suse.cz>
10204
10205 PR sanitize/81040
10206 * sanopt.c (rewrite_usage_of_param): New function.
10207 (sanitize_rewrite_addressable_params): Likewise.
10208 (pass_sanopt::execute): Call rewrite_usage_of_param.
10209
10210 2017-07-03 Richard Biener <rguenther@suse.de>
10211
10212 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
10213 back to using VIEW_CONVERT_EXPR.
10214
10215 2017-07-03 Martin Liska <mliska@suse.cz>
10216
10217 PR other/78366
10218 * doc/extend.texi: Document when a resolver function is
10219 generated for target_clones.
10220
10221 2017-07-03 Martin Liska <mliska@suse.cz>
10222
10223 * asan.c (asan_emit_stack_protection): Unpoison just red zones
10224 and shadow memory of auto variables which are subject of
10225 use-after-scope sanitization.
10226 (asan_expand_mark_ifn): Add do set only when is_poison.
10227
10228 2016-07-03 Richard Biener <rguenther@suse.de>
10229
10230 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
10231 reduction PHIs.
10232 (vect_force_simple_reduction): Record reduction def -> phi mapping.
10233 (vectorizable_reduction): Perform reduction PHI creation when
10234 visiting a reduction PHI and adjust and simplify code generation
10235 phase of the reduction op. Cache dts, use fold_binary, not fold_build2.
10236 (vect_transform_loop): Visit reduction PHIs.
10237 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
10238 defs into the SLP tree.
10239 (vect_build_slp_tree): Reduction defs terminate the recursion.
10240 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
10241 of reduction defs.
10242 (vect_get_vec_defs_for_stmt_copy): Export.
10243 (vect_get_vec_defs): Likewise.
10244 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
10245 purpose.
10246 (vect_get_vec_defs_for_stmt_copy): Declare.
10247 (vect_get_vec_defs): Likewise.
10248
10249 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
10250
10251 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
10252 parameter with a "loop" parameter and use it instead of the
10253 loop containing DR_STMT. Don't check simple_iv when doing
10254 BB analysis. Describe the two analysis modes in the comment.
10255
10256 2017-07-03 Tom de Vries <tom@codesourcery.com>
10257
10258 PR tree-optimization/69468
10259 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
10260 (find_same_succ_bb): Handle ignore_edge_flags.
10261
10262 2017-07-03 Tom de Vries <tom@codesourcery.com>
10263
10264 PR tree-optimization/81192
10265 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
10266 hash.
10267 (same_succ::equal): Don't find bbs to be equal if bb->loop_father
10268 differs.
10269 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
10270
10271 2017-07-03 Tom de Vries <tom@codesourcery.com>
10272
10273 PR tree-optimization/81192
10274 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
10275 BB_SAME_SUCC (bb) == NULL.
10276
10277 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
10278
10279 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
10280 consistency.
10281
10282 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
10283
10284 * dumpfile.c: Include profile-count.h
10285 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
10286 update profile.
10287 (insert_cond_bb): Update profile.
10288 * tree-cfg.h (insert_cond_bb): Update prototype.
10289 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
10290 * tree-dump.c: Do not include tree-cfg.
10291
10292 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
10293
10294 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
10295
10296 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
10297
10298 * expect.c (dw2_build_landing_pads): Update profile of the landing pad
10299 bb.
10300
10301 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
10302
10303 * tree-complex.c (expand_complex_div_wide): update profile.
10304
10305 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
10306 Alan Hayward <alan.hayward@arm.com>
10307 David Sherwood <david.sherwood@arm.com>
10308
10309 * Makefile.in (MACHMODE_H): Remove insn-modes.h
10310 (CORETYPES_H): New define.
10311 (MOSTLYCLEANFILES): Add insn-modes-inline.h.
10312 (insn-modes-inline.h, s-modes-inline-h): New rules.
10313 (generated_files): Add insn-modes-inline.h.
10314 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
10315 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
10316 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
10317 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
10318 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
10319 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
10320 (build/gencodes.o, build/genconditions.o): Likewise.
10321 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
10322 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
10323 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
10324 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
10325 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
10326 (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
10327 * coretypes.h: Include everything up to real.h for generators.
10328 Include insn-modes.h first. Include wide-int-print.h after
10329 wide-int.h. Include insn-modes-inline.h and then machmode.h.
10330 * machmode.h: Don't include insn-modes.h here.
10331 * function-tests.c: Remove includes of signop.h, machmode.h,
10332 double-int.h and wide-int.h.
10333 * rtl.h: Likewise.
10334 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
10335 and wide-int.h.
10336 * optc-save-gen.awk: Likewise.
10337 * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
10338 * godump.c: Remove include of wide-int-print.h.
10339 * pretty-print.h: Likewise.
10340 * wide-int-print.cc: Likewise.
10341 * wide-int.cc: Likewise.
10342 * hash-map-tests.c: Remove include of signop.h.
10343 * hash-set-tests.c: Likewise.
10344 * rtl-tests.c: Likewise.
10345 * mkconfig.sh: Remove include of machmode.h.
10346 * genmodes.c (emit_insn_modes_h): Split emission of inline functions
10347 into...
10348 (emit_insn_modes_inline_h): ...this new function. Emit the code
10349 into an insn-modes-inline.h header file, adding appropriate
10350 include guards and end comments.
10351 (emit_insn_modes_c_header): Remove include of machmode.h.
10352 (emit_min_insn_modes_c_header): Include coretypes.h rather than
10353 machmode.h.
10354 (main): Handle -i flag and call emit_insn_modes_inline_h when
10355 it is passed.
10356
10357 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
10358
10359 * tree-ssa-strlen.c (strinfo): Rename the length field to
10360 nonzero_chars. Add a full_string_p field.
10361 (compare_nonzero_chars, zero_length_string_p): New functions.
10362 (get_addr_stridx): Add an offset_out parameter.
10363 Use compare_nonzero_chars.
10364 (get_stridx): Update accordingly. Use compare_nonzero_chars.
10365 (new_strinfo): Update after above changes to strinfo.
10366 (set_endptr_and_length): Set full_string_p.
10367 (get_string_length): Update after above changes to strinfo.
10368 (unshare_strinfo): Update call to new_strinfo.
10369 (maybe_invalidate): Likewise.
10370 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
10371 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars
10372 as a uhwi instead of an shwi. Update after above changes to
10373 strinfo and new_strinfo.
10374 (zero_length_string): Assert that chainsi contains full strings.
10375 Use zero_length_string_p. Update call to new_strinfo.
10376 (adjust_related_strinfos): Update after above changes to strinfo.
10377 Copy full_string_p from origsi.
10378 (adjust_last_stmt): Use zero_length_string_p.
10379 (handle_builtin_strlen): Update after above changes to strinfo and
10380 new_strinfo. Install the lhs as the string length if the previous
10381 entry didn't describe a full string.
10382 (handle_builtin_strchr): Update after above changes to strinfo
10383 and new_strinfo.
10384 (handle_builtin_strcpy): Likewise.
10385 (handle_builtin_strcat): Likewise.
10386 (handle_builtin_malloc): Likewise.
10387 (handle_pointer_plus): Likewise.
10388 (handle_builtin_memcpy): Likewise. Track nonzero characters
10389 that aren't necessarily followed by a nul terminator.
10390 (handle_char_store): Likewise.
10391
10392 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
10393
10394 PR tree-optimization/80769
10395 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
10396 for malloc and calloc. Document the new invariant that all related
10397 strinfos have delayed lengths or none do.
10398 (verify_related_strinfos): Move earlier in file.
10399 (set_endptr_and_length): New function, split out from...
10400 (get_string_length): ...here. Also set the lengths of related
10401 strinfos.
10402 (zero_length_string): Assert that chainsi has known (rather than
10403 delayed) lengths.
10404 (adjust_related_strinfos): Likewise.
10405
10406 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
10407
10408 PR tree-optimization/81136
10409 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
10410 assert that two references with the same misalignment have the same
10411 compile-time misalignment if those compile-time misalignments
10412 are known.
10413
10414 2017-07-01 Andi Kleen <ak@linux.intel.com>
10415
10416 * print-tree.c (print_node): Print all attributes.
10417
10418 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
10419
10420 * cfg.c (scale_bbs_frequencies): New function.
10421 * cfg.h (scale_bbs_frequencies): Declare it.
10422 * cfgloopanal.c (single_likely_exit): Cleanup.
10423 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
10424 as parameter.
10425 (scale_loop_profile): Likewise.
10426 (loop_version): Likewise.
10427 (create_empty_loop_on_edge): Update.
10428 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
10429 scale_loop_frequencies, scale_loop_profile, loopify,
10430 loop_version): Update prototypes.
10431 * modulo-sched.c (sms_schedule): Update.
10432 * predict.c (unlikely_executed_edge_p): Also check probability.
10433 (probably_never_executed_edge_p): Fix typo.
10434 * tree-if-conv.c (version_loop_for_if_conversion): Update.
10435 * tree-parloops.c (gen_parallel_loop): Update.
10436 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
10437 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
10438 * tree-ssa-loop-split.c (split_loop): Update.
10439 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
10440 * tree-vect-loop-manip.c (vect_do_peeling): Update.
10441 (vect_loop_versioning): Update.
10442 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
10443
10444 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
10445
10446 * trans-mem.c (split_bb_make_tm_edge): Update profile.
10447
10448 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
10449
10450 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
10451 to keep profile consistent.
10452
10453 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
10454
10455 * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
10456 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
10457 * profile-count.h (max_safe_multiplier): Make unsigned.
10458 (profile_count::guessed_zero): New.
10459
10460 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
10461
10462 * bb-reorder.c (fix_up_crossing_landing_pad,
10463 fix_crossing_conditional_branches): Use make_single_succ_edge
10464 to keep profile consistent.
10465
10466 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
10467
10468 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
10469 to update profile.
10470
10471 2017-07-01 Jakub Jelinek <jakub@redhat.com>
10472
10473 PR sanitizer/81262
10474 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
10475 the right scopes, make sure cond_jump isn't preserved between multiple
10476 iterations. Search for fallthru edge whenever there are 3+ edges and
10477 use find_fallthru_edge for it.
10478
10479 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
10480
10481 Patch by Alexander Monakov <amonakov@ispras.ru>
10482 * sel-sched-ir.c (compute_succs_info): Handle uninitialized
10483 probabilities consistently.
10484
10485 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
10486
10487 * pa.c (pa_expand_compare_and_swap_loop): Update call of
10488 emit_cmp_and_jump_insns.
10489
10490 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
10491
10492 PR ipa/81261
10493 * tree-inline.c (expand_call_inline): Combine profile statuses.
10494
10495 2017-06-30 Andrew Pinski <apinski@cavium.com>
10496
10497 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
10498 fold_stmt returned true.
10499
10500 2017-06-30 Nathan Sidwell <nathan@acm.org>
10501
10502 * ggc.h (empty_string): Delete.
10503 * cfgexpand.c (expand_asm_stmt): Use plain "".
10504 * optabs.c (expand_asm_memory_barrier): Likewise.
10505 * stringpool.c (empty_string): Delete.
10506 (digit_vector, digit_string): Delete.
10507 (ggc_alloc_string): Use plain "", don't optimize single digit
10508 strings. Use ggc_alloc_atomic.
10509
10510 2017-06-30 Richard Earnshaw <rearnsha@arm.com>
10511
10512 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
10513 comparison set and one other set, use the cost of the non-comparison
10514 set.
10515
10516 2017-06-30 Nathan Sidwell <nathan@acm.org>
10517
10518 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
10519 some formatting.
10520
10521 2017-06-30 Peter Bergner <bergner@vnet.ibm.com>
10522
10523 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
10524 loops. Remove now unneeded calls to gimple_switch_set_label() that
10525 just set removed labels to NULL_TREE.
10526
10527 2017-06-30 Aldy Hernandez <aldyh@redhat.com>
10528
10529 * tree-ssanames.c (set_range_info_raw): Abstract from ...
10530 (set_range_info): ...here. Only call set_range_info_raw if domain
10531 is useful.
10532 (set_nonzero_bits): Call set_range_info_raw.
10533 * tree-ssanames.h (set_range_info_raw): New.
10534
10535 2017-06-30 Jakub Jelinek <jakub@redhat.com>
10536
10537 PR target/81225
10538 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
10539 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
10540 of nonimmediate_operand and <store_mask_constraint> instead of m
10541 for the input operand. For V8FI iterator, always split if input
10542 is a MEM. For V16FI and V8SF_256 iterators, don't test if both
10543 operands are MEM if <mask_applied>. For VI4F_256 iterator, use
10544 <store_mask_predicate> instead of register_operand and
10545 <store_mask_constraint> instead of v for the input operand. Make
10546 sure both operands aren't MEMs for if not <mask_applied>.
10547
10548 2017-06-30 Sylvestre Ledru <sylvestre@debian.org>
10549
10550 * lto-wrapper.c (copy_file) Close both file descriptors before
10551 exiting normally.
10552
10553 2017-06-30 Martin Liska <mliska@suse.cz>
10554
10555 PR ipa/81214
10556 * multiple_target.c (create_dispatcher_calls): Make ifunc
10557 also for function that don't have calls or are not referenced.
10558
10559 2017-06-30 Richard Biener <rguenther@suse.de>
10560
10561 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
10562 analyze the first scalar stmt. Move vector type computation
10563 for the BB case here from ...
10564 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard
10565 live operation processing in the SLP case properly.
10566
10567 2017-06-30 Richard Biener <rguenther@suse.de>
10568
10569 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
10570
10571 2017-06-30 Martin Liska <mliska@suse.cz>
10572
10573 PR sanitizer/81021
10574 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
10575 before BUILT_IN_UNWIND_RESUME when ASAN is used.
10576
10577 2017-06-30 Yvan Roux <yvan.roux@linaro.org>
10578
10579 * doc/invoke.texi (AArch64): Add missing options and remove redundant
10580 ones.
10581
10582 2017-06-30 Richard Biener <rguenther@suse.de>
10583
10584 PR tree-optimization/81249
10585 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
10586 condition reduction result to original scalar type.
10587
10588 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10589
10590 * profile-count.h (enum profile_quality): Fix typos and whitespace
10591 issues.
10592
10593 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10594
10595 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
10596 type for branch probabilities.
10597
10598 2017-06-29 Julian Brown <julian@codesourcery.com>
10599 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
10600
10601 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
10602 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
10603 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
10604 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
10605
10606 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
10607
10608 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
10609 check for CC usage into AARCH64_FUSE_CMP_BRANCH.
10610 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
10611 CC usage from generic code to here.
10612 * sched-deps.c (sched_macro_fuse_insns): Move the condition for
10613 CC usage into the target macros.
10614
10615 2017-06-29 Maya Rashish <coypu@sdf.org>
10616
10617 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
10618 objects.
10619
10620 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
10621
10622 * arm/arm-builtins.c: Include profile-count.h
10623 * except.c (sjlj_emit_function_enter): Use
10624 profile_probability::unlikely.
10625
10626 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10627
10628 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
10629 and tocrel_offset be pointer args rather than implicitly using
10630 static versions.
10631 (legitimate_constant_pool_address_p, rs6000_emit_move,
10632 const_load_sequence_p, adjust_vperm): Add local tocrel_base and
10633 tocrel_offset and use in toc_relative_expr_p call.
10634 (print_operand, print_operand_address): Use static tocrel_base_oac
10635 and tocrel_offset_oac.
10636 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
10637 tocrel_offset_oac.
10638
10639 2017-06-29 Maya Rashish <coypu@sdf.org>
10640
10641 * config/vax/builtins.md (ffssi2_internal): Correct constraint.
10642
10643 2017-06-29 Eric Botcazou <ebotcazou@adacore.com>
10644
10645 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
10646 objects, take into account only the alignment of 'op0' and 'mode1' if
10647 'op0' is a MEM.
10648
10649 2017-06-29 Steve Ellcey <sellcey@cavium.com>
10650
10651 * ccmp.c (ccmp_tree_comparison_p): New function.
10652 (ccmp_candidate_p): Update to use above function.
10653 (get_compare_parts): New function.
10654 (expand_ccmp_next): Update to use new functions.
10655 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
10656 new functions.
10657 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
10658 take mode as argument.
10659 * ccmp.h (expand_ccmp_expr): Add mode as argument.
10660 * expr.c (expand_expr_real_1): Pass mode as argument.
10661
10662 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org>
10663
10664 * combine.c (combine_instructions): Print insns to dump_file, together
10665 with their costs.
10666
10667 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
10668
10669 * asan.c (asan_emit_stack_protection): Update.
10670 (create_cond_insert_point): Update.
10671 * auto-profile.c (afdo_propagate_circuit): Update.
10672 * basic-block.h (struct edge_def): Turn probability to
10673 profile_probability.
10674 (EDGE_FREQUENCY): Update.
10675 * bb-reorder.c (find_traces_1_round): Update.
10676 (better_edge_p): Update.
10677 (sanitize_hot_paths): Update.
10678 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
10679 (make_single_succ_edge): Update.
10680 (check_bb_profile): Update.
10681 (dump_edge_info): Update.
10682 (update_bb_profile_for_threading): Update.
10683 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
10684 probabilitycount to 0.
10685 * cfgbuild.c (compute_outgoing_frequencies): Update.
10686 * cfgcleanup.c (try_forward_edges): Update.
10687 (outgoing_edges_match): Update.
10688 (try_crossjump_to_edge): Update.
10689 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
10690 (expand_gimple_tailcall): Update.
10691 (construct_init_block): Use make_single_succ_edge.
10692 (construct_exit_block): Use make_single_succ_edge.
10693 * cfghooks.c (verify_flow_info): Update.
10694 (redirect_edge_succ_nodup): Update.
10695 (split_edge): Update.
10696 (account_profile_record): Update.
10697 * cfgloopanal.c (single_likely_exit): Update.
10698 * cfgloopmanip.c (scale_loop_profile): Update.
10699 (set_zero_probability): Remove.
10700 (duplicate_loop_to_header_edge): Update.
10701 * cfgloopmanip.h (loop_version): Update prototype.
10702 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
10703 (force_nonfallthru_and_redirect): Update.
10704 (update_br_prob_note): Update.
10705 (rtl_verify_edges): Update.
10706 (purge_dead_edges): Update.
10707 (rtl_lv_add_condition_to_bb): Update.
10708 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
10709 * cgraphunit.c (init_lowered_empty_function): Update.
10710 (cgraph_node::expand_thunk): Update.
10711 * cilk-common.c: Include profile-count.h
10712 * dojump.c (inv): Remove.
10713 (jumpifnot): Update.
10714 (jumpifnot_1): Update.
10715 (do_jump_1): Update.
10716 (do_jump): Update.
10717 (do_jump_by_parts_greater_rtx): Update.
10718 (do_compare_rtx_and_jump): Update.
10719 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
10720 do_jump_1. do_compare_rtx_and_jump): Update prototype.
10721 * dwarf2cfi.c: Include profile-count.h
10722 * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
10723 (sjlj_emit_dispatch_table): Likewise.
10724 * explow.c: Include profile-count.h
10725 * expmed.c (emit_store_flag_force): Update.
10726 (do_cmp_and_jump): Update.
10727 * expr.c (compare_by_pieces_d::generate): Update.
10728 (compare_by_pieces_d::finish_mode): Update.
10729 (emit_block_move_via_loop): Update.
10730 (store_expr_with_bounds): Update.
10731 (store_constructor): Update.
10732 (expand_expr_real_2): Update.
10733 (expand_expr_real_1): Update.
10734 * expr.h (try_casesi, try_tablejump): Update prototypes.
10735 * gimple-pretty-print.c (dump_probability): Update.
10736 (dump_profile): New.
10737 (dump_gimple_label): Update.
10738 (dump_gimple_bb_header): Update.
10739 * graph.c (draw_cfg_node_succ_edges): Update.
10740 * hsa-gen.c (convert_switch_statements): Update.
10741 * ifcvt.c (cheap_bb_rtx_cost_p): Update.
10742 (find_if_case_1): Update.
10743 (find_if_case_2): Update.
10744 * internal-fn.c (expand_arith_overflow_result_store): Update.
10745 (expand_addsub_overflow): Update.
10746 (expand_neg_overflow): Update.
10747 (expand_mul_overflow): Update.
10748 (expand_vector_ubsan_overflow): Update.
10749 * ipa-cp.c (good_cloning_opportunity_p): Update.
10750 * ipa-split.c (split_function): Use make_single_succ_edge.
10751 * ipa-utils.c (ipa_merge_profiles): Update.
10752 * loop-doloop.c (add_test): Update.
10753 (doloop_modify): Update.
10754 * loop-unroll.c (compare_and_jump_seq): Update.
10755 (unroll_loop_runtime_iterations): Update.
10756 * lra-constraints.c (lra_inheritance): Update.
10757 * lto-streamer-in.c (input_cfg): Update.
10758 * lto-streamer-out.c (output_cfg): Update.
10759 * mcf.c (adjust_cfg_counts): Update.
10760 * modulo-sched.c (sms_schedule): Update.
10761 * omp-expand.c (expand_omp_for_init_counts): Update.
10762 (extract_omp_for_update_vars): Update.
10763 (expand_omp_ordered_sink): Update.
10764 (expand_omp_for_ordered_loops): Update.
10765 (expand_omp_for_generic): Update.
10766 (expand_omp_for_static_nochunk): Update.
10767 (expand_omp_for_static_chunk): Update.
10768 (expand_cilk_for): Update.
10769 (expand_omp_simd): Update.
10770 (expand_omp_taskloop_for_outer): Update.
10771 (expand_omp_taskloop_for_inner): Update.
10772 * omp-simd-clone.c (simd_clone_adjust): Update.
10773 * optabs.c (expand_doubleword_shift): Update.
10774 (expand_abs): Update.
10775 (emit_cmp_and_jump_insn_1): Update.
10776 (expand_compare_and_swap_loop): Update.
10777 * optabs.h (emit_cmp_and_jump_insns): Update prototype.
10778 * predict.c (predictable_edge_p): Update.
10779 (edge_probability_reliable_p): Update.
10780 (set_even_probabilities): Update.
10781 (combine_predictions_for_insn): Update.
10782 (combine_predictions_for_bb): Update.
10783 (propagate_freq): Update.
10784 (estimate_bb_frequencies): Update.
10785 (force_edge_cold): Update.
10786 * profile-count.c (profile_count::dump): Add missing space into dump.
10787 (profile_count::debug): Add newline.
10788 (profile_count::differs_from_p): Explicitly convert to unsigned.
10789 (profile_count::stream_in): Update.
10790 (profile_probability::dump): New member function.
10791 (profile_probability::debug): New member function.
10792 (profile_probability::differs_from_p): New member function.
10793 (profile_probability::differs_lot_from_p): New member function.
10794 (profile_probability::stream_in): New member function.
10795 (profile_probability::stream_out): New member function.
10796 * profile-count.h (profile_count_quality): Rename to ...
10797 (profile_quality): ... this one.
10798 (profile_probability): New.
10799 (profile_count): Update.
10800 * profile.c (compute_branch_probabilities): Update.
10801 * recog.c (peep2_attempt): Update.
10802 * sched-ebb.c (schedule_ebbs): Update.
10803 * sched-rgn.c (find_single_block_region): Update.
10804 (compute_dom_prob_ps): Update.
10805 (schedule_region): Update.
10806 * sel-sched-ir.c (compute_succs_info): Update.
10807 * stmt.c (struct case_node): Update.
10808 (do_jump_if_equal): Update.
10809 (get_outgoing_edge_probs): Update.
10810 (conditional_probability): Update.
10811 (emit_case_dispatch_table): Update.
10812 (expand_case): Update.
10813 (expand_sjlj_dispatch_table): Update.
10814 (emit_case_nodes): Update.
10815 * targhooks.c: Update.
10816 * tracer.c (better_p): Update.
10817 (find_best_successor): Update.
10818 * trans-mem.c (expand_transaction): Update.
10819 * tree-call-cdce.c: Update.
10820 * tree-cfg.c (gimple_split_edge): Upate.
10821 (move_sese_region_to_fn): Upate.
10822 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
10823 * tree-eh.c (lower_resx): Upate.
10824 (cleanup_empty_eh_move_lp): Upate.
10825 * tree-if-conv.c (version_loop_for_if_conversion): Update.
10826 * tree-inline.c (copy_edges_for_bb): Update.
10827 (copy_cfg_body): Update.
10828 * tree-parloops.c (gen_parallel_loop): Update.
10829 * tree-profile.c (gimple_gen_ic_func_profiler): Update.
10830 (gimple_gen_time_profiler): Update.
10831 * tree-ssa-dce.c (remove_dead_stmt): Update.
10832 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
10833 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
10834 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
10835 (unloop_loops): Update.
10836 (try_peel_loop): Update.
10837 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
10838 * tree-ssa-loop-split.c (connect_loops): Update.
10839 (split_loop): Update.
10840 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
10841 (hoist_guard): Update.
10842 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
10843 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
10844 (value_replacement): Update.
10845 * tree-ssa-reassoc.c (branch_fixup): Update.
10846 * tree-ssa-tail-merge.c (replace_block_by): Update.
10847 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
10848 (create_edge_and_update_destination_phis): Update.
10849 (compute_path_counts): Update.
10850 (recompute_probabilities): Update.
10851 (update_joiner_offpath_counts): Update.
10852 (freqs_to_counts_path): Update.
10853 (duplicate_thread_path): Update.
10854 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
10855 (struct switch_conv_info): Update.
10856 (gen_inbound_check): Update.
10857 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
10858 (vect_do_peeling): Update.
10859 (vect_loop_versioning): Update.
10860 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
10861 (optimize_mask_stores): Update.
10862 * ubsan.c (ubsan_expand_null_ifn): Update.
10863 * value-prof.c (gimple_divmod_fixed_value): Update.
10864 (gimple_divmod_fixed_value_transform): Update.
10865 (gimple_mod_pow2): Update.
10866 (gimple_mod_pow2_value_transform): Update.
10867 (gimple_mod_subtract): Update.
10868 (gimple_mod_subtract_transform): Update.
10869 (gimple_ic): Update.
10870 (gimple_stringop_fixed_value): Update.
10871 (gimple_stringops_transform): Update.
10872 * value-prof.h: Update.
10873
10874 2017-06-29 Carl Love <cel@us.ibm.com>
10875
10876 * config/rs6000/rs6000-c.c: Add support for built-in functions
10877 vector signed int vec_signed (vector float);
10878 vector signed long long vec_signed (vector double);
10879 vector signed int vec_signed2 (vector double, vector double);
10880 vector signed int vec_signede (vector double);
10881 vector signed int vec_signedo (vector double);
10882 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
10883 instruction generator.
10884 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
10885 UNSPEC_VSX_VSIGNED2): Add UNSPECS.
10886 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
10887 Add define_insn.
10888 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
10889 vunsignede_v2df): Add define_expands.
10890 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
10891 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
10892 VEC_UNSIGNEDO): Add definitions.
10893 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
10894 UNSPEC_VSX_VSIGNED2): Add UNSPECs.
10895 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
10896 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
10897 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
10898 * config/rs6000/altivec.h (vec_signed, vec_signed2,
10899 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
10900 vec_unsignede, vec_unsignedo): Add builtin defines.
10901 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
10902 declaration.
10903 * doc/extend.texi: Update the built-in documentation file for the
10904 new built-in functions.
10905
10906 2017-06-29 Richard Biener <rguenther@suse.de>
10907
10908 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
10909 reduction chains to LOOP_VINFO_REDUCTIONS.
10910 * tree-vect-slp.c (vect_analyze_slp): Continue looking for
10911 SLP reductions after processing reduction chains.
10912
10913 2017-06-29 Nathan Sidwell <nathan@acm.org>
10914
10915 * builtins.c (fold_builtin_FUNCTION): Use
10916 lang_hooks.decl_printable_name.
10917
10918 2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
10919
10920 PR middle-end/81194
10921 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
10922 with only one label.
10923 * stmt.c (expand_case): Assert NCASES is greater than one.
10924
10925 2017-06-29 Richard Biener <rguenther@suse.de>
10926
10927 * tree-cfg.c (group_case_labels_stmt): Return whether we changed
10928 anything.
10929 (group_case_labels): Likewise.
10930 (find_taken_edge): Push sanity checking on val to workers...
10931 (find_taken_edge_cond_expr): ... here
10932 (find_taken_edge_switch_expr): ... and here, handle cases
10933 with just a default label.
10934 * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
10935 (group_case_labels): Likewise.
10936 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
10937 group_case_labels does anything cleanup the CFG again.
10938
10939 2017-06-29 Bin Cheng <bin.cheng@arm.com>
10940
10941 PR tree-optimization/81196
10942 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
10943 exit condition comparing two IVs.
10944
10945 2017-06-29 Richard Earnshaw <rearnsha@arm.com>
10946
10947 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
10948 profile to the dummy entry at the end of the list of architectures.
10949 * config/arm/arm-cpu-cdata.h: Regenerated.
10950
10951 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10952 Michael Collison <michael.collison@arm.com>
10953
10954 PR target/70119
10955 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
10956 New pattern.
10957 (*aarch64_reg_<mode>3_neg_mask2): New pattern.
10958 (*aarch64_reg_<mode>3_minus_mask): New pattern.
10959 (*aarch64_<optab>_reg_di3_mask2): New pattern.
10960 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
10961 of shift when the shift amount is masked with constant equal to
10962 the size of the mode.
10963 * config/aarch64/predicates.md (subreg_lowpart_operator): New
10964 predicate.
10965
10966 2017-06-29 Martin Liska <mliska@suse.cz>
10967
10968 * config/i386/i386.opt: Change range from [1,5] to [0,5].
10969
10970 2017-06-29 Yury Gribov <tetra2005@gmail.com>
10971
10972 PR bootstrap/80565
10973 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
10974 code.
10975 * ipa-inline.h
10976 (edge_growth_cache_entry::edge_growth_cache_entry): New
10977 function.
10978 (reset_edge_growth_cache): Update to use constructor.
10979
10980 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10981
10982 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
10983 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
10984 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
10985
10986 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com>
10987
10988 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
10989 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
10990
10991 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
10992
10993 * config.gcc (*-linux-musl*): Add t-musl tmake_file.
10994 (*-linux-uclibc*): Add t-uclibc tmake_file.
10995 * config/t-musl: New.
10996 * config/t-uclibc: New.
10997
10998 2017-06-28 Richard Earnshaw <rearnsha@arm.com>
10999
11000 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
11001 context.
11002 (gen_comm_data): Emit architectural setting of arch_prof.
11003 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
11004 profile.
11005 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
11006 (armv8-m.base, armv8-m.main): Likewise.
11007 * arm-protos.h (arm_build_target): Add profile field.
11008 (arch_option): Likewise.
11009 * config/arm/arm.c (arm_configure_build_target): Copy the profile to
11010 the active target.
11011 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
11012 arm_active_target.profile.
11013
11014 2017-06-28 Richard Biener <rguenther@suse.de>
11015
11016 PR middle-end/81227
11017 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
11018 TYPE_OVERFLOW_WRAPS.
11019 * match.pd (negate_expr_p): Likewise.
11020 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
11021 fold_build2, not fold_binary.
11022
11023 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
11024
11025 * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
11026 Convert memory address to Pmode.
11027 (aarch64_print_operand): Assert MEM operands are always Pmode.
11028
11029 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
11030
11031 PR target/79665
11032 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
11033 Remove redundant if.
11034 (aarch_forward_to_shift_is_not_shifted_reg): Remove.
11035 * config/arm/aarch-common-protos.h
11036 (aarch_forward_to_shift_is_not_shifted_re): Remove.
11037 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
11038
11039 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
11040
11041 PR ipa/81238
11042 * multiple_target.c (create_dispatcher_calls): Set the default
11043 clone to be static, not public.
11044
11045 2017-06-28 Richard Biener <rguenther@suse.de>
11046
11047 * tree-vect-loop.c (vectorizable_reduction): Move special
11048 cond reduction IV var creation ...
11049 (vect_create_epilog_for_reduction): ... here. Remove induction_index
11050 parameter. Use STMT_VINFO_VECTYPE.
11051 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
11052 constant_p.
11053
11054 2017-06-28 Martin Liska <mliska@suse.cz>
11055
11056 PR ipa/81128
11057 * ipa-visibility.c (non_local_p): Handle visibility.
11058
11059 2017-06-28 Martin Liska <mliska@suse.cz>
11060
11061 PR driver/79659
11062 * common.opt: Add IntegerRange to various options.
11063 * opt-functions.awk (integer_range_info): New function.
11064 * optc-gen.awk: Add integer_range_info to cl_options struct.
11065 * opts-common.c (decode_cmdline_option): Handle
11066 CL_ERR_INT_RANGE_ARG.
11067 (cmdline_handle_error): Likewise.
11068 * opts.c (print_filtered_help): Show valid interval in
11069 when --help is provided.
11070 * opts.h (struct cl_option): Add range_min and range_max fields.
11071 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
11072
11073 2017-06-28 Marc Glisse <marc.glisse@inria.fr>
11074
11075 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
11076 (x * C EQ/NE y * C): New transformation.
11077
11078 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
11079
11080 * genmultilib (combination_space): Accept '+' in option names.
11081
11082 2017-06-28 Martin Liska <mliska@suse.cz>
11083
11084 PR sanitizer/81224
11085 * asan.c (instrument_derefs): Bail out inner references
11086 that are hard register variables.
11087
11088 2017-06-28 Jakub Jelinek <jakub@redhat.com>
11089
11090 PR target/81175
11091 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
11092 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
11093
11094 2017-06-28 Richard Biener <rguenther@suse.de>
11095
11096 * tree-vectorizer.h (vect_get_vec_defs): Remove.
11097 (vect_get_slp_defs): Adjust.
11098 * tree-vect-loop.c (get_initial_defs_for_reduction): Split
11099 out from ...
11100 * tree-vect-slp.c (vect_get_constant_vectors): ... here and
11101 simplify.
11102 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
11103 get_initial_defs_for_reduction instead of vect_get_vec_defs.
11104 (vectorizable_reduction): Adjust.
11105 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
11106 handling.
11107 (vect_get_slp_defs): Likewise.
11108 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
11109 (vectorizable_bswap): Adjust.
11110 (vectorizable_call): Likewise.
11111 (vectorizable_conversion): Likewise.
11112 (vectorizable_assignment): Likewise.
11113 (vectorizable_shift): Likewise.
11114 (vectorizable_operation): Likewise.
11115 (vectorizable_store): Likewise.
11116 (vectorizable_condition): Likewise.
11117 (vectorizable_comparison): Likewise.
11118
11119 2017-06-28 Michael Collison <michael.collison@arm.com>
11120
11121 PR target/68535
11122 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
11123 set of base_reg
11124 (arm_gen_movmemqi): Removed unused variable 'i'.
11125 Convert 'for' loop into 'while' loop.
11126 (arm_expand_prologue): Remove last unnecessary set of insn.
11127 (thumb_pop): Remove unused variable 'pushed_words'.
11128 (thumb_exit): Remove last unnecessary set of regs_to_pop.
11129
11130 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11131
11132 * config/s390/predicates.md: Use s390_rel_address_ok_p.
11133 * config/s390/s390-protos.h: Add prototype of
11134 s390_rel_address_ok_p.
11135 * config/s390/s390.c (s390_got_symbol): New function.
11136 (s390_rel_address_ok_p): New function.
11137 (legitimize_pic_address): Use s390_rel_address_ok_p.
11138 (s390_load_got): Use s390_got_symbol.
11139 (s390_option_override): Issue error if
11140 -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
11141 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
11142 New macro.
11143 * config/s390/s390.opt: New option mpic-data-is-text-relative.
11144
11145 2017-06-27 Andrew Pinski <apinski@cavium.com>
11146
11147 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
11148 (X * copysign (1.0, X)): New pattern.
11149 (X * copysign (1.0, -X)): New pattern.
11150 (copysign (-1.0, CST)): New pattern.
11151
11152 2017-06-27 Joseph Myers <joseph@codesourcery.com>
11153
11154 * genmultilib (combination_space): Remove variable.
11155 Validate reuse rules against regular expression for any sequence
11156 of multilib options in any order.
11157
11158 2017-06-27 Michael Collison <michael.collison@arm.com>
11159
11160 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
11161 call aarch64_split_simd_combine.
11162 * (aarch64_combine_internal<mode>): Delete pattern.
11163 * config/aarch64/aarch64.c (aarch64_split_simd_combine):
11164 Allow register and subreg operands.
11165
11166 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
11167
11168 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
11169 specific need, just fallback on defaults.
11170 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
11171
11172 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
11173 Olivier Hainque <hainque@adacore.com>
11174
11175 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
11176 map for 64bits.
11177 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
11178 targets. Pick a default if no particular attempt applied.
11179 (STACK_CHECK_PROTECT): Double for 64bit targets, which have
11180 larger contexts.
11181
11182 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
11183
11184 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
11185 (x86_64-wrs-vxworks7): Likewise.
11186
11187 2017-06-27 Marek Polacek <polacek@redhat.com>
11188
11189 PR sanitizer/81223
11190 * ubsan.c (instrument_null): Check get_base_address's result for null.
11191
11192 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
11193
11194 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
11195
11196 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
11197
11198 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
11199 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
11200 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
11201 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
11202 New function types.
11203 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
11204 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
11205 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
11206 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
11207 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
11208 BUILT_IN_FEUPDATEENV): New builtins.
11209 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
11210 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
11211 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
11212 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
11213 macros.
11214 (builtin_structptr_types): Adjust size.
11215 * tree.c (builtin_structptr_types): Add four entries.
11216
11217 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
11218 Olivier Hainque <hainque@adacore.com>
11219
11220 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
11221 (TLS_SYM): New local macro, forcing reference to __tls__ on
11222 link command lines for VxWorks 7 RTPs, triggering initialization
11223 of tlsLib.
11224 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
11225 OS features TLS support, true for RTPs on VxWorks 7.
11226 * config/vxworks.c (vxworks_override_options): Setup emutls
11227 accordingly.
11228
11229 2017-06-27 Jakub Jelinek <jakub@redhat.com>
11230
11231 * predict.c (test_prediction_value_range): Use -1U instead of -1
11232 to avoid narrowing conversion warning.
11233 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
11234 to avoid narrowing conversion warning.
11235 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
11236 -1.
11237 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
11238
11239 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
11240
11241 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
11242 64bit configurations.
11243 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
11244 (SIZE_TYPE): Likewise.
11245 * config/vxworks.c (vxworks_emutls_var_fields): Use
11246 long_unsigned_type_node instead of unsigned_type_node as the offset
11247 field type, which is "pointer" mode in emutls.c.
11248
11249 2017-06-27 Jakub Jelinek <jakub@redhat.com>
11250
11251 PR sanitizer/81209
11252 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
11253
11254 PR middle-end/81207
11255 * gimple-fold.c (replace_call_with_call_and_fold): Handle
11256 gimple_vuse copying separately from gimple_vdef copying.
11257
11258 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11259
11260 * value-prof.c (free_hist): Remove call to memset and the enclosing if
11261 condition.
11262
11263 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
11264 Olivier Hainque <hainque@adacore.com>
11265
11266 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
11267 for all vxworks7 targets.
11268 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
11269 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
11270 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
11271 variations for VX6/VX7 and 32/64bits later on in ...
11272 (VXWORKS_LIB_SPEC): Leverage new macros.
11273 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
11274 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
11275
11276 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
11277
11278 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
11279 _VX_TOOL_FAMILY and _VX_TOOL to gnu.
11280
11281 2017-06-26 Carl Love <cel@us.ibm.com>
11282
11283 * config/rs6000/rs6000-c.c: Add support for built-in functions
11284 vector bool char vec_reve (vector bool char);
11285 vector signed char vec_reve (vector signed char);
11286 vector unsigned char vec_reve (vector unsigned char);
11287 vector bool int vec_reve (vector bool int);
11288 vector signed int vec_reve (vector signed int);
11289 vector unsigned int vec_reve (vector unsigned int);
11290 vector bool long long vec_reve (vector bool long long);
11291 vector signed long long vec_reve (vector signed long long);
11292 vector unsigned long long vec_reve (vector unsigned long long);
11293 vector bool short vec_reve (vector bool short);
11294 vector signed short vec_reve (vector signed short);
11295 vector double vec_reve (vector double);
11296 vector float vec_reve (vector float);
11297 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
11298 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
11299 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
11300 (altivec_vreve): New pattern.
11301 * config/rs6000/altivec.h (vec_reve): New define.
11302 * doc/extend.texi (vec_rev): Update the built-in documentation file
11303 for the new built-in functions.
11304
11305 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11306
11307 PR tree-optimization/71815
11308 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
11309 function.
11310 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
11311 has_single_use.
11312 (slsr_process_phi): Likewise.
11313 (replace_uncond_cands_and_profitable_phis): Don't replace a
11314 multiply candidate with a stride of 1 (copy or cast).
11315 (phi_incr_cost): Call uses_consumed_by_stmt rather than
11316 has_single_use.
11317 (lowest_cost_path): Likewise.
11318 (total_savings): Likewise.
11319
11320 2017-06-26 Richard Biener <rguenther@suse.de>
11321
11322 PR target/81175
11323 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
11324 Use def_builtin_pure for all gather builtins.
11325
11326 2017-06-26 Richard Biener <rguenther@suse.de>
11327
11328 PR tree-optimization/81203
11329 * tree-tailcall.c (find_tail_calls): Do not move stmts into
11330 non-dominating BBs.
11331
11332 2017-06-26 Marek Polacek <polacek@redhat.com>
11333
11334 PR c/80116
11335 * doc/invoke.texi: Document -Wmultistatement-macros.
11336
11337 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
11338
11339 * doc/sourcebuild.texi (ARM-specific attributes): Document new
11340 arm_neon_ok_no_float_abi effective target.
11341
11342 2017-06-26 Richard Biener <rguenther@suse.de>
11343
11344 PR tree-optimization/80928
11345 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
11346 (copy_bbs): Set BB_DUPLICATED flag early.
11347 (execute_on_growing_pred): Do not execute for BB_DUPLICATED
11348 marked blocks.
11349 (execute_on_shrinking_pred): Likewise.
11350 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
11351 BB_DUPLICATED blocks.
11352 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
11353 iterate over all PHIs considering removal of *gsi.
11354
11355 2017-06-23 Jim Wilson <jim.wilson@linaro.org>
11356
11357 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
11358 qdf24xx.
11359
11360 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
11361
11362 * config/rs6000/rs6000-string.c: (expand_block_clear,
11363 do_load_for_compare, select_block_compare_mode,
11364 compute_current_alignment, expand_block_compare,
11365 expand_strncmp_align_check, expand_strn_compare,
11366 expand_block_move, rs6000_output_load_multiple)
11367 Move functions related to string/block move/compare
11368 to a separate file.
11369 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
11370 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
11371 for this function which is now used in two files.
11372 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
11373 * config.gcc: Add rs6000-string.o to extra_objs for
11374 targets powerpc*-*-* and rs6000*-*-*.
11375
11376 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
11377
11378 PR target/80510
11379 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
11380 32-bit, since indexed is not valid for DImode.
11381 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
11382 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
11383 (define_peephole2 for Altivec d-form load): Add 32-bit support.
11384 (define_peephole2 for Altivec d-form store): Likewise.
11385
11386 PR ipa/81185
11387 * multiple_target.c (create_dispatcher_calls): Only create the
11388 dispatcher call if the function is the default clone of a
11389 versioned function.
11390
11391 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
11392
11393 PR middle-end/80902
11394 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
11395 a call, force the call to not be a tail call.
11396
11397 2017-06-23 Jeff Law <law@redhat.com>
11398
11399 * doc/contrib.texi: Add entry for Steven Pemberton's work on
11400 enquire.
11401
11402 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com>
11403
11404 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
11405 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add
11406 handling for early expansion of vector shifts (sl,sr,sra,rl).
11407 (builtin_function_type): Add vector shift right instructions
11408 to the unsigned argument list.
11409
11410 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
11411
11412 rtl-optimizatoin/79286
11413 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
11414 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
11415 trap. PIC register plus a const unspec without offset can never trap.
11416
11417 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
11418
11419 * tree.h (builtin_structptr_type): New type.
11420 (builtin_structptr_types): Declare new array.
11421 * tree.c (builtin_structptr_types): New array.
11422 (free_lang_data, build_common_tree_nodes): Use it.
11423
11424 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
11425
11426 PR c++/81187
11427 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
11428 -Wnoexcept.
11429
11430 2017-06-22 Matt Turner <mattst88@gmail.com>
11431
11432 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
11433 Lake models to skylake case. Assume skylake for unknown
11434 models with clflushopt.
11435
11436 2017-06-22 Jeff Law <law@redhat.com>
11437
11438 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
11439 frame sizes that do not satisfy aarch64_uimm12_shift.
11440
11441 2017-06-22 Jan Hubicka <hubicka@ucw.cz>
11442
11443 * profile-count.h (apply_probability,
11444 apply_scale, probability_in): Fix checks for zero.
11445
11446 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11447
11448 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
11449 * doc/cppdiropts.texi (-I @var{dir}): Document it.
11450
11451 2016-06-22 Richard Biener <rguenther@suse.de>
11452
11453 * tree-vect-loop.c (vect_model_reduction_cost): Handle
11454 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
11455 REDUC_MAX_EXPR support.
11456 (vectorizable_reduction): Likewise.
11457 (vect_create_epilog_for_reduction): Likewise.
11458
11459 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com>
11460
11461 * match.pd (A / (1 << B) -> A >> B): New.
11462 * generic-match-head.c: Include optabs-tree.h.
11463 * gimple-match-head.c: Likewise.
11464 * optabs-tree.h (target_supports_op_p): New.
11465 * optabs-tree.c (target_supports_op_p): New.
11466
11467 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11468
11469 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
11470 $gcc_cv_ld --help output.
11471 (gcc_cv_ld_demangle): Likewise.
11472 (gcc_cv_ld_eh_frame_hdr): Likewise.
11473 (gcc_cv_ld_pie): Likewise.
11474 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld.
11475 (gcc_cv_ld_buildid): Likewise.
11476 (gcc_cv_ld_sysroot): Likewise.
11477 (ld_bndplt_support): Likewise.
11478 (ld_pushpopstate_support): Likewise.
11479 * configure: Regenerate.
11480 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
11481
11482 2017-06-21 Jakub Jelinek <jakub@redhat.com>
11483
11484 PR target/81151
11485 * config/i386/sse.md (round<mode>2): Renumber match_dup and
11486 operands indexes to avoid gap between operands and match_dups.
11487
11488 2017-06-21 Andrew Pinski <apinski@cavium.com>
11489
11490 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
11491 Increment Arith_shift and Arith_shift_reg by 1.
11492 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
11493 New tuning flag.
11494 * config/aarch64/aarch64.c (thunderx_tunings): Enable
11495 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
11496 (aarch64_strip_extend): Add new argument and test for it.
11497 (aarch64_cheap_mult_shift_p): New function.
11498 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
11499 add a cost if it is true.
11500 Update calls to aarch64_strip_extend.
11501 (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
11502
11503 2017-06-21 Andrew Pinski <apinski@cavium.com>
11504
11505 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
11506 tunings.
11507 (thunderxt88): Likewise.
11508 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
11509 (thunderx_prefetch_tune): New variable.
11510 (thunderx2t99_prefetch_tune): Update for the correct values.
11511 (thunderxt88_tunings): New variable.
11512 (thunderx_tunings): Use thunderx_prefetch_tune instead of
11513 generic_prefetch_tune.
11514 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
11515
11516 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11517
11518 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
11519 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
11520 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
11521 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
11522 (aarch64_atomic_cas<mode>, GPI): Likewise.
11523
11524 2017-06-21 Martin Liska <mliska@suse.cz>
11525
11526 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
11527 statements on cold and hot labels.
11528 * predict.c (tree_estimate_probability_bb): Remove the
11529 prediction from this place.
11530
11531 2017-06-21 Martin Liska <mliska@suse.cz>
11532
11533 PR tree-optimization/79489
11534 * gimplify.c (maybe_add_early_return_predict_stmt): New
11535 function.
11536 (gimplify_return_expr): Call the function.
11537 * predict.c (tree_estimate_probability_bb): Remove handling
11538 of early return.
11539 * predict.def: Update comment about early return predictor.
11540 * gimple-predict.h (is_gimple_predict): New function.
11541 * predict.def: Change default value of early return to 66.
11542 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
11543 statements.
11544 * passes.def: Put pass_strip_predict_hints to the beginning of
11545 IPA passes.
11546
11547 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
11548
11549 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
11550 FUNCTION_DECL declarations.
11551 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
11552 declarations.
11553 (dwaf2out_decl): Likewise.
11554 * godump.c (go_early_global_decl): Skip call to the real debug hook
11555 for FUNCTION_DECL declarations.
11556 * passes.c (rest_of_decl_compilation): Skip call to the
11557 early_global_decl debug hook for FUNCTION_DECL declarations, unless
11558 -fdump-go-spec is passed.
11559
11560 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
11561
11562 * config/i386/i386.c (struct builtin_isa): New field pure_p.
11563 Reorder for compactness.
11564 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
11565 (def_builtin_pure, def_builtin_pure2): New functions.
11566 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
11567
11568 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
11569
11570 * match.pd (nop_convert): New predicate.
11571 ((A +- CST1) +- CST2): Allow some NOP conversions.
11572
11573 2017-06-21 Jakub Jelinek <jakub@redhat.com>
11574
11575 PR c++/81130
11576 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
11577 with ctors/dtors if GOVD_SHARED is set.
11578
11579 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
11580
11581 * config/aarch64/aarch64.md (movti_aarch64):
11582 Emit mov rather than orr.
11583 (movtf_aarch64): Likewise.
11584 * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
11585 Emit mov rather than orr.
11586
11587 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
11588
11589 * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
11590 Swap alternatives, make integer dup more expensive.
11591
11592 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
11593
11594 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
11595 Return true for non-tls symbols.
11596
11597 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com>
11598
11599 * config/aarch64/aarch64-cores.def (cortex-a55): New.
11600 (cortex-a75): Likewise.
11601 (cortex-a75.cortex-a55): Likewise.
11602 * config/aarch64/aarch64-tune.md: Regenerate.
11603 * doc/invoke.texi (-mtune): Document new values for -mtune.
11604
11605 2017-06-21 Tom de Vries <tom@codesourcery.com>
11606
11607 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
11608 stack_size feature.
11609 (Effective-Target Keywords, Other attributes): Suggest using
11610 dg-add-options stack_size feature to get stack limit in stack_size
11611 effective target documentation.
11612
11613 2017-06-21 Julian Brown <julian@codesourcery.com>
11614 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
11615
11616 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
11617 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
11618 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
11619 reservation.
11620 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
11621 attribute type list for neon_multiply.
11622 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
11623 attribute type list for neon_multiply.
11624 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
11625 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
11626 attribute type list for neon_multiply.
11627 * config/arm/types.md (crypto_pmull): Add.
11628 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
11629 attribute type list.
11630
11631 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
11632
11633 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
11634 arm1176jzf-s.
11635
11636 2017-06-20 Jakub Jelinek <jakub@redhat.com>
11637
11638 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
11639 to make sure not to dereference a NULL cost_classes_ptr pointer.
11640
11641 2017-06-20 Carl Love <cel@us.ibm.com>
11642
11643 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11644 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
11645 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
11646 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
11647 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
11648 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
11649 VMULOSW): New enum "unspec" values.
11650 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
11651 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
11652 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
11653 altivec_vmulosw): New patterns.
11654 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
11655 VMULOSW): Add definitions.
11656
11657 2017-06-20 Julia Koval <julia.koval@intel.com>
11658
11659 * config/i386/i386.c: Fix rounding expand for new pattern.
11660 * config/i386/subst.md: Fix pattern (parallel -> unspec).
11661
11662 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
11663
11664 * config/aarch64/aarch64-option-extensions.def (rcpc): New.
11665 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
11666
11667 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
11668
11669 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
11670 feature string.
11671
11672 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
11673
11674 * config/aarch64/aarch64-cores.def: Rearrange to sort by
11675 architecture, then by implementer ID.
11676 * config/aarch64/aarch64-tune.md: Regenerate.
11677
11678 2017-06-20 Richard Biener <rguenther@suse.de>
11679
11680 PR middle-end/81097
11681 * fold-const.c (split_tree): Fold to type before negating.
11682
11683 2017-06-20 David Malcolm <dmalcolm@redhat.com>
11684
11685 * diagnostic-show-locus.c
11686 (selftest::test_fixit_deletion_affecting_newline): New function.
11687 (selftest::diagnostic_show_locus_c_tests): Call it.
11688
11689 2017-06-20 Andreas Schwab <schwab@suse.de>
11690
11691 PR target/80970
11692 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
11693 instead of "+d".
11694
11695 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
11696
11697 * config/arm/arm-c.c (arm_cpu_builtins): New block to define
11698 __ARM_FEATURE_COPROC according to support.
11699
11700 2017-06-20 Jakub Jelinek <jakub@redhat.com>
11701
11702 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
11703 Rewritten to avoid overflow for > 32-bit pointers.
11704
11705 PR sanitizer/81125
11706 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
11707 by removing enum keyword.
11708 (ubsan_type_descriptor): Likewise. Formatting fix.
11709
11710 PR target/81121
11711 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
11712 splitter): Require TARGET_SSE2 in the condition.
11713
11714 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
11715
11716 PR target/79799
11717 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
11718 for doing vector set of SFmode on ISA 3.0.
11719 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
11720 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
11721 element.
11722 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
11723 SFmode value into a V4SF variable that was extracted from another
11724 V4SF variable without converting the element to double precision
11725 and back to single precision vector format.
11726 (vsx_insert_extract_v4sf_p9_2): Likewise.
11727
11728 2017-06-19 Jakub Jelinek <jakub@redhat.com>
11729
11730 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
11731 in UWHI to avoid undefined overflow.
11732
11733 PR sanitizer/81125
11734 * ubsan.h (enum ubsan_encode_value_phase): New.
11735 (ubsan_encode_value): Change second argument to
11736 enum ubsan_encode_value_phase with default value of
11737 UBSAN_ENCODE_VALUE_GENERIC.
11738 * ubsan.c (ubsan_encode_value): Change second argument to
11739 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
11740 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
11741 create_tmp_var_raw instead of create_tmp_var and use a
11742 TARGET_EXPR.
11743 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
11744 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
11745 ubsan_encode_value callers.
11746
11747 PR sanitizer/81111
11748 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
11749 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
11750 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
11751
11752 2017-06-19 Richard Biener <rguenther@suse.de>
11753
11754 PR middle-end/81118
11755 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
11756 estimates if we changed anything.
11757
11758 2017-06-19 Richard Biener <rguenther@suse.de>
11759
11760 PR tree-optimization/80887
11761 * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
11762 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
11763 simplified lookups, then reset mprts_hook.
11764 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
11765 simplifying.
11766 (try_to_simplify): Likewise.
11767
11768 2017-06-19 Martin Liska <mliska@suse.cz>
11769
11770 PR sanitizer/80879
11771 * gimplify.c (gimplify_switch_expr):
11772 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
11773
11774 2017-06-19 Martin Liska <mliska@suse.cz>
11775
11776 * doc/install.texi: Document that PGO runs in 4 stages.
11777
11778 2017-06-19 Martin Liska <mliska@suse.cz>
11779
11780 PR ipa/80732
11781 * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
11782 to dispatcher function name.
11783 * multiple_target.c (replace_function_decl): New function.
11784 (create_dispatcher_calls): Redirect both edges and references.
11785
11786 2017-06-19 Jan Hubicka <hubicka@ucw.cz>
11787
11788 * profile-count.c (profile_count::dump): Dump quality.
11789 (profile_count::differs_from_p): Update for unsigned val.
11790 * profile-count.h (profile_count_quality): New enum.
11791 (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
11792
11793 2017-06-19 Richard Biener <rguenther@suse.de>
11794
11795 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
11796 struct function as arg.
11797 (estimate_numbers_of_iterations): Export overload with loop arg.
11798 (free_numbers_of_iterations_estimates_loop): Use an overload of
11799 free_numbers_of_iterations_estimates instead.
11800 * tree-cfg.c (remove_bb): Adjust.
11801 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
11802 * tree-parloops.c (gen_parallel_loop): Likewise.
11803 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
11804 Likewise.
11805 (tree_unroll_loops_completely): Likewise.
11806 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
11807 Use an overload instead and export.
11808 (estimated_loop_iterations): Adjust.
11809 (max_loop_iterations): Likewise.
11810 (likely_max_loop_iterations): Likewise.
11811 (estimate_numbers_of_iterations): Take struct function as arg
11812 and adjust.
11813 (loop_exits_before_overflow): Adjust.
11814 (free_numbers_of_iterations_estimates_loop): Use an overload.
11815 * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
11816 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
11817
11818 2017-06-19 Richard Biener <rguenther@suse.de>
11819
11820 PR ipa/81112
11821 * ipa-prop.c (find_constructor_constant_at_offset): Handle
11822 RANGE_EXPR conservatively.
11823
11824 2017-06-16 Carl Love <cel@us.ibm.com>
11825
11826 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11827 definitions for vec_float, vec_float2, vec_floato,
11828 vec_floate built-ins.
11829 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
11830 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
11831 floate.
11832 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
11833 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
11834 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
11835 * config/altivec.md (define_insn "p8_vmrgew_<mode>",
11836 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
11837 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
11838 vec_floato): Add builtin defines.
11839 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
11840 Update the built-in documentation file for the new built-in
11841 functions.
11842
11843 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11844
11845 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
11846 (mthumb): Mark as the negative of -marm.
11847
11848 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11849
11850 * doc/invoke.texi (ARM Options, -mcpu): Document supported
11851 extension options.
11852 (ARM Options, -mtune): Document that this accepts the same
11853 extension options as -mcpu.
11854 (ARM Options, -mfpu): Document addition of -mfpu=auto.
11855
11856 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11857
11858 * doc/invoke.texi (ARM Options, -march=): Document new syntax and
11859 permitted extensions.
11860
11861 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11862
11863 * config/arm/arm-cpus.in (armv7): Add extension +nofp.
11864 (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
11865 (armv8-m.main): Add option +nodsp.
11866 * config/arm/arm-cpu-cdata.h: Regenerated.
11867
11868 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11869
11870 * config/arm/t-fuchsia: New file.
11871 * config.gcc (arm*-*-fuchsia*): Use it.
11872
11873 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11874
11875 * config/arm/t-symbian: Rewrite for new option infrastructure.
11876
11877 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11878
11879 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
11880 (MULTILIB_REQUIRED): Likewise.
11881
11882 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11883
11884 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
11885 (MULTILIB_RESUE): Likewise.
11886 (MULTILIB_MATCHES): Likewise.
11887 (MULTLIB_REQUIRED): Likewise.
11888
11889 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11890
11891 * config/arm/t-rtems: Rewrite for new option framework.
11892
11893 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11894
11895 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
11896 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
11897 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
11898 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
11899 * config/arm/t-multilib: ... here.
11900 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
11901 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for
11902 armv7-a and armv8*-a when A-profile libraries have not been built.
11903 * config/arm/t-rmprofile: Rewrite.
11904
11905 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11906
11907 * genmultilib (multilib_reuse): Allow an explicit period to be escaped
11908 with a backslash. Remove the backslash after substituting unescaped
11909 periods.
11910 * doc/fragments.texi (MULTILIB_REUSE): Document it.
11911
11912 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11913
11914 * config.gcc: (arm*-*-*): When building a-profile libraries, force
11915 the driver to pass through the default setting of -mfloat-abi.
11916 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
11917 rather than NULL.
11918 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
11919 (all_feat_combs): New rule.
11920 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework
11921 default libraries.
11922 * config/arm/t-aprofile: Rewrite.
11923
11924 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11925
11926 * config/arm/arm.h (FPUTYPE_AUTO): Define.
11927 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
11928 fpu is not specified by the user/command-line.
11929 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
11930 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
11931 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
11932 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
11933 * common/config/arm/arm-common.c (arm_canon_arch_option): Use
11934 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
11935
11936 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11937
11938 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
11939 * config/arm/t-arm-elf: Rewritten.
11940
11941 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11942
11943 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
11944 have some floating-point instructions.
11945 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
11946 (TARGET_MAYBE_HARD_FLOAT): New macro.
11947 * config/arm/arm-builtins.c (arm_init_builtins): Use
11948 TARGET_MAYBE_HARD_FLOAT.
11949 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
11950
11951 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11952
11953 * common/config/arm/arm-common.c: Define INCLUDE_LIST.
11954 (configargs.h): Include it.
11955 (arm_print_hint_for_fpu_option): New function.
11956 (arm_parse_fpu_option): New function.
11957 (candidate_extension): New class.
11958 (arm_canon_for_multilib): New function.
11959 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
11960 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
11961 (ARCH_CANONICAL_SPECS): New macro.
11962 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
11963
11964 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11965
11966 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
11967 are set after handling multilib fragments. Set target_cpu_default2
11968 from with_cpu.
11969
11970 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11971
11972 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
11973 cpu name.
11974 (arm*-*-*): Set target_cpu_default2 to a quoted string.
11975 * config/arm/parsecpu.awk (check_cpu): Validate any extension
11976 options.
11977 (check_arch): Likewise.
11978 * config/arm/arm.c (arm_configure_build_target): Handle
11979 TARGET_CPU_DEFAULT being a string constant. Scan any feature
11980 options in the default.
11981
11982 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
11983
11984 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
11985 when an option is an alias of another.
11986 * config/arm/parsecpu.awk (optalias): New parser token.
11987 (gen_comm_data): Mark non-alias options as such. Emit entries
11988 for extension aliases.
11989 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
11990 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
11991 (armv6kz, armv6zk, armv6t2): Likewise.
11992 (armv7): Make vfpv3-d16 an alias.
11993 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in
11994 canonical order.
11995 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
11996 Sort in canonical order.
11997 (armv8-a): Sort in canonical order.
11998 (armv8.1-a, armv8.2-a): Likewise.
11999 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in
12000 canonical order.
12001 (cortex-a9): Sort in canonical order.
12002 * config/arm/arm.c (selftests.h): Include it.
12003 (arm_test_cpu_arch_data): New function.
12004 (arm_run_self_tests): New function.
12005 (TARGET_RUN_TARGET_SELFTESTS): Redefine.
12006 (targetm): Move declaration to the end of the file.
12007 * arm-cpu-cdata.h: Regenerated.
12008
12009 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
12010
12011 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
12012 call to target_mode_check describing the type of option passed.
12013 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
12014 (arm_target_thumb_only): Use arm_parse_arch_option_name or
12015 arm_parse_cpu_option_name to match parameters against list of
12016 available targets.
12017 * config/arm/parsecpu.awk (gen_comm_data): Don't generate
12018 arm_arch_core_flags data structure.
12019 * config/arm/arm-cpu_cdata.h: Regenerated.
12020
12021 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
12022
12023 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
12024 config/arm/arm.c.
12025 (arm_print_hint_for_cpu_option): Likewise.
12026 (arm_print_hint_for_arch_option): Likewise.
12027 (arm_parse_cpu_option_name): Likewise.
12028 (arm_parse_arch_option_name): Likewise.
12029 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
12030 of entries in the all_fpus list.
12031 * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
12032 (arm_parse_cpu_option_name): Declare.
12033 (arm_parse_arch_option_name): Declare.
12034 (arm_parse_option_features): Declare.
12035 (arm_intialize_isa): Declare.
12036 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
12037 data tables to ...
12038 (gen_comm_data): ... here. Make definitions non-static.
12039 * config/arm/arm-cpu-data.h: Regenerated.
12040 * config/arm/arm-cpu-cdata.h: Regenerated.
12041
12042 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
12043
12044 * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
12045 (cpu_arch_extension): New structure.
12046 (cpu_arch_option, arch_option, cpu_option): New structures.
12047 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
12048 architecture types.
12049 (gen_data): Generate new format data tables.
12050 * config/arm/arm.c (cpu_tune): New structure.
12051 (cpu_option, processors): Delete.
12052 (arm_print_hint_for_core_or_arch): Delete. Replace with ...
12053 (arm_print_hint_for_cpu_option): ... this and ...
12054 (arm_print_hint_for_arch_option): ... this.
12055 (arm_parse_arch_cpu_name): Delete. Replace with ...
12056 (arm_parse_cpu_option_name): ... this and ...
12057 (arm_parse_arch_option_name): ... this.
12058 (arm_unrecognized_feature): Change type of target parameter to
12059 cpu_arch_option.
12060 (arm_parse_arch_cpu_features): Delete. Replace with ...
12061 (arm_parse_option_features): ... this.
12062 (arm_configure_build_target): Rework to use new configuration data
12063 tables.
12064 (arm_print_tune_info): Rework for new configuration data tables.
12065 * config/arm/arm-cpu-data.h: Regenerated.
12066 * config/arm/arm-cpu.h: Regenerated.
12067
12068 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
12069
12070 * Makefile.in (OBJS): Move sbitmap.o from here ...
12071 (OBJS-libcommon): ... to here.
12072
12073 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
12074
12075 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
12076 (ISA_ALL_CRYPTO): New macro.
12077 (ISA_ALL_SIMD): New macro
12078 (ISA_ALL_FP): New macro.
12079 * config/arm/arm.c (fpu_bitlist): Update initializer.
12080 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
12081 simd or fp.
12082 (arm9e): Add fpu. Add option for nofp
12083 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
12084 (arm926ej-s, arm1026ej-s): Likewise.
12085 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16,
12086 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
12087 neon-fp16, neon-vfpv4, nofp and nosimd.
12088 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp.
12089 (cortex-a8): Add fpu. Add option for nofp.
12090 (cortex-a9): Add fpu. Add options for nosimd and nofp.
12091 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp.
12092 (cortex-r4f): Add fpu.
12093 (cortex-r5): Add fpu. Add options for nofp.dp and nofp.
12094 (cortex-r7): Use idiv option from architecture. Add fpu. Add option
12095 for nofp.
12096 (cortex-r8): Likewise.
12097 (cortex-m4): Add fpu. Add option for nofp.
12098 (cortex-a15.cortex-a7): Add fpu. Add option for nofp.
12099 (cortex-a17.cortex-a7): Likewise.
12100 (cortex-a32): Add fpu. Add options for crypto and nofp.
12101 (cortex-a35, cortex-a53): Likewise.
12102 (cortex-a57): Add fpu. Add option for crypto.
12103 (cortex-a72, cortex-a73): Likewise.
12104 (exynos-m1): Likewise.
12105 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
12106 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
12107 (cortex-m33): Add fpu. Add option for nofp.
12108 * config/arm/arm-cpu-cdata.h: Regenerated
12109 * config/arm/arm-cpu-data.h: Regenerated.
12110
12111 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
12112
12113 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
12114 (armv5te, armv5tej): Likewise.
12115 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
12116 (armv7): Add options fp and vfpv3-d16.
12117 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
12118 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
12119 nofp and nosimd.
12120 (armv7ve): Likewise.
12121 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
12122 (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
12123 (armv8-a): Add nocrypto option.
12124 (armv8.1-a, armv8.2-a): Likewise.
12125 (armv8-m.main): add options fp, fp.dp and nofp.
12126
12127 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
12128
12129 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
12130 nofp.
12131 (armv8-a+crc): Delete.
12132 (armv8.1-a): Add options simd, crypto and nofp.
12133 (armv8.2-a): Add options fp16, simd, crypto and nofp.
12134 (armv8.2-a+fp16): Delete.
12135 (armv8-m.main): Add option dsp.
12136 (armv8-m.main+dsp): Delete.
12137 (cortex-a8): Add fpu. Add nofp option.
12138 (cortex-a9): Add fpu. Add nofp and nosimd options.
12139 * config/arm/parsecpu.awk (gen_data): Generate option tables and
12140 link to main cpu and architecture data structures.
12141 (gen_comm_data): Only put isa attributes from the main architecture
12142 in common tables.
12143 (option): New statement for architecture and CPU entries.
12144 * arm.c (struct cpu_option): New structure.
12145 (struct processors): Add entry for options.
12146 (arm_unrecognized_feature): New function.
12147 (arm_parse_arch_cpu_name): Ignore any characters after the first
12148 '+' character.
12149 (arm_parse_arch_cpu_feature): New function.
12150 (arm_configure_build_target): Separate out any CPU and architecture
12151 features and parse separately. Don't error out if -mfpu=auto is
12152 used with only an architecture string.
12153 (arm_print_asm_arch_directives): New function.
12154 (arm_file_start): Call it.
12155 * config/arm/arm-cpu-cdata.h: Regenerated.
12156 * config/arm/arm-cpu-data.h: Likewise.
12157 * config/arm/arm-tables.opt: Likewise.
12158
12159 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
12160
12161 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
12162 assembler when it is not -mfpu=auto.
12163
12164 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
12165
12166 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
12167 (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
12168 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
12169 (ASM_CPU_SPEC): Rewrite.
12170 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
12171 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use
12172 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove
12173 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
12174 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
12175 copied string is NUL-terminated. Also strip any characters prefixed
12176 by '+'.
12177 (arm_rewrite_selected_arch): New function.
12178 (arm_rewrite_march): New function.
12179
12180 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
12181
12182 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
12183 (x_arm_cpu_string, x_arm_tune_string): Likewise.
12184 (march, mcpu, mtune): Convert to string-based options.
12185 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
12186 (arm_parse_arch_cpu_name): New function.
12187 (arm_configure_build_target): Use arm_parse_arch_cpu_name to
12188 identify selected architecture or CPU.
12189 (arm_option_save): New function.
12190 (TARGET_OPTION_SAVE): Redefine.
12191 (arm_option_restore): Restore string options.
12192 (arm_option_print): Print string options.
12193
12194 2017-06-16 Martin Sebor <msebor@redhat.com>
12195
12196 PR tree-optimization/80933
12197 PR tree-optimization/80934
12198 * builtins.c (fold_builtin_3): Do not handle bcmp here.
12199 * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
12200 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
12201 (gimple_fold_builtin): Call them.
12202
12203 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
12204
12205 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
12206 as unlikely; update profile.
12207
12208 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
12209
12210 * predict.c (force_edge_cold): Handle declaring edges impossible
12211 more aggresively.
12212
12213 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
12214
12215 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
12216 profile.
12217 (try_unroll_loop_completely): Fix reporting.
12218
12219 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
12220
12221 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
12222
12223 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com>
12224
12225 PR target/71778
12226 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
12227 if given a non-constant argument for an intrinsic which requires a
12228 constant.
12229
12230 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
12231
12232 * profile.c (compare_freqs): New function.
12233 (branch_prob): Sort edge list.
12234 (find_spanning_tree): Assume that the list is priority sorted.
12235
12236 2017-06-16 Richard Biener <rguenther@suse.de>
12237
12238 PR tree-optimization/81090
12239 * passes.def (pass_record_bounds): Remove.
12240 * tree-pass.h (make_pass_record_bounds): Likewise.
12241 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
12242 make_pass_record_bounds): Likewise.
12243 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
12244 not free niter estimates at the beginning but at the end.
12245 * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
12246
12247 2017-06-16 Richard Biener <rguenther@suse.de>
12248
12249 * tree-switch-conversion.c (emit_case_bit_tests): Adjust
12250 initializer to workaround ICE in host GCC 4.8.
12251
12252 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
12253
12254 * ipa-inline-transform.c (update_noncloned_frequencies): Update also
12255 counts.
12256 (clone_inlined_nodes): Update.
12257
12258 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
12259
12260 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
12261 prefetch settings, and enable prefetching by default at -O3.
12262
12263 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
12264
12265 * config/aarch64/aarch64.c (aarch64_override_options_internal):
12266 Set flag_prefetch_loop_arrays according to tuning data.
12267
12268 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
12269
12270 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
12271 New tune structure.
12272 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
12273 [Unrelated to main purpose of the patch] Place the pointer field last
12274 to enable type checking errors when tune structure are wrongly merged.
12275 * config/aarch64/aarch64.c (generic_prefetch_tune,)
12276 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
12277 (thunderx2t99_prefetch_tune): New tune constants.
12278 (tune_params *_tunings): Update all tunings (no functional change).
12279 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
12280 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
12281 from tunings structures.
12282
12283 2017-06-16 Jakub Jelinek <jakub@redhat.com>
12284
12285 PR sanitizer/81094
12286 * ubsan.c (instrument_null): Add T argument, use it instead
12287 of computing it based on IS_LHS.
12288 (instrument_object_size): Likewise.
12289 (pass_ubsan::execute): Adjust instrument_null and
12290 instrument_object_size callers to pass gimple_get_lhs or
12291 gimple_assign_rhs1 result to it. Use instrument_null instead of
12292 calling get_base_address and instrument_mem_ref. Handle
12293 aggregate call arguments for object-size sanitization.
12294
12295 2017-06-16 Yury Gribov <tetra2005@gmail.com>
12296
12297 PR tree-optimization/81089
12298 * tree-vrp.c (is_masked_range_test): Validate operands of
12299 subexpression.
12300
12301 2017-06-15 Martin Sebor <msebor@redhat.com>
12302
12303 PR c++/80560
12304 * dumpfile.c (dump_register): Avoid calling memset to initialize
12305 a class with a default ctor.
12306 * gcc.c (struct compiler): Remove const qualification.
12307 * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
12308 * hash-table.h: Ditto.
12309 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
12310 assignment.
12311 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
12312 * omp-low.c (lower_omp_ordered_clauses): Replace memset with
12313 default ctor.
12314 * params.h (struct param_info): Make struct members non-const.
12315 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
12316 with default initialization.
12317 * vec.h (vec_copy_construct, vec_default_construct): New helper
12318 functions.
12319 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
12320 with vec_copy_construct.
12321 (vect<T>::quick_grow_cleared): Replace memset with default ctor.
12322 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
12323 * doc/invoke.texi (-Wclass-memaccess): Document.
12324
12325 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12326
12327 * emit-rtl.h (is_leaf): Update comment about local
12328 register allocator.
12329
12330 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com>
12331
12332 PR target/78818
12333 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
12334 for a variable to have a section before checking if the section has a
12335 name.
12336 Set section to.persistent if persistent attribute is set.
12337 Warn if .persistent attribute is used on an automatic variable.
12338
12339 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
12340
12341 PR rtl-optimization/80474
12342 * reorg.c (update_block): Do not ignore instructions in a delay slot.
12343
12344 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
12345
12346 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
12347 of REGNO.
12348
12349 2017-06-14 Maciej W. Rozycki <macro@imgtec.com>
12350
12351 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
12352 (casesi): Emit bounds checking as RTL.
12353 (casesi_internal_mips16_<mode>): Remove bounds checking.
12354
12355 2017-06-14 Max Filippov <jcmvbkbc@gmail.com>
12356
12357 * config/xtensa/xtensa.c (xtensa_option_override): Append
12358 MASK_CONST16 to target_flags in the absence of TARGET_L32R.
12359 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
12360 xtensa_doloop_hooks): Define unconditionally.
12361 (xtensa_reorg_loops): Only call reorg_loops in the presence of
12362 TARGET_LOOPS.
12363 * config/xtensa/xtensa.h (TARGET_L32R): New definition.
12364 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
12365 for it in xtensa_option_override.
12366 (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12367 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
12368
12369 2017-06-14 Boris Kolpackov <boris@codesynthesis.com>
12370
12371 * doc/cppopts.texi: Document '-' special value to -MF.
12372
12373 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com>
12374
12375 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
12376 (cortex_a53_fconst): Likewise.
12377 (cortex_a53_fpmul): Likewise.
12378 (cortex_a53_f_load_64): Likewise.
12379 (cortex_a53_f_load_many): Likewise.
12380 (cortex_a53_advsimd_alu): Likewise.
12381 (cortex_a53_advsimd_alu_q): Likewise.
12382 (cortex_a53_advsimd_mul): Likewise.
12383 (cortex_a53_advsimd_mul_q): Likewise.
12384 (fpmac bypass): Add new bypass for fpmac-fpmac case.
12385 Add missing fmul, r2f_cvt and fconst cases.
12386
12387 2017-06-14 Richard Biener <rguenther@suse.de>
12388
12389 PR middle-end/81088
12390 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
12391 literal constants.
12392 (fold_binary_loc): When associating do not treat pre-existing
12393 TREE_OVERFLOW on literal constants as a reason to allow
12394 TREE_OVERFLOW on associated literal constants.
12395
12396 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
12397
12398 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
12399 (MASK_FEATURES): New macro.
12400 * config/sparc/sparc.c (sparc_option_override): Remove the special
12401 handling of -mfpu and generalize it to all MASK_FEATURES switches.
12402
12403 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
12404
12405 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
12406 a division of 0 if non-call exceptions are enabled.
12407
12408 2017-06-14 Andrew Pinski <apinski@cavium.com>
12409 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
12410
12411 PR target/71663
12412 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
12413 Improve vector initialization code gen for only variable case.
12414
12415 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
12416
12417 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
12418
12419 2017-06-14 Richard Biener <rguenther@suse.de>
12420
12421 PR tree-optimization/81083
12422 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
12423 as values.
12424
12425 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
12426
12427 * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
12428 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
12429 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
12430 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use.
12431 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
12432 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
12433
12434 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
12435
12436 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
12437 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
12438
12439 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
12440
12441 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
12442
12443 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
12444
12445 * config/rs6000/t-rtems: Don't handle SPE.
12446
12447 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
12448
12449 * config/rs6000/t-linux: Don't handle SPE.
12450
12451 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
12452
12453 * config/rs6000/eabispe.h: Delete file.
12454
12455 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
12456
12457 * config/rs6000/t-spe: Delete file.
12458
12459 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
12460
12461 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
12462 (rs6000_legitimate_offset_address_p): Return false for anything in
12463 V2SImode or V2SFmode.
12464
12465 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
12466
12467 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
12468 except V2SF and V2SI. Rearrange the vector modes, and add comments.
12469 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
12470 and V4HImode.
12471 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
12472 (rs6000_legitimate_offset_address_p): Ditto.
12473 (rs6000_emit_move): Ditto.
12474 (rs6000_init_builtins): Remove V4HI_type_node.
12475
12476 2017-06-13 Martin Liska <mliska@suse.cz>
12477
12478 PR sanitize/78204
12479 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
12480 (gate_asan): Likewise.
12481 * asan.h (asan_no_sanitize_address_p): Remove the function.
12482 (sanitize_flags_p): New function.
12483 * builtins.def: Fix coding style.
12484 * common.opt: Use renamed enum value.
12485 * convert.c (convert_to_integer_1): Use sanitize_flags_p.
12486 * doc/extend.texi: Document no_sanitize attribute.
12487 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
12488 to SANITIZE_UNDEFINED_NONDEFAULT.
12489 * gcc.c (sanitize_spec_function): Use the renamed enum value.
12490 * gimple-fold.c (optimize_atomic_compare_exchange_p):
12491 Use sanitize_flags_p.
12492 * gimplify.c (gimplify_function_tree): Likewise.
12493 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
12494 * opts.c (parse_no_sanitize_attribute): New function.
12495 (common_handle_option): Use renamed enum value.
12496 * opts.h (parse_no_sanitize_attribute): Declare.
12497 * tree.c (sanitize_flags_p): New function.
12498 * tree.h: Declared here.
12499 * tsan.c: Use sanitize_flags_p.
12500 * ubsan.c (ubsan_expand_null_ifn): Likewise.
12501 (instrument_mem_ref): Likewise.
12502 (instrument_bool_enum_load): Likewise.
12503 (do_ubsan_in_current_function): Remove the function.
12504 (pass_ubsan::execute): Use sanitize_flags_p.
12505 * ubsan.h: Remove do_ubsan_in_current_function
12506 * tree-cfg.c (print_no_sanitize_attr_value): New function.
12507 (dump_function_to_file): Use it here.
12508
12509 2017-06-13 Martin Jambor <mjambor@suse.cz>
12510
12511 PR tree-optimization/80803
12512 PR tree-optimization/81063
12513 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
12514 (propagate_subaccesses_across_link): Enqueue subtree whenever
12515 necessary instead of relying on the caller.
12516
12517 2017-06-13 Martin Jambor <mjambor@suse.cz>
12518
12519 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
12520 that have a first_link.
12521 (sort_and_splice_var_accesses): Do not check first_link before
12522 enquing.
12523 (subtree_mark_written_and_enqueue): Likewise.
12524 (propagate_all_subaccesses): Likewise and do not stop at first
12525 parent with a first_link.
12526
12527 2017-06-13 Martin Jambor <mjambor@suse.cz>
12528
12529 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
12530 instead of f.
12531
12532 2017-06-13 Yury Gribov <tetra2005@gmail.com>
12533
12534 * match.pd: New pattern.
12535
12536 2017-06-13 Yury Gribov <tetra2005@gmail.com>
12537
12538 * tree-vrp.c (is_masked_range_test): New function.
12539 (register_edge_assert_for): Determine ranges for
12540 some bit tests.
12541
12542 2017-06-13 Yury Gribov <tetra2005@gmail.com>
12543
12544 PR tree-optimization/67328
12545 * fold-const.c (maskable_range_p): New function.
12546 (build_range_check): Generate bittests if possible.
12547
12548 2017-06-13 Martin Liska <mliska@suse.cz>
12549
12550 * gimple-pretty-print.c (dump_probability): Add new argument.
12551 (dump_edge_probability): Dump both probability and count.
12552 (dump_gimple_label): Likewise.
12553 (dump_gimple_bb_header): Likewise.
12554
12555 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
12556
12557 PR target/81072
12558 * config/avr/avr-devices.c: Fix indentation.
12559 * config/avr/gen-avr-mmcu-specs.c: Dito.
12560
12561 2017-06-13 Richard Biener <rguenther@suse.de>
12562
12563 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
12564 instead get vector type from stmt_info.
12565 (vectorizable_reduction): Adjust. Remove dead code.
12566
12567 2017-06-13 Richard Biener <rguenther@suse.de>
12568
12569 PR middle-end/81065
12570 * fold-const.c (extract_muldiv_1): Remove bogus distribution
12571 case of C * (x * C2 + C3).
12572 (fold_addr_of_array_ref_difference): Properly fold index difference.
12573
12574 2017-06-12 David S. Miller <davem@davemloft.net>
12575
12576 PR target/80968
12577 * config/sparc/sparc.md (return expander): Emit frame blockage if
12578 function uses alloca.
12579
12580 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org>
12581
12582 * combine.c (make_field_assignment): Check len rather than the mode
12583 precision when calling force_to_mode.
12584
12585 2017-06-12 Georg-Johann Lay <avr@gjlay.de>
12586
12587 Support multilibs and devices that see flash in RAM address range.
12588
12589 PR target/81072
12590 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
12591 (avr_mcu_t) <flash_pm_offset>: New field.
12592 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
12593 * config/avr/avr.h (AVR_SHORT_CALLS): New define.
12594 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
12595 (AVR_TINY_PM_OFFSET): Remove macro.
12596 * config/avr/avr.opt (-mshort-calls): New option.
12597 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
12598 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
12599 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
12600 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
12601 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
12602 instead of avr_arch->have_jmp_call.
12603 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
12604 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
12605 avr_arch->flash_pm_offset to define.
12606 * config/avr/avr-devices.c (avr_arch_types): Add initializers for
12607 new field flash_pm_offset. Add entry for avrxmega3.
12608 (avr_texinfo): Add entry for avrxmega3.
12609 * config/avr/avr-mcus.def: Add entries for: avrxmega3,
12610 attiny212, attiny214,
12611 attiny412, attiny414, attiny416, attiny417,
12612 attiny814, attiny816, attiny817,
12613 attiny1614, attiny1616, attiny1617,
12614 attiny3214, attiny3216, attiny3217.
12615 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
12616 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
12617 (avr_print_operand_address) [AVR_TINY]: Same.
12618 (avr_asm_init_sections) <readonly_data_section>: Only patch
12619 callback if avr_arch->flash_pm_offset = 0.
12620 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
12621 for rodata if avr_arch->flash_pm_offset != 0.
12622 (avr_encode_section_info) [AVR_TINY]: Adjust comment.
12623 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
12624 (opts) [AVR_ISA_RCALL]: Append opt_rcall.
12625 (m_options): Append opt_rcall.
12626 (m_dirnames): Append dir_rcall.
12627 * config/avr/t-multilib: Regenerate.
12628
12629 * configure.ac [target=avr]: Check whether avrxmega3 default
12630 linker description file works as needed.
12631 * configure: Regenerate.
12632 * doc/avr-mmcu.texi: Regenerate.
12633 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
12634 <__AVR_ARCH__>: Document avrxmega3 and 103.
12635 <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
12636 <__AVR_SHORT_CALLS__>: Document it.
12637 <__AVR_PM_BASE_ADDRESS__>: Document it.
12638 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
12639 (AVR Variable Attributes) <progmem>: Document this is
12640 not needed for avrxmega3.
12641 (AVR Named Address Spaces) <__flash>: Dito.
12642
12643 2017-06-12 Jan Hubicka <hubicka@ucw.cz>
12644
12645 * cgraph.c (cgraph_node::dump): Complain about profile insanities.
12646
12647 2017-06-12 Doug Rupp <rupp@adacore.com>
12648
12649 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
12650 Append vxworks-stdint.h to the tm_file list.
12651 * config/vxworks-stdint.h: New file.
12652
12653 2017-06-12 Martin Liska <mliska@suse.cz>
12654
12655 PR tree-optimization/81041
12656 * tree-profile.c (gimple_gen_ic_func_profiler):
12657 Create an extra BB in profile-generate
12658 (gimple_gen_time_profiler): Likewise.
12659
12660 2017-06-12 Jakub Jelinek <jakub@redhat.com>
12661
12662 PR tree-optimization/81003
12663 * tree-ssa-reassoc.c (force_into_ssa_name): New function.
12664 (update_range_test): Use it instead of force_gimple_operand_gsi.
12665
12666 2017-06-12 Richard Biener <rguenther@suse.de>
12667
12668 PR tree-optimization/81053
12669 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
12670 with backedge value not defined in loop. Simplify def stmt
12671 compute.
12672
12673 2017-06-11 Tom de Vries <tom@codesourcery.com>
12674
12675 PR target/79939
12676 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
12677 Return true.
12678 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
12679 nvptx_cannot_force_const_mem.
12680
12681 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
12682
12683 * opts.c (finish_options): Move test for flag_split_stack after
12684 it has been initialized.
12685
12686 2017-06-11 Jason Merrill <jason@redhat.com>
12687
12688 * tree.h (id_equal): New.
12689 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
12690 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
12691 instead of strcmp of IDENTIFIER_POINTER.
12692
12693 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
12694
12695 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
12696 (mark_all_inlined_calls_cdtor): Fix formating.
12697 (inline_transform): Rescale profile before inlining.
12698
12699 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
12700
12701 * cgraph.h (cgraph_edge::clone): Update prototype.
12702 * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
12703 (cgraph_node::create_clone): Update.
12704 (cgraph_node::create_version_clone): Update.
12705 * tree-inline.c (copy_bb): Update.
12706 (expand_call_inline): Update.
12707
12708 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
12709
12710 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
12711 factored out from ...
12712 (rs6000_emit_prologue): ... here.
12713
12714 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
12715
12716 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
12717 factored out from ...
12718 (rs6000_emit_prologue): ... here.
12719
12720 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
12721
12722 * predict.c (drop_profile): Also drop individual bb/edge and cgraph
12723 edge counts.
12724 (handle_missing_profiles): Fix computation of tp_first_run.
12725 (counts_to_freqs): Do not touch freqs when count is 0.
12726
12727 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
12728
12729 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
12730 profile.
12731
12732 2017-06-10 Tom de Vries <tom@codesourcery.com>
12733
12734 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
12735 attributes): Document signal effective target.
12736
12737 2017-06-10 Tom de Vries <tom@codesourcery.com>
12738
12739 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
12740 Document effective target stack_size.
12741
12742 2017-06-09 David Malcolm <dmalcolm@redhat.com>
12743
12744 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
12745 to the edit_context if they can be auto-applied.
12746
12747 2017-06-9 Ian Lance Taylor <iant@golang.org>
12748
12749 * opts.c (finish_options): If -fsplit-stack, disable implicit
12750 -forder-blocks-and-partition.
12751 * doc/invoke.texi (Optimize Options): Document that when using
12752 -fsplit-stack -forder-blocks-and-partition is not implicitly
12753 enabled.
12754
12755 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
12756
12757 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
12758 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
12759 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
12760 * builtins.def (abort, trap, unreachable): Declare cold.
12761 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
12762 * tree-core.h (ECF_COLD): New.
12763 * tree.c (set_call_expr_flags): Handle ECF_COLD.
12764 (build_common_builtin_nodes): Mark unreachable and abort as cold.
12765
12766 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
12767
12768 * predict.c (unlikely_executed_stmt_p): Cleanup.
12769
12770 2017-06-09 Richard Biener <rguenther@suse.de>
12771
12772 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
12773 model if the ref is always written to.
12774
12775 2017-06-09 Tamar Christina <tamar.christina@arm.com>
12776
12777 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
12778
12779 2017-06-09 Tamar Christina <tamar.christina@arm.com>
12780
12781 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
12782 than udiv.
12783
12784 2017-06-09 Tom de Vries <tom@codesourcery.com>
12785
12786 PR target/80855
12787 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
12788 "target cannot support label values" when encountering LABEL_REF.
12789
12790 2017-06-09 Martin Liska <mliska@suse.cz>
12791
12792 * tree-profile.c (gimple_gen_ic_profiler): Update comment.
12793 (gimple_gen_ic_func_profiler): Emit direct comparison
12794 of __gcov_indirect_call_callee with NULL.
12795 (gimple_gen_time_profiler): Change probability from
12796 PROB_VERY_UNLIKELY to PROB_UNLIKELY.
12797
12798 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
12799
12800 * profile.c (edge_gcov_counts): Turn to pointer.
12801 (compute_branch_probabilities, compute_branch_probabilities): Update.
12802 (branch_prob): Do not clear edge_gcov_count.
12803 * profile.h (edge_gcov_counts): Turn to pointer.
12804 (edge_gcov_count): Update.
12805
12806 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
12807
12808 * gimple.h (gimple_check_failed): Mark cold.
12809
12810 2017-06-09 Richard Biener <rguenther@suse.de>
12811
12812 PR tree-optimization/66623
12813 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
12814 refactor check_reduction into two parts, properly computing
12815 whether we have to check reduction validity for outer loop
12816 vectorization.
12817
12818 2017-06-09 Richard Biener <rguenther@suse.de>
12819
12820 PR tree-optimization/79483
12821 * graphite-scop-detection.c (order): New global.
12822 (get_order): Compute bb to order mapping that satisfies code
12823 generation constraints.
12824 (cmp_pbbs): New helper.
12825 (build_scops): Start domwalk at entry block, sort generated
12826 pbbs.
12827
12828 2017-06-09 Richard Biener <rguenther@suse.de>
12829
12830 PR middle-end/81007
12831 * ipa-polymorphic-call.c
12832 (ipa_polymorphic_call_context::restrict_to_inner_class):
12833 Skip FIELD_DECLs with error_mark_node type.
12834 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
12835 last again.
12836
12837 2017-06-09 Martin Liska <mliska@suse.cz>
12838
12839 * predict.c (struct branch_predictor): New struct.
12840 (test_prediction_value_range): New test.
12841 (predict_c_tests): New function.
12842 * selftest-run-tests.c (selftest::run_tests): Run the function.
12843 * selftest.h: Declare new tests.
12844
12845 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
12846
12847 PR target/80966
12848 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
12849 gen_add3_insn did not fail.
12850 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
12851 r0, construct that number in a temporary reg and add that reg to r0.
12852 If asked to put the result in r0 as well, fail.
12853
12854 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com>
12855
12856 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
12857 for early expansion of vec_eqv.
12858
12859 2017-06-08 Jakub Jelinek <jakub@redhat.com>
12860
12861 PR middle-end/81005
12862 * ubsan.c (instrument_null): Avoid pointless code temporary.
12863 (pass_ubsan::execute): Instrument aggregate arguments of calls.
12864
12865 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
12866
12867 PR target/81015
12868 Revert:
12869 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
12870
12871 PR target/59874
12872 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
12873 (*clzhi2): Ditto.
12874
12875 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
12876
12877 * predict.c (unlikely_executed_edge_p): Move ahead.
12878 (probably_never_executed_edge_p): Use it.
12879
12880 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
12881
12882 PR middle-end/79988
12883 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
12884 gimple_call_builtin_p call.
12885
12886 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
12887
12888 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
12889 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
12890 rtl_check_failed_type2, rtl_check_failed_code1,
12891 rtl_check_failed_code2, rtl_check_failed_code_mode,
12892 rtl_check_failed_block_symbol, cwi_check_failed_bounds,
12893 rtvec_check_failed_bounds, rtl_check_failed_flag,
12894 _fatal_insn_not_found, _fatal_insn): Likewise.
12895 * tree.h (tree_contains_struct_check_failed,
12896 tree_check_failed, tree_not_check_failed,
12897 tree_class_check_failed, tree_range_check_failed,
12898 tree_not_class_check_failed, tree_int_cst_elt_check_failed,
12899 tree_vec_elt_check_failed, phi_node_elt_check_failed,
12900 tree_operand_check_failed, omp_clause_check_failed,
12901 omp_clause_operand_check_failed, omp_clause_range_check_failed):
12902 Likewise.
12903
12904 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
12905
12906 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
12907 flag_branch_probabilities.
12908 * ipa-inline.c (edge_badness): Likewise.
12909 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
12910 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
12911 * predict.c (maybe_hot_frequency_p): Likewise.
12912 (probably_never_executed): Likewise.
12913 * sched-ebb.c (schedule_ebbs): Likewise.
12914 * sched-rgn.c (find_single_block_region): Likewise.
12915 * tracer.c (tail_duplicate): Likewise.
12916
12917 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
12918
12919 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
12920 longer requires x_flag_profile_use.
12921
12922 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
12923
12924 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
12925 instead of flag_reorder_blocks_and_partition.
12926 * dbxout.c (dbxout_function_end): Likewise.
12927 * dwarf2out.c (gen_subprogram_die): Likewise.
12928 * haifa-sched.c (sched_create_recovery_edges): Likewise.
12929 * hw-doloop.c (reorg_loops): Likewise.
12930 * varasm.c (assemble_start_function,
12931 assemble_end_function): Likewise.
12932 (decide_function_section): Do not check for
12933 flag_reorder_blocks_and_partition.
12934
12935 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
12936
12937 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
12938 New function.
12939 (chkp_get_hard_register_fake_addr_expr): Ditto.
12940 (chkp_build_addr_expr): Add check for hard reg case.
12941 (chkp_parse_array_and_component_ref): Ditto.
12942 (chkp_find_bounds_1): Ditto.
12943 (chkp_process_stmt): Don't generate bounds store for
12944 hard reg case.
12945
12946 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
12947
12948 * predict.c (maybe_hot_bb_p): Do not check profile status.
12949 (maybe_hot_edge_p): Likewise.
12950 (probably_never_executed): Check for zero counts even if profile
12951 is not read.
12952 (unlikely_executed_edge_p): New function.
12953 (unlikely_executed_stmt_p): New function.
12954 (unlikely_executed_bb_p): New function.
12955 (set_even_probabilities): Use unlikely predicates.
12956 (combine_predictions_for_bb): Likewise.
12957 (predict_paths_for_bb): Likewise.
12958 (predict_paths_leading_to_edge): Likewise.
12959 (determine_unlikely_bbs): New function.
12960 (estimate_bb_frequencies): Use it.
12961 (compute_function_frequency): Use zero counts even if profile is
12962 not read.
12963 * profile-count.h: Fix typo.
12964
12965 2017-08-08 Julia Koval <julia.koval@intel.com>
12966
12967 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
12968 _mm512_mask_cvtsepi16_storeu_epi8,
12969 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
12970 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
12971 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
12972 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
12973 _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
12974 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
12975 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
12976 VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
12977 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
12978 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
12979 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
12980 __builtin_ia32_pmovuswb256mem_mask,
12981 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
12982 __builtin_ia32_pmovwb512mem_mask): New builtins.
12983
12984 2017-08-08 Julia Koval <julia.koval@intel.com>
12985
12986 PR target/73350,80862
12987 * config/i386/subst.md (round): Fix round pattern.
12988 * config/i386/i386.c (ix86_erase_embedded_rounding):
12989 Fix erasing rounding for the fixed pattern.
12990
12991 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
12992
12993 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
12994
12995 2017-06-08 Martin Liska <mliska@suse.cz>
12996
12997 PR gcov-profile/80911
12998 * gcov.c (block_info::block_info): New constructor.
12999
13000 2017-06-07 Carl Love <cel@us.ibm.com>
13001
13002 * config/rs6000/rs6000-c: The return type of the following
13003 built-in functions was implemented as int not long long. Fix sign
13004 of return value for the unsigned version of vec_mulo and vec_mule.
13005 vector unsigned long long vec_bperm (vector unsigned long long,
13006 vector unsigned char)
13007 vector signed long long vec_mule (vector signed int,
13008 vector signed int)
13009 vector unsigned long long vec_mule (vector unsigned int,
13010 vector unsigned int)
13011 vector signed long long vec_mulo (vector signed int,
13012 vector signed int)
13013 vector unsigned long long vec_mulo (vector unsigned int,
13014 vector unsigned int)
13015 * doc/extend.texi: Fix the documentation for the built-in
13016 functions.
13017
13018 2017-06-07 Carl Love <cel@us.ibm.com>
13019
13020 PR target/80982
13021 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
13022 for BE.
13023
13024 2017-06-07 Carl Love <cel@us.ibm.com>
13025
13026 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
13027 support, Generate doublehv for signed int/float for BE case only.
13028
13029 2017-06-07 Alexander Monakov <amonakov@ispras.ru>
13030
13031 * doc/invoke.texi (mcx16): Rewrite.
13032
13033 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13034
13035 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
13036 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
13037 *mov<mode>_softfloat, and an anonymous splitter): Use
13038 nonimmediate_operand instead of rs6000_nonimmediate_operand.
13039
13040 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13041
13042 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
13043 SPEFSCR registers.
13044 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
13045 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
13046 (rs6000_debug_reg_global): Adjust.
13047 (rs6000_init_hard_regno_mode_ok): Adjust.
13048 (rs6000_dbx_register_number): Adjust.
13049 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
13050 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
13051 Remove SPE_ACC and SPEFSCR.
13052 (REG_ALLOC_ORDER): Ditto.
13053 (FRAME_POINTER_REGNUM): Change to 111.
13054 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
13055 (REG_CLASS_NAMES): Ditto.
13056 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
13057 (REGISTER_NAMES): Ditto.
13058 (ADDITIONAL_REG_NAMES): Ditto.
13059 (rs6000_reg_names): Ditto.
13060 * config/rs6000/rs6000.md: Renumber some register number
13061 define_constants.
13062
13063 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13064
13065 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
13066 registers.
13067 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
13068 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
13069 to 117.
13070 (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
13071 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
13072 Delete the SPE high registers.
13073 (REG_ALLOC_ORDER): Ditto.
13074 (enum reg_class): Remove SPE_HIGH_REGS.
13075 (REG_CLASS_NAMES): Ditto.
13076 (REG_CLASS_CONTENTS): Delete the SPE high registers.
13077 (REGISTER_NAMES): Ditto.
13078 (rs6000_reg_names): Ditto.
13079 * doc/tm.texi.in: Remove SPE as example.
13080 * doc/tm.texi: Regenerate.
13081
13082 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13083
13084 * config/rs6000/8540.md (ppc8540_brinc): Delete.
13085 * config/rs6000/e500mc.md (e500mc_brinc): Delete.
13086 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
13087 * config/rs6000/rs6000.md (type): Remove "brinc".
13088
13089 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13090
13091 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
13092 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
13093 * config/rs6000/linuxspe.h: Delete file.
13094 * config/rs6000/rs6000.md: Don't include spe.md.
13095 * config/rs6000/spe.h: Delete file.
13096 * config/rs6000/spe.md: Delete file.
13097 * config/rs6000/t-rs6000: Remove spe.md.
13098
13099 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13100
13101 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
13102 (reg_or_none500mem_operand): Delete.
13103 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
13104 instead of reg_or_none500mem_operand.
13105
13106 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13107
13108 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
13109 handling of SPE flags.
13110 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
13111
13112 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13113
13114 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
13115 SPE ABI handling.
13116 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
13117 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
13118 paired_divv2sf3): Similar.
13119 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
13120 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
13121 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
13122 RS6000_BUILTIN_S.
13123 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
13124 Rename the paired_* instruction patterns.
13125 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
13126 define __SPE__.
13127 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
13128 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
13129 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
13130 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and
13131 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with
13132 PAIRED_VECTOR_MODE.
13133 (struct machine_function): Delete field spe_insn_chain_scanned_p.
13134 (spe_func_has_64bit_regs_p): Delete.
13135 (spe_expand_predicate_builtin): Delete.
13136 (spe_expand_evsel_builtin): Delete.
13137 (TARGET_DWARF_REGISTER_SPAN): Do not define.
13138 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
13139 (invalid_e500_subreg): Delete.
13140 (rs6000_legitimize_address): Always force_reg op2 as well, for
13141 paired single memory accesses.
13142 (rs6000_member_type_forces_blk): Delete.
13143 (rs6000_spe_function_arg): Delete.
13144 (rs6000_expand_unop_builtin): Delete SPE handling.
13145 (rs6000_expand_binop_builtin): Ditto.
13146 (spe_expand_stv_builtin): Delete.
13147 (bdesc_2arg_spe): Delete.
13148 (spe_expand_builtin): Delete.
13149 (spe_expand_predicate_builtin): Delete.
13150 (spe_expand_evsel_builtin): Delete.
13151 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
13152 (spe_init_builtins): Delete.
13153 (spe_func_has_64bit_regs_p): Delete.
13154 (savres_routine_name): Delete "info" parameter. Adjust callers.
13155 (rs6000_emit_stack_reset): Ditto.
13156 (rs6000_dwarf_register_span): Delete.
13157 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
13158 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
13159 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
13160 Delete.
13161 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
13162 Delete.
13163 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
13164 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
13165 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
13166 mulv2sf3, divv2sf3): Delete expanders.
13167
13168 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13169
13170 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
13171
13172 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13173
13174 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
13175 * config/rs6000/rs6000.c: Ditto.
13176
13177 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13178
13179 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
13180 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
13181 comparison_operator.
13182
13183 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13184
13185 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
13186 * config/rs6000/rs6000.opt: Ditto.
13187 * config/rs6000/t-rtems: Ditto.
13188
13189 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13190
13191 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
13192 TARGET_E500_SINGLE by 0, simplify.
13193 * config/rs6000/rs6000.c: Ditto.
13194 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
13195 (spe_build_register_parallel): Delete.
13196 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
13197 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
13198 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
13199 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
13200 (E500_CONVERT): Delete.
13201 * config/rs6000/spe.md: Remove many patterns and all define_constants.
13202
13203 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
13204
13205 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
13206 * config/rs6000/dfp.md: Ditto.
13207 (negdd2, *negdd2_fpr): Merge.
13208 (absdd2, *absdd2_fpr): Merge.
13209 (negtd2, *negtd2_fpr): Merge.
13210 (abstd2, *abstd2_fpr): Merge.
13211 * config/rs6000/e500.h: Delete file.
13212 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
13213 TARGET_FPRS by 1 and simplify.
13214 * config/rs6000/rs6000-c.c: Ditto.
13215 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and
13216 TARGET_DF_SPE by 0.
13217 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and
13218 TARGET_DF_SPE.
13219 * config/rs6000/rs6000.md: Ditto.
13220 (floatdidf2, *floatdidf2_fpr): Merge.
13221 (move_from_CR_gt_bit): Delete.
13222 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
13223 (E500_CR_IOR_COMPARE): Delete.
13224 (All patterns that require !TARGET_FPRS): Delete.
13225 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
13226
13227 2017-06-07 Bin Cheng <bin.cheng@arm.com>
13228
13229 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
13230
13231 2017-06-07 Bin Cheng <bin.cheng@arm.com>
13232
13233 * graphds.c (add_edge): Intitialize edge's attached data.
13234 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
13235 pointer parameter. Call pointed function on each edge during
13236 graph traversing. Skip traversing the edge when the function
13237 returns true.
13238 (graphds_dfs, graphds_scc): Ditto.
13239 (for_each_edge): New parameter. Pass the new parameter to callback
13240 function.
13241 * graphds.h (skip_edge_callback): New function pointer type.
13242 (graphds_dfs, graphds_scc): New function pointer parameter.
13243 (graphds_edge_callback, for_each_edge): New parameter.
13244
13245 2017-06-07 Bin Cheng <bin.cheng@arm.com>
13246
13247 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
13248 out code checking if runtime alias check is possible to below ...
13249 Call the new function.
13250 * tree-data-ref.c (runtime_alias_check_p): ... to new function.
13251 * tree-data-ref.h (runtime_alias_check_p): New decalaration.
13252
13253 2017-06-07 Marek Polacek <polacek@redhat.com>
13254
13255 PR sanitizer/80932
13256 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
13257 TYPE_OVERFLOW_WRAPS check.
13258
13259 2017-06-07 Bin Cheng <bin.cheng@arm.com>
13260
13261 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
13262 if versioning is required.
13263 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
13264 peeling with the check for versioning.
13265
13266 2017-06-07 Bin Cheng <bin.cheng@arm.com>
13267
13268 * tree-vectorizer.h (vect_build_loop_niters): New parameter.
13269 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
13270 Set true to new parameter if new ssa variable is defined.
13271 (vect_gen_vector_loop_niters): Refactor. Set range information
13272 for the new vector loop bound variable.
13273 (vect_do_peeling): Ditto.
13274
13275 2017-06-07 Bin Cheng <bin.cheng@arm.com>
13276
13277 * tree-affine.c (ssa.h): Include header file.
13278 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
13279 has wrapping overflow behavior.
13280
13281 2017-06-07 Bin Cheng <bin.cheng@arm.com>
13282
13283 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
13284
13285 2017-06-07 Bin Cheng <bin.cheng@arm.com>
13286
13287 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
13288 (tree_to_aff_combination): ... here.
13289
13290 2017-06-07 Bin Cheng <bin.cheng@arm.com>
13291
13292 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
13293 reg_pressure model function.
13294 (ivopts_global_cost_for_size): Delete.
13295 (determine_set_costs, iv_ca_recount_cost): Call new model function
13296 ivopts_estimate_reg_pressure.
13297
13298 2017-06-07 Tamar Christina <tamar.christina@arm.com>
13299
13300 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
13301 expensive than udiv. Remove floating point cases from mod.
13302
13303 2017-06-07 Tamar Christina <tamar.christina@arm.com>
13304
13305 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
13306 Increase idiv cost.
13307
13308 2017-06-07 Tamar Christina <tamar.christina@arm.com>
13309
13310 * config/aarch64/aarch64.md
13311 (copysignsf3): Fix mask generation.
13312
13313 2017-06-07 Jakub Jelinek <jakub@redhat.com>
13314
13315 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
13316 TDI_gimple.
13317 (class dump_manager): Add register_dumps method.
13318 * dumpfile.c: Include langhooks.h.
13319 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
13320 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
13321 (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
13322 (dump_manager::dump_register): Start with 512 entries instead of 32.
13323 (dump_manager::register_dumps): New method.
13324 * toplev.c (general_init): Instead of invoking register_dumps
13325 langhook, invoke register_dumps method on the dump manager.
13326 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
13327 TDI_generic.
13328
13329 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org>
13330
13331 * doc/md.texi: Clarify the restrictions on a define_insn condition.
13332 Say that # requires an associated define_split to exist, and that
13333 the define_split must be suitable for use after register allocation.
13334
13335 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
13336
13337 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
13338 (compute_outgoing_frequencies): Also initialize zero counts.
13339 (find_many_sub_basic_blocks): Do not produce uninitialized profile
13340 around loops; preserve more of profile when nothing changes.
13341
13342 2017-06-06 Jim Wilson <jim.wilson@linaro.org>
13343
13344 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
13345 here.
13346 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
13347 * config/arm/arm-cpu-cdata.h: Regenerate.
13348 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
13349 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
13350 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
13351 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
13352 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
13353 support.
13354 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
13355 support.
13356 * config/arm/t-rmprofile: Likewise.
13357 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
13358
13359 2017-06-06 David S. Miller <davem@davemloft.net>
13360
13361 PR target/80968
13362 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
13363 blockage if function uses alloca.
13364
13365 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
13366
13367 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
13368 New "uid" fields to hold pretty-print IDs of group and ref.
13369 Memory references are now identified as <group_id>:<ref_id>
13370 instead of using [random] addresses.
13371 (dump_mem_details): Simplify, no functional change.
13372 (dump_mem_ref): Simplify and make output more concise.
13373 Replace couple of fprintf's throughout code with calls to dump_mem_ref.
13374 (find_or_create_group): Initialize group uid.
13375 (record_ref): Initialize ref uid. Improve debug output.
13376 (prune_group_by_reuse, should_issue_prefetch_p,)
13377 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
13378 (mark_nontemporal_store, determine_loop_nest_reuse):
13379 Improve debug output.
13380
13381 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
13382
13383 * dbgcnt.def (prefetch): New debug counter.
13384 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
13385 (schedule_prefetches): Stop issueing prefetches if debug counter
13386 tripped.
13387
13388 2017-06-06 Tom de Vries <tom@codesourcery.com>
13389
13390 * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
13391 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
13392
13393 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13394
13395 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
13396 Use aarch64_reg_or_zero predicate for operand 4.
13397 (aarch64_compare_and_swap<mode> define_insn_and_split):
13398 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
13399 (aarch64_store_exclusive<mode>): Likewise for operand 2.
13400
13401 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
13402
13403 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
13404 (arm_compute_save_core_reg_mask): This.
13405 (thumb1_compute_save_reg_mask): Rename into ...
13406 (thumb1_compute_save_core_reg_mask): This.
13407 (arm_compute_save_reg0_reg12_mask): Adapt comment.
13408 (arm_compute_frame_layout): Likewise.
13409
13410 2017-06-06 Richard Biener <rguenther@suse.de>
13411
13412 PR tree-optimization/80974
13413 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
13414 keep or clear leaders SSA info.
13415
13416 2017-06-06 Tom de Vries <tom@codesourcery.com>
13417
13418 * config/nvptx/nvptx.c (split_mode_p): New function.
13419 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
13420
13421 2017-06-06 Tom de Vries <tom@codesourcery.com>
13422
13423 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
13424
13425 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
13426
13427 PR bootstrap/80978
13428 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
13429 profile.
13430
13431 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
13432
13433 * shrink-wrap.c (handle_simple_exit): Update profile.
13434 (try_shrink_wrapping): Upate profile.
13435
13436 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
13437
13438 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
13439 (tree_guess_outgoing_edge_probabilities): New.
13440 * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
13441 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
13442
13443 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
13444
13445 * ipa-split.c (split_function): Initialize return bb profile.
13446
13447 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
13448
13449 * profile.c (compute_branch_probabilities): Also initialize
13450 EXIT_BLOCK profile.
13451
13452 2017-06-06 Richard Biener <rguenther@suse.de>
13453
13454 PR tree-optimization/80928
13455 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
13456 (vect_analyze_loop_operations): Properly guard analysis for
13457 pure SLP case.
13458 (vect_transform_loop): Likewise.
13459 (vect_analyze_loop_2): Also reset SLP type on PHIs.
13460 (vect_model_induction_cost): Do not cost for pure SLP.
13461 (vectorizable_induction): Pass in SLP node, implement SLP vectorization
13462 of induction in inner loop vectorization.
13463 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
13464 (vect_get_and_check_slp_defs): Handle vect_induction_def.
13465 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
13466 recursion.
13467 (vect_analyze_slp_cost_1): Cost induction.
13468 (vect_detect_hybrid_slp_stmts): Handle PHIs.
13469 (vect_get_slp_vect_defs): Likewise.
13470 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
13471 (vect_transform_stmt): Handle SLP reductions.
13472 * tree-vectorizer.h (vectorizable_induction): Adjust.
13473
13474 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
13475
13476 * config/rs6000/rs6000.c (make_resolver_func): Update
13477 init_lowered_empty_function call.
13478
13479 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
13480
13481 * doc/invoke.texi: Document the -fprofile-abs-path option.
13482 * common.opt (fprofile-abs-path): New option.
13483 * gcov-io.h (gcov_write_filename): Declare.
13484 * gcov-io.c (gcov_write_filename): New function.
13485 * coverage.c (coverage_begin_function): Use gcov_write_filename.
13486 * profile.c (output_location): Likewise.
13487
13488 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
13489
13490 * shring-wrap.c: Revert accidental commit.
13491
13492 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
13493
13494 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
13495
13496 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
13497
13498 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
13499 new edge.
13500 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
13501 profile in callgraph edge.
13502 * profile-count.h (apply_probability): If THIS is 0, then result is 0
13503 (apply_scale): Likewise.
13504 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
13505 Also scale profile when inlining function with zero profile.
13506 (initialize_cfun): Update exit block profile even when it is zero.
13507 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
13508 when profile is read.
13509
13510 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
13511
13512 * config/rs6000/rs6000.c (toplevel): Include attribs.h.
13513 (CLONE_*): New constants to define the processors we can generate
13514 code for with the target_clone attribute.
13515 (rs6000_clone_map): New array to identify which clone processors
13516 the current program is running on.
13517 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
13518 target_clone attribute.
13519 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
13520 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
13521 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
13522 (cpu_expand_builtin): Add support for target_clone attribute.
13523 (rs6000_valid_attribute_p): Allow "default" attribute.
13524 (get_decl_name): New debug function to simplify printing the
13525 current function name in debugging statements.
13526 (rs6000_clone_priority): New functions to support the target_clone
13527 attribute, and be able to generate code to switch between ISA 2.05
13528 through ISA 3.0 (power6 through power9).
13529 (rs6000_compare_version_priority): Likewise.
13530 (rs6000_get_function_versions_dispatcher): Likewise.
13531 (make_resolver_func): Likewise.
13532 (add_condition_to_bb): Likewise.
13533 (dispatch_function_versions): Likewise.
13534 (rs6000_generate_version_dispatcher_body): Likewise.
13535 (rs6000_can_inline_p): Call get_decl_name for debugging usage.
13536 (fusion_gpr_load_p): Fix a spacing issue.
13537 * doc/extend.texi (Common Function Attributes): Document that the
13538 PowerPC supports the target_clone attribute.
13539
13540 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
13541
13542 * config/arm/arm.h: explain F symbol found in description of ARM
13543 register allocation in its legend.
13544
13545 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
13546
13547 * config/mips/frame-header-opt.c: Include profile-count.h.
13548 * config/riscv/riscv.c: Include profile-count.h
13549
13550 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
13551
13552 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
13553 update profile.
13554 (sm_set_flag_if_changed): Add bbs field.
13555 (execute_sm_if_changed_flag_set): Pass BBS.
13556 (execute_sm): Update.
13557
13558 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13559
13560 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
13561 New pattern.
13562
13563 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13564
13565 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
13566 (peephole2): New peephole2 to emit the above.
13567 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
13568
13569 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13570
13571 * config/aarch64/aarch64.c (define_peephole2 above
13572 *sub_<shift>_<mode>): New peephole.
13573
13574 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
13575
13576 * config/i386/i386.c (make_resolver_func): Update.
13577 * Makefile.in: Add profile-count.h and profile-count.o
13578 * auto-profile.c (afdo_indirect_call): Update to new API.
13579 (afdo_set_bb_count): Update.
13580 (afdo_propagate_edge): Update.
13581 (afdo_propagate_circuit): Update.
13582 (afdo_calculate_branch_prob): Update.
13583 (afdo_annotate_cfg): Update.
13584 * basic-block.h: Include profile-count.h
13585 (struct edge_def): Turn count to profile_count.
13586 (struct basic_block_def): Likewie.
13587 (REG_BR_PROB_BASE): Move to profile-count.h
13588 (RDIV): Move to profile-count.h
13589 * bb-reorder.c (max_entry_count): Turn to profile_count.
13590 (find_traces): Update.
13591 (rotate_loop):Update.
13592 (connect_traces):Update.
13593 (sanitize_hot_paths):Update.
13594 * bt-load.c (migrate_btr_defs): Update.
13595 * cfg.c (RDIV): Remove.
13596 (init_flow): Use alloc_block.
13597 (alloc_block): Uninitialize count.
13598 (unchecked_make_edge): Uninitialize count.
13599 (check_bb_profile): Update.
13600 (dump_edge_info): Update.
13601 (dump_bb_info): Update.
13602 (update_bb_profile_for_threading): Update.
13603 (scale_bbs_frequencies_int): Update.
13604 (scale_bbs_frequencies_gcov_type): Update.
13605 (scale_bbs_frequencies_profile_count): New.
13606 * cfg.h (update_bb_profile_for_threading): Update.
13607 (scale_bbs_frequencies_profile_count): Declare.
13608 * cfgbuild.c (compute_outgoing_frequencies): Update.
13609 (find_many_sub_basic_blocks): Update.
13610 * cfgcleanup.c (try_forward_edges): Update.
13611 (try_crossjump_to_edge): Update.
13612 * cfgexpand.c (expand_gimple_tailcall): Update.
13613 (construct_exit_block): Update.
13614 * cfghooks.c (verify_flow_info): Update.
13615 (dump_bb_for_graph): Update.
13616 (split_edge): Update.
13617 (make_forwarder_block): Update.
13618 (duplicate_block): Update.
13619 (account_profile_record): Update.
13620 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
13621 (get_estimated_loop_iterations): Update.
13622 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
13623 (single_likely_exit): Update.
13624 * cfgloopmanip.c (scale_loop_profile): Update.
13625 (loopify): Update.
13626 (set_zero_probability): Update.
13627 (lv_adjust_loop_entry_edge): Update.
13628 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
13629 (purge_dead_edges): Update.
13630 (rtl_account_profile_record): Update.
13631 * cgraph.c (cgraph_node::create): Uninitialize count.
13632 (symbol_table::create_edge): Uninitialize count.
13633 (cgraph_update_edges_for_call_stmt_node): Update.
13634 (cgraph_edge::dump_edge_flags): Update.
13635 (cgraph_node::dump): Update.
13636 (cgraph_edge::maybe_hot_p): Update.
13637 * cgraph.h: Include profile-count.h
13638 (create_clone), create_edge, create_indirect_edge): Update.
13639 (cgraph_node): Turn count to profile_count.
13640 (cgraph_edge0: Likewise.
13641 (make_speculative, clone): Update.
13642 (create_edge): Update.
13643 (init_lowered_empty_function): Update.
13644 * cgraphclones.c (cgraph_edge::clone): Update.
13645 (duplicate_thunk_for_node): Update.
13646 (cgraph_node::create_clone): Update.
13647 * cgraphunit.c (cgraph_node::analyze): Update.
13648 (cgraph_node::expand_thunk): Update.
13649 * final.c (dump_basic_block_info): Update.
13650 * gimple-streamer-in.c (input_bb): Update.
13651 * gimple-streamer-out.c (output_bb): Update.
13652 * graphite.c (print_global_statistics): Update.
13653 (print_graphite_scop_statistics): Update.
13654 * hsa-brig.c: Include basic-block.h.
13655 * hsa-dump.c: Include basic-block.h.
13656 * hsa-gen.c (T sum_slice): Update.
13657 (convert_switch_statements):Update.
13658 * hsa-regalloc.c: Include basic-block.h.
13659 * ipa-chkp.c (chkp_produce_thunks): Update.
13660 * ipa-cp.c (struct caller_statistics): Update.
13661 (init_caller_stats): Update.
13662 (gather_caller_stats): Update.
13663 (ipcp_cloning_candidate_p): Update.
13664 (good_cloning_opportunity_p): Update.
13665 (get_info_about_necessary_edges): Update.
13666 (dump_profile_updates): Update.
13667 (update_profiling_info): Update.
13668 (update_specialized_profile): Update.
13669 (perhaps_add_new_callers): Update.
13670 (decide_about_value): Update.
13671 (ipa_cp_c_finalize): Update.
13672 * ipa-devirt.c (struct odr_type_warn_count): Update.
13673 (struct decl_warn_count): Update.
13674 (struct final_warning_record): Update.
13675 (possible_polymorphic_call_targets): Update.
13676 (ipa_devirt): Update.
13677 * ipa-fnsummary.c (redirect_to_unreachable): Update.
13678 * ipa-icf.c (sem_function::merge): Update.
13679 * ipa-inline-analysis.c (do_estimate_edge_time): Update.
13680 * ipa-inline.c (compute_uninlined_call_time): Update.
13681 (compute_inlined_call_time): Update.
13682 (want_inline_small_function_p): Update.
13683 (want_inline_self_recursive_call_p): Update.
13684 (edge_badness): Update.
13685 (lookup_recursive_calls): Update.
13686 (recursive_inlining): Update.
13687 (inline_small_functions): Update.
13688 (dump_overall_stats): Update.
13689 (dump_inline_stats): Update.
13690 * ipa-profile.c (ipa_profile_generate_summary): Update.
13691 (ipa_propagate_frequency): Update.
13692 (ipa_profile): Update.
13693 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
13694 * ipa-utils.c (ipa_merge_profiles): Update.
13695 * loop-doloop.c (doloop_modify): Update.
13696 * loop-unroll.c (report_unroll): Update.
13697 (unroll_loop_runtime_iterations): Update.
13698 * lto-cgraph.c (lto_output_edge): Update.
13699 (lto_output_node): Update.
13700 (input_node): Update.
13701 (input_edge): Update.
13702 (merge_profile_summaries): Update.
13703 * lto-streamer-in.c (input_cfg): Update.
13704 * lto-streamer-out.c (output_cfg): Update.
13705 * mcf.c (create_fixup_graph): Update.
13706 (adjust_cfg_counts): Update.
13707 (sum_edge_counts): Update.
13708 * modulo-sched.c (sms_schedule): Update.
13709 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
13710 * predict.c (maybe_hot_count_p): Update.
13711 (probably_never_executed): Update.
13712 (dump_prediction): Update.
13713 (combine_predictions_for_bb): Update.
13714 (propagate_freq): Update.
13715 (handle_missing_profiles): Update.
13716 (counts_to_freqs): Update.
13717 (rebuild_frequencies): Update.
13718 (force_edge_cold): Update.
13719 * predict.h: Include profile-count.h
13720 (maybe_hot_count_p, counts_to_freqs): UPdate.
13721 * print-rtl-function.c: Do not include cfg.h
13722 * print-rtl.c: Include basic-block.h
13723 * profile-count.c: New file.
13724 * profile-count.h: New file.
13725 * profile.c (is_edge_inconsistent): Update.
13726 (correct_negative_edge_counts): Update.
13727 (is_inconsistent): Update.
13728 (set_bb_counts): Update.
13729 (read_profile_edge_counts): Update.
13730 (compute_frequency_overlap): Update.
13731 (compute_branch_probabilities): Update; Initialize and deinitialize
13732 gcov_count tables.
13733 (branch_prob): Update.
13734 * profile.h (bb_gcov_counts, edge_gcov_counts): New.
13735 (edge_gcov_count): New.
13736 (bb_gcov_count): New.
13737 * shrink-wrap.c (try_shrink_wrapping): Update.
13738 * tracer.c (better_p): Update.
13739 * trans-mem.c (expand_transaction): Update.
13740 (ipa_tm_insert_irr_call): Update.
13741 (ipa_tm_insert_gettmclone_call): Update.
13742 * tree-call-cdce.c: Update.
13743 * tree-cfg.c (gimple_duplicate_sese_region): Update.
13744 (gimple_duplicate_sese_tail): Update.
13745 (gimple_account_profile_record): Update.
13746 (execute_fixup_cfg): Update.
13747 * tree-inline.c (copy_bb): Update.
13748 (copy_edges_for_bb): Update.
13749 (initialize_cfun): Update.
13750 (freqs_to_counts): Update.
13751 (copy_cfg_body): Update.
13752 (expand_call_inline): Update.
13753 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
13754 * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
13755 (try_unroll_loop_completely): Update.
13756 (try_peel_loop): Update.
13757 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
13758 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
13759 * tree-ssa-loop-split.c (connect_loops): Update.
13760 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
13761 * tree-ssa-reassoc.c (branch_fixup): Update.
13762 * tree-ssa-tail-merge.c (replace_block_by): Update.
13763 * tree-ssa-threadupdate.c (create_block_for_threading): Update.
13764 (compute_path_counts): Update.
13765 (update_profile): Update.
13766 (recompute_probabilities): Update.
13767 (update_joiner_offpath_counts): Update.
13768 (estimated_freqs_path): Update.
13769 (freqs_to_counts_path): Update.
13770 (clear_counts_path): Update.
13771 (ssa_fix_duplicate_block_edges): Update.
13772 (duplicate_thread_path): Update.
13773 * tree-switch-conversion.c (case_bit_test_cmp): Update.
13774 (struct switch_conv_info): Update.
13775 * tree-tailcall.c (decrease_profile): Update.
13776 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
13777 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
13778 * value-prof.c (check_counter): Update.
13779 (gimple_divmod_fixed_value): Update.
13780 (gimple_mod_pow2): Update.
13781 (gimple_mod_subtract): Update.
13782 (gimple_ic_transform): Update.
13783 (gimple_stringop_fixed_value): Update.
13784 * value-prof.h (gimple_ic): Update.
13785
13786 2017-06-02 Carl Love <cel@us.ibm.com>
13787
13788 * config/rs6000/rs6000-c: Add support for built-in functions
13789 vector double vec_doublee (vector signed int);
13790 vector double vec_doublee (vector unsigned int);
13791 vector double vec_doublee (vector float);
13792 vector double vec_doubleh (vector signed int);
13793 vector double vec_doubleh (vector unsigned int);
13794 vector double vec_doubleh (vector float);
13795 vector double vec_doublel (vector signed int);
13796 vector double vec_doublel (vector unsigned int);
13797 vector double vec_doublel (vector float);
13798 vector double vec_doubleo (vector signed int);
13799 vector double vec_doubleo (vector unsigned int);
13800 vector double vec_doubleo (vector float);.
13801 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
13802 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
13803 UNS_DOUBLEL.
13804 * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
13805 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
13806 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
13807 VS_sxwsp.
13808 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
13809 vec_doublel, vec_doubleh.
13810 * doc/extend.texi: Update the built-in documentation file for the
13811 new built-in functions.
13812
13813 2017-06-02 David Malcolm <dmalcolm@redhat.com>
13814
13815 PR jit/80954
13816 * ipa-inline-analysis.c (free_growth_caches): Set
13817 edge_removal_hook_holder to NULL after removing it.
13818
13819 2017-06-02 Sudakshina Das <sudi.das@arm.com>
13820
13821 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
13822 comparision with zero.
13823
13824 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
13825 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
13826 for early expansion of vec_min and vec_max builtins.
13827 (builtin_function_type): Add min/max unsigned variants to those
13828 identified as having unsigned arguments.
13829
13830 2017-06-02 Olivier Hainque <hainque@adacore.com>
13831
13832 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
13833
13834 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13835
13836 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
13837 Use VALL_F16 iterator rather than VALL.
13838
13839 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13840
13841 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
13842 Emit CBNZ inside loop when doing a strong exchange and comparing
13843 against zero. Generate the CC flags after the loop.
13844
13845 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
13846
13847 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
13848 (dl_section_ref): New.
13849 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
13850 On AIX, append an expression to subtract the size of the
13851 section length to dl_section_ref.
13852
13853 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
13854
13855 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
13856 for early expansion of vector absolute builtins.
13857
13858 2017-06-02 Richard Biener <rguenther@suse.de>
13859
13860 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
13861 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
13862
13863 2017-06-02 Richard Biener <rguenther@suse.de>
13864
13865 PR tree-optimization/80948
13866 * tree-tailcall.c (find_tail_calls): Track stmts to move in
13867 stmt order as well.
13868
13869 2017-06-02 Richard Biener <rguenther@suse.de>
13870
13871 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
13872 PHIs are ok.
13873 * tree-vect-stmts.c (process_use): Do not mark backedge defs
13874 for inductions as relevant.
13875
13876 2017-06-02 Richard Biener <rguenther@suse.de>
13877
13878 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
13879 (vectorizable_induction): ... this. Remove dead code.
13880
13881 2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
13882
13883 * builtins. (expand_builtin_alloca): Remove second parameter and
13884 infer its value from the first parameter instead.
13885 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
13886
13887 2017-06-02 Jakub Jelinek <jakub@redhat.com>
13888
13889 PR rtl-optimization/80903
13890 * loop-doloop.c (add_test): Unshare sequence.
13891
13892 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
13893
13894 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
13895
13896 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
13897
13898 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
13899 static.
13900 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
13901 xlogue_layout::get_instance, logue_layout::xlogue_layout,
13902 sp_valid_at, fp_valid_at, choose_basereg): Formatting.
13903 (xlogue_layout::get_stub_rtx): Make static.
13904 (xlogue_layout::get_stub_name): Avoid const-cast, make static.
13905 (xlogue_layout::compute_stub_managed_regs): Rename to...
13906 (xlogue_layout::count_stub_managed_regs): ...this.
13907 (xlogue_layout::is_stub_managed_reg): New function.
13908 (xlogue_layout::m_stub_names): Rename to...
13909 (xlogue_layout::s_stub_names): ...this, make static.
13910 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
13911 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
13912 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
13913 xlogue_layout::s_stub_names): Instantiate statics.
13914 (stub_managed_regs): Remove.
13915 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
13916 (disable_call_ms2sysv_xlogues): Rename to...
13917 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
13918 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
13919 warning logic.
13920 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
13921 change after reload_completed.
13922 (ix86_can_use_return_insn_p): Use the ix86_frame data structure
13923 directly.
13924 (ix86_expand_prologue): Likewise.
13925 (ix86_expand_epilogue): Likewise.
13926 (ix86_expand_split_stack_prologue): Likewise.
13927 (ix86_compute_frame_layout): Remove frame parameter ...
13928 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
13929 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
13930 only if necessary.
13931 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
13932 (ix86_frame): Move from here ...
13933 * config/i386/i386.h (ix86_frame): ... to here.
13934 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
13935 complete ix86_frame data structure instead. Remove some_ld_name.
13936
13937 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
13938
13939 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
13940 symbols that hold a DECL_VALUE_EXPR.
13941
13942 2017-06-01 Martin Jambor <mjambor@suse.cz>
13943
13944 PR tree-optimization/80898
13945 * tree-sra.c (process_subtree_disqualification): Removed.
13946 (disqualify_candidate): Do not acll
13947 process_subtree_disqualification.
13948 (subtree_mark_written_and_enqueue): New function.
13949 (propagate_all_subaccesses): Set grp_write of LHS subtree if the
13950 RHS has been disqualified and re-queue LHS if necessary. Apart
13951 from that, ignore disqualified RHS.
13952
13953 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13954
13955 * config/s390/s390.c (s390_emit_epilogue): Disable early return
13956 address fetch for z10 or later.
13957
13958 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
13959
13960 * config/arc/arc.md (tst_movb): Add guard when splitting.
13961
13962 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
13963
13964 * config/arc/arc.c (arc_can_eliminate): Test against
13965 arc_frame_pointer_needed.
13966
13967 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
13968
13969 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
13970 to prevent store reordering.
13971 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
13972 (type): Add block type.
13973 (stack_tie): Define special instruction to be used in
13974 expand_prologue.
13975
13976 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
13977
13978 * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
13979 constraint. It is not valid for the pattern.
13980 (noncommutative_binary_comparison): Likewise.
13981
13982 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
13983
13984 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
13985 scaled addresses.
13986
13987 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
13988
13989 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
13990 be used by the reg-alloc.
13991
13992 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
13993
13994 * config/arc/arc.md (mulsi3): Avoid use of hard registers before
13995 reg-alloc when having mul64 or mul32x16 instructions.
13996 (mulsidi3): Likewise.
13997 (umulsidi3): Likewise.
13998 (mulsi32x16): New pattern.
13999 (mulsi64): Likewise.
14000 (mulsidi64): Likewise.
14001 (umulsidi64): Likewise.
14002 (MUL32x16_REG): Define.
14003 (mul64_600): Use MUL32x16_REG.
14004 (mac64_600): Likewise.
14005 (umul64_600): Likewise.
14006 (umac64_600): Likewise.
14007
14008 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
14009
14010 * config/arc/arc.md (mulsi3_700): Make it commutative.
14011
14012 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
14013
14014 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
14015 type for movstouw.
14016 (*sign_extendsidi2_insn): Likewise for movstosw.
14017
14018 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
14019
14020 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
14021 the type of the input discriminant value. Convert the
14022 discriminant value of signedness vary.
14023
14024 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
14025
14026 * doc/invoke.texi (-Wcatch-value): Document new shortcut.
14027 Add to -Wall section.
14028
14029 2017-06-01 Richard Biener <rguenther@suse.de>
14030
14031 PR middle-end/66313
14032 * fold-const.c (fold_plusminus_mult_expr): If the factored
14033 factor may be zero use a wrapping type for the inner operation.
14034 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
14035 and handle moved defs.
14036 (process_assignment): Properly guard the unary op case. Return a
14037 tri-state indicating that moving the stmt before the call may allow
14038 to continue. Pass through to_move.
14039 (find_tail_calls): Handle moving unrelated defs before
14040 the call.
14041
14042 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
14043
14044 PR target/80618
14045 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
14046 splitter result in the canonical way.
14047
14048 2017-05-31 Uros Bizjak <ubizjak@gmail.com>
14049
14050 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
14051 also for 32bit target. Update insn attributes.
14052 (zero-extendsidi2 splitter): Allow all registers for operand 1.
14053
14054 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
14055
14056 * config/i386/avx512fintrin.h (_mm_mask_max_sd)
14057 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
14058 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
14059 (_mm_maskz_min_ss): New intrinsics.
14060
14061 2017-05-31 Martin Liska <mliska@suse.cz>
14062
14063 * tree-vect-loop.c (vect_create_epilog_for_reduction):
14064 Change comment style to one we normally use.
14065 (vectorizable_reduction): Likewise.
14066 (vectorizable_induction): Likewise.
14067 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
14068 (vectorizable_call): Likewise.
14069 (vectorizable_simd_clone_call): Likewise.
14070 (vectorizable_conversion): Likewise.
14071 (vectorizable_assignment): Likewise.
14072 (vectorizable_shift): Likewise.
14073 (vectorizable_operation): Likewise.
14074 (vectorizable_store): Likewise.
14075 (vectorizable_load): Likewise.
14076 * tree-vectorizer.h: Likewise.
14077
14078 2017-05-31 Alexander Monakov <amonakov@ispras.ru>
14079
14080 * passes.c (emergency_dump_function): New.
14081 * tree-pass.h (emergency_dump_function): Declare.
14082 * plugin.c (plugins_internal_error_function): Remove.
14083 * plugin.h (plugins_internal_error_function): Remove declaration.
14084 * toplev.c (internal_error_function): New static function. Use it...
14085 (general_init): ...here.
14086
14087 2017-05-31 Graham Markall <graham.markall@embecosm.com>
14088
14089 * config/arc/arc.c (arc_print_operand): Handle constant operands.
14090 (arc_rtx_costs): Add costs for new patterns.
14091 * config/arc/arc.md: Additional *add_n and *sub_n patterns.
14092 * config/arc/predicates.md: Add _1_2_3_operand predicate.
14093
14094 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
14095
14096 * tree-ssa-strlen.c (get_next_strinfo): New function.
14097 (get_stridx_plus_constant): Use it.
14098 (zero_length_string): Likewise.
14099 (adjust_related_strinfos): Likewise.
14100 (adjust_last_stmt): Likewise.
14101
14102 2017-05-31 Richard Biener <rguenther@suse.de>
14103
14104 PR target/80880
14105 * config/i386/i386.c (ix86_expand_builtin): Remove assert
14106 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
14107
14108 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
14109
14110 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
14111 loop_vinfo argument and use of dependence distance vectors.
14112 Check instead whether the two references differ only in their
14113 initial value and assume that they have the same alignment if the
14114 difference is a multiple of the vector alignment.
14115 (vect_analyze_data_refs_alignment): Update call accordingly.
14116
14117 2017-05-31 Martin Liska <mliska@suse.cz>
14118
14119 PR target/79155
14120 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
14121
14122 2017-05-31 Bin Cheng <bin.cheng@arm.com>
14123
14124 * tree-vect-loop-manip.c (create_intersect_range_checks_index)
14125 (create_intersect_range_checks): Move from ...
14126 * tree-data-ref.c (create_intersect_range_checks_index)
14127 (create_intersect_range_checks): ... to here.
14128 (create_runtime_alias_checks): New function factored from ...
14129 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
14130 here. Call above function.
14131 * tree-data-ref.h (create_runtime_alias_checks): New function.
14132
14133 2017-05-31 Bin Cheng <bin.cheng@arm.com>
14134
14135 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
14136 segment length for dr_b and compute it in wide_int.
14137
14138 2017-05-31 Richard Biener <rguenther@suse.de>
14139
14140 PR tree-optimization/80906
14141 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
14142 and pass through iv_map.
14143 (copy_bb_and_scalar_dependences): Adjust.
14144 (translate_pending_phi_nodes): Likewise.
14145 (copy_loop_close_phi_args): Handle code-generating IVs instead
14146 of ICEing.
14147
14148 2017-05-30 David Malcolm <dmalcolm@redhat.com>
14149
14150 * diagnostic-color.c (color_dict): Add "type-diff".
14151 (parse_gcc_colors): Update comment.
14152 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
14153 -fdiagnostics-show-template-tree and -fno-elide-type.
14154 (GCC_COLORS): Add type-diff to example.
14155 (type-diff=): New.
14156 (-fdiagnostics-show-template-tree): New.
14157 (-fno-elide-type): New.
14158 * pretty-print.c (pp_format): Pass quote and formatters[argno] to
14159 the pp_format_decoder callback. Call any m_format_postprocessor's
14160 "handle" method.
14161 (pretty_printer::pretty_printer): Initialize
14162 m_format_postprocessor.
14163 (pretty_printer::~pretty_printer): Delete any
14164 m_format_postprocessor.
14165 * pretty-print.h (printer_fn): Add bool and const char ** parameters.
14166 (class format_postprocessor): New class.
14167 (struct pretty_printer::format_decoder): Document the new parameters.
14168 (struct pretty_printer::m_format_postprocessor): New field.
14169 * tree-diagnostic.c (default_tree_printer): Update for new
14170 bool and const char ** params.
14171 * tree-diagnostic.h (default_tree_printer): Likewise.
14172
14173 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
14174
14175 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
14176 (lwa_operand): Delete rs6000_gen_cell_microcode test.
14177 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
14178 rs6000_gen_cell_microcode code.
14179 (rs6000_final_prescan_insn): Delete.
14180 (rs6000_opt_vars): Delete the "gen-cell-microcode" and
14181 "warn-cell-microcode" entries.
14182 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
14183 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
14184 throughout. Change cc_reg_not_micro_cr0_operand to
14185 cc_reg_not_cr0_operand throughout.
14186 (*extendhi<mode>2_noload): Delete.
14187 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
14188 (mwarn-cell-microcode): Delete.
14189 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
14190 -mgen-cell-microcode and -mwarn-cell-microcode.
14191
14192 2017-05-30 Uros Bizjak <ubizjak@gmail.com>
14193
14194 PR target/80833
14195 * config/i386/constraints.md (Yd): New constraint.
14196 (Ye): Ditto.
14197 * config/i386/i386.md (*movti_internal): Add (?r, Ye)
14198 and (?Yd, r) alternatives. Update insn attributes.
14199 * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
14200 and (?*Yd, r) alternatives. Update insn attributes.
14201 (double-mode inter-unit splitters): Add new GR<->XMM splitters.
14202
14203 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
14204
14205 * gimplify.c (gimplify_modify_expr): Don't create a
14206 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
14207 function.
14208
14209 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
14210
14211 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
14212
14213 2017-05-30 Richard Biener <rguenther@suse.de>
14214
14215 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
14216 and reduc_def fields.
14217 (STMT_VINFO_REDUC_TYPE): New define.
14218 (STMT_VINFO_REDUC_DEF): Likewise.
14219 (vect_force_simple_reduction): Adjust prototype.
14220 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
14221 (vect_is_simple_reduction): Remove check_reduction argument.
14222 (vect_force_simple_reduction): Adjust and set
14223 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
14224 (vectorizable_reduction): Do not re-do reduction analysis
14225 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
14226 * tree-parloops.c (gather_scalar_reductions): Adjust.
14227
14228 2017-05-30 Richard Biener <rguenther@suse.de>
14229
14230 PR middle-end/80901
14231 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
14232 split_edge code.
14233
14234 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
14235
14236 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
14237 Introduce unknown_misalignment parameter and remove vf.
14238 (vect_peeling_hash_get_lowest_cost):
14239 Pass unknown_misalignment parameter.
14240 (vect_enhance_data_refs_alignment):
14241 Fix unsupportable data ref treatment.
14242
14243 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
14244
14245 * tree-vect-data-refs.c (vect_get_data_access_cost):
14246 Workaround for SLP handling.
14247 (vect_enhance_data_refs_alignment):
14248 Compute costs for doing no peeling at all, compare to the best
14249 peeling costs so far and avoid peeling if cheaper.
14250
14251 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
14252
14253 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
14254 Return peeling info and set costs to zero for unlimited cost
14255 model.
14256 (vect_enhance_data_refs_alignment): Also inspect all datarefs
14257 with unknown misalignment. Compute and costs for unknown
14258 misalignment, compare them to the costs for known misalignment
14259 and choose the cheapest for peeling.
14260
14261 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
14262
14263 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
14264 (vect_get_peeling_costs_all_drs): Create function.
14265 (vect_peeling_hash_get_lowest_cost):
14266 Use vect_get_peeling_costs_all_drs.
14267 (vect_peeling_supportable): Create function.
14268 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
14269
14270 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
14271
14272 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
14273 DR_HAS_NEGATIVE_STEP.
14274 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
14275 (vect_enhance_data_refs_alignment): Use.
14276 (vect_duplicate_ssa_name_ptr_info): Use.
14277 * tree-vectorizer.h (dr_misalignment): Use.
14278 (known_alignment_for_access_p): Use.
14279
14280 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
14281
14282 PR target/78838
14283 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
14284 .lowtext.
14285 (has_section_name): New function.
14286
14287 2017-05-30 Martin Liska <mliska@suse.cz>
14288
14289 PR other/80909
14290 * auto-profile.c (get_function_decl_from_block): Fix
14291 parenthesis.
14292
14293 2017-05-30 Richard Biener <rguenther@suse.de>
14294
14295 PR middle-end/80876
14296 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
14297
14298 2017-05-30 Martin Liska <mliska@suse.cz>
14299
14300 * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
14301 * dumpfile.h (struct dump_file_info): Remove ctors.
14302
14303 2017-05-30 Martin Liska <mliska@suse.cz>
14304
14305 * predict.def: Fix GNU coding style.
14306
14307 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
14308
14309 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
14310 Mark 'to' argument with ATTRIBUTE_UNUSED.
14311
14312 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
14313
14314 * config/xtensa/xtensa.c (xtensa_emit_call): Use
14315 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
14316 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
14317 format string.
14318
14319 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
14320
14321 * doc/install.texi (Options specification): Restore entry of
14322 --enable-sjlj-exceptions.
14323
14324 2017-05-27 Michael Eager <eager@eagercon.com>
14325
14326 Revert:
14327 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
14328
14329 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
14330
14331 * config/microblaze/microblaze.h
14332 (FIXED_REGISTERS): Update in macro.
14333 (CALL_USED_REGISTERS): Update in macro.
14334
14335 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org>
14336
14337 * doc/install.texi: Add links to macOS binary distributions.
14338
14339 2017-05-27 Jakub Jelinek <jakub@redhat.com>
14340
14341 PR bootstrap/80887
14342 Revert:
14343 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
14344
14345 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
14346
14347 2017-05-26 Martin Liska <mliska@suse.cz>
14348
14349 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
14350
14351 2017-05-26 Martin Liska <mliska@suse.cz>
14352
14353 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
14354 always leading ';; '.
14355 (dump_bb_info): Likewise.
14356 (brief_dump_cfg): Likewise.
14357 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
14358 * dumpfile.c: Remove usage of TDF_VERBOSE.
14359 * dumpfile.h (enum dump_kind): Likewise.
14360 (dump_gimple_bb_header): Do not use TDF_COMMENT.
14361 * print-tree.c (debug_verbose): Remove.
14362 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
14363 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
14364 * tree-diagnostic.c (default_tree_printer): Replace
14365 TDF_DIAGNOSTIC with TDF_SLIM.
14366
14367 2017-05-26 Bin Cheng <bin.cheng@arm.com>
14368
14369 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
14370 in parameter loop, rather than loop_vinfo.
14371 (create_intersect_range_checks): Ditto.
14372 (vect_create_cond_for_alias_checks): Update call to above functions.
14373
14374 2017-05-26 Bin Cheng <bin.cheng@arm.com>
14375
14376 PR tree-optimization/80815
14377 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
14378 for merging runtime alias checks. Handle negative DR_STEPs.
14379
14380 2017-05-26 Bin Cheng <bin.cheng@arm.com>
14381
14382 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
14383 Move from ...
14384 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
14385 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
14386 out code pruning runtime alias checks.
14387 * tree-data-ref.c (prune_runtime_alias_test_list): New function
14388 factored out from above.
14389 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
14390 Move from ...
14391 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
14392 ... to here.
14393 (prune_runtime_alias_test_list): New decalaration.
14394
14395 2017-05-26 Bin Cheng <bin.cheng@arm.com>
14396
14397 * tree-vect-data-refs.c (compare_tree): Rename and move ...
14398 * tree-data-ref.c (data_ref_compare_tree): ... to here.
14399 * tree-data-ref.h (data_ref_compare_tree): New decalaration.
14400 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
14401 (operator==, comp_dr_with_seg_len_pair): Ditto.
14402 (vect_prune_runtime_alias_test_list): Ditto.
14403
14404 2017-05-26 Martin Liska <mliska@suse.cz>
14405
14406 PR ipa/80663
14407 * params.def: Bound partial-inlining-entry-probability param.
14408
14409 2017-05-26 Marek Polacek <polacek@redhat.com>
14410
14411 PR sanitizer/80875
14412 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
14413 can be negated.
14414
14415 2017-05-26 Richard Biener <rguenther@suse.de>
14416
14417 PR tree-optimization/80842
14418 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
14419 value.
14420
14421 2017-05-26 Richard Biener <rguenther@suse.de>
14422
14423 PR tree-optimization/80844
14424 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
14425
14426 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>
14427
14428 * doc/md.texi (Machine Constraints): Update x86 family
14429 machine constraints section to match 'config/i386/constraints.md'.
14430
14431 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de>
14432
14433 * doc/invoke.texi (-Wcatch-value=): Document new warning option.
14434
14435 2017-05-25 Nathan Sidwell <nathan@acm.org>
14436
14437 * doc/invoke.texi (--enable-languages): Update documentation.
14438
14439 2017-05-25 Martin Liska <mliska@suse.cz>
14440
14441 * dumpfile.c: Add TDF_FOLDING.
14442 * dumpfile.h (enum dump_kind): Likewise.
14443 * genmatch.c (dt_simplify::gen_1): Use it.
14444
14445 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
14446
14447 * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
14448
14449 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
14450
14451 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
14452 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
14453
14454 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
14455
14456 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
14457 * match.pd (X == C): Rewrite it here.
14458 (with_possible_nonzero_bits, with_possible_nonzero_bits2,
14459 with_certain_nonzero_bits2): New predicates.
14460 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
14461
14462 2017-05-24 Nathan Sidwell <nathan@acm.org>
14463
14464 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
14465 avoid warning.
14466
14467 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
14468 warning.
14469
14470 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
14471
14472 * config/powerpcspe: New port. Files are copied from the rs6000
14473 port, with "rs6000" in filenames replaced by "powerpcspe".
14474
14475 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com>
14476
14477 PR rtl-optimization/80754
14478 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
14479
14480 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
14481
14482 * config/sparc/sparc.md (length): Return the correct value for -mflat
14483 sibcalls to match output_sibcall.
14484
14485 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
14486
14487 PR bootstrap/80860
14488 PR bootstrap/80843
14489 * config/rs6000/rs6000.c (struct machine_function): Add new field
14490 n_components.
14491 (rs6000_get_separate_components): Init that field, use it.
14492 (rs6000_components_for_bb): Use the field.
14493
14494 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
14495
14496 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
14497
14498 2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
14499
14500 PR middle-end/80823
14501 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
14502
14503 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14504
14505 PR target/80725
14506 * config/s390/s390.c (s390_check_qrst_address): Check incoming
14507 address against address_operand predicate.
14508 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
14509
14510 2017-05-24 Eric Botcazou <ebotcazou@adacore.com>
14511
14512 * var-tracking.c (track_expr_p): Do not return 0 for tracked record
14513 parameters passed indirectly.
14514
14515 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
14516
14517 * config/i386/i386.md (*movdi_internal): Remove SSE4
14518 alternative 18 (?r, *v). Update insn attributes.
14519 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
14520 Update insn attributes.
14521 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
14522 Update insn attributes.
14523 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
14524 alternative 1 (r, v). Remove isa attribute.
14525 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
14526 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
14527 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
14528
14529 2017-05-23 Tom de Vries <tom@codesourcery.com>
14530
14531 * doc/sourcebuild.texi (Directives, Verify compiler message): Document
14532 dg-line directive.
14533
14534 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
14535
14536 * cgraphunit.c (symbol_table::process_new_functions): Update.
14537 * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
14538 (inline_generate_summary): Rename to ...
14539 (ipa_fn_summary_generate): ... this one.
14540 (inline_read_summary): Rename to ...
14541 (ipa_fn_summary_read): ... this one.
14542 (inline_write_summary): Rename to ...
14543 (ipa_fn_summary_write): ... this one.
14544 (inline_free_summary): Rename to ...
14545 (ipa_free_fn_summary): ... this one.
14546 (pass_data_local_fn_summary, pass_local_fn_summary,
14547 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
14548 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
14549 pass_data_ipa_fn_summary, pass_ipa_fn_summary,
14550 make_pass_ipa_fn_summary): New.
14551 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
14552 inline_write_summary, inline_free_summary): Remove.
14553 (ipa_free_fn_summary) : New.
14554 * ipa-inline.c (ipa_inline): Update.
14555 (pass_ipa_inline): Do not generate summaries.
14556 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
14557 Remove.
14558 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
14559 and add pass_ipa_fn_summary.
14560 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
14561 New.
14562 (make_pass_inline_parameters): Remove.
14563
14564 2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
14565
14566 * omp-low.c (struct omp_context): Remove "default_kind" member.
14567 Adjust all users.
14568
14569 * omp-offload.c (execute_oacc_device_lower): Remove the
14570 parallelism dimensions function attributes for unparallelized
14571 OpenACC kernels constructs.
14572
14573 2017-05-23 Martin Liska <mliska@suse.cz>
14574
14575 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
14576 functions.
14577 (cgraph_edge::make_speculative): Likewise.
14578 (cgraph_edge::resolve_speculation): Likewise.
14579 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
14580 (cgraph_node::dump): Likewise.
14581 * cgraph.h: Likewise.
14582 * cgraphunit.c (analyze_functions): Likewise.
14583 (symbol_table::compile): Likewise.
14584 * ipa-cp.c (print_all_lattices): Likewise.
14585 (determine_versionability): Likewise.
14586 (initialize_node_lattices): Likewise.
14587 (ipcp_verify_propagated_values): Likewise.
14588 (estimate_local_effects): Likewise.
14589 (update_profiling_info): Likewise.
14590 (create_specialized_node): Likewise.
14591 (perhaps_add_new_callers): Likewise.
14592 (decide_about_value): Likewise.
14593 (decide_whether_version_node): Likewise.
14594 (identify_dead_nodes): Likewise.
14595 (ipcp_store_bits_results): Likewise.
14596 * ipa-devirt.c (dump_targets): Likewise.
14597 (ipa_devirt): Likewise.
14598 * ipa-icf.c (sem_item::dump): Likewise.
14599 (sem_function::equals): Likewise.
14600 (sem_variable::equals): Likewise.
14601 (sem_item_optimizer::read_section): Likewise.
14602 (sem_item_optimizer::execute): Likewise.
14603 (congruence_class::dump): Likewise.
14604 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
14605 (dump_inline_summary): Likewise.
14606 (estimate_node_size_and_time): Likewise.
14607 (inline_analyze_function): Likewise.
14608 * ipa-inline-transform.c (inline_call): Likewise.
14609 * ipa-inline.c (report_inline_failed_reason): Likewise.
14610 (want_early_inline_function_p): Likewise.
14611 (edge_badness): Likewise.
14612 (update_edge_key): Likewise.
14613 (inline_small_functions): Likewise.
14614 * ipa-profile.c (ipa_profile): Likewise.
14615 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
14616 (ipa_make_edge_direct_to_target): Likewise.
14617 (remove_described_reference): Likewise.
14618 (ipa_impossible_devirt_target): Likewise.
14619 (propagate_controlled_uses): Likewise.
14620 (ipa_print_node_params): Likewise.
14621 (ipcp_transform_function): Likewise.
14622 * ipa-pure-const.c (pure_const_read_summary): Likewise.
14623 (propagate_pure_const): Likewise.
14624 * ipa-reference.c (generate_summary): Likewise.
14625 (read_write_all_from_decl): Likewise.
14626 (propagate): Likewise.
14627 (ipa_reference_read_optimization_summary): Likewise.
14628 * ipa-utils.c (ipa_merge_profiles): Likewise.
14629 * ipa.c (walk_polymorphic_call_targets): Likewise.
14630 (symbol_table::remove_unreachable_nodes): Likewise.
14631 (ipa_single_use): Likewise.
14632 * passes.c (execute_todo): Likewise.
14633 * predict.c (drop_profile): Likewise.
14634 * symtab.c (symtab_node::get_dump_name): New function.
14635 (symtab_node::dump_name): Likewise.
14636 (symtab_node::dump_asm_name): Likewise.
14637 (symtab_node::dump_references): Likewise.
14638 (symtab_node::dump_referring): Likewise.
14639 (symtab_node::dump_base): Likewise.
14640 (symtab_node::debug_symtab): Likewise.
14641 * tree-sra.c (convert_callers_for_node): Likewise.
14642 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
14643 * value-prof.c (init_node_map): Likewise.
14644
14645 2017-05-23 Martin Liska <mliska@suse.cz>
14646
14647 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
14648 and symtab_node::debug_symtab to symbol_table::debug.
14649 * cgraphunit.c (analyze_functions): Use the renamed function.
14650 (symbol_table::compile): Likewise.
14651 * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
14652 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
14653 * passes.c (execute_todo): Likewise.
14654 * symtab.c (symbol_table::dump): New function.
14655 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
14656
14657 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
14658
14659 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
14660 that nonconst implies exec.
14661
14662 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
14663
14664 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
14665 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
14666 (inline_edge_summary_vec): Turn into ...
14667 (ipa_call_summaries): ... this one.
14668 (redirect_to_unreachable, edge_set_predicate,
14669 evaluate_properties_for_edge, inline_summary_alloc,
14670 reset_ipa_call_summary, reset_inline_summary,
14671 inline_summary_t::duplicate): Update.
14672 (inline_edge_duplication_hook): Turn to ...
14673 (ipa_call_summary_t::duplicate): ... this one.
14674 (inline_edge_removal_hook): Turn to ...
14675 (ipa_call_summary_t::remove): ... this one.
14676 (dump_inline_edge_summary): Turn to ...
14677 (dump_ipa_call_summary): ... this one.
14678 (estimate_function_body_sizes): Update.
14679 (inline_update_callee_summaries): Update.
14680 (remap_edge_change_prob): Update.
14681 (remap_edge_summaries): Update.
14682 (inline_merge_summary): Update.
14683 (do_estimate_edge_time): Update.
14684 (inline_generate_summary): Update.
14685 (inline_read_section): Update.
14686 (inline_read_summary): Update.
14687 (inline_free_summary): Update.
14688 * ipa-inline.c (can_inline_edge_p): Update.
14689 (compute_inlined_call_time): Update.
14690 (want_inline_small_function_p): Update.
14691 (edge_badness): Update.
14692 (early_inliner): Update.
14693 * ipa-inline.h (inline_edge_summary): Turn to ...
14694 (ipa_call_summary): ... this one.
14695 (ipa_call_summary_t): New class.
14696 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
14697 (ipa_call_summaries): New.
14698 (inline_edge_summary): Remove.
14699 (estimate_edge_growth): Update.
14700 * ipa-profile.c (ipa_propagate_frequency_1): Update.
14701 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
14702 * ipa-split.c (execute_split_functions): Update.
14703 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
14704
14705 2017-05-23 Tom de Vries <tom@codesourcery.com>
14706
14707 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
14708 attributes): Document rdrand effective target.
14709
14710 2017-05-23 Tom de Vries <tom@codesourcery.com>
14711
14712 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
14713 attributes): Sort alphabetically.
14714
14715 2017-05-23 Georg-Johann Lay <avr@gjlay.de>
14716
14717 * config/avr/genmultilib.awk: Use gsub instead of gensub.
14718
14719 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
14720
14721 PR target/80718
14722 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
14723 V2DF/V2DI splat into two separate patterns, one that handles
14724 registers, and the other that only handles memory. Drop support
14725 for splatting from a GPR on ISA 2.07 and then splitting the
14726 splat into direct move and splat.
14727 (vsx_splat_<mode>_reg): Likewise.
14728 (vsx_splat_<mode>_mem): Likewise.
14729
14730 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org>
14731
14732 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
14733
14734 2017-05-22 Jakub Jelinek <jakub@redhat.com>
14735
14736 PR middle-end/80809
14737 * omp-low.c (finish_taskreg_remap): New function.
14738 (finish_taskreg_scan): If unit size of ctx->record_type
14739 is non-constant, unshare the size expression and replace
14740 decls in it with possible outer var refs.
14741
14742 PR middle-end/80809
14743 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
14744 GOVD_SHARED rather than GOVD_PRIVATE with it.
14745 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
14746 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
14747
14748 PR middle-end/80853
14749 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
14750 as last argument to build_outer_var_ref for pointer bases of array
14751 section reductions.
14752
14753 2017-05-19 Martin Sebor <msebor@redhat.com>
14754
14755 * print-tree.c (print_node): Print DECL_READ_P flag.
14756
14757 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
14758
14759 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
14760 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
14761 * cgraph.c: Likewise.
14762 * cgraphunit.c: Likewise.
14763 * gengtype.c: Likewise.
14764 * ipa-cp.c: Likewise.
14765 * ipa-devirt.c: Likewise.
14766 * ipa-icf.c: Likewise.
14767 * ipa-predicate.c: Likewise.
14768 * ipa-profile.c: Likewise.
14769 * ipa-prop.c: Likewise.
14770 * ipa-split.c: Likewise.
14771 * ipa.c: Likewise.
14772 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
14773 edge_predicate_pool, dump_inline_hints,
14774 inline_summary::account_size_time, redirect_to_unreachable,
14775 edge_set_predicate, set_hint_predicate,
14776 evaluate_conditions_for_known_args, evaluate_properties_for_edge,
14777 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
14778 inline_summary_t::remove, remap_hint_predicate_after_duplication,
14779 inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
14780 ipa_call_summary_t::remove, initialize_growth_caches,
14781 free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
14782 debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
14783 mark_modified, unmodified_parm_1, unmodified_parm,
14784 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
14785 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
14786 compute_bb_predicates, will_be_nonconstant_expr_predicate,
14787 will_be_nonconstant_predicate, record_modified_bb_info,
14788 get_minimal_bb, record_modified, param_change_prob,
14789 phi_result_unknown_predicate, predicate_for_phi_result,
14790 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
14791 estimate_function_body_sizes, compute_inline_parameters,
14792 compute_inline_parameters_for_curren, pass_data_inline_parameters,
14793 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
14794 inline_update_callee_summaries, remap_edge_change_prob,
14795 remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
14796 inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
14797 inline_analyze_function, inline_summary_t::insert,
14798 inline_generate_summary, read_ipa_call_summary, inline_read_section,
14799 inline_read_summary, write_ipa_call_summary, inline_write_summary,
14800 inline_free_summary): Move to ipa-fnsummary.h
14801 (predicate_t): Remove.
14802 * ipa-fnsummary.c: New file.
14803 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h
14804 (enum inline_hints_vals, inline_hints, agg_position_info,
14805 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
14806 inline_summaries, ipa_call_summary, ipa_call_summary_t,
14807 ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
14808 dump_inline_summary, dump_inline_hints, inline_generate_summary,
14809 inline_read_summary, inline_write_summary, inline_free_summary,
14810 inline_analyze_function, initialize_inline_failed,
14811 inline_merge_summary, inline_update_overall_summary,
14812 compute_inline_parameters): Move to ipa-fnsummary.h
14813 * ipa-fnsummary.h: New file.
14814 * ipa-inline-transform.h: Include ipa-inline.h.
14815 * ipa-inline.c: LIkewise.
14816
14817 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
14818
14819 * ipa-inline.c (edge_badness): Use inlined_time instead of
14820 inline_summaries->get.
14821
14822 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
14823
14824 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
14825
14826 2017-05-22 Nathan Sidwell <nathan@acm.org>
14827
14828 * doc/invoke.texi (fdump-translation-unit): Delete documentation.
14829 (fdump-lang): Document 'raw' option.
14830 * dumpfile.h (TDI_tu): Delete.
14831 * dumpfile.c (dump_files): Remove translation-unit.
14832 (FIRST_AUTO_NUMBERED_DUMP): Decrement.
14833
14834 2017-05-22 Georg-Johann Lay <avr@gjlay.de>
14835
14836 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
14837 command option from $(AWK) call.
14838 * config/avr/genmultilib.awk: Simplify and rewrite so that it
14839 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
14840 [FORMAT]: Remove handling of variable.
14841 * config/avr/t-multilib: Regenerate.
14842
14843 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
14844
14845 * ipa-inline-analysis.c (inline_summary::reset): Do not reset
14846 self_time.
14847 (dump_inline_summary): Do not print self_time.
14848 (estimate_function_body_sizes): Do not set self_time.
14849 (compute_inline_parameters): Likewise.
14850 (inline_read_section, inline_write_summary): Do not stream self_time.
14851 * ipa-inline.h (inline_summary): Drop self_time.
14852
14853 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
14854
14855 * ipa-inline-analysis.c (account_size_time): Rename to ...
14856 (inline_summary::account_size_time): ... this one.
14857 (reset_ipa_call_summary): Turn to ...
14858 (ipa_call_summary::reset): ... this one.
14859 (reset_inline_summary): Turn to ...
14860 (inline_summary::reset): ... this one.
14861 (inline_summary_t::remove): Update.
14862 (inline_summary_t::duplicate): Update.
14863 (ipa_call_summary_t::remove): Update.
14864 (dump_inline_summary): Update.
14865 (estimate_function_body_sizes): Update.
14866 (compute_inline_parameters): Update.
14867 (estimate_node_size_and_time): Update.
14868 (inline_merge_summary): Update.
14869 (inline_update_overall_summary): Update.
14870 (inline_read_section): Update.
14871 (inline_write_summary): Update.
14872 * ipa-inline.h (inline_summary): Rename entry to size_time_table;
14873 add account_size_time and reset member functions.
14874 (ipa_call_summary): Add reset function.
14875 * ipa-predicate.h (predicate::operator &): Constify.
14876
14877 2017-05-22 Richard Biener <rguenther@suse.de>
14878
14879 * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
14880
14881 2017-05-19 Jason Merrill <jason@redhat.com>
14882
14883 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
14884
14885 2017-05-19 Marek Polacek <polacek@redhat.com>
14886
14887 PR sanitizer/80800
14888 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
14889 TYPE_OVERFLOW_WRAPS checks.
14890
14891 2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
14892
14893 * tree-core.h (enum omp_clause_default_kind): Add
14894 "OMP_CLAUSE_DEFAULT_PRESENT".
14895 * tree-pretty-print.c (dump_omp_clause): Handle it.
14896 * gimplify.c (enum gimplify_omp_var_data): Add
14897 "GOVD_MAP_FORCE_PRESENT".
14898 (gimplify_adjust_omp_clauses_1): Map it to
14899 "GOMP_MAP_FORCE_PRESENT".
14900 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
14901
14902 * gimplify.c (oacc_default_clause): Clarify.
14903
14904 2017-05-19 Nathan Sidwell <nathan@acm.org>
14905
14906 LANG_HOOK_REGISTER_DUMPS
14907 * toplev.c (general_init): Call register dump lang hook.
14908 * doc/invoke.texi: Document -fdump-lang option family.
14909 * dumpfile.c (dump_files): Remove class dump here.
14910 (FIRST_AUTO_NUMBERED_DUMP): Adjust.
14911 * dumpfile.h (tree_dump_index): Remove TDI_class.
14912 * langhooks-def.h (lhd_register_dumps): Declare.
14913 (LANG_HOOKS_REGISTER_DUMPS): Define.
14914 (LANG_HOOKS_INITIALIZER): Add it.
14915 * langhooks.c (lhd_register_dumps): Define.
14916 * langhooks.h (struct lang_hooks): Add register_dumps.
14917
14918 2017-05-19 Nathan Sidwell <nathan@acm.org>
14919
14920 * context.h (context::set_passes): New.
14921 * context.c (context::context): Do not create pass manager.
14922 * toplev.c (general_init): Create pass manager here.
14923
14924 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org>
14925
14926 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
14927 use this splitter if two add or or instructions would also work for
14928 the constant we want to generate.
14929
14930 2017-05-19 Richard Biener <rguenther@suse.de>
14931
14932 PR build/80821
14933 * genmatch.c (dt_node::gen_kids_1): Add missing scope around
14934 predicate evaluation.
14935
14936 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
14937
14938 * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
14939 add ctor.
14940 * ipa-inline.c (want_inline_small_function_p): Do not cast to
14941 unsigned.
14942
14943 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
14944
14945 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
14946 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
14947 (inline_edge_summary_vec): Turn into ...
14948 (ipa_call_summaries): ... this one.
14949 (redirect_to_unreachable, edge_set_predicate,
14950 evaluate_properties_for_edge, inline_summary_alloc,
14951 reset_ipa_call_summary, reset_inline_summary,
14952 inline_summary_t::duplicate): Update.
14953 (inline_edge_duplication_hook): Turn to ...
14954 (ipa_call_summary_t::duplicate): ... this one.
14955 (inline_edge_removal_hook): Turn to ...
14956 (ipa_call_summary_t::remove): ... this one.
14957 (dump_inline_edge_summary): Turn to ...
14958 (dump_ipa_call_summary): ... this one.
14959 (estimate_function_body_sizes): Update.
14960 (inline_update_callee_summaries): Update.
14961 (remap_edge_change_prob): Update.
14962 (remap_edge_summaries): Update.
14963 (inline_merge_summary): Update.
14964 (do_estimate_edge_time): Update.
14965 (inline_generate_summary): Update.
14966 (inline_read_section): Update.
14967 (inline_read_summary): Update.
14968 (inline_free_summary): Update.
14969 * ipa-inline.c (can_inline_edge_p): Update.
14970 (compute_inlined_call_time): Update.
14971 (want_inline_small_function_p): Update.
14972 (edge_badness): Update.
14973 (early_inliner): Update.
14974 * ipa-inline.h (inline_edge_summary): Turn to ...
14975 (ipa_call_summary): ... this one.
14976 (ipa_call_summary_t): New class.
14977 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
14978 (ipa_call_summaries): New.
14979 (inline_edge_summary): Remove.
14980 (estimate_edge_growth): Update.
14981 * ipa-profile.c (ipa_propagate_frequency_1): Update.
14982 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
14983 * ipa-split.c (execute_split_functions): Update.
14984 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
14985
14986 2017-05-19 Richard Biener <rguenther@suse.de>
14987
14988 PR middle-end/80764
14989 * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
14990
14991 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
14992
14993 * config/rs6000/rs6000.c (struct machine_function): Add field
14994 fpr_is_wrapped_separately.
14995 (rs6000_get_separate_components): Use 64 components. Handle the
14996 new FPR components.
14997 (rs6000_components_for_bb): Handle the FPR components.
14998 (rs6000_emit_prologue_components): Handle the FPR components.
14999 (rs6000_emit_epilogue_components): Handle the FPR components.
15000 (rs6000_set_handled_components): Handle the FPR components.
15001 (rs6000_emit_prologue): Don't output prologue code for those FPRs
15002 that are already separately shrink-wrapped.
15003 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
15004 that are already separately shrink-wrapped.
15005
15006 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
15007
15008 PR target/80510
15009 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
15010 New predicate.
15011
15012 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
15013 (define_peephole2 for Altivec d-form load): Add peepholes to catch
15014 cases where the register allocator uses a move and an offsettable
15015 memory operation to/from a FPR register on ISA 2.06/2.07.
15016 (define_peephole2 for Altivec d-form store): Likewise.
15017
15018 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
15019
15020 PR target/80799
15021 * config/i386/mmx.md (*mov<mode>_internal): Enable
15022 alternatives 11, 12, 13 and 14 also for 32bit targets.
15023 Remove alternatives 15, 16, 17 and 18.
15024 * config/i386/sse.md (vec_concatv2di): Change
15025 alternative (!x, *y) to (x, ?!*Yn).
15026
15027 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com>
15028
15029 * dumpfile.h (enum dump_kind): Remove stray comma.
15030
15031 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
15032
15033 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
15034 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
15035 predicate::num_conditions
15036 (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
15037 (CHANGED): turn into predicate::changed.
15038 (agg_position_info): Move to ipa-predicate.h
15039 (add_condition, predicate::add_clause, predicate::operator &=,
15040 predicate::or_with, predicate::evaluate, predicate::probability,
15041 dump_condition, dump_clause, predicate::dump,
15042 predicate::remap_after_duplication, predicate::remap_after_inlining,
15043 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
15044 (evaluate_conditions_for_known_args): Update.
15045 (set_cond_stmt_execution_predicate): Update.
15046 * ipa-inline.h: Include ipa-predicate.h
15047 (condition, inline_param_summary, conditions, agg_position_info,
15048 predicate): Move to ipa-predicate.h
15049 * ipa-predicate.c: New file.
15050 * ipa-predicate.h: New file.
15051
15052 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com>
15053
15054 * final.c (leaf_function_p): Check we are not in a sequence.
15055
15056 2017-05-18 Martin Liska <mliska@suse.cz>
15057
15058 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
15059 * dumpfile.c (dump_register): Use new enum dump_kind.
15060 (get_dump_file_name): Likewise.
15061 (dump_enable_all): Likewise.
15062 (dump_switch_p_1): Likewise.
15063 (enable_rtl_dump_file): Remove usage of TDF_RTL.
15064 * dumpfile.h (enum dump_kind): New enum type.
15065 (struct dump_file_info): Create constructor and
15066 format fields and comments.
15067 * passes.c (pass_manager::register_one_dump_file):
15068 Use num dump_kind.
15069 * statistics.c (statistics_early_init): Likewise.
15070 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
15071 TDF_TREE with TDF_SLIM.
15072 (gather_memory_references_ref): Likewise.
15073
15074 2017-05-18 Martin Liska <mliska@suse.cz>
15075
15076 * vec.h (struct vnull): Use it.
15077
15078 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
15079
15080 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
15081 (true_predicate, false_predicate, true_predicate_p,
15082 false_predicate_p): Remove.
15083 (single_cond_predicate, not_inlined_predicate): Turn to member function
15084 in ipa-inline.h
15085 (add_condition): Update.
15086 (add_clause): Turn to...
15087 (predicate::add_clause): ... this one; update; allow passing NULL
15088 as parameter.
15089 (and_predicates): Turn to ...
15090 (predicate::operator &=): ... this one.
15091 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
15092 (or_predicates): Turn to ...
15093 (predicate::or_with): ... this one.
15094 (evaluate_predicate): Turn to ...
15095 (predicate::evaluate): ... this one.
15096 (predicate_probability): Turn to ...
15097 (predicate::probability): ... this one.
15098 (dump_condition): Update.
15099 (dump_predicate): Turn to ...
15100 (predicate::dump): ... this one.
15101 (account_size_time): Update.
15102 (edge_set_predicate): Update.
15103 (set_hint_predicate): UPdate.
15104 (evaluate_conditions_for_known_args): Update.
15105 (evaluate_properties_for_edge): Update.
15106 (remap_predicate_after_duplication): Turn to...
15107 (predicate::remap_after_duplication): ... this one.
15108 (remap_hint_predicate_after_duplication): Update.
15109 (inline_summary_t::duplicate): UPdate.
15110 (dump_inline_edge_summary): Update.
15111 (dump_inline_summary): Update.
15112 (set_cond_stmt_execution_predicate): Update.
15113 (set_switch_stmt_execution_predicate): Update.
15114 (compute_bb_predicates): Update.
15115 (will_be_nonconstant_expr_predicate): Update.
15116 (will_be_nonconstant_predicate): Update.
15117 (phi_result_unknown_predicate): Update.
15118 (predicate_for_phi_result): Update.
15119 (array_index_predicate): Update.
15120 (estimate_function_body_sizes): Update.
15121 (estimate_node_size_and_time): Update.
15122 (estimate_ipcp_clone_size_and_time): Update.
15123 (remap_predicate): Rename to ...
15124 (predicate::remap_after_inlining): ... this one.
15125 (remap_hint_predicate): Update.
15126 (inline_merge_summary): Update.
15127 (inline_update_overall_summary): Update.
15128 (estimate_size_after_inlining): Update.
15129 (read_predicate): Rename to ...
15130 (predicate::stream_in): ... this one.
15131 (read_inline_edge_summary): Update.
15132 (write_predicate): Rename to ...
15133 (predicate::stream_out): ... this one.
15134 (write_inline_edge_summary): Update.
15135 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
15136 (clause_t): Turn to uint32_t
15137 (predicate): Turn to class; implement constructor and operators
15138 ==, !=, &
15139 (size_time_entry): Update.
15140 (inline_summary): Update.
15141 (inline_edge_summary): Update.
15142
15143 2017-05-18 Marc Glisse <marc.glisse@inria.fr>
15144
15145 * fold-const.c (fold_binary_loc): Move transformation...
15146 * match.pd (C - X CMP X): ... here.
15147
15148 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
15149
15150 * config/sparc/sparc.c (sparc_option_override): Set function
15151 alignment for -mcpu=niagara7 to 64 to match the I$ line.
15152 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
15153 latency to 1.
15154 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
15155 latency to 2.
15156 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
15157
15158 2017-05-18 Marek Polacek <polacek@redhat.com>
15159
15160 PR sanitizer/80797
15161 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
15162 (pass_ubsan::execute): Call gimple_assign_single_p instead of
15163 gimple_assign_load_p.
15164
15165 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
15166
15167 PR middle-end/80692
15168 * real.c (do_compare): Give decimal_do_compare preference over
15169 comparing just the signs.
15170
15171 2017-05-17 Uros Bizjak <ubizjak@gmail.com>
15172
15173 * doc/md.texi (Canonicalization of Instructions): Describe the
15174 canonical form of instructions that inherently set a condition
15175 code register.
15176
15177 2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
15178
15179 PR middle-end/80775
15180 * tree-cfg.c: Move deletion of unreachable case statements to after
15181 the merging of consecutive case labels.
15182
15183 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
15184
15185 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
15186 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
15187 restoring of callee-saved registers.
15188
15189 2017-05-17 Eric Botcazou <ebotcazou@adacore.com>
15190
15191 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
15192 * config/visium/visium.c (single_set_and_flags): Likewise.
15193 * config/visium/visium.md (Substitutions): Likewise.
15194
15195 2017-05-17 Martin Liska <mliska@suse.cz>
15196
15197 * cfg.c: Introduce dump_flags_t type and
15198 use it instead of int type.
15199 * cfg.h: Likewise.
15200 * cfghooks.c: Likewise.
15201 * cfghooks.h (struct cfg_hooks): Likewise.
15202 * cfgrtl.c: Likewise.
15203 * cfgrtl.h: Likewise.
15204 * cgraph.c (cgraph_node::get_body): Likewise.
15205 * coretypes.h: Likewise.
15206 * domwalk.c: Likewise.
15207 * domwalk.h: Likewise.
15208 * dumpfile.c (struct dump_option_value_info): Likewise.
15209 (dump_enable_all): Likewise.
15210 (dump_switch_p_1): Likewise.
15211 (opt_info_switch_p): Likewise.
15212 * dumpfile.h (enum tree_dump_index): Likewise.
15213 (struct dump_file_info): Likewise.
15214 * genemit.c: Likewise.
15215 * generic-match-head.c: Likewise.
15216 * gengtype.c (open_base_files): Likewise.
15217 * gimple-pretty-print.c: Likewise.
15218 * gimple-pretty-print.h: Likewise.
15219 * graph.c (print_graph_cfg): Likewise.
15220 * graphite-scop-detection.c (dot_all_sese): Likewise.
15221 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
15222 * loop-unroll.c (report_unroll): Likewise.
15223 * passes.c (pass_manager::register_one_dump_file): Likewise.
15224 * print-tree.c: Likewise.
15225 * statistics.c: Likewise.
15226 * tree-cfg.c: Likewise.
15227 * tree-cfg.h: Likewise.
15228 * tree-dfa.c: Likewise.
15229 * tree-dfa.h: Likewise.
15230 * tree-dump.c (dump_function): Likewise.
15231 * tree-dump.h (struct dump_info): Likewise.
15232 * tree-pretty-print.c: Likewise.
15233 * tree-pretty-print.h: Likewise.
15234 * tree-ssa-live.c: Likewise.
15235 * tree-ssa-live.h: Likewise.
15236 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
15237 * tree-vect-loop.c: Likewise.
15238 * tree-vect-slp.c: Likewise.
15239
15240 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com>
15241 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15242
15243 PR tree-optimization/80457
15244 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
15245 of all arguments to a statement as scalar_to_vec operations.
15246 (vectorizable_call): Adjust call to vect_model_simple_cost for
15247 new parameter.
15248 (vectorizable_conversion): Likewise.
15249 (vectorizable_assignment): Likewise.
15250 (vectorizable_shift): Likewise.
15251 (vectorizable_operation): Likewise.
15252 (vectorizable_comparison): Likewise.
15253 (vect_is_simple_cond): Record the def types for operands.
15254 (vectorizable_condition): Likewise, call vect_model_simple_cost.
15255 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
15256 for statement argument count.
15257
15258 2017-05-16 Carl Love <cel@us.ibm.com>
15259
15260 * config/rs6000/rs6000-c: Add support for built-in functions
15261 vector unsigned long long vec_bperm (vector unsigned long long,
15262 vector unsigned char)
15263 vector signed long long vec_mule (vector signed int,
15264 vector signed int)
15265 vector unsigned long long vec_mule (vector unsigned int,
15266 vector unsigned int)
15267 vector signed long long vec_mulo (vector signed int,
15268 vector signed int)
15269 vector unsigned long long vec_mulo (vector unsigned int,
15270 vector unsigned int)
15271 vector signed char vec_sldw (vector signed char,
15272 vector signed char,
15273 const int)
15274 vector unsigned char vec_sldw (vector unsigned char,
15275 vector unsigned char,
15276 const int)
15277 vector signed short vec_sldw (vector signed short,
15278 vector signed short,
15279 const int)
15280 vector unsigned short vec_sldw (vector unsigned short,
15281 vector unsigned short,
15282 const int)
15283 vector signed int vec_sldw (vector signed int,
15284 vector signed int,
15285 const int)
15286 vector unsigned int vec_sldw (vector unsigned int,
15287 vector unsigned int,
15288 const int)
15289 vector signed long long vec_sldw (vector signed long long,
15290 vector signed long long,
15291 const int)
15292 vector unsigned long long vec_sldw (vector unsigned long long,
15293 vector unsigned long long,
15294 const int)
15295 * config/rs6000/rs6000-c: Add support for built-in functions
15296 * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
15297 * config/rs6000/altivec.h: Add defintion for vec_sldw.
15298 * doc/extend.texi: Update the built-in documentation for the
15299 new built-in functions.
15300
15301 2017-05-16 Marek Polacek <polacek@redhat.com>
15302
15303 PR sanitizer/80536
15304 PR sanitizer/80386
15305 * tree.c (save_expr): Don't fold the expression.
15306
15307 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
15308
15309 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
15310 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
15311 and (?*y,m). Update insn attributes.
15312
15313 2017-05-16 Martin Liska <mliska@suse.cz>
15314
15315 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
15316 flags argument of print_gimple_stmt, print_gimple_expr,
15317 print_generic_stmt and print_generic_expr.
15318 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
15319 * coretypes.h: Likewise.
15320 * except.c (dump_eh_tree): Likewise.
15321 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
15322 * gimple-pretty-print.h: Likewise.
15323 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
15324 (backprop::push_to_worklist): Likewise.
15325 (backprop::pop_from_worklist): Likewise.
15326 (backprop::process_use): Likewise.
15327 (backprop::intersect_uses): Likewise.
15328 (note_replacement): Likewise.
15329 * gimple-ssa-store-merging.c
15330 (pass_store_merging::terminate_all_aliasing_chains): Likewise.
15331 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
15332 (pass_store_merging::execute): Likewise.
15333 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
15334 (ssa_base_cand_dump_callback): Likewise.
15335 (dump_incr_vec): Likewise.
15336 (replace_refs): Likewise.
15337 (replace_mult_candidate): Likewise.
15338 (create_add_on_incoming_edge): Likewise.
15339 (create_phi_basis): Likewise.
15340 (insert_initializers): Likewise.
15341 (all_phi_incrs_profitable): Likewise.
15342 (introduce_cast_before_cand): Likewise.
15343 (replace_one_candidate): Likewise.
15344 * gimplify.c (gimplify_expr): Likewise.
15345 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
15346 (set_rename): Likewise.
15347 (rename_uses): Likewise.
15348 (copy_loop_phi_nodes): Likewise.
15349 (add_close_phis_to_merge_points): Likewise.
15350 (copy_loop_close_phi_args): Likewise.
15351 (copy_cond_phi_args): Likewise.
15352 (graphite_copy_stmts_from_block): Likewise.
15353 (translate_pending_phi_nodes): Likewise.
15354 * graphite-poly.c (print_pdr): Likewise.
15355 (dump_gbb_cases): Likewise.
15356 (dump_gbb_conditions): Likewise.
15357 (print_scop_params): Likewise.
15358 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
15359 (build_cross_bb_scalars_use): Likewise.
15360 (gather_bbs::before_dom_children): Likewise.
15361 * hsa-dump.c (dump_hsa_immed): Likewise.
15362 * ipa-cp.c (print_ipcp_constant_value): Likewise.
15363 (get_replacement_map): Likewise.
15364 * ipa-inline-analysis.c (dump_condition): Likewise.
15365 (estimate_function_body_sizes): Likewise.
15366 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
15367 (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
15368 * ipa-prop.c (ipa_dump_param): Likewise.
15369 (ipa_print_node_jump_functions_for_edge): Likewise.
15370 (ipa_modify_call_arguments): Likewise.
15371 (ipa_modify_expr): Likewise.
15372 (ipa_dump_param_adjustments): Likewise.
15373 (ipa_dump_agg_replacement_values): Likewise.
15374 (ipcp_modif_dom_walker::before_dom_children): Likewise.
15375 * ipa-pure-const.c (check_stmt): Likewise.
15376 (pass_nothrow::execute): Likewise.
15377 * ipa-split.c (execute_split_functions): Likewise.
15378 * omp-offload.c (dump_oacc_loop_part): Likewise.
15379 (dump_oacc_loop): Likewise.
15380 * trans-mem.c (tm_log_emit): Likewise.
15381 (tm_memopt_accumulate_memops): Likewise.
15382 (dump_tm_memopt_set): Likewise.
15383 (dump_tm_memopt_transform): Likewise.
15384 * tree-cfg.c (gimple_verify_flow_info): Likewise.
15385 (print_loop): Likewise.
15386 * tree-chkp-opt.c (chkp_print_addr): Likewise.
15387 (chkp_gather_checks_info): Likewise.
15388 (chkp_get_check_result): Likewise.
15389 (chkp_remove_check_if_pass): Likewise.
15390 (chkp_use_outer_bounds_if_possible): Likewise.
15391 (chkp_reduce_bounds_lifetime): Likewise.
15392 * tree-chkp.c (chkp_register_addr_bounds): Likewise.
15393 (chkp_mark_completed_bounds): Likewise.
15394 (chkp_register_incomplete_bounds): Likewise.
15395 (chkp_mark_invalid_bounds): Likewise.
15396 (chkp_maybe_copy_and_register_bounds): Likewise.
15397 (chkp_build_returned_bound): Likewise.
15398 (chkp_get_bound_for_parm): Likewise.
15399 (chkp_build_bndldx): Likewise.
15400 (chkp_get_bounds_by_definition): Likewise.
15401 (chkp_generate_extern_var_bounds): Likewise.
15402 (chkp_get_bounds_for_decl_addr): Likewise.
15403 * tree-chrec.c (chrec_apply): Likewise.
15404 * tree-data-ref.c (dump_data_reference): Likewise.
15405 (dump_subscript): Likewise.
15406 (dump_data_dependence_relation): Likewise.
15407 (analyze_overlapping_iterations): Likewise.
15408 * tree-inline.c (expand_call_inline): Likewise.
15409 (tree_function_versioning): Likewise.
15410 * tree-into-ssa.c (dump_defs_stack): Likewise.
15411 (dump_currdefs): Likewise.
15412 (dump_names_replaced_by): Likewise.
15413 (dump_update_ssa): Likewise.
15414 (update_ssa): Likewise.
15415 * tree-object-size.c (pass_object_sizes::execute): Likewise.
15416 * tree-parloops.c (build_new_reduction): Likewise.
15417 (try_create_reduction_list): Likewise.
15418 (ref_conflicts_with_region): Likewise.
15419 (oacc_entry_exit_ok_1): Likewise.
15420 (oacc_entry_exit_single_gang): Likewise.
15421 * tree-pretty-print.h: Likewise.
15422 * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
15423 (get_scalar_evolution): Likewise.
15424 (add_to_evolution): Likewise.
15425 (get_loop_exit_condition): Likewise.
15426 (analyze_evolution_in_loop): Likewise.
15427 (analyze_initial_condition): Likewise.
15428 (analyze_scalar_evolution): Likewise.
15429 (instantiate_scev): Likewise.
15430 (number_of_latch_executions): Likewise.
15431 (gather_chrec_stats): Likewise.
15432 (final_value_replacement_loop): Likewise.
15433 (scev_const_prop): Likewise.
15434 * tree-sra.c (dump_access): Likewise.
15435 (disqualify_candidate): Likewise.
15436 (create_access): Likewise.
15437 (reject): Likewise.
15438 (maybe_add_sra_candidate): Likewise.
15439 (create_access_replacement): Likewise.
15440 (analyze_access_subtree): Likewise.
15441 (analyze_all_variable_accesses): Likewise.
15442 (sra_modify_assign): Likewise.
15443 (initialize_constant_pool_replacements): Likewise.
15444 (find_param_candidates): Likewise.
15445 (decide_one_param_reduction): Likewise.
15446 (replace_removed_params_ssa_names): Likewise.
15447 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
15448 * tree-ssa-copy.c (dump_copy_of): Likewise.
15449 (copy_prop_visit_cond_stmt): Likewise.
15450 * tree-ssa-dce.c (mark_operand_necessary): Likewise.
15451 * tree-ssa-dom.c (pass_dominator::execute): Likewise.
15452 (record_equivalences_from_stmt): Likewise.
15453 * tree-ssa-dse.c (compute_trims): Likewise.
15454 (delete_dead_call): Likewise.
15455 (delete_dead_assignment): Likewise.
15456 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
15457 (forward_propagate_into_cond): Likewise.
15458 (pass_forwprop::execute): Likewise.
15459 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
15460 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
15461 Likewise.
15462 (move_computations_worker): Likewise.
15463 (execute_sm): Likewise.
15464 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
15465 (remove_exits_and_undefined_stmts): Likewise.
15466 (remove_redundant_iv_tests): Likewise.
15467 * tree-ssa-loop-ivopts.c (dump_use): Likewise.
15468 (adjust_iv_update_pos): Likewise.
15469 * tree-ssa-math-opts.c (bswap_replace): Likewise.
15470 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
15471 (value_replacement): Likewise.
15472 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
15473 * tree-ssa-pre.c (print_pre_expr): Likewise.
15474 (get_representative_for): Likewise.
15475 (create_expression_by_pieces): Likewise.
15476 (insert_into_preds_of_block): Likewise.
15477 (eliminate_insert): Likewise.
15478 (eliminate_dom_walker::before_dom_children): Likewise.
15479 (eliminate): Likewise.
15480 (remove_dead_inserted_code): Likewise.
15481 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
15482 * tree-ssa-reassoc.c (get_rank): Likewise.
15483 (eliminate_duplicate_pair): Likewise.
15484 (eliminate_plus_minus_pair): Likewise.
15485 (eliminate_not_pairs): Likewise.
15486 (undistribute_ops_list): Likewise.
15487 (eliminate_redundant_comparison): Likewise.
15488 (update_range_test): Likewise.
15489 (optimize_range_tests_var_bound): Likewise.
15490 (optimize_vec_cond_expr): Likewise.
15491 (rewrite_expr_tree): Likewise.
15492 (rewrite_expr_tree_parallel): Likewise.
15493 (linearize_expr): Likewise.
15494 (break_up_subtract): Likewise.
15495 (linearize_expr_tree): Likewise.
15496 (attempt_builtin_powi): Likewise.
15497 (attempt_builtin_copysign): Likewise.
15498 (transform_stmt_to_copy): Likewise.
15499 (transform_stmt_to_multiply): Likewise.
15500 (dump_ops_vector): Likewise.
15501 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
15502 (print_scc): Likewise.
15503 (set_ssa_val_to): Likewise.
15504 (visit_reference_op_store): Likewise.
15505 (visit_use): Likewise.
15506 (sccvn_dom_walker::before_dom_children): Likewise.
15507 (run_scc_vn): Likewise.
15508 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
15509 Likewise.
15510 (expr_hash_elt::print): Likewise.
15511 (const_and_copies::pop_to_marker): Likewise.
15512 (const_and_copies::record_const_or_copy_raw): Likewise.
15513 * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
15514 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
15515 (dump_predicates): Likewise.
15516 (find_uninit_use): Likewise.
15517 (warn_uninitialized_phi): Likewise.
15518 (pass_late_warn_uninitialized::execute): Likewise.
15519 * tree-ssa.c (verify_vssa): Likewise.
15520 (verify_ssa): Likewise.
15521 (maybe_optimize_var): Likewise.
15522 * tree-vrp.c (dump_value_range): Likewise.
15523 (dump_all_value_ranges): Likewise.
15524 (dump_asserts_for): Likewise.
15525 (register_edge_assert_for_2): Likewise.
15526 (vrp_visit_cond_stmt): Likewise.
15527 (vrp_visit_switch_stmt): Likewise.
15528 (vrp_visit_stmt): Likewise.
15529 (vrp_visit_phi_node): Likewise.
15530 (simplify_cond_using_ranges_1): Likewise.
15531 (fold_predicate_in): Likewise.
15532 (evrp_dom_walker::before_dom_children): Likewise.
15533 (evrp_dom_walker::push_value_range): Likewise.
15534 (evrp_dom_walker::pop_value_range): Likewise.
15535 (execute_early_vrp): Likewise.
15536
15537 2017-05-16 Richard Biener <rguenther@suse.de>
15538
15539 * dwarf2out.c (loc_list_from_tree_1): Do not create
15540 DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
15541
15542 2017-05-16 Richard Biener <rguenther@suse.de>
15543
15544 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
15545 just generated.
15546 (note_variable_value_in_expr): If we resolved the decl ref
15547 do not push to the stack.
15548
15549 2017-05-16 Matthew Wahab <matthew.wahab@arm.com>
15550
15551 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
15552 operations in fast-math mode.
15553 (vaddq_f16): Likewise.
15554 (vmul_f16): Likewise.
15555 (vmulq_f16): Likewise.
15556 (vsub_f16): Likewise.
15557 (vsubq_f16): Likewise.
15558 * config/arm/neon.md (add<mode>3): New.
15559 (sub<mode>3): New.
15560 (fma:<VH:mode>3): New. Also remove outdated comment.
15561 (mul<mode>3): New.
15562
15563 2017-05-16 Martin Liska <mliska@suse.cz>
15564
15565 PR ipa/79849.
15566 PR ipa/79850.
15567 * ipa-devirt.c (warn_types_mismatch): Fix typo.
15568 (odr_types_equivalent_p): Likewise.
15569
15570 2017-05-15 Sylvestre Ledru <sylvestre@debian.org>
15571
15572 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
15573
15574 2017-05-15 Uros Bizjak <ubizjak@gmail.com>
15575
15576 PR target/80425
15577 * config/i386.i386.md (*zero_extendsidi2): Do not penalize
15578 non-interunit SSE move alternatives with '?'.
15579 (zero-extendsidi peephole2): New peephole to skip intermediate
15580 general register in SSE zero-extend sequence.
15581
15582 2017-05-15 Jeff Law <law@redhat.com>
15583
15584 * reorg.c (relax_delay_slots): Create a new variable to hold
15585 the temporary target rather than clobbering TARGET_LABEL.
15586
15587 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
15588 missing argument to extract_bit_field call.
15589 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
15590
15591 2017-05-15 Martin Liska <mliska@suse.cz>
15592
15593 PR driver/31468
15594 * gcc.c (process_command): Do not allow empty argument of -o option.
15595
15596 2017-05-15 Renlin Li <renlin.li@arm.com>
15597
15598 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
15599 * config/aarch64/aarch64.c (aarch64_expand_call): Define.
15600 * config/aarch64/constraints.md (Usf): Add long call check.
15601 * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
15602 (call_value): Likewise.
15603 (sibcall): Likewise.
15604 (sibcall_value): Likewise.
15605 (call_insn): New.
15606 (call_value_insn): New.
15607 (sibcall_insn): Update rtx pattern.
15608 (sibcall_value_insn): Likewise.
15609 (call_internal): Remove.
15610 (call_value_internal): Likewise.
15611 (sibcall_internal): Likewise.
15612 (sibcall_value_internal): Likewise.
15613 (call_reg): Likewise.
15614 (call_symbol): Likewise.
15615 (call_value_reg): Likewise.
15616 (call_value_symbol): Likewise.
15617
15618 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
15619
15620 PR target/80600
15621 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
15622
15623 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
15624
15625 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
15626 compatible with CCGOCmode and with CCZmode.
15627
15628 2017-05-14 Martin Sebor <msebor@redhat.com>
15629
15630 PR middle-end/77671
15631 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
15632 (gimple_fold_builtin_snprintf): Same.
15633 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
15634 (gimple_fold_builtin_snprintf): Same.
15635 * gimple-ssa-sprintf.c (get_format_string): Correct the detection
15636 of character types.
15637 (is_call_safe): New function.
15638 (try_substitute_return_value): Call it.
15639 (try_simplify_call): New function.
15640 (pass_sprintf_length::handle_gimple_call): Call it.
15641
15642 2017-05-14 Martin Sebor <msebor@redhat.com>
15643
15644 PR middle-end/80669
15645 * builtins.c (expand_builtin_stpncpy): Simplify.
15646
15647 2017-05-14 Daniel Santos <daniel.santos@pobox.com>
15648
15649 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
15650 * config/i386/i386.h
15651 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
15652 (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
15653 (struct machine_function): Add new members call_ms2sysv,
15654 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
15655 (struct machine_frame_state): New fields sp_realigned and
15656 sp_realigned_offset.
15657 * config/i386/i386.c
15658 (enum xlogue_stub): New enum.
15659 (enum xlogue_stub_sets): New enum.
15660 (class xlogue_layout): New class.
15661 (struct ix86_frame): New fields stack_realign_allocate_offset,
15662 stack_realign_offset and outlined_save_offset. Modify comments to
15663 detail stack layout when using out-of-line stubs.
15664 (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
15665 (ix86_option_override_internal): Add sorry() for TARGET_SEH and
15666 -mcall-ms2sysv-xlogues.
15667 (stub_managed_regs): New static variable.
15668 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
15669 registers managed by out-of-line stub.
15670 (disable_call_ms2sysv_xlogues): New function.
15671 (ix86_compute_frame_layout): Modify re-alignment calculations, disable
15672 m->call_ms2sysv when appropriate and compute frame layout for
15673 out-of-line stubs.
15674 (sp_valid_at, fp_valid_at): New inline functions.
15675 (choose_basereg): New function.
15676 (choose_baseaddr): Add align parameter, use choose_basereg and modify
15677 all callers.
15678 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
15679 Use align parameter of choose_baseaddr to generated aligned SSE movs
15680 when possible.
15681 (pro_epilogue_adjust_stack): Modify to track
15682 machine_frame_state::sp_realigned.
15683 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
15684 (ix86_nsaved_sseregs): Likewise.
15685 (ix86_emit_save_regs): Likewise.
15686 (ix86_emit_save_regs_using_mov): Likewise.
15687 (ix86_emit_save_sse_regs_using_mov): Likewise.
15688 (get_scratch_register_on_entry): Likewise.
15689 (gen_frame_set): New function.
15690 (gen_frame_load): Likewise.
15691 (gen_frame_store): Likewise.
15692 (emit_outlined_ms2sysv_save): Likewise.
15693 (emit_outlined_ms2sysv_restore): Likewise.
15694 (ix86_expand_prologue): Modify stack re-alignment code and call
15695 emit_outlined_ms2sysv_save when appropriate.
15696 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
15697 parameter rtx_insn *insn, which allows the function to be used to only
15698 generate the notes.
15699 (ix86_expand_epilogue): Modify validity checks of frame and stack
15700 pointers, and call emit_outlined_ms2sysv_restore when appropriate.
15701 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
15702 * config/i386/predicates.md
15703 (save_multiple): New predicate.
15704 (restore_multiple): Likewise.
15705 * config/i386/sse.md
15706 (save_multiple<mode>): New pattern.
15707 (save_multiple_realign<mode>): Likewise.
15708 (restore_multiple<mode>): Likewise.
15709 (restore_multiple_and_return<mode>): Likewise.
15710 (restore_multiple_leave_return<mode>): Likewise.
15711 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
15712
15713 2017-05-14 Julia Koval <julia.koval@intel.com>
15714
15715 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
15716 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
15717 (__builtin_ia32_xsetbv): New builtins.
15718 * config/i386/i386.c (ix86_expand_special_args_builtin):
15719 Process new types.
15720 (ix86_expand_builtin): Special expand for new intrinsics.
15721 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
15722 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
15723 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
15724
15725 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15726
15727 * cfganal.c (inverted_post_order_compute): Change argument type
15728 to vec *.
15729 * cfganal.h (inverted_post_order_compute): Adjust prototype.
15730 * df-core.c (rest_of_handle_df_initialize): Adjust.
15731 (rest_of_handle_df_finish): Likewise.
15732 (df_analyze_1): Likewise.
15733 (df_analyze): Likewise.
15734 (loop_inverted_post_order_compute): Change argument to be a vec *.
15735 (df_analyze_loop): Adjust.
15736 (df_get_n_blocks): Likewise.
15737 (df_get_postorder): Likewise.
15738 * df.h (struct df_d): Change field to be a vec.
15739 * lcm.c (compute_laterin): Adjust.
15740 (compute_available): Likewise.
15741 * lra-lives.c (lra_create_live_ranges_1): Likewise.
15742 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
15743 * tree-ssa-pre.c (compute_antic): Likewise.
15744
15745 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15746
15747 * cfganal.c (connect_infinite_loops_to_exit): Adjust.
15748 (depth_first_search::depth_first_search): Change structure init
15749 function to this constructor.
15750 (depth_first_search::add_bb): Rename function to this member.
15751 (depth_first_search::execute): Likewise.
15752 (flow_dfs_compute_reverse_finish): Adjust.
15753
15754 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15755
15756 * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
15757 (longest_simple_path): Likewise.
15758 * shrink-wrap.c (spread_components): Likewise.
15759 (disqualify_problematic_components): Likewise.
15760 (emit_common_heads_for_components): Likewise.
15761 (emit_common_tails_for_components): Likewise.
15762 (insert_prologue_epilogue_for_components): Likewise.
15763
15764 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15765
15766 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
15767 auto_sbitmap.
15768
15769 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15770
15771 * df-core.c (df_set_blocks): Start using auto_bitmap.
15772 (df_compact_blocks): Likewise.
15773 * df-problems.c (df_rd_confluence_n): Likewise.
15774 * df-scan.c (df_insn_rescan_all): Likewise.
15775 (df_process_deferred_rescans): Likewise.
15776 (df_update_entry_block_defs): Likewise.
15777 (df_update_exit_block_uses): Likewise.
15778 (df_entry_block_bitmap_verify): Likewise.
15779 (df_exit_block_bitmap_verify): Likewise.
15780 (df_scan_verify): Likewise.
15781 * lra-constraints.c (lra_constraints): Likewise.
15782 (undo_optional_reloads): Likewise.
15783 (lra_undo_inheritance): Likewise.
15784 * lra-remat.c (calculate_gen_cands): Likewise.
15785 (do_remat): Likewise.
15786 * lra-spills.c (assign_spill_hard_regs): Likewise.
15787 (spill_pseudos): Likewise.
15788 * tree-ssa-pre.c (bitmap_set_and): Likewise.
15789 (bitmap_set_subtract_values): Likewise.
15790
15791 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15792
15793 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
15794 management with auto_bitmap.
15795 (fix_inter_tick): Likewise.
15796 (fix_recovery_deps): Likewise.
15797 * ira.c (add_store_equivs): Likewise.
15798 (find_moveable_pseudos): Likewise.
15799 (split_live_ranges_for_shrink_wrap): Likewise.
15800 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
15801 (rtx_reuse_manager::seen_def_p): Likewise.
15802 (rtx_reuse_manager::set_seen_def): Likewise.
15803 * print-rtl.h (class rtx_reuse_manager): Likewise.
15804
15805 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15806
15807 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
15808 lifetime.
15809 (migrate_btr_def): Likewise.
15810 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
15811 * df-core.c (loop_post_order_compute): Likewise.
15812 (loop_inverted_post_order_compute): Likewise.
15813 * hsa-common.h: Likewise.
15814 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
15815 * init-regs.c (initialize_uninitialized_regs): Likewise.
15816 * ipa-inline.c (resolve_noninline_speculation): Likewise.
15817 (inline_small_functions): Likewise.
15818 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
15819 * ira.c (combine_and_move_insns): Likewise.
15820 (build_insn_chain): Likewise.
15821 * loop-invariant.c (find_invariants): Likewise.
15822 * lower-subreg.c (propagate_pseudo_copies): Likewise.
15823 * predict.c (tree_predict_by_opcode): Likewise.
15824 (predict_paths_leading_to): Likewise.
15825 (predict_paths_leading_to_edge): Likewise.
15826 (estimate_loops_at_level): Likewise.
15827 (estimate_loops): Likewise.
15828 * shrink-wrap.c (try_shrink_wrapping): Likewise.
15829 (spread_components): Likewise.
15830 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
15831 * tree-loop-distribution.c (rdg_build_partitions): Likewise.
15832 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
15833 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
15834 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
15835 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
15836 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
15837 * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
15838 (mark_threaded_blocks): Likewise.
15839 (thread_through_all_blocks): Likewise.
15840 * tree-ssa.c (verify_ssa): Likewise.
15841 (execute_update_addresses_taken): Likewise.
15842 * tree-ssanames.c (verify_ssaname_freelists): Likewise.
15843
15844 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15845
15846 * cfganal.c (mark_dfs_back_edges): Replace manual stack with
15847 auto_vec.
15848 (post_order_compute): Likewise.
15849 (inverted_post_order_compute): Likewise.
15850 (pre_and_rev_post_order_compute_fn): Likewise.
15851
15852 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15853
15854 * genrecog.c (int_set::int_set): Explicitly construct our
15855 auto_vec base class.
15856 * vec.h (auto_vec::auto_vec): New constructor.
15857
15858 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15859
15860 * bitmap.h (class auto_bitmap): New constructor taking
15861 bitmap_obstack * argument.
15862
15863 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15864
15865 * bitmap.h (class auto_bitmap): Change type of m_bits to
15866 bitmap_head, and adjust ctor / dtor and member operators.
15867
15868 2017-05-13 Uros Bizjak <ubizjak@gmail.com>
15869
15870 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
15871 when returned register mode doesn't match original mode.
15872
15873 2017-05-12 Jeff Law <law@redhat.com>
15874 Jakub Jelinek <jakub@redhat.com>
15875
15876 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
15877 we look for cc setter after the compare-elim changes.
15878 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
15879 within the vector to match what compare-elim now expects.
15880 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
15881 (xorsi3_flags, one_cmplsi2_flags): Likewise.
15882
15883 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
15884 after the compare-elim changes.
15885 * config/rx/rx.md (abssi2_flags): Fix order of patterns within
15886 the vector to match what compare-elim now expects.
15887 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
15888 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
15889 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
15890 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
15891 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
15892
15893 * config/visium/visium.c (single_set_and_flags): Fix where
15894 we look for cc setter after the compare-elim changes.
15895 * config/visium/visium.md (flags_subst_logic): Fix order of patterns
15896 with the vector to match what compare-elim now expects.
15897 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
15898 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
15899 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
15900 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
15901 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
15902 (neg<mode>2_insn_set_overflow): Likewise.
15903
15904 2017-05-12 Jim Wilson <jim.wilson@linaro.org>
15905
15906 PR middle-end/79794
15907 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
15908 maybe_expand_insn call, set ops[0].target. If still set after call,
15909 set alt_rtl. Add extra arg to recursive calls.
15910 (extract_bit_field): Add alt_rtl argument. Pass to
15911 extract_bit_field.
15912 * expmed.h (extract_bit_field): Fix prototype.
15913 * expr.c (emit_group_load_1, copy_blkmode_from_reg)
15914 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
15915 to extract_bit_field_calls.
15916 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
15917 Pass alt_rtl to extract_bit_field calls.
15918 * calls.c (store_unaligned_arguments_into_psuedos)
15919 load_register_parameters): Pass extra NULL to extract_bit_field calls.
15920 * optabs.c (maybe_legitimize_operand): Clear op->target when call
15921 gen_reg_rtx.
15922 * optabs.h (struct expand_operand): Add target bitfield.
15923
15924 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
15925
15926 * compare-elim.c (try_eliminate_compare): Canonicalize
15927 operation with embedded compare to
15928 [(set (reg:CCM) (compare:CCM (operation) (immediate)))
15929 (set (reg) (operation)].
15930
15931 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
15932
15933 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
15934
15935 PR target/80723
15936 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
15937 cost of adding a carry flag for ADC instruction.
15938 [case MINUS]: Ignore the cost of subtracting a carry flag
15939 for SBB instruction.
15940
15941 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
15942
15943 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
15944 and x86intrin.h
15945 * config/rs6000/bmiintrin.h: New file.
15946 * config/rs6000/bmi2intrin.h: New file.
15947 * config/rs6000/x86intrin.h: New file.
15948
15949 2017-05-12 Jeff Law <law@redhat.com>
15950
15951 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
15952 markers.
15953
15954 2017-05-12 Peter Bergner <bergner@vnet.ibm.com>
15955
15956 PR middle-end/80707
15957 * tree-cfg.c: Remove cfg edges of unreachable case statements.
15958
15959 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
15960
15961 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
15962 early expansion of vector divide builtins.
15963 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
15964 builtins identified as having unsigned arguments.
15965
15966 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
15967
15968 * config/rs6000/rs6000.c (gimple-fold.h): New #include.
15969 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
15970 expansion of vector logical operations (and, andc, or, xor,
15971 nor, orc, nand).
15972
15973 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
15974
15975 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
15976 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
15977
15978 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
15979
15980 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
15981 early GIMPLE expansion of vector multiplies.
15982
15983 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
15984
15985 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
15986 TARGET_HAVE_MOVT conditional.
15987 (movt splitter): Likewise.
15988
15989 2017-05-12 Richard Biener <rguenther@suse.de>
15990
15991 * tree-ssa-sccvn.h (has_VN_INFO): Declare.
15992 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15993 Fold all stmts not inplace.
15994
15995 2017-05-12 Richard Biener <rguenther@suse.de>
15996
15997 PR tree-optimization/80713
15998 * tree-ssa-pre.c (remove_dead_inserted_code): Clear
15999 inserted_exprs bit for not removed stmts.
16000
16001 2017-05-12 Thomas Schwinge <thomas@codesourcery.com>
16002
16003 PR middle-end/69921
16004 * tree-parloops.c (create_parallel_loop): Set "oacc kernels
16005 parallelized" attribute for parallelized OpenACC kernels.
16006 * omp-offload.c (execute_oacc_device_lower): Use it.
16007
16008 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
16009 Set "oacc kernels" attribute.
16010 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
16011 parameter. Adjust all users.
16012 (oacc_fn_attrib_kernels_p): Remove function.
16013 * omp-offload.c (execute_oacc_device_lower): Look for "oacc
16014 kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
16015 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
16016 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
16017 assert "oacc kernels" attribute is set.
16018
16019 2017-05-11 Carl Love <cel@us.ibm.com>
16020
16021 * config/rs6000/rs6000-c: Add support for built-in functions
16022 vector unsigned char vec_popcnt (vector signed char)
16023 vector unsigned char vec_popcnt (vector unsigned char)
16024 vector unsigned short vec_popcnt (vector signed short)
16025 vector unsigned short vec_popcnt (vector unsigned short)
16026 vector unsigned int vec_popcnt (vector signed int)
16027 vector unsigned int vec_popcnt (vector unsigned int)
16028 vector unsigned long long vec_popcnt (vector signed long long)
16029 vector unsigned long long vec_popcnt (vector unsigned long long)
16030 vector signed long long vec_slo (vector signed long long,
16031 vector signed char)
16032 vector signed long long vec_slo (vector signed long long,
16033 vector unsigned char)
16034 vector unsigned long long vec_slo (vector unsigned long long,
16035 vector signed char)
16036 vector unsigned long long vec_slo (vector unsigned long long,
16037 vector unsigned char)
16038 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
16039 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
16040 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
16041 vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
16042 * doc/extend.texi: Update the built-in documentation file for the
16043 new built-in functions.
16044
16045 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
16046
16047 * attribs.h (sorted_attr_string): Move machine independent
16048 functions for target clone support from the i386 port to common
16049 code. Rename ix86_function_versions to common_function_versions.
16050 Rename make_name to make_unique_name.
16051 (common_function_versions): Likewise.
16052 (make_unique_name): Likewise.
16053 (make_dispatcher_decl): Likewise.
16054 (is_function_default_version): Likewise.
16055 * attribs.c (attr_strcmp): Likewise.
16056 (sorted_attr_string): Likewise.
16057 (common_function_versions): Likewise.
16058 (make_unique_name): Likewise.
16059 (make_dispatcher_decl): Likewise.
16060 (is_function_default_version): Likewise.
16061 * config/i386/i386.c (attr_strcmp): Likewise.
16062 (sorted_attr_string): Likewise.
16063 (ix86_function_versions): Likewise.
16064 (make_name): Likewise.
16065 (make_dispatcher_decl): Likewise.
16066 (is_function_default_version): Likewise.
16067 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
16068
16069 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16070
16071 PR target/80695
16072 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
16073 Account for direct move costs for vec_construct of integer
16074 vectors.
16075
16076 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
16077
16078 PR target/80706
16079 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
16080 (UNSPEC_STX_ATOMIC): Ditto.
16081 (loaddi_via_sse): New insn.
16082 (storedi_via_sse): Ditto.
16083 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
16084 Update corresponding peephole2 patterns.
16085 (atomic_storedi_fpu): Ditto.
16086
16087 2017-05-11 Julia Koval <julia.koval@intel.com>
16088
16089 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
16090 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
16091 New intrinsics.
16092 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
16093 (__builtin_ia32_rsqrt14ss_mask): New builtins.
16094 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
16095
16096 2017-05-11 Nathan Sidwell <nathan@acm.org>
16097
16098 * graphite-poly.c: Include dumpfile.h.
16099
16100 * dumpfle.h (dump_function): Declare here ...
16101 * tree-dump.h (dump_function): ... not here.
16102 * dumpfile.c: #include tree-cfg.h.
16103 (dump_function): Move here from ...
16104 * tree-dump.c (dump_function): ... here.
16105 * gimplify.c: #include splay-tree.h, not tree-dump.h.
16106 * graphite-poly.c: Don't include tree-dump.h.
16107 * cgraphclones.c: Include dumpfile.h not tree-dump.h.
16108 * print-tree.c: Likewise.
16109 * stor-layout.c: Likewise.
16110 * tree-nested.c: Likewise.
16111
16112 * dumpfile.c (dump_start): Use TDF_FLAGS.
16113 (dump_enable_all): Fix TDF_KIND check thinko.
16114
16115 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
16116
16117 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16118 array entries to represent two legal parameterizations of the
16119 overloaded __builtin_cmpb function, as represented by the
16120 P6_OV_BUILTIN_CMPB constant.
16121 (altivec_resolve_overloaded_builtin): Add special case handling
16122 for the __builtin_cmpb function, as represented by the
16123 P6_OV_BUILTIN_CMPB constant.
16124 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
16125 (BU_P6_64BIT_2): New macro.
16126 (BU_P6_OVERLOAD_2): New macro
16127 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
16128 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
16129 (CMPB): Add overload support to represent both 32-bit and 64-bit
16130 compare-bytes function.
16131 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
16132 support for TARGET_CMPB.
16133 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
16134 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
16135 documentation of the __builtin_cmpb overloaded built-in function.
16136
16137 2017-05-11 Richard Biener <rguenther@suse.de>
16138
16139 PR tree-optimization/80705
16140 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
16141 bases are not vectorizable.
16142
16143 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16144
16145 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
16146 when counting register pressure.
16147
16148 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16149
16150 * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
16151 (iv_ca_more_deps): Renamed to ...
16152 (iv_ca_compare_deps): ... this.
16153 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
16154
16155 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16156
16157 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
16158 to ...
16159 (determine_group_iv_costs): ... here.
16160 (find_inv_vars_cb): Record inv var if it's not recorded before.
16161
16162 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16163
16164 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
16165 (get_shiftadd_cost): Ditto.
16166
16167 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16168
16169 * tree-ssa-address.c: Include header file.
16170 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
16171 address.
16172 (add_to_parts): Refactor.
16173 (addr_to_parts): New parameter. Update use of move_hint_to_base.
16174 (create_mem_ref): Update use of addr_to_parts. Re-associate addr
16175 in new order.
16176
16177 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16178
16179 PR tree-optimization/53090
16180 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
16181 COMP_IV_EXPR_2.
16182 (extract_cond_operands): Detect condition with IV on both sides
16183 and return COMP_IV_EXPR_2.
16184 (find_interesting_uses_cond): Add iv_use for both IVs in condition.
16185 (rewrite_use_compare): Simplify by removing call to function
16186 extract_cond_operands.
16187
16188 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16189
16190 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
16191 (extract_cond_operands): Detect condition comparing against non-
16192 invariant bound and return appropriate enum value.
16193 (find_interesting_uses_cond): Update use of extract_cond_operands.
16194 Handle its return value accordingly.
16195 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
16196
16197 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16198
16199 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
16200 nonlinear iv_use computation in loop invariant sensitive way.
16201
16202 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16203
16204 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
16205 (find_iv_candidates): Call relate_compare_use_with_all_cands.
16206
16207 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16208
16209 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
16210 (dump_cand): Support iv_cand.inv_exprs.
16211 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
16212 for candidates.
16213 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
16214 iv_cand.inv_exprs.
16215
16216 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16217
16218 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
16219 from ...
16220 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
16221 as local function. Include necessary header files.
16222 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
16223
16224 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16225
16226 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
16227
16228 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16229
16230 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
16231 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
16232 RSHIFT_EXPR and BIT_NOT_EXPR.
16233
16234 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16235
16236 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
16237 (adjust_setup_cost): New parameter supporting round up adjustment.
16238 (struct address_cost_data): Delete.
16239 (force_expr_to_var_cost): Don't bound cost with spill_cost.
16240 (split_address_cost, ptr_difference_cost): Delete.
16241 (difference_cost, compare_aff_trees, record_inv_expr): Delete.
16242 (struct ainc_cost_data): New struct.
16243 (get_address_cost_ainc): New function.
16244 (get_address_cost, get_computation_cost): Reimplement.
16245 (determine_group_iv_cost_address): Record inv_expr for all uses of
16246 a group.
16247 (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
16248 (iv_ca_has_deps): Reimplemented to ...
16249 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
16250 than OLD_CP.
16251 (iv_ca_extend): Call iv_ca_more_deps.
16252
16253 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16254
16255 * tree-ssa-address.c (struct mem_address): Move to header file.
16256 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
16257 * tree-ssa-address.h (struct mem_address): Move from C file.
16258 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
16259
16260 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16261
16262 * tree-affine.h (aff_combination_type): New interface.
16263 (aff_combination_zero_p): Remove static.
16264 (aff_combination_const_p): New interface.
16265 (aff_combination_singleton_var_p): New interfaces.
16266
16267 2017-05-11 Richard Biener <rguenther@suse.de>
16268
16269 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16270 Skip unreachable blocks and destinations.
16271 (eliminate): Move stmt removal and fixup ...
16272 (fini_eliminate): ... here. Skip inserted exprs.
16273 (pass_pre::execute): Move fini_pre after fini_eliminate.
16274 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
16275 (tail_merge_optimize): Run cleanup_tree_cfg if requested by
16276 PRE to get rid of dead code that has invalid SSA form and
16277 split critical edges again.
16278
16279 2017-05-11 Bin Cheng <bin.cheng@arm.com>
16280
16281 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
16282
16283 2017-05-11 Richard Biener <rguenther@suse.de>
16284
16285 * passes.c (execute_function_todo): Verify loops if they are
16286 said to be up-to-date.
16287 * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
16288 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
16289
16290 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
16291
16292 PR target/80090
16293 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
16294 handle calling assemble_external ourself.
16295
16296 PR target/79027
16297 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
16298 modes with zero size. Enhance comment.
16299
16300 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16301
16302 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
16303 built-ins for vec_xl and vec_xst with short and char pointer
16304 arguments.
16305
16306 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
16307
16308 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
16309 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
16310 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
16311 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
16312 (_mm_maskz_min_round_ss): New intrinsics.
16313 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
16314 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
16315 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
16316 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
16317 (__builtin_ia32_minss_mask_round): New builtins.
16318 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
16319 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
16320 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
16321 Rename to ...
16322 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
16323 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
16324 Change to ...
16325 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
16326 ... this.
16327
16328 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
16329
16330 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
16331 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
16332 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
16333 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
16334 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
16335 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
16336 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
16337 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
16338 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
16339 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
16340 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
16341 (__builtin_ia32_mulss_mask_round): New builtins.
16342 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
16343 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
16344 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
16345 Rename to ...
16346 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
16347 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
16348 Change to ...
16349 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
16350 ... this.
16351
16352 2017-05-10 Julia Koval <julia.koval@intel.com>
16353
16354 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
16355 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
16356 (_mm256_setr_m128i): New intrinsics.
16357
16358 2017-05-10 Julia Koval <julia.koval@intel.com>
16359
16360 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
16361 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
16362 (_mm_maskz_rcp14_ss): New intrinsics.
16363 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
16364 (__builtin_ia32_rcp14ss_mask): New builtins.
16365 * config/i386/sse.md (srcp14<mode>_mask): New pattern.
16366
16367 2017-05-10 Peter Bergner <bergner@vnet.ibm.com>
16368
16369 PR tree-optimization/51513
16370 * tree-cfg.c (gimple_seq_unreachable_p): New function.
16371 (assert_unreachable_fallthru_edge_p): Use it.
16372 (group_case_labels_stmt): Likewise.
16373 * tree-cfg.h: Prototype it.
16374 * stmt.c: Include cfghooks.h and tree-cfg.h.
16375 (emit_case_dispatch_table) <gap_label>: New local variable.
16376 Use it to fill dispatch table gaps.
16377 Test for default_label before updating probabilities.
16378 (expand_case) <default_label>: Remove unneeded initialization.
16379 Test for unreachable default case statement and remove its edge.
16380 Set default_label accordingly.
16381 * tree-ssa-ccp.c (optimize_unreachable): Update comment.
16382
16383 2017-05-10 Carl Love <cel@us.ibm.com>
16384
16385 * config/rs6000/rs6000-c: Add support for built-in functions
16386 vector signed char vec_neg (vector signed char)
16387 vector signed short int vec_neg (vector short int)
16388 vector signed int vec_neg (vector signed int)
16389 vector signed long long vec_neg (vector signed long long)
16390 vector float vec_neg (vector float)
16391 vector double vec_neg (vector double)
16392 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
16393 overload.
16394 * config/rs6000/altivec.h: Add define for vec_neg
16395 * doc/extend.texi: Update the built-in documentation for the
16396 new built-in functions.
16397
16398 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16399
16400 PR tree-optimization/77644
16401 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
16402
16403 2017-05-10 Nathan Sidwell <nathan@acm.org>
16404
16405 * dumpfile.h (TDI_lang_all): New.
16406 (TDF_KIND): New. Renumber others
16407 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
16408 than bits.
16409 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
16410 lang-all.
16411 (get_dump_file_name): Adjust suffix generation.
16412 (dump_enable_all): Use TDF_KIND.
16413 * doc/invoke.texi (-fdump-lang-all): Document.
16414
16415 * dumpfile.h: Tabify.
16416
16417 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
16418
16419 PR target/80671
16420 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
16421 Move member access before delete.
16422
16423 2017-05-10 Alexandre Oliva <aoliva@redhat.com>
16424
16425 * tree-inline.c (expand_call_inline): Split block at stmt
16426 before the call.
16427
16428 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
16429
16430 PR target/68163
16431 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
16432 are now unused after splitting mov{sf,sd}_hardfloat.
16433 (f32_lr2): Likewise.
16434 (f32_lm): Likewise.
16435 (f32_lm2): Likewise.
16436 (f32_li): Likewise.
16437 (f32_li2): Likewise.
16438 (f32_lv): Likewise.
16439 (f32_sr): Likewise.
16440 (f32_sr2): Likewise.
16441 (f32_sm): Likewise.
16442 (f32_sm2): Likewise.
16443 (f32_si): Likewise.
16444 (f32_si2): Likewise.
16445 (f32_sv): Likewise.
16446 (f32_dm): Likewise.
16447 (f32_vsx): Likewise.
16448 (f32_av): Likewise.
16449 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
16450 For movsf, order stores so the VSX stores occur before the GPR
16451 store which encourages the register allocator to use a traditional
16452 FPR instead of a GPR. For movsd, order the stores so that the GPR
16453 store comes before the VSX stores to allow the power6 to work.
16454 This is due to the power6 not having a 32-bit integer store
16455 instruction from a FPR.
16456 (movsf_hardfloat): Likewise.
16457 (movsd_hardfloat): Likewise.
16458
16459 2017-05-09 Martin Sebor <msebor@redhat.com>
16460
16461 PR translation/80280
16462 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
16463 added in r247778.
16464
16465 PR translation/80280
16466 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
16467 data member added in r247778.
16468 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
16469
16470 2017-05-09 Nathan Sidwell <nathan@acm.org>
16471
16472 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
16473
16474 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
16475 typedefs.
16476
16477 2017-05-09 Marek Polacek <polacek@redhat.com>
16478
16479 * doc/invoke.texi: Fix typo.
16480
16481 2017-05-09 Richard Biener <rguenther@suse.de>
16482
16483 * tree-vrp.c (vrp_val_is_max): Adjust comment.
16484 (vrp_val_is_min): Likewise.
16485 (set_value_range_to_value): Likewise.
16486 (set_value_range_to_nonnegative): Likewise.
16487 (gimple_assign_nonzero_p): Likewise.
16488 (gimple_stmt_nonzero_p): Likewise.
16489 (vrp_int_const_binop): Likewise. Remove unreachable case.
16490 (adjust_range_with_scev): Adjust comments.
16491 (compare_range_with_value): Likewise.
16492 (extract_range_from_phi_node): Likewise.
16493 (test_for_singularity): Likewise.
16494
16495 2017-05-09 Richard Biener <rguenther@suse.de>
16496
16497 * tree-vrp.c (get_single_symbol): Add assert that we don't
16498 get overflowed constants as invariant part.
16499 (compare_values_warnv): Add comment before the TREE_NO_WARNING
16500 checks. Use wi::cmp instead of recursing for integer constants.
16501 (compare_values): Just ignore whether we assumed undefined
16502 overflow instead of failing the compare.
16503 (extract_range_for_var_from_comparison_expr): Add comment before the
16504 TREE_NO_WARNING sets.
16505 (test_for_singularity): Likewise.
16506 (extract_range_from_comparison): Do not disable optimization
16507 when we assumed undefined overflow.
16508 (extract_range_basic): Remove init of unused var.
16509
16510 2017-05-09 Richard Biener <rguenther@suse.de>
16511
16512 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
16513 (extract_range_from_multiplicative_op_1): Adjust.
16514 (extract_range_from_binary_expr_1): Use int_const_binop.
16515
16516 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
16517
16518 PR target/80101
16519 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
16520 rs6000_store_data_bypass_p in seven define_bypass directives and
16521 in several comments.
16522 * config/rs6000/rs6000-protos.h: Add prototype for
16523 rs6000_store_data_bypass_p function.
16524 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
16525 function implements slightly different (rs6000-specific) semantics
16526 than store_data_bypass_p, returning false rather than aborting
16527 with assertion error when arguments do not satisfy the
16528 requirements of store data bypass.
16529 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
16530 rs6000_store_data_bypass_p.
16531
16532 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
16533
16534 * config/xtensa/xtensa-protos.h
16535 (xtensa_initial_elimination_offset): New declaration.
16536 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
16537 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
16538 macro definition, add case for FRAME_POINTER_REGNUM when
16539 FRAME_GROWS_DOWNWARD.
16540 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
16541 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
16542 xtensa_initial_elimination_offset.
16543
16544 2017-05-08 Nathan Sidwell <nathan@acm.org>
16545
16546 * doc/invoke.texi: Alphabetize -fdump options.
16547
16548 2017-05-08 Martin Sebor <msebor@redhat.com>
16549
16550 PR translation/80280
16551 * config/sol2-c.c (solaris_pragma_align): Correct quoting.
16552
16553 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
16554
16555 * target.def (compute_frame_layout): New optional target hook.
16556 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
16557 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
16558 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
16559 target hook.
16560 * reload1.c (verify_initial_elim_offsets): Likewise.
16561 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
16562 (use_simple_return_p): Call arm_compute_frame_layout if needed.
16563 (arm_get_frame_offsets): Split up into this ...
16564 (arm_compute_frame_layout): ... and this function.
16565
16566 2017-05-08 Richard Sandiford <richard.sandiford@arm.com>
16567
16568 * config/aarch64/constraints.md (Usa): New constraint.
16569 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
16570
16571 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
16572
16573 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
16574 with_multilib_list after it has been checked.
16575
16576 2017-05-08 Richard Biener <rguenther@suse.de>
16577
16578 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
16579 (bitmap_set_subtract_values): Likewise.
16580
16581 2017-05-08 Richard Biener <rguenther@suse.de>
16582
16583 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
16584 (gimple_assign_nonzero): ... this and remove strict_overflow_p
16585 argument.
16586 (gimple_stmt_nonzero_warnv_p): Rename to ...
16587 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
16588 argument.
16589 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
16590 (extract_range_basic): Adjust, do not disable propagation on
16591 strict overflow sensitive simplification.
16592 (vrp_visit_cond_stmt): Likewise.
16593
16594 2017-05-05 Jan Hubicka <hubicka@ucw.cz>
16595
16596 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
16597 body size unconditionally.
16598
16599 2017-05-07 Jeff Law <law@redhat.com>
16600
16601 Revert:
16602 2017-05-06 Jeff Law <law@redhat.com>
16603 PR tree-optimization/78496
16604 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
16605 code.
16606
16607 PR tree-optimization/78496
16608 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
16609 (simplify_stmt_using_ranges): Call it.
16610 (vrp_dom_walker::before_dom_children): Extract equivalences
16611 from an ASSERT_EXPR with an equality comparison against a
16612 constant.
16613
16614 2017-05-06 Jeff Law <law@redhat.com>
16615
16616 PR tree-optimization/78496
16617 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
16618 code.
16619
16620 PR tree-optimization/78496
16621 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
16622 (simplify_stmt_using_ranges): Call it.
16623 (vrp_dom_walker::before_dom_children): Extract equivalences
16624 from an ASSERT_EXPR with an equality comparison against a
16625 constant.
16626
16627 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
16628
16629 * lra-constraints.c (lra_copy_reg_equiv): New function.
16630 (split_reg): Use it to copy equivalence information from the
16631 original register to the spill register.
16632
16633 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
16634
16635 PR rtl-optimization/75964
16636 * simplify-rtx.c (simplify_const_relational_operation): Remove
16637 invalid handling of comparisons of integer ABS.
16638
16639 2017-05-06 Uros Bizjak <ubizjak@gmail.com>
16640
16641 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
16642 initialize to zero.
16643 (init_regs): Remove declaration.
16644 (function_arg_advance_32): Initialize error_p as boolean variable.
16645
16646 2017-05-05 Nathan Sidwell <nathan@acm.org>
16647
16648 * store-motion.c (remove_reachable_equiv_notes): Reformat long
16649 lines. Use for (;;).
16650
16651 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16652
16653 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
16654 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
16655 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
16656 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
16657 VF=2 that require versioning.
16658
16659 2017-05-05 David Malcolm <dmalcolm@redhat.com>
16660
16661 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
16662 int.
16663
16664 2017-05-05 David Malcolm <dmalcolm@redhat.com>
16665
16666 * diagnostic.h (diagnostic_override_option_index): Convert from
16667 macro to inline function.
16668
16669 2017-05-05 David Malcolm <dmalcolm@redhat.com>
16670
16671 * diagnostic.c (last_module_changed_p): New function.
16672 (set_last_module): New function.
16673 (diagnostic_report_current_module): Convert macro usage to
16674 the above functions.
16675 * diagnostic.h (diagnostic_context::last_module): Strengthen
16676 from const line_map * to const line_map_ordinary *.
16677 (diagnostic_last_module_changed): Delete macro.
16678 (diagnostic_set_last_module): Delete macro.
16679
16680 2017-05-05 David Malcolm <dmalcolm@redhat.com>
16681
16682 * diagnostic.c (diagnostic_impl): Replace report_diagnostic
16683 with diagnostic_report_diagnostic.
16684 (diagnostic_n_impl_richloc): Likewise.
16685 * diagnostic.h (report_diagnostic): Delete macro.
16686 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
16687 with diagnostic_report_diagnostic.
16688 * substring-locations.c (format_warning_va): Likewise.
16689
16690 2017-05-05 David Malcolm <dmalcolm@redhat.com>
16691
16692 * diagnostic.c (diagnostic_report_diagnostic): Eliminate
16693 save/restor of format_spec. Move option-printing code to...
16694 (print_option_information): ...this new function, and
16695 reimplement by simply printing to the pretty_printer,
16696 rather than appending to the format string.
16697
16698 2017-05-05 David Malcolm <dmalcolm@redhat.com>
16699
16700 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
16701 handling logic into...
16702 (update_effective_level_from_pragmas): ...this new function.
16703
16704 2017-05-04 Andrew Waterman <andrew@sifive.com>
16705
16706 * config/riscv/riscv.opt (mstrict-align): New option.
16707 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
16708 (SLOW_UNALIGNED_ACCESS): Define.
16709 (riscv_slow_unaligned_access): Declare.
16710 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
16711 field.
16712 (riscv_slow_unaligned_access): New variable.
16713 (rocket_tune_info): Set slow_unaligned_access to true.
16714 (optimize_size_tune_info): Set slow_unaligned_access to false.
16715 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
16716 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
16717 (riscv_option_override): Set riscv_slow_unaligned_access.
16718 * doc/invoke.texi: Add -mstrict-align to RISC-V.
16719
16720 2017-05-04 Kito Cheng <kito.cheng@gmail.com>
16721
16722 * config/riscv/riscv.md: Unify indentation.
16723
16724 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
16725
16726 PR target/79038
16727 PR target/79202
16728 PR target/79203
16729 * config/rs6000/rs6000.md (u code attribute): Add FIX and
16730 UNSIGNED_FIX.
16731 (extendsi<mode>2): Add support for doing sign extension via
16732 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
16733 don't have ISA 3.0 instructions.
16734 (extendsi<mode>2 splitter): Likewise.
16735 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
16736 generate the normal insns since SImode can now go in vector
16737 registers. Disallow the special UNSPECs needed for previous
16738 machines to hide SImode being used. Add new insns
16739 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
16740 (fix_trunc<mode>si2_stfiwx): Likewise.
16741 (fix_trunc<mode>si2_internal): Likewise.
16742 (fixuns_trunc<mode>si2): Likewise.
16743 (fixuns_trunc<mode>si2_stfiwx): Likewise.
16744 (fctiw<u>z_<mode>_smallint): Likewise.
16745 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
16746 of floating point to 32-bit integer from doing a direct move to
16747 the GPR registers to do a store.
16748 (fctiwz_<mode>): Break long line.
16749
16750 2017-05-05 Bin Cheng <bin.cheng@arm.com>
16751
16752 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
16753 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
16754 (addr_list, addr_offset_valid_p): New.
16755 (split_address_groups): Check offset validity with above function.
16756 (gt-tree-ssa-loop-ivopts.h): Include header file.
16757
16758 2017-05-05 Nathan Sidwell <nathan@acm.org>
16759
16760 * config.gcc (arm*-*-*): Add missing 'fi'.
16761
16762 2017-05-05 Steve Ellcey <sellcey@cavium.com>
16763
16764 * doc/invoke.texi (-fopt-info): Explicitly say order of options
16765 included in -fopt-info does not matter.
16766 * doc/optinfo.texi (-fopt-info): Fix description of default
16767 behavour. Explicitly say order of options included in -fopt-info
16768 does not matter.
16769
16770 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
16771
16772 * config.gcc: Allow combinations of aprofile and rmprofile values for
16773 --with-multilib-list.
16774 * config/arm/t-multilib: New file.
16775 * config/arm/t-aprofile: Remove initialization of MULTILIB_*
16776 variables. Remove setting of ISA and floating-point ABI in
16777 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in
16778 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
16779 and MULTILIB_DIRNAMES respectively. Add comment to introduce all
16780 matches. Add architecture matches for marvel-pj4 and generic-armv7-a
16781 CPU options.
16782 * config/arm/t-rmprofile: Likewise except for the matches changes.
16783 * doc/install.texi (--with-multilib-list): Document the combination of
16784 aprofile and rmprofile values and warn about pitfalls in doing that.
16785
16786 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
16787
16788 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
16789 (movdi_aarch64): Likewise.
16790
16791 2017-05-05 Jakub Jelinek <jakub@redhat.com>
16792
16793 PR tree-optimization/80632
16794 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
16795 field.
16796 (build_arrays): Initialize it for virtual phis.
16797 (fix_phi_nodes): Use it for virtual phis.
16798
16799 PR tree-optimization/80558
16800 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
16801 [x, y] op z into [x op, y op z] for op & or | if conditions
16802 are met.
16803
16804 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
16805 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
16806
16807 PR target/71607
16808 * config/arm/arm.md (use_literal_pool): Remove.
16809 (64-bit immediate split): No longer takes cost into consideration
16810 if arm_disable_literal_pool is enabled.
16811 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
16812 used when arm_disable_literal_pool is enabled.
16813 (arm_max_const_double_inline_cost): Remove use of
16814 arm_disable_literal_pool.
16815 (push_minipool_fix): Add assert.
16816 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
16817 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
16818 (no_literal_pool_sf_immediate): New.
16819
16820 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16821
16822 PR tree-optimization/80613
16823 * tree-ssa-dce.c (propagate_necessity): Remove cases for
16824 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
16825
16826 2017-05-05 Richard Biener <rguenther@suse.de>
16827
16828 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
16829
16830 2017-05-05 Georg-Johann Lay <avr@gjlay.de>
16831
16832 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
16833 of this flag from insn conditions due to removal from r247495.
16834
16835 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
16836
16837 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
16838 New function.
16839 (arm_early_store_addr_dep_ptr): Likewise.
16840 * config/arm/aarch-common-protos.h
16841 (arm_early_load_addr_dep_ptr): Add prototype.
16842 (arm_early_store_addr_dep_ptr): Likewise.
16843 * config/arm/cortex-a53.md: Add new bypasses.
16844
16845 2017-05-05 Jakub Jelinek <jakub@redhat.com>
16846
16847 * tree.c (next_type_uid): Change type to unsigned.
16848 (type_hash_canon): Decrement back next_type_uid if
16849 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs
16850 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
16851 if possible.
16852
16853 2017-05-04 Martin Sebor <msebor@redhat.com>
16854
16855 * builtins.c: Fix a trivial typo in a comment.
16856
16857 PR middle-end/79234
16858 * builtins.c (check_sizes): Adjust to handle reading past the end.
16859 Avoid printing excessive upper bound of ranges. Use %E to print
16860 tree nodes instead of converting them to %wu.
16861 (expand_builtin_memchr): New function.
16862 (compute_dest_size): Rename...
16863 (compute_objsize): ...to this.
16864 (expand_builtin_memcpy): Adjust.
16865 (expand_builtin_mempcpy): Adjust.
16866 (expand_builtin_strcat): Adjust.
16867 (expand_builtin_strcpy): Adjust.
16868 (check_strncat_sizes): Adjust.
16869 (expand_builtin_strncat): Adjust.
16870 (expand_builtin_strncpy): Adjust and simplify.
16871 (expand_builtin_memset): Adjust.
16872 (expand_builtin_bzero): Adjust.
16873 (expand_builtin_memcmp): Adjust.
16874 (expand_builtin): Handle memcmp.
16875 (maybe_emit_chk_warning): Check strncat just once.
16876
16877 2017-05-04 Martin Sebor <msebor@redhat.com>
16878
16879 PR preprocessor/79214
16880 PR middle-end/79222
16881 PR middle-end/79223
16882 * builtins.c (check_sizes): Add inlining context and issue
16883 warnings even when -Wno-system-headers is set.
16884 (check_strncat_sizes): Same.
16885 (expand_builtin_strncat): Same.
16886 (expand_builtin_memmove): New function.
16887 (expand_builtin_stpncpy): Same.
16888 (expand_builtin): Handle memmove and stpncpy.
16889
16890 2017-05-04 Bin Cheng <bin.cheng@arm.com>
16891
16892 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
16893 which is not used any more.
16894
16895 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
16896
16897 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
16898
16899 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
16900
16901 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
16902 (cortexa53_tunings): Likewise.
16903 (cortexa57_tunings): Likewise.
16904 (cortexa72_tunings): Likewise.
16905 (cortexa73_tunings): Likewise.
16906
16907 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
16908
16909 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
16910 Set loop alignment to 8.
16911
16912 2017-05-04 Martin Sebor <msebor@redhat.com>
16913
16914 PR translation/80280
16915 * builtins.c (expand_builtin_object_size): Add missing quoting to
16916 %D and like directives.
16917 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
16918 (hsa_type_for_tree_type): Same.
16919 (verify_function_arguments): Same.
16920 * symtab.c (symbol_table::change_decl_assembler_name): Same.
16921 * varasm.c (get_section): Same.
16922 (mark_weak): Same.
16923
16924 2017-05-04 Martin Sebor <msebor@redhat.com>
16925
16926 PR translation/80280
16927 * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
16928
16929 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
16930
16931 * config/aarch64/aarch64.c (generic_addrcost_table):
16932 Change HI/TI mode setting.
16933
16934 2017-05-04 Martin Jambor <mjambor@suse.cz>
16935
16936 PR tree-optimization/80622
16937 * tree-sra.c (comes_initialized_p): New function.
16938 (build_accesses_from_assign): Only set write lazily when
16939 comes_initialized_p is false.
16940 (analyze_access_subtree): Use comes_initialized_p.
16941 (propagate_subaccesses_across_link): Assert !comes_initialized_p
16942 instead of testing for PARM_DECL.
16943
16944 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16945
16946 * config/aarch64/aarch64.md (prefetch); Adjust predicate and
16947 constraint on operand 0 to allow more general addressing modes.
16948 Adjust output template.
16949 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
16950 New function.
16951 * config/aarch64/aarch64-protos.h
16952 (aarch64_address_valid_for_prefetch_p): Declare prototype.
16953 * config/aarch64/constraints.md (Dp): New address constraint.
16954 * config/aarch64/predicates.md (aarch64_prefetch_operand): New
16955 predicate.
16956
16957 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
16958
16959 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
16960 update use of estimate_ipcp_clone_size_and_time.
16961 (estimate_local_effects): Update use of
16962 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
16963 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
16964 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
16965 Return nonspecialized time.
16966
16967 2017-05-04 Richard Biener <rguenther@suse.de>
16968
16969 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
16970 for the last VUSE which def dominates the PHI. Directly call
16971 maybe_skip_until.
16972 (get_continuation_for_phi_1): Remove.
16973
16974 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
16975
16976 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
16977 to explain the use of truncating division. Cap the number of
16978 iterations to the maximum given by nb_iterations_upper_bound,
16979 if defined.
16980
16981 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
16982
16983 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
16984 * configure: Regenerate.
16985 * config.in: Regenerate.
16986 * config/i386/driver-mingw32.c: new file.
16987 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
16988 * config.host: Link driver-mingw32.o on MinGW host.
16989 * doc/install.texi: Document new --enable-mingw-wildcard configure
16990 option.
16991
16992 2017-05-04 Marek Polacek <polacek@redhat.com>
16993
16994 PR tree-optimization/80612
16995 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
16996
16997 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
16998 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
16999
17000 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
17001 (movt splitter): Likewise.
17002 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
17003 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
17004 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
17005 block for Thumb-1 with MOVT.
17006 (thumb2_legitimate_address_p): Move code block ...
17007 (can_avoid_literal_pool_for_label_p): ... into this new function.
17008 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
17009 literal pool.
17010 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
17011 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
17012 "M-profile targets with the MOVT instruction".
17013
17014 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
17015
17016 * config/arm/arm-builtins.c (arm_init_builtins): Rename
17017 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
17018 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
17019
17020 2017-05-04 Martin Liska <mliska@suse.cz>
17021
17022 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
17023 variable cond_code.
17024
17025 2017-05-04 Richard Biener <rguenther@suse.de>
17026
17027 * tree.c (array_at_struct_end_p): Handle arrays at struct
17028 end with flexarrays more conservatively. Refactor and treat
17029 arrays of arrays or aggregates more strict. Fix
17030 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
17031 * tree.c (array_at_struct_end_p): Adjust prototype.
17032 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
17033 * gimple-fold.c (get_range_strlen): Likewise.
17034 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
17035
17036 2017-05-04 Richard Biener <rguenther@suse.de>
17037
17038 PR tree-optimization/31130
17039 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
17040 false.
17041 (supports_overflow_infinity): Likewise.
17042 (is_negative_overflow_infinity): Likewise.
17043 (is_positive_overflow_infinity): Likewise.
17044 (is_overflow_infinity): Likewise.
17045 (stmt_overflow_infinity): Likewise.
17046 (overflow_infinity_range_p): Likewise.
17047 (usable_range_p): Remove as always returning true.
17048 (make_overflow_infinity): Remove.
17049 (negative_overflow_infinity): Likewise.
17050 (positive_overflow_infinity): Likewise.
17051 (avoid_overflow_infinity): Likewise.
17052 (set_value_range): Adjust accordingly.
17053 (set_value_range_to_nonnegative): Likewise, remove now unused
17054 overflow_infinity arg.
17055 (vrp_operand_equal_p): Adjust.
17056 (update_value_range): Likewise.
17057 (range_int_cst_singleton_p): Likewise.
17058 (operand_less_p): Likewise.
17059 (compare_values_warnv): Likewise.
17060 (extract_range_for_var_from_comparison_expr): Likewise.
17061 (vrp_int_const_binop): Likewise.
17062 (zero_nonzero_bits_from_vr): Likewise.
17063 (extract_range_from_multiplicative_op_1): Likewise.
17064 (extract_range_from_binary_expr_1): Likewise.
17065 (extract_range_from_unary_expr): Likewise.
17066 (extract_range_from_comparison): Likewise.
17067 (extract_range_basic): Likewise.
17068 (adjust_range_with_scev): Likewise.
17069 (compare_ranges): Likewise.
17070 (compare_range_with_value): Likewise.
17071 (dump_value_range): Likewise.
17072 (test_for_singularity): Likewise, remove strict_overflow_p parameter
17073 never used.
17074 (simplify_cond_using_ranges): Adjust.
17075
17076 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
17077
17078 * brig-builtins.def: Added a builtin for class_f64.
17079 * builtin-types.def: Added a builtin type needed by class_f64.
17080
17081 2017-05-03 Jason Merrill <jason@redhat.com>
17082
17083 * timevar.def: Add TV_CONSTEXPR.
17084
17085 2017-05-03 David Malcolm <dmalcolm@redhat.com>
17086
17087 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
17088
17089 2017-05-03 Martin Jambor <mjambor@suse.cz>
17090
17091 * ipa-prop.c (ipa_update_after_lto_read): Removed.
17092 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
17093 * ipa-cp.c (ipcp_propagate_stage): Do not call
17094 ipa_update_after_lto_read.
17095 * ipa-inline.c (ipa_inline): Likewise.
17096
17097 2017-05-03 Martin Jambor <mjambor@suse.cz>
17098
17099 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
17100 tag. Added a default constructor and a destructor.
17101 (ipa_edge_args_sum_t): New class;
17102 (ipa_edge_args_sum): Declare.
17103 (ipa_edge_args_vector): Remove declaration.
17104 (IPA_EDGE_REF): Use ipa_edge_args_sum.
17105 (ipa_free_edge_args_substructures): Remove declaration.
17106 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
17107 (ipa_edge_args_info_available_for_edge_p): Likewise.
17108 * ipa-prop.c (ipa_edge_args_vector): Removed.
17109 (edge_removal_hook_holder): Likewise.
17110 (edge_duplication_hook_holder): Likewise.
17111 (ipa_edge_args_sum): New variable.
17112 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
17113 ipa_edge_args_vector.
17114 (ipa_free_edge_args_substructures): Likewise.
17115 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
17116 ipa_edge_args_vector.
17117 (ipa_edge_removal_hook): Turned into method
17118 ipa_edge_args_sum_t::remove.
17119 (ipa_edge_duplication_hook): Turned into method
17120 ipa_edge_args_sum_t::duplicate.
17121 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
17122 registering edge hooks.
17123 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
17124 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
17125 ipa_edge_args_sum instead of ipa_edge_args_vector.
17126 * ipa-profile.c (ipa_profile): Likewise.
17127
17128 2017-05-03 Martin Jambor <mjambor@suse.cz>
17129
17130 * symbol-summary.h (function_summary): New method exists.
17131 (function_summary::symtab_removal): Deallocate through release.
17132 (call_summary): New class.
17133 (gt_ggc_mx): New overload.
17134 (gt_pch_nx): Likewise.
17135 (gt_pch_nx): Likewise.
17136
17137 2017-05-03 Jeff Law <law@redhat.com>
17138
17139 PR tree-optimization/78496
17140 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
17141 from simplify_cond_using_ranges. Split off code to walk
17142 backwards through casts into ...
17143 (simplify_cond_using_ranges_2): New function.
17144 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
17145 (execute_vrp): After identifying jump threads, call
17146 simplify_cond_using_ranges_2.
17147
17148 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
17149
17150 PR bootstrap/80609
17151 * ipa-inline.h (inline_summary): Add ctor.
17152 (create_ggc): Do not use ggc_cleared_alloc.
17153
17154 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
17155 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17156
17157 * gcc.c (handle_braces): Support escaping in switch matching
17158 text.
17159 * doc/invoke.texi (Spec Files): Document it.
17160 Remove superfluous @code markup in items.
17161
17162 2017-05-03 David Malcolm <dmalcolm@redhat.com>
17163
17164 * diagnostic-show-locus.c (struct column_range): New struct.
17165 (get_affected_columns): New function.
17166 (get_printed_columns): New function.
17167 (struct correction): New struct.
17168 (correction::ensure_capacity): New function.
17169 (correction::ensure_terminated): New function.
17170 (struct line_corrections): New struct.
17171 (line_corrections::~line_corrections): New dtor.
17172 (line_corrections::add_hint): New function.
17173 (layout::print_trailing_fixits): Reimplement in terms of the new
17174 classes.
17175 (selftest::test_overlapped_fixit_printing): New function.
17176 (selftest::diagnostic_show_locus_c_tests): Call it.
17177
17178 2017-05-03 Nathan Sidwell <nathan@acm.org>
17179
17180 Canonicalize canonical type hashing
17181 * tree.h (type_hash_canon_hash): Declare.
17182 * tree.c (type_hash_list, attribute_hash_list): Move into
17183 type_hash_canon_hash.
17184 (build_type_attribute_qual_variant): Break out hash code calc into
17185 type_hash_canon_hash.
17186 (type_hash_canon_hash): New. Generic type hash computation.
17187 (build_range_type_1, build_array_type_1, build_function_type,
17188 build_method_type_directly, build_offset_type, build_complex_type,
17189 make_vector_type): Call it.
17190
17191 2017-05-03 Richard Biener <rguenther@suse.de>
17192
17193 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
17194 When all DRs have unknown misaligned do not always peel
17195 when there is a store but apply the same costing model as if
17196 there were only loads.
17197
17198 2017-05-03 Richard Biener <rguenther@suse.de>
17199
17200 Revert
17201 PR tree-optimization/80492
17202 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
17203 compare_base_decls returning dont-know properly.
17204
17205 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
17206
17207 * config/arm/iterators.md (CCSI): New mode iterator.
17208 (arch): New mode attribute.
17209 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
17210 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
17211 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
17212 code iterator for success result mode.
17213 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
17214 the corresponding new insn generators.
17215
17216 2017-05-03 Bin Cheng <bin.cheng@arm.com>
17217
17218 Revert r247509
17219 2017-05-02 Bin Cheng <bin.cheng@arm.com>
17220 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
17221
17222 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
17223
17224 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
17225 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
17226 (DDR_A): Wrap DDR argument in brackets.
17227 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
17228 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
17229 (DDR_REVERSED_P): Likewise.
17230
17231 2017-05-03 Jakub Jelinek <jakub@redhat.com>
17232
17233 PR tree-optimization/79472
17234 * tree-switch-conversion.c (struct switch_conv_info): Add
17235 contiguous_range and default_case_nonstandard fields.
17236 (collect_switch_conv_info): Compute contiguous_range and
17237 default_case_nonstandard fields, don't clear final_bb if
17238 contiguous_range and only the default case doesn't have the required
17239 structure.
17240 (check_all_empty_except_final): Set default_case_nonstandard instead
17241 of failing if contiguous_range and the default case doesn't have empty
17242 block.
17243 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
17244 and only the default case doesn't have the required constants. Skip
17245 virtual phis.
17246 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
17247 if default_case_nonstandard.
17248 (build_constructors): Build constant 1 just once. Assert that default
17249 values aren't inserted in between cases if contiguous_range. Skip
17250 virtual phis.
17251 (build_arrays): Skip virtual phis.
17252 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
17253 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
17254 Handle virtual phis.
17255 (gen_inbound_check): Handle default_case_nonstandard case.
17256 (process_switch): Adjust check_final_bb caller. Call
17257 gather_default_values with the first non-default case instead of
17258 default case if default_case_nonstandard.
17259
17260 2017-05-02 Nathan Sidwell <nathan@acm.org>
17261
17262 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
17263 check. Fix formatting.
17264
17265 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
17266
17267 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
17268 errors when comparing specialized and unspecialized times.
17269
17270 2017-05-02 David Malcolm <dmalcolm@redhat.com>
17271
17272 * diagnostic-show-locus.c
17273 (layout::should_print_annotation_line_p): Make private.
17274 (layout::print_annotation_line): Make private.
17275 (layout::annotation_line_showed_range_p): Make private.
17276 (layout::show_ruler): Make private.
17277 (layout::print_source_line): Make private. Pass in line and
17278 line_width, rather than calling location_get_source_line. Drop
17279 returned value.
17280 (layout::print_leading_fixits): New method.
17281 (layout::print_any_fixits): Rename to...
17282 (layout::print_trailing_fixits): ...this, and make private.
17283 Don't print newline fixits.
17284 (diagnostic_show_locus): Move logic for printing one row into...
17285 (layout::print_line): ...this new function. Move the
17286 location_get_source_line call and error-handling from
17287 print_source_line to here. Call print_leading_fixits, and rename
17288 print_any_fixits to print_trailing_fixits.
17289 (selftest::test_fixit_insert_containing_newline): Update now that
17290 newlines are partially supported.
17291 (selftest::test_fixit_insert_containing_newline_2): New test.
17292 (selftest::test_fixit_replace_containing_newline): Update comments.
17293 (selftest::diagnostic_show_locus_c_tests): Call the new test.
17294 * edit-context.c (class added_line): New class.
17295 (class edited_line): Describe newline handling in comment.
17296 (edited_line::actually_edited_p): New method.
17297 (edited_line::print_content): Delete redundant decl.
17298 (edited_line::m_predecessors): New field.
17299 (edited_file::print_content): Call edited_line::print_content.
17300 (edited_file::print_diff): Update to support newlines.
17301 (edited_file::print_diff_hunk): Likewise.
17302 (edited_file::print_run_of_changed_lines): New function.
17303 (edited_file::print_diff_line): Convert to...
17304 (print_diff_line): ...this.
17305 (edited_file::get_effective_line_count): New function.
17306 (edited_line::edited_line): Initialize new field m_predecessors.
17307 (edited_line::~edited_line): Clean up m_predecessors.
17308 (edited_line::apply_fixit): Handle newlines.
17309 (edited_line::get_effective_line_count): New function.
17310 (edited_line::print_content): New function.
17311 (edited_line::print_diff_lines): New function.
17312 (selftest::test_applying_fixits_insert_containing_newline): New
17313 test.
17314 (selftest::test_applying_fixits_replace_containing_newline): New
17315 test.
17316 (selftest::insert_line): New function.
17317 (selftest::test_applying_fixits_multiple_lines): Add example of
17318 inserting a line.
17319 (selftest::edit_context_c_tests): Call the new tests.
17320
17321 2017-05-02 Bin Cheng <bin.cheng@arm.com>
17322
17323 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
17324 parameter cand. Update dump information.
17325 (get_computation_cost): Update uses.
17326
17327 2017-05-02 Bin Cheng <bin.cheng@arm.com>
17328
17329 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
17330 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
17331 (get_computation_at, rewrite_use_address): Update use of
17332 get_computation_aff.
17333
17334 2017-05-02 Bin Cheng <bin.cheng@arm.com>
17335
17336 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
17337 (get_computation): Delete.
17338 (get_computation_cost): Implement like get_computation_cost_at.
17339 Use get_computation_at.
17340 (get_computation_cost_at): Delete.
17341 (rewrite_use_nonlinear_expr): Use get_computation_at.
17342 (rewrite_use_compare, remove_unused_ivs): Ditto.
17343
17344 2017-05-02 Bin Cheng <bin.cheng@arm.com>
17345
17346 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
17347
17348 2017-05-02 Bin Cheng <bin.cheng@arm.com>
17349
17350 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
17351 (ivopts_global_cost_for_size): Rename parameter and update uses.
17352 (iv_ca_recount_cost): Update uses.
17353 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
17354 candidates seperately in n_invs and n_cands.
17355 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
17356
17357 2017-05-02 Bin Cheng <bin.cheng@arm.com>
17358
17359 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
17360 (find_inv_vars_cb): New.
17361 (find_depends): Renamed to ...
17362 (find_inv_vars): ... this.
17363 (add_candidate_1, force_var_cost): Call find_inv_vars.
17364 (split_address_cost, determine_group_iv_cost_cond): Ditto.
17365
17366 2017-05-02 Bin Cheng <bin.cheng@arm.com>
17367
17368 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
17369 inv_vars. Add inv_exprs.
17370 (struct iv_cand): Rename depends_on to inv_vars.
17371 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
17372 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
17373 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
17374 (dump_cand): Dump inv_vars.
17375 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
17376 (record_invariant, find_depends, add_candidate_1): Ditto.
17377 (set_group_iv_cost, force_var_cost): Ditto.
17378 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
17379 (get_computation_cost_at, get_computation_cost): Ditto.
17380 (determine_group_iv_cost_generic): Ditto.
17381 (determine_group_iv_cost_address): Ditto.
17382 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
17383 (determine_group_iv_costs): Ditto.
17384 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
17385 (iv_ca_set_remove_invariants): Renamed to ...
17386 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
17387 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
17388 (iv_ca_set_add_invariants): Renamed to ...
17389 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
17390 (iv_ca_set_cp): Use iv_ca_set_add_invs.
17391 (iv_ca_has_deps): Support inv_vars and inv_exprs.
17392 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
17393 (create_new_ivs): Remove useless dump.
17394
17395 2017-05-02 Bin Cheng <bin.cheng@arm.com>
17396
17397 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
17398 iv_cand code.
17399 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
17400 (iv_ca_set_no_cp, create_new_iv): Ditto.
17401
17402 2017-05-02 Bin Cheng <bin.cheng@arm.com>
17403
17404 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
17405
17406 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
17407
17408 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
17409 function tree_check2.
17410
17411 2017-05-02 Martin Liska <mliska@suse.cz>
17412
17413 * doc/gcov.texi: Add missing preposition.
17414 * gcov.c (function_info::function_info): Properly fill up
17415 all member variables.
17416
17417 2017-05-02 Tamar Christina <tamar.christina@arm.com>
17418
17419 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
17420
17421 2017-05-02 Tamar Christina <tamar.christina@arm.com>
17422
17423 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
17424
17425 2017-05-02 Martin Liska <mliska@suse.cz>
17426
17427 PR lto/77954.
17428 * lto-streamer-in.c (lto_read_tree_1): Remove
17429 LTO_STREAMER_DEBUG.
17430 * lto-streamer.c (struct tree_hash_entry): Likewise.
17431 (struct tree_entry_hasher): Likewise.
17432 (tree_entry_hasher::hash): Likewise.
17433 (tree_entry_hasher::equal): Likewise.
17434 (lto_streamer_init): Likewise.
17435 (lto_orig_address_map): Likewise.
17436 (lto_orig_address_get): Likewise.
17437 (lto_orig_address_remove): Likewise.
17438 * lto-streamer.h: Likewise.
17439 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
17440 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
17441
17442 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
17443
17444 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
17445 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
17446 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
17447 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
17448 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
17449 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
17450 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
17451 (mm_maskz_sub_ss): New intrinsics.
17452 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
17453 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
17454 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
17455 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
17456 (__builtin_ia32_subss_mask_round): New builtins.
17457 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
17458 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
17459 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
17460 Renamed to ...
17461 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
17462 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
17463 Changed to ...
17464 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
17465 ... this.
17466
17467 2017-05-02 Martin Jambor <mjambor@suse.cz>
17468
17469 PR tree-optimization/78687
17470 * tree-sra.c (access): New field parent.
17471 (process_subtree_disqualification): New function.
17472 (disqualify_candidate): Call it.
17473 (build_accesses_from_assign): Reset write flag if creating an
17474 assighnment link.
17475 (build_access_subtree): Fill in parent field and also prpagate
17476 down grp_write flag.
17477 (create_artificial_child_access): New parameter set_grp_write, set
17478 grp_write to its value.
17479 (propagate_subaccesses_across_link): Also propagate grp_write flag
17480 values.
17481 (propagate_all_subaccesses): Push the closest parent back to work
17482 queue if add_access_to_work_queue returned true.
17483
17484 2017-05-02 Richard Biener <rguenther@suse.de>
17485
17486 * common.opt (fstrict-overflow): Alias negative to fwrapv.
17487 * doc/invoke.texi (fstrict-overflow): Remove all traces of
17488 -fstrict-overflow documentation.
17489 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
17490 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
17491 flag_strict_overflow.
17492 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
17493 * lto-opts.c (lto_write_options): Do not stream it.
17494 * lto-wrapper.c (merge_and_complain): Do not handle it.
17495 * opts.c (default_options_table): Do not set -fstrict-overflow.
17496 (finish_options): Likewise do not clear it when sanitizing.
17497 * simplify-rtx.c (simplify_const_relational_operation): Do not
17498 test flag_strict_overflow.
17499
17500 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
17501
17502 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
17503 using enabled attribute.
17504 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
17505 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
17506 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
17507 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
17508 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
17509 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
17510 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
17511 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
17512 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
17513 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
17514
17515 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
17516
17517 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
17518
17519 2017-05-02 Richard Biener <rguenther@suse.de>
17520
17521 PR tree-optimization/80591
17522 Revert
17523 2017-04-10 Richard Biener <rguenther@suse.de>
17524
17525 * tree-ssa-structalias.c (find_func_aliases): Properly handle
17526 asm inputs.
17527
17528 2017-05-02 Richard Biener <rguenther@suse.de>
17529
17530 PR tree-optimization/80549
17531 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
17532 (cleanup_tree_cfg_noloop): Create forwarders to known loop
17533 headers if they do not have a preheader.
17534
17535 2017-05-02 Martin Liska <mliska@suse.cz>
17536
17537 PR other/80589
17538 * common.opt: Fix typo.
17539 * doc/invoke.texi: Likewise.
17540
17541 2017-05-01 Jan Beulich <jbeulich@suse.com>
17542
17543 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
17544 swapping, add (x,x,m,x,n) alternative.
17545
17546 2017-05-01 Nathan Sidwell <nathan@acm.org>
17547
17548 * calls.c (combine_pending_stack_adjustment_and_call): Remove
17549 unnecessary unadjusted_alignment check.
17550
17551 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
17552
17553 PR c++/80038
17554 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
17555 operations here.
17556 * gimplify.c (gimplify_cilk_detach): New function.
17557 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
17558 * tree-core.h: Document EXPR_CILK_SPAWN.
17559 * tree.h (EXPR_CILK_SPAWN): Define.
17560
17561 2017-05-01 David Malcolm <dmalcolm@redhat.com>
17562
17563 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
17564 to use new fixit_hint representation, using the "replace" logic.
17565 (get_line_span_for_fixit_hint): Likewise.
17566 (layout::print_any_fixits): Likewise.
17567 (selftest::test_one_liner_many_fixits): Rename to...
17568 (selftest::test_one_liner_many_fixits_1): ...this, and update
17569 comment and expected output to reflect that the multiple fix-it
17570 hints are now consolidated into one insertion.
17571 (selftest::test_one_liner_many_fixits_2): New test.
17572 (selftest::test_diagnostic_show_locus_one_liner): Update for
17573 above.
17574 (selftest::test_fixit_consolidation): Update for fix-it API
17575 change.
17576 * diagnostic.c (print_parseable_fixits): Likewise.
17577 * edit-context.c (edited_line::m_line_events): Convert from
17578 auto_vec <line_event *> to auto_vec <line_event>.
17579 (class line_event): Convert from abstract base class to a concrete
17580 class, taking over the role of replace_event.
17581 (class insert_event): Delete.
17582 (class replace_event): Rename to class line_event. Convert to
17583 half-open range.
17584 (edit_context::add_fixits): Reimplement.
17585 (edit_context::apply_insert): Delete.
17586 (edit_context::apply_replace): Rename to...
17587 (edit_context::apply_fixit): ...this. Convert to half-open range.
17588 (edited_file::apply_insert): Delete.
17589 (edited_file::apply_replace): Rename to...
17590 (edited_file::apply_fixit): ...this.
17591 (edited_line::~edited_line): Drop deletion of events.
17592 (edited_line::apply_insert): Delete.
17593 (edited_line::apply_replace): Rename to...
17594 (edited_line::apply_fixit): ...this. Convert to half-open range.
17595 Update for change to type of m_line_events.
17596 * edit-context.h (edit_context::apply_insert): Delete.
17597 (edit_context::apply_replace): Rename to...
17598 (edit_context::apply_fixit): ...this.
17599
17600 2017-05-01 Martin Sebor <msebor@redhat.com>
17601
17602 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
17603 known.
17604
17605 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
17606
17607 PR target/68491
17608 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
17609 __get_cpuid_max returns 0.
17610 (__get_cpuid_count): Ditto.
17611
17612 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
17613
17614 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
17615 replacement expression is another instance of one of its arguments.
17616
17617 2017-05-01 Jakub Jelinek <jakub@redhat.com>
17618
17619 PR target/79430
17620 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
17621 check for stack push/pop autoinc.
17622 * config/i386/i386.c (ix86_agi_dependent): Return false
17623 if the only reason why modified_in_p returned true is that
17624 addr is SP based and set_insn is a push or pop.
17625
17626 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
17627
17628 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
17629 overflow check.
17630
17631 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
17632
17633 PR ipa/79224
17634 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
17635 (account_size_time): Use two predicates - exec_pred and
17636 nonconst_pred_ptr.
17637 (evaluate_conditions_for_known_args): Compute both clause and
17638 nonspec_clause.
17639 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
17640 (inline_summary_t::duplicate): Update.
17641 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
17642 separately.
17643 (compute_inline_parameters): Likewise.
17644 (estimate_edge_size_and_time): Update caluclation of time.
17645 (estimate_node_size_and_time): Compute both time and nonspecialized
17646 time.
17647 (estimate_ipcp_clone_size_and_time): Update.
17648 (inline_merge_summary): Update.
17649 (do_estimate_edge_time): Update.
17650 (do_estimate_edge_size): Update.
17651 (do_estimate_edge_hints): Update.
17652 (inline_read_section, inline_write_summary): Stream both new predicates.
17653 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
17654 as argument.
17655 (compute_inlined_call_time): Cleanup.
17656 (big_speedup_p): Update.
17657 (edge_badness): Update.
17658 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
17659 (size_time_entry): Replace predicate by exec_predicate and
17660 nonconst_predicate.
17661 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
17662 (estimate_edge_time): Return also nonspec_time.
17663 (reset_edge_growth_cache): Update.
17664
17665 2017-04-29 Jakub Jelinek <jakub@redhat.com>
17666
17667 PR rtl-optimization/80491
17668 * ifcvt.c (noce_process_if_block): When looking for x setter
17669 with missing else_bb, don't check only the insn right before
17670 cond_earliest, but look for the last insn that x is modified in
17671 within the same bb.
17672
17673 PR rtl-optimization/80491
17674 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
17675
17676 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
17677
17678 PR tree-optimization/80487
17679 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
17680
17681 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17682
17683 PR tree-optimization/79697
17684 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
17685 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
17686 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
17687 BUILT_IN_STRNDUP.
17688 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
17689 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
17690
17691 2017-04-28 Martin Sebor <msebor@redhat.com>
17692
17693 PR tree-optimization/80523
17694 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
17695 (init_target_to_host_charmap, target_to_host, target_strtol10): New
17696 functions.
17697 (maybe_warn, format_directive, parse_directive): Use new functions.
17698 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
17699
17700 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
17701
17702 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
17703
17704 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
17705
17706 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
17707 target_header_dir): Set correctly.
17708 * configure: Regenerated.
17709 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
17710 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
17711 instead of SYSTEM_HEADER_DIR.
17712
17713 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
17714
17715 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
17716 (estimate_local_effects): Likewise.
17717 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
17718 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
17719 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
17720 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
17721 do_estimate_edge_time, estimate_edge_time): Likewise.
17722 * ipa-inline-analysis.c (estimate_node_size_and_time,
17723 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
17724 (estimate_time_after_inlining): Remove.
17725
17726 2017-04-28 Martin Liska <mliska@suse.cz>
17727
17728 * doc/gcov.texi: Enhance documentation of gcov.
17729
17730 2017-04-28 Martin Liska <mliska@suse.cz>
17731
17732 * doc/gcov.texi: Sort options in alphabetic order.
17733 * doc/gcov-dump.texi: Likewise.
17734 * doc/gcov-tool.texi: Likewise.
17735 * gcov.c (print_usage): Likewise.
17736 * gcov-dump.c (print_usage): Likewise.
17737 * gcov-tool.c (print_merge_usage_message): Likewise.
17738 (print_rewrite_usage_message): Likewise.
17739 (print_overlap_usage_message): Likewise.
17740
17741 2017-04-28 Martin Liska <mliska@suse.cz>
17742
17743 PR gcov-profile/53915
17744 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
17745
17746 2017-04-28 Martin Liska <mliska@suse.cz>
17747
17748 PR gcov-profile/79891
17749 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
17750 is marked by compiler as living on a line.
17751 (get_cycles_count): Remove usage of the union.
17752 (output_intermediate_file): Likewise.
17753 (find_source): Fix GNU coding style.
17754 (accumulate_line_counts): Remove old non-all block mode.
17755 (output_lines): Remove usage of the union.
17756 * profile.c (output_location): Include all BBs, even if
17757 belonging to a same line (and file) as a previous BB.
17758
17759 2017-04-28 Martin Liska <mliska@suse.cz>
17760
17761 * gcov.c (process_args): Handle new argument 'w'.
17762 (read_graph_file): Assign ID to BBs.
17763 (output_branch_count): Display BB # if verbose flag is set.
17764 (output_lines): Likewise for arcs.
17765 (print_usage): Add '--verbose' option help.
17766 * doc/gcov.texi: Document --verbose (-w) option.
17767
17768 2017-04-28 Martin Liska <mliska@suse.cz>
17769
17770 * gcov.c (struct block_location_info): New struct.
17771 (process_file): Fill up the new structure.
17772 (read_graph_file): Replace usage of encoding by the newly added
17773 struct.
17774 (add_line_counts): Likewise.
17775 (accumulate_line_counts): Remove usage of the union.
17776 (function_info::function_info): New function.
17777 (function_info::~function_info): Likewise.
17778 (process_file): Call delete instead of release_function.
17779 (release_function): Release the function.
17780 (release_structures): Call delete instead of release_function.
17781 (solve_flow_graph): Replace usage of num_blocks.
17782 (find_exception_blocks): Likewise.
17783 (output_lines): Fix GNU coding style.
17784
17785 2017-04-28 Martin Liska <mliska@suse.cz>
17786
17787 PR driver/56469
17788 * coverage.c (coverage_remove_note_file): New function.
17789 * coverage.h: Declare the function.
17790 * toplev.c (finalize): Clean if an error has been seen.
17791
17792 2017-04-28 Martin Liska <mliska@suse.cz>
17793
17794 PR gcov-profile/80031
17795 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
17796 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
17797 * gcov.c (read_graph_file): Read just number of blocks.
17798 * profile.c (branch_prob): Do not stream 0 flags per a basic
17799 block.
17800
17801 2017-04-28 Martin Liska <mliska@suse.cz>
17802
17803 * gcov-dump.c (tag_*): Add new argument to declarations.
17804 (dump_gcov_file): Likewise.
17805 (tag_blocks): Add and use new argument depth.
17806 (tag_arcs): Likewise.
17807 (tag_lines): Likewise.
17808 (tag_counters): Likewise.
17809 (tag_summary): Likewise.
17810 (dump_working_sets): Use depth to do a proper indentation.
17811
17812 2017-04-28 Jakub Jelinek <jakub@redhat.com>
17813
17814 PR bootstrap/80531
17815 * cgraph.h (symtab_node::debug_symtab): No longer inline.
17816 * symtab.c (symtab_node::debug_symtab): Move definition here.
17817
17818 2017-04-28 Richard Biener <rguenther@suse.de>
17819
17820 * lto-streamer.h (LTO_major_version): Bump to 7.
17821
17822 2017-04-28 Richard Biener <rguenther@suse.de>
17823
17824 * tree-vrp.c (assert_info): New struct.
17825 (add_assert_info): New helper.
17826 (register_edge_assert_for_2): Refactor to add asserts to a vector
17827 of assert_info.
17828 (register_edge_assert_for_1): Likewise.
17829 (register_edge_assert_for): Likewise.
17830 (finish_register_edge_assert_for): New helper actually registering
17831 asserts where live on edge.
17832 (find_conditional_asserts): Adjust.
17833 (find_switch_asserts): Likewise.
17834 (evrp_dom_walker::try_find_new_range): Generalize.
17835 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
17836
17837 2017-04-27 Marek Polacek <polacek@redhat.com>
17838
17839 PR sanitizer/80349
17840 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
17841 arg10 and arg11 to itype.
17842
17843 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
17844
17845 * doc/extend.texi (Object Size Checking): Improve grammar.
17846
17847 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
17848
17849 PR target/80530
17850 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
17851 that the logic for permitting reciprocal estimates matches that
17852 in use_rsqrt_p.
17853
17854 2017-04-27 Jakub Jelinek <jakub@redhat.com>
17855
17856 PR c++/80534
17857 * tree.c (type_cache_hasher::equal): Only compare
17858 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
17859 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
17860 non-aggregate element types.
17861 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
17862 about the flag on ARRAY_TYPEs in the comment, formatting fix.
17863
17864 2017-04-27 Richard Biener <rguenther@suse.de>
17865
17866 PR middle-end/80533
17867 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
17868 stripping ARRAY_REFs from MEM_EXPR make sure we're not
17869 keeping a reference to a trailing array.
17870
17871 2017-04-27 Richard Biener <rguenther@suse.de>
17872
17873 PR middle-end/80539
17874 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
17875 being in loop-closed SSA form conservatively.
17876 (chrec_fold_multiply_poly_poly): Likewise.
17877
17878 2017-04-27 Tamar Christina <tamar.christina@arm.com>
17879
17880 PR middle-end/79665
17881 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
17882 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
17883
17884 2017-04-27 Jakub Jelinek <jakub@redhat.com>
17885
17886 PR target/77728
17887 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
17888 (aarch64_function_arg_alignment): Return unsigned int again, but still
17889 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
17890 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
17891 Don't emit -Wpsabi note.
17892 (aarch64_function_arg_boundary): Likewise.
17893 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
17894 caller.
17895
17896 2017-04-26 Nathan Sidwell <nathan@acm.org>
17897
17898 * tree.h (crc32_unsigned_n): Declare.
17899 (crc32_unsigned, crc32_unsigned): Make inline.
17900 * tree.c (crc32_unsigned_bits): Replace with ...
17901 (crc32_unsigned_n): ... this.
17902 (crc32_unsigned, crc32_byte): Remove.
17903 (crc32_string): Remove unnecessary braces.
17904
17905 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
17906
17907 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
17908 * ipa-inline-analysis.c (MAX_TIME): Remove.
17909 (account_size_time): Use sreal for time.
17910 (dump_inline_summary): Update.
17911 (estimate_function_body_sizes): Update.
17912 (estimate_edge_size_and_time): Update.
17913 (estimate_calls_size_and_time): Update.
17914 (estimate_node_size_and_time): Update.
17915 (inline_merge_summary): Update.
17916 (inline_update_overall_summary): Update.
17917 (estimate_time_after_inlining): Update.
17918 (inline_read_section): Update.
17919 (inline_write_summary): Update.
17920 * ipa-inline.c (compute_uninlined_call_time): Update.
17921 (compute_inlined_call_time): Update.
17922 (recursive_inlining): Update.
17923 (inline_small_functions): Update.
17924 (dump_overall_stats): Update.
17925 * ipa-inline.h: Include sreal.h.
17926 (size_time_entry): Turn time to sreal.
17927 (inline_summary): Turn self_time nad time to sreal.
17928
17929 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
17930
17931 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
17932 data-streamer.h
17933 (sreal::stream_out, sreal::stream_in): New.
17934 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
17935
17936 2017-04-25 Jakub Jelinek <jakub@redhat.com>
17937
17938 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
17939 environment.
17940
17941 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
17942
17943 PR target/70799
17944 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
17945 Handle ASHIFTRT.
17946 (dimode_scalar_chain::compute_convert_gain): Ditto.
17947 (dimode_scalar_chain::make_vector_copies): Ditto.
17948 (dimode_scalar_chain::convert_reg): Ditto.
17949 (dimode_scalar_chain::convert_insn): Ditto.
17950 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
17951 (VI248_AVX512BW_1): New mode iterator.
17952 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
17953 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
17954 mode iterator.
17955
17956 2017-04-25 Martin Sebor <msebor@redhat.com>
17957
17958 PR tree-optimization/80497
17959 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
17960 constants are representable in HOST_WIDE_INT.
17961 (parse_directive): Ditto.
17962
17963 2017-04-25 Martin Sebor <msebor@redhat.com>
17964
17965 PR bootstrap/80486
17966 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
17967 (new_zero_array): Adjust signature.
17968 (dom_info::dom_init): Used unsigned rather that size_t.
17969 (dom_info::dom_info): Same.
17970
17971 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17972 Jakub Jelinek <jakub@redhat.com>
17973
17974 PR target/77728
17975 * config/arm/arm.c: Include gimple.h.
17976 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
17977 returns negative, increment ncrn only if it returned positive.
17978 (arm_needs_doubleword_align): Return int instead of bool,
17979 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
17980 members, but if there is any such non-FIELD_DECL
17981 > PARM_BOUNDARY aligned decl, return -1 instead of false.
17982 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
17983 returns negative, increment nregs only if it returned positive.
17984 (arm_setup_incoming_varargs): Likewise.
17985 (arm_function_arg_boundary): Emit -Wpsabi note if
17986 arm_needs_doubleword_align returns negative, return
17987 DOUBLEWORD_ALIGNMENT only if it returned positive.
17988
17989 2017-04-25 Marek Polacek <polacek@redhat.com>
17990
17991 PR sanitizer/80349
17992 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
17993 first argument to type.
17994
17995 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
17996
17997 PR target/80482
17998 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
17999 type checks to test for compatibility instead of equality.
18000
18001 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18002 Jakub Jelinek <jakub@redhat.com>
18003
18004 PR target/77728
18005 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
18006 type.
18007 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
18008 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
18009 the alignment computation, but return their maximum in warn_alignment.
18010 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
18011 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
18012 is smaller.
18013 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
18014 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
18015 caller.
18016
18017 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
18018
18019 * config/arc/simdext.md (dmpyh): Fix typo.
18020
18021 2017-04-25 Richard Biener <rguenther@suse.de>
18022
18023 PR tree-optimization/80492
18024 * alias.c (compare_base_decls): Handle registers with asm
18025 specification conservatively.
18026 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
18027 compare_base_decls returning dont-know properly.
18028
18029 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
18030
18031 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
18032 (legitimate_offset_address_p): New function.
18033 (arc_legitimate_address_p): Use above function.
18034
18035 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
18036
18037 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
18038
18039 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
18040
18041 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
18042 ACCH registers whenever they are available.
18043
18044 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
18045
18046 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
18047 double regs fix when not used.
18048
18049 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
18050
18051 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
18052 core registers.
18053 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
18054 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
18055
18056 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
18057
18058 * config/arc/arc.c (arc_output_addsi): Check for h-register class
18059 when emitting short ADD instructions.
18060
18061 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
18062
18063 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
18064 constraint.
18065 (cmpsi_cc_c_insn): Likewise.
18066 (cbranchsi4_scratch): Compute proper instruction length using
18067 compact_hreg_operand.
18068 * config/arc/predicates.md (compact_hreg_operand): New predicate.
18069
18070 2017-04-25 Richard Biener <rguenther@suse.de>
18071
18072 PR middle-end/80509
18073 * passes.c (pass_manager::pass_manager): Initialize
18074 m_name_to_pass_map.
18075
18076 2017-04-25 Richard Biener <rguenther@suse.de>
18077
18078 PR tree-optimization/79201
18079 * tree-ssa-sink.c (statement_sink_location): Handle calls.
18080
18081 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18082
18083 PR target/80464
18084 * config/s390/vector.md: Split MEM->GPR vector moves for
18085 non-s_operand addresses.
18086
18087 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18088
18089 PR target/79895
18090 * config/s390/predicates.md (reload_const_wide_int_operand): New
18091 predicate.
18092 * config/s390/s390.md ("movti"): Remove d/P alternative.
18093 ("movti_bigconst"): New pattern definition.
18094
18095 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
18096
18097 PR target/80080
18098 * s390-protos.h (s390_expand_cs_hqi): Removed.
18099 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
18100 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
18101 modes as well as CCZ1mode and CCZmode.
18102 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
18103 signature of s390_emit_compare_and_swap.
18104 (s390_expand_cs_hqi): Likewise, make static.
18105 (s390_expand_cs_tdsi): Generate an explicit compare before trying
18106 compare-and-swap, in some cases.
18107 (s390_expand_cs): Wrapper function.
18108 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
18109 atomic_exchange.
18110 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
18111 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
18112 patterns for small and large integers. Forbid symref memory operands.
18113 Move expander to s390.c. Require cc register.
18114 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
18115 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
18116 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
18117 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
18118 symref memory operands. Remove CC mode and call s390_match_ccmode
18119 instead.
18120 ("atomic_exchange<mode>"): Allow and implement all integer modes.
18121
18122 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
18123
18124 * config/s390/s390.md (define_peephole2): New peephole to help
18125 combining the load-and-test pattern with volatile memory.
18126
18127 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
18128
18129 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
18130 with CCZmode for TARGET_Z196.
18131
18132 2017-04-25 Jakub Jelinek <jakub@redhat.com>
18133
18134 PR rtl-optimization/80501
18135 * combine.c (make_compound_operation_int): Set subreg_code to SET
18136 even for AND with mask of the sign bit of mode.
18137
18138 PR rtl-optimization/80500
18139 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
18140 sum's initial value.
18141
18142 2017-04-25 Julian Brown <julian@codesourcery.com>
18143 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
18144
18145 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
18146
18147 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
18148
18149 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
18150
18151 2017-04-25 Julian Brown <julian@codesourcery.com>
18152 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
18153
18154 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
18155 (thunderx2t99_sha): New Reservation.
18156
18157 2017-04-25 Julian Brown <julian@codesourcery.com>
18158 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
18159
18160 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
18161 type for 1-element load.
18162
18163 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
18164
18165 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
18166
18167 2017-04-24 Martin Jambor <mjambor@suse.cz>
18168
18169 PR tree-optimization/80293
18170 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
18171 char arrays not totally scalarizable if it is false.
18172 (analyze_all_variable_accesses): Pass correct value in the new
18173 parameter. Add a statistics counter.
18174
18175 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
18176
18177 PR middle-end/79931
18178 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
18179
18180 2017-04-24 Richard Biener <rguenther@suse.de>
18181
18182 PR tree-optimization/80494
18183 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
18184 out for complex types.
18185
18186 2017-04-24 Richard Biener <rguenther@suse.de>
18187
18188 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
18189 * tree-ssa-sccvn.c (print_scc): Print SCC size.
18190 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
18191 (DFS): Adjust and never fail.
18192 (sccvn_dom_walker::fail): Remove.
18193 (sccvn_dom_walker::before_dom_children): Adjust.
18194 (run_scc_vn): Likewise and never fail.
18195 * tree-ssa-pre.c (pass_pre::execute): Adjust.
18196 (pass_fre::execute): Likewise.
18197
18198 2017-04-24 Richard Biener <rguenther@suse.de>
18199
18200 PR tree-optimization/79725
18201 * tree-ssa-sink.c (statement_sink_location): Return whether
18202 failure reason was zero uses. Move that check later.
18203 (sink_code_in_bb): Deal with zero uses by removing the stmt
18204 if possible.
18205
18206 2017-04-24 Richard Biener <rguenther@suse.de>
18207
18208 PR c++/2972
18209 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
18210 pointer-based references.
18211
18212 2017-04-24 Richard Biener <rguenther@suse.de>
18213
18214 PR bootstrap/79814
18215 * pass_manager.h (pass_manager::operator new): Remove.
18216 (pass_manager::operator delete): Likewise.
18217 * passes.c (pass_manager::operator new): Remove.
18218 (pass_manager::operator delete): Likewise.
18219 (pass_manager::pass_manager): Zero individual pass members.
18220
18221 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
18222
18223 PR target/70799
18224 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
18225 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
18226 Check "XEXP (src, 1)" operand here.
18227 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
18228 Check "XEXP (src, 1)" operand here.
18229 (dimode_scalar_chain::make_vector_copies): Detect count register
18230 of a shift instruction. Zero extend count register from QImode
18231 to DImode to satisfy vector shift pattern count operand predicate.
18232 Substitute vector shift count operand with a DImode copy.
18233 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
18234 vector register.
18235
18236 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
18237
18238 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
18239 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
18240 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
18241 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
18242 (UNSPEC_NOREX_MEM): Remove definition.
18243
18244 2017-04-21 Richard Biener <rguenther@suse.de>
18245
18246 PR tree-optimization/79547
18247 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
18248 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
18249 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
18250 without any constraints.
18251
18252 2017-04-21 Richard Biener <rguenther@suse.de>
18253
18254 PR tree-optimization/78847
18255 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
18256
18257 2017-04-21 Richard Biener <rguenther@suse.de>
18258
18259 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
18260 (build_distinct_type_copy): Likewise.
18261 (build_variant_type_copy): Likewise.
18262 * tree.c (build_qualified_type): Pass down mem-stat info.
18263 (build_distinct_type_copy): Likewise.
18264 (build_variant_type_copy): Likewise.
18265
18266 2017-04-21 Richard Biener <rguenther@suse.de>
18267
18268 PR tree-optimization/80237
18269 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
18270 defaulted to NULL.
18271 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
18272 for a simplified result.
18273
18274 2016-04-21 Richard Biener <rguenther@suse.de>
18275
18276 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
18277 sth as strict as a simple_iv but a chrec without symbols and an
18278 operand defined in the loop we are peeling (and not some subloop).
18279 (propagate_constants_for_unrolling): Propagate all constants.
18280
18281 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
18282
18283 PR target/79804
18284 * config/i386/i386.c (print_reg): Remove assert for disalowed
18285 regno values, call output_operand_lossage instead.
18286
18287 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
18288
18289 PR target/78090
18290 * config/i386/constraints.md (Yc): New register constraint.
18291 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
18292 Use Yc constraint for alternative 2 of operand 0. Remove
18293 preferred_for_speed attribute.
18294
18295 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
18296
18297 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
18298 lastprivate clauses in SIMT case.
18299
18300 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
18301
18302 * doc/invoke.texi (-Wextra-semi): Document new warning option.
18303
18304 2017-04-20 Richard Biener <rguenther@suse.de>
18305
18306 PR tree-optimization/57796
18307 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
18308 as N scalar stores.
18309 (vect_model_load_cost): Cost gathers as N scalar loads.
18310
18311 2017-04-20 Richard Biener <rguenther@suse.de>
18312
18313 * ggc-page.c (ggc_allocated_p): Rename to ...
18314 (safe_lookup_page_table_entry): ... this and return the lookup
18315 result.
18316 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
18317
18318 2017-04-20 Richard Biener <rguenther@suse.de>
18319
18320 PR tree-optimization/80453
18321 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
18322 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
18323 from the conditions.
18324 (vn_phi_eq): Pass them down.
18325 (vn_phi_lookup): Record them.
18326 (vn_phi_insert): Likewise.
18327
18328 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
18329
18330 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
18331 uninitialized variable warning to avoid buffer overrun.
18332
18333 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
18334
18335 PR other/71250
18336 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
18337 is suppressed for '{ 0 }' in C.
18338
18339 2017-04-20 Jakub Jelinek <jakub@redhat.com>
18340
18341 * BASE-VER: Set to 8.0.0.
18342
18343 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
18344
18345 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
18346 priority .init_array and .fini_array section with SECTION_NOTYPE
18347 flag.
18348
18349 2017-04-20 Jakub Jelinek <jakub@redhat.com>
18350
18351 PR middle-end/80423
18352 * tree.h (build_array_type): Add typeless_storage default argument.
18353 * tree.c (type_cache_hasher::equal): Also compare
18354 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
18355 (build_array_type): Add typeless_storage argument, set
18356 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
18357 recursive call.
18358 (build_nonshared_array_type): Adjust build_array_type_1 caller.
18359 (build_array_type): Likewise. Add typeless_storage argument.
18360
18361 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
18362 Jakub Jelinek <jakub@redhat.com>
18363
18364 PR tree-optimization/80426
18365 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
18366 operation on symbolic operands, also compute the overflow for the
18367 invariant part when the operation degenerates into a negation.
18368
18369 2017-04-19 Jakub Jelinek <jakub@redhat.com>
18370
18371 PR debug/80461
18372 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
18373 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
18374
18375 PR debug/80436
18376 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
18377
18378 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
18379
18380 PR target/80462
18381 * config/avr/avr.c (tree.h): Include it.
18382 (cgraph.h): Include it.
18383 (avr_encode_section_info): Don't warn for uninitialized progmem
18384 variable if it's just an alias.
18385
18386 2017-04-19 Richard Biener <rguenther@suse.de>
18387
18388 PR ipa/65972
18389 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
18390 when needed by AutoPGO.
18391
18392 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
18393
18394 PR lto/50345
18395 * doc/lto.texi: Remove an extra 'that'.
18396
18397 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
18398
18399 PR rtl-optimization/80429
18400 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
18401 are only used in debug insns.
18402
18403 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
18404 Vladimir Makarov <vmakarov@redhat.com>
18405
18406 * config/sparc/predicates.md (input_operand): Add comment. Return
18407 true for any memory operand when LRA is in progress.
18408 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
18409
18410 2017-04-18 Jeff Law <law@redhat.com>
18411
18412 PR target/74563
18413 * mips.md ({return,simple_return}_internal): Do not overwrite
18414 operands[0].
18415
18416 2017-04-18 Jakub Jelinek <jakub@redhat.com>
18417
18418 PR tree-optimization/80443
18419 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
18420 instead of adding 1, subtract -1 and similarly instead of subtracting
18421 1 add -1.
18422
18423 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
18424
18425 PR rtl-optimization/80357
18426 * haifa-sched.c (tmp_bitmap): New variable.
18427 (model_recompute): Handle duplicate use records.
18428 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
18429 (free_global_sched_pressure_data): Free it.
18430
18431 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
18432
18433 Revert:
18434 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
18435 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
18436 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
18437 instead of SYSTEM_HEADER_DIR.
18438
18439 2017-04-18 Jeff Law <law@redhat.com>
18440
18441 PR middle-end/80422
18442 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
18443 predecessors after walking up the insn chain.
18444
18445 2017-04-18 Jakub Jelinek <jakub@redhat.com>
18446
18447 PR debug/80263
18448 * dwarf2out.c (modified_type_die): Try harder not to emit internal
18449 sizetype type into debug info.
18450
18451 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
18452
18453 PR target/80099
18454 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
18455 unneeded test for TARGET_UPPER_REGS_SF.
18456 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
18457
18458 2017-04-18 Jakub Jelinek <jakub@redhat.com>
18459
18460 PR sanitizer/80444
18461 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
18462 instead of gsi_after_labels.
18463
18464 2017-04-18 Jeff Law <law@redhat.com>
18465
18466 * regcprop.c (maybe_mode_change): Avoid creating copies of the
18467 stack pointer.
18468
18469 Revert:
18470 2017-04-13 Jeff Law <law@redhat.com>
18471 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
18472 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
18473
18474 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
18475
18476 PR target/79453
18477 * config/avr/avr.c (intl.h): Include it.
18478 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
18479
18480 2017-04-18 Martin Liska <mliska@suse.cz>
18481
18482 PR gcov-profile/78783
18483 * gcov-tool.c (gcov_output_files): Validate that destination
18484 file is either removed by the tool or by a user.
18485
18486 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
18487 Guy Benyei <guybe@mellanox.com>
18488
18489 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
18490 block, and do not negate it, the stored id is already negative.
18491
18492 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
18493
18494 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
18495
18496 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
18497
18498 PR target/80098
18499 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
18500 masks of options that should be turned off if the VSX vector
18501 options are turned off.
18502 (OTHER_P8_VECTOR_MASKS): Likewise.
18503 (OTHER_VSX_VECTOR_MASKS): Likewise.
18504 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
18505 rs6000_disable_incompatible_switches to validate no type switches
18506 like -mvsx.
18507 (rs6000_incompatible_switch): New function to disallow turning on
18508 other vector options if -mno-vsx, -mno-power8-vector, or
18509 -mno-power9-vector are specified.
18510
18511 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
18512
18513 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
18514
18515 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
18516
18517 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
18518 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
18519 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
18520 (ARG_POINTER_CFA_OFFSET): Likewise.
18521
18522 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
18523
18524 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
18525 conditions to take advantage of various optimizations.
18526
18527 2017-04-13 Jeff Law <law@redhat.com>
18528
18529 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
18530 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
18531 (zero_extendsidi2_dext): Likewise.
18532
18533 2017-04-13 Jakub Jelinek <jakub@redhat.com>
18534
18535 PR sanitizer/80403
18536 * fold-const.c (fold_ternary_loc): Revert
18537 use op0 instead of fold_convert_loc (loc, type, arg0) part of
18538 2017-04-12 change.
18539
18540 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
18541
18542 PR rtl-optimization/80343
18543 * lra-remat.c (update_scratch_ops): Assign original hard reg to
18544 new scratch pseudo.
18545
18546 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
18547
18548 PR sanitizer/80414
18549 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
18550 to ubsan_encode_value.
18551
18552 2017-04-13 Jeff Law <law@redhat.com>
18553
18554 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
18555 appearing in DEBUG_INSNs.
18556
18557 2017-04-13 Martin Liska <mliska@suse.cz>
18558
18559 PR gcov-profile/80413
18560 * gcov-io.c (gcov_write_string): Copy to buffer just when
18561 allocated size is greater than zero.
18562
18563 2017-04-13 Jakub Jelinek <jakub@redhat.com>
18564
18565 PR debug/80321
18566 * dwarf2out.c (decls_for_scope): Ignore declarations of
18567 current_function_decl in BLOCK_NONLOCALIZED_VARS.
18568
18569 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
18570
18571 PR lto/69953
18572 * ipa-visibility.c (non_local_p): Fix typos.
18573 (localize_node): When localizing symbol in same comdat group,
18574 dissolve the group only when we know external symbols are going
18575 to be privatized.
18576 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
18577
18578 2017-04-12 Jakub Jelinek <jakub@redhat.com>
18579
18580 PR tree-optimization/79390
18581 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
18582 order does not result in usable sequence, retry with reversed operand
18583 order.
18584
18585 PR sanitizer/80403
18586 PR sanitizer/80404
18587 PR sanitizer/80405
18588 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
18589 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
18590 op0 instead of fold_convert_loc (loc, type, arg0).
18591
18592 2017-04-12 Jeff Law <law@redhat.com>
18593
18594 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
18595 has a delay slot in the generated code.
18596
18597 * config/cris/cris.md (cris_preferred_reload_class): Return
18598 GENNONACR_REGS rather than GENERAL_REGS.
18599
18600 2017-04-12 Jakub Jelinek <jakub@redhat.com>
18601
18602 PR c/80163
18603 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
18604 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
18605 signedness of the result type.
18606
18607 2017-04-12 Richard Biener <rguenther@suse.de>
18608 Jeff Law <law@redhat.com>
18609
18610 PR tree-optimization/80359
18611 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
18612 trim stores to TARGET_MEM_REFs.
18613
18614 2017-04-12 Richard Biener <rguenther@suse.de>
18615
18616 PR tree-optimization/79390
18617 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
18618 threading case even more.
18619
18620 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
18621
18622 PR target/80382
18623 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
18624 for quad_address_p for TImode, instead of just not indexed_address.
18625
18626 2017-04-12 Richard Biener <rguenther@suse.de>
18627 Bernd Edlinger <bernd.edlinger@hotmail.de>
18628
18629 PR middle-end/79671
18630 * alias.c (component_uses_parent_alias_set_from): Handle
18631 TYPE_TYPELESS_STORAGE.
18632 (get_alias_set): Likewise.
18633 * tree-core.h (tree_type_common): Add typeless_storage flag.
18634 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
18635 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
18636 for types containing members with TYPE_TYPELESS_STORAGE.
18637 (place_field): Likewise.
18638 (layout_type): Likewise for ARRAY_TYPE.
18639 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
18640 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
18641 TYPE_TYPELESS_STORAGE.
18642 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
18643
18644 2017-04-12 Jakub Jelinek <jakub@redhat.com>
18645
18646 PR sanitizer/80349
18647 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
18648 first argument to type.
18649
18650 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18651
18652 PR target/80376
18653 PR target/80315
18654 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
18655 CONST0_RTX (mode) rather than const0_rtx where appropriate.
18656 (rs6000_expand_binop_builtin): Likewise.
18657 (rs6000_expand_ternop_builtin): Likewise; also add missing
18658 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
18659 vshasigma built-ins.
18660 * doc/extend.texi: Document that vec_xxpermdi's third argument
18661 must be a constant.
18662
18663 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
18664
18665 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
18666 Use shift_const cost parameter when calculating gain of STV shifts.
18667
18668 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
18669
18670 PR rtl-optimization/70478
18671 * lra-constraints.c (process_alt_operands): Check memory for
18672 disfavoring memory insn operand.
18673
18674 2017-04-11 Jakub Jelinek <jakub@redhat.com>
18675
18676 PR middle-end/80100
18677 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
18678 left shift in unsigned HOST_WIDE_INT type.
18679
18680 PR rtl-optimization/80385
18681 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
18682 (not (neg X)) into (plus X -1) for complex or non-integral modes.
18683
18684 PR libgomp/80394
18685 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
18686 if they have any depend clauses.
18687
18688 2017-04-11 Martin Liska <mliska@suse.cz>
18689
18690 PR ipa/80212
18691 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
18692 * ipa-split.c (split_function): Create a local comdat symbol
18693 if caller is in a comdat group.
18694
18695 2017-04-11 Martin Liska <mliska@suse.cz>
18696
18697 PR ipa/80212
18698 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
18699 flags.
18700
18701 2017-04-11 Martin Sebor <msebor@redhat.com>
18702
18703 PR middle-end/80364
18704 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
18705 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
18706 for INTEGER_TYPE.
18707 (directive::set_width, directive::set_precision, format_character):
18708 Adjust.
18709 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
18710 INTEGER_TYPE.
18711
18712 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
18713
18714 PR target/80389
18715 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
18716 conflict, set target->arch_name instead of target->cpu_name.
18717
18718 2017-04-11 Richard Biener <rguenther@suse.de>
18719
18720 PR tree-optimization/80374
18721 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
18722 build_zero_cst, remove fold_convertible_p check again.
18723
18724 2017-04-11 Martin Liska <mliska@suse.cz>
18725
18726 PR sanitizer/70878
18727 * ubsan.c (instrument_object_size): Do not instrument register
18728 variables.
18729
18730 2017-04-11 Jakub Jelinek <jakub@redhat.com>
18731
18732 PR target/80381
18733 * config/i386/i386-builtin-types.def
18734 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
18735 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
18736 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
18737 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
18738 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
18739 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
18740 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
18741 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
18742 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
18743 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
18744 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
18745 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
18746 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
18747 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
18748 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
18749 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
18750 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
18751 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
18752 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
18753 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
18754 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
18755 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
18756 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
18757 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
18758 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
18759 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
18760 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
18761 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
18762 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
18763 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
18764 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
18765 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
18766 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
18767 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
18768 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
18769 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
18770 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
18771 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
18772 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
18773 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
18774 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
18775 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
18776 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
18777 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
18778 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
18779 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
18780 aliases.
18781 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
18782 flag to second_arg_count, handle 4 argument function type _COUNT
18783 aliases, handle second_arg_count on second argument rather than last.
18784
18785 2017-04-10 Jeff Law <law@redhat.com>
18786
18787 PR tree-optimization/80374
18788 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
18789 record anything if we can not convert integer_zero_node to the
18790 desired type.
18791
18792 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
18793
18794 PR target/80108
18795 * config/rs6000/rs6000.c (rs6000_option_override_internal):
18796 Enhance special handling given to the TARGET_P9_MINMAX option in
18797 relation to certain other options.
18798
18799 2017-04-10 Bin Cheng <bin.cheng@arm.com>
18800
18801 PR tree-optimization/80153
18802 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
18803 remove POINTER_PLUS_EXPR's base part directly, rather than through
18804 aff_tree.
18805
18806 2017-04-10 Richard Biener <rguenther@suse.de>
18807 Bin Cheng <bin.cheng@arm.com>
18808
18809 PR tree-optimization/80153
18810 * tree-affine.c (aff_combination_to_tree): Get base pointer from
18811 the first element of pointer type aff_tree. Build result expr in
18812 aff_tree's type.
18813 (add_elt_to_tree): Convert to type unconditionally. Remove other
18814 fold_convert calls.
18815 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
18816 (rewrite_use_nonlinear_expr): Check invariant using iv information.
18817
18818 2017-04-10 Richard Biener <rguenther@suse.de>
18819
18820 * tree-ssa-structalias.c (find_func_aliases): Properly handle
18821 asm inputs.
18822
18823 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
18824
18825 PR rtl-optimization/70478
18826 * lra-constraints.c (curr_small_class_check): New.
18827 (update_and_check_small_class_inputs): New.
18828 (process_alt_operands): Update curr_small_class_check. Disfavor
18829 alternative insn memory operands. Check available regs for small
18830 class operands.
18831
18832 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
18833
18834 PR target/80057
18835 * config/mips/mips.opt (-mvirt): Update description.
18836 * doc/invoke.texi (-mvirt): Likewise.
18837
18838 2017-04-10 Richard Biener <rguenther@suse.de>
18839
18840 PR middle-end/80362
18841 * fold-const.c (fold_binary_loc): Look at unstripped ops when
18842 looking for NEGATE_EXPR in -A / -B to A / B folding.
18843
18844 2017-04-10 Martin Liska <mliska@suse.cz>
18845
18846 PR gcov-profile/80224
18847 * gcov.c (print_usage): Fix usage string.
18848 (get_gcov_intermediate_filename): Remove.
18849 (output_gcov_file): Use both for normal and intermediate format.
18850 (generate_results): Do not initialize special file for
18851 intermediate format.
18852
18853 2017-04-10 Richard Biener <rguenther@suse.de>
18854
18855 PR tree-optimization/80304
18856 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
18857 for safelen.
18858
18859 2017-04-10 Nathan Sidwell <nathan@acm.org>
18860
18861 PR target/79905
18862 * config/rs6000/rs6000.c (rs6000_vector_type): New.
18863 (rs6000_init_builtins): Use it.
18864
18865 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18866
18867 * config/arm/arm.md (<mrc>): Add mode to SET source.
18868 (<mrrc>): Likewise.
18869
18870 2017-04-10 Richard Biener <rguenther@suse.de>
18871
18872 PR middle-end/80344
18873 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
18874
18875 2017-04-10 Jakub Jelinek <jakub@redhat.com>
18876
18877 PR target/80324
18878 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
18879 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
18880 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
18881 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
18882 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
18883 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
18884 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
18885 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
18886 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
18887 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
18888 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
18889 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
18890 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
18891 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
18892 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
18893 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
18894 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
18895 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
18896 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
18897 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
18898 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
18899 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
18900 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
18901
18902 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
18903
18904 PR rtl-optimization/70478
18905 * lra-constraints.c: Reverse the last patch.
18906
18907 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
18908
18909 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
18910 Add comment for WCHAR_T.
18911
18912 2017-04-08 Martin Liska <mliska@suse.cz>
18913
18914 Revert:
18915 2017-04-07 Martin Liska <mliska@suse.cz>
18916
18917 PR ipa/80212
18918 * ipa-split.c (split_function): Add function part to a same comdat
18919 group.
18920
18921 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
18922
18923 PR target/80358
18924 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
18925
18926 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
18927
18928 * rs6000/rs6000.c (vec_load_pendulum): Rename...
18929 (vec_pairing): ...to this.
18930 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
18931 (rs6000_sched_init): Adjust for name change.
18932 (struct rs6000_sched_context): Likewise.
18933 (rs6000_init_sched_context): Likewise.
18934 (rs6000_set_sched_context): Likewise.
18935
18936 2017-04-07 Jakub Jelinek <jakub@redhat.com>
18937
18938 PR target/80322
18939 PR target/80323
18940 PR target/80325
18941 PR target/80326
18942 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
18943 intrinsics.
18944 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
18945 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
18946 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
18947
18948 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
18949
18950 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
18951
18952 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
18953
18954 PR rtl-optimization/70703
18955 * ira-color.c (update_conflict_hard_regno_costs): Use
18956 int64_t instead of HOST_WIDE_INT.
18957
18958 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
18959
18960 PR rtl-optimization/70478
18961 * lra-constraints.c (process_alt_operands): Disfavor alternative
18962 insn memory operands.
18963
18964 2017-04-07 Jeff Law <law@redhat.com>
18965
18966 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
18967 CALL and NOTE_INSN_CALL_ARG_LOCATION.
18968
18969 2017-04-07 Martin Liska <mliska@suse.cz>
18970
18971 PR target/79889
18972 * config/aarch64/aarch64.c (aarch64_process_target_attr):
18973 Show error message instead of an ICE.
18974
18975 2017-04-07 Martin Liska <mliska@suse.cz>
18976
18977 PR ipa/80212
18978 * ipa-split.c (split_function): Add function part to a same comdat
18979 group.
18980
18981 2017-04-07 Richard Biener <rguenther@suse.de>
18982
18983 PR middle-end/80341
18984 * tree.c (get_unwidened): Also handle ! for_type case for
18985 INTEGER_CSTs.
18986 * convert.c (do_narrow): Split out from ...
18987 (convert_to_integer_1): ... here. Do not pass final truncation
18988 type to get_unwidened for TRUNC_DIV_EXPR.
18989
18990 2017-04-07 Richard Biener <rguenther@suse.de>
18991
18992 * tree-affine.c (wide_int_ext_for_comb): Take type rather
18993 than aff_tree.
18994 (aff_combination_const): Adjust.
18995 (aff_combination_scale): Likewise.
18996 (aff_combination_add_elt): Likewise.
18997 (aff_combination_add_cst): Likewise.
18998 (aff_combination_convert): Likewise.
18999 (add_elt_to_tree): Likewise. Remove unused argument.
19000 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
19001
19002 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
19003
19004 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
19005 definition.
19006 * config/arm/arm.c (arm_default_short_enums): Use
19007 ARM_DEFAULT_SHORT_ENUMS.
19008 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
19009
19010 2017-04-06 Jakub Jelinek <jakub@redhat.com>
19011
19012 PR debug/80234
19013 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
19014 members with redundant out-of-class redeclaration.
19015
19016 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
19017
19018 PR target/80286
19019 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
19020 * config/i386/i386.md (*zero_extendsidi2):
19021 Add (?*x,*x) and (?*v,*v) alternatives.
19022
19023 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
19024
19025 PR target/79733
19026 * config/i386/i386.c (ix86_expand_builtin)
19027 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
19028 mode from insn data. Convert operands to insn operand mode.
19029 Copy operands that don't satisfy insn predicate to a register.
19030
19031 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
19032
19033 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
19034 Update comments.
19035
19036 2017-04-06 Richard Biener <rguenther@suse.de>
19037
19038 PR tree-optimization/80334
19039 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
19040 preserve alignment of accesses.
19041
19042 2017-04-06 Richard Biener <rguenther@suse.de>
19043
19044 PR tree-optimization/80262
19045 * tree-sra.c (build_ref_for_offset): Preserve address-space
19046 information.
19047 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19048 Drop useless address-space information on MEM_REF offsets.
19049
19050 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
19051
19052 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
19053
19054 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
19055
19056 PR rtl-optimization/70703
19057 * ira-color.c (update_conflict_hard_regno_costs): Use
19058 HOST_WIDE_INT instead of long.
19059
19060 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
19061
19062 PR target/80298
19063 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
19064 not defined for x86_64 target. Add -mmmx target option when __SSE2__
19065 is not defined.
19066 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
19067 for x86_64 target. Handle -m3dnowa option.
19068
19069 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
19070
19071 PR rtl-optimization/70703
19072 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
19073 (update_conflict_hard_regno_costs): Use long instead of unsigned
19074 arithmetic for cost calculation.
19075
19076 2017-04-05 Jakub Jelinek <jakub@redhat.com>
19077 Bernd Edlinger <bernd.edlinger@hotmail.de>
19078
19079 PR sanitizer/80308
19080 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
19081 for big endian.
19082
19083 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
19084
19085 PR target/78002
19086 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
19087 ptr_mode with Pmode throughout.
19088 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
19089 into probe_stack_range and use DImode.
19090
19091 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
19092
19093 PR target/79890
19094 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
19095 call_eh_return is true.
19096
19097 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19098
19099 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
19100 Initialize last_match_fntype_index.
19101
19102 2017-04-05 Jakub Jelinek <jakub@redhat.com>
19103
19104 PR target/80310
19105 * tree-nvr.c: Include internal-fn.h.
19106 (pass_return_slot::execute): Ignore internal calls without
19107 direct optab.
19108
19109 2017-04-04 Jakub Jelinek <jakub@redhat.com>
19110 Richard Biener <rguenther@suse.de>
19111
19112 PR c++/80297
19113 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
19114 captures used multiple times, except for the last use.
19115 * generic-match-head.c: Include gimplify.h.
19116
19117 2017-04-04 Jakub Jelinek <jakub@redhat.com>
19118
19119 PR tree-optimization/79390
19120 * target.h (struct noce_if_info): Declare.
19121 * targhooks.h (default_noce_conversion_profitable_p): Declare.
19122 * target.def (noce_conversion_profitable_p): New target hook.
19123 * ifcvt.h (struct noce_if_info): New type, moved from ...
19124 * ifcvt.c (struct noce_if_info): ... here.
19125 (noce_conversion_profitable_p): Renamed to ...
19126 (default_noce_conversion_profitable_p): ... this. No longer
19127 static nor inline.
19128 (noce_try_store_flag_constants, noce_try_addcc,
19129 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
19130 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
19131 instead of noce_conversion_profitable_p.
19132 * config/i386/i386.c: Include ifcvt.h.
19133 (ix86_option_override_internal): Don't override
19134 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
19135 (ix86_noce_conversion_profitable_p): New function.
19136 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
19137 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
19138 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
19139 * doc/tm.texi: Regenerated.
19140
19141 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19142
19143 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
19144 correction.
19145
19146 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
19147
19148 PR target/80307
19149 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
19150 instructions for small multiply cores.
19151
19152 2017-04-04 Jeff Law <law@redhat.com>
19153
19154 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
19155 added member.
19156 (mips_expand_vec_perm_const): Initialize elements in orig_perm
19157 that are not set by the loop over the elements.
19158
19159 2017-04-04 Jakub Jelinek <jakub@redhat.com>
19160
19161 PR target/80286
19162 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
19163 int mode, convert_modes it to mode as unsigned, otherwise use
19164 lowpart_subreg to mode rather than SImode.
19165 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
19166 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
19167 Use DImode instead of SImode for the shift count operand.
19168 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
19169 Likewise.
19170
19171 2017-04-04 Richard Biener <rguenther@suse.de>
19172
19173 PR middle-end/80281
19174 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
19175 arithmetic done for the negate or the plus. Simplify.
19176 (A - (-B) -> A + B): Likewise.
19177 * fold-const.c (split_tree): Make sure to not negate pointers.
19178
19179 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
19180
19181 PR rtl-optimization/60818
19182 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
19183 a compare of comparisons with the thing compared if this results
19184 in a different machine mode.
19185
19186 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
19187
19188 * alias.c (base_alias_check): Fix typo in comment.
19189 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
19190 * cgraphunit.c (symbol_table::compile): Likewise.
19191 * collect2.c (maybe_run_lto_and_relink): Likewise.
19192 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
19193 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
19194 * config/avr/avr.c (avr_map_op_t): Likewise.
19195 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
19196 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
19197 * config/epiphany/epiphany.md (movcc): Likewise.
19198 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
19199 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
19200 Likewise.
19201 * config/mips/mips.c (mips_save_restore_reg): Likewise.
19202 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
19203 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
19204 * config/sh/sh.c (sh_rtx_costs): Likewise.
19205 * fold-const.c (fold_truth_andor): Likewise.
19206 * genautomata.c (collapse_flag): Likewise.
19207 * gengtype.h (struct type::u::s): Likewise.
19208 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
19209 * input.c (FORMAT_AMOUNT): Likewise.
19210 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
19211 (known_aggs_to_agg_replacement_list): Likewise.
19212 * ipa-inline-analysis.c: Likewise.
19213 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
19214 * ipa-polymorphic-call.c
19215 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
19216 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
19217 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
19218 Likewise.
19219 * modulo-sched.c (apply_reg_moves): Likewise.
19220 * omp-expand.c (build_omp_regions_1): Likewise.
19221 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
19222 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
19223 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
19224 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
19225 * value-prof.c: Likewise.
19226 * var-tracking.c (val_reset): Likewise.
19227
19228 2017-04-03 Richard Biener <rguenther@suse.de>
19229
19230 PR tree-optimization/80275
19231 * fold-const.c (split_address_to_core_and_offset): Handle
19232 POINTER_PLUS_EXPR.
19233
19234 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
19235
19236 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
19237 descriptors is at least equal to that of functions.
19238
19239 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
19240
19241 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
19242
19243 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
19244
19245 PR target/80250
19246 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
19247 (mov<IMOD4:mode>): New expander.
19248 (*mov<IMOD4:mode>_internal): New insn and split pattern.
19249
19250 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
19251
19252 PR rtl-optimization/79405
19253 * fwprop.c (propagations_left): New variable.
19254 (forward_propagate_into): Decrement it.
19255 (fwprop_init): Initialize it.
19256 (fw_prop): If the variable has reached zero, stop propagating.
19257 (fwprop_addr): Ditto.
19258
19259 2017-03-31 Jakub Jelinek <jakub@redhat.com>
19260
19261 PR debug/79255
19262 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
19263 a FUNCTION_DECL, pass it as decl instead of origin to
19264 process_scope_var.
19265
19266 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
19267
19268 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
19269 string.
19270
19271 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
19272
19273 PR target/80107
19274 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
19275 TARGET_VSX_SMALL_INTEGER.
19276
19277 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19278
19279 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
19280 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
19281
19282 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
19283
19284 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
19285 extraction from odd-numbered MSA register.
19286
19287 2017-03-31 Jakub Jelinek <jakub@redhat.com>
19288
19289 PR middle-end/80173
19290 * expmed.c (store_bit_field_1): Don't attempt to create
19291 a word subreg out of hard registers wider than word if they
19292 have HARD_REGNO_NREGS of 1 for their mode.
19293
19294 PR middle-end/80163
19295 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
19296 conversions to integer types wider than word and pointer.
19297
19298 PR debug/80025
19299 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
19300 (rtx_equal_for_cselib_p): Pass 0 to it.
19301 * cselib.c (cselib_hasher::equal): Likewise.
19302 (rtx_equal_for_cselib_1): Add depth argument. If depth
19303 is 128, don't look up VALUE locs and punt. Increment
19304 depth in recursive calls when walking VALUE locs.
19305
19306 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
19307
19308 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
19309 (make_gcov_file_name): Use the canonical path name for generating
19310 the MD5 value.
19311 (read_line): Fix handling of files with ascii null bytes.
19312
19313 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
19314
19315 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
19316 to initialise a vector register instead
19317 of using a const_int.
19318
19319 2017-03-30 Jakub Jelinek <jakub@redhat.com>
19320
19321 PR translation/80189
19322 * gimplify.c (omp_default_clause): Use %qs instead of %s in
19323 diagnostic messages.
19324
19325 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
19326
19327 PR target/80246
19328 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
19329 (dfp_diex_<mode>): Update mode of operand 1.
19330 * doc/extend.texi (dxex, dxexq): Document change to return type.
19331 (diex, diexq): Document change to argument type.
19332
19333 2017-03-30 Martin Jambor <mjambor@suse.cz>
19334
19335 PR ipa/77333
19336 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
19337 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
19338 it reflects the signature changes performed at the callee side.
19339 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
19340 to cgraph_build_function_type_skip_args.
19341 (build_function_decl_skip_args): Adjust call to the above function.
19342
19343 2017-03-30 Jakub Jelinek <jakub@redhat.com>
19344
19345 PR target/80206
19346 * config/i386/sse.md
19347 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
19348 register as dest whenever it is a MEM not rtx_equal_p to the
19349 corresponding dup operand, and when forcing into reg move the
19350 reg into the memory afterwards.
19351 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
19352 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
19353 for the force_reg mode.
19354 (avx512vl_vextractf128<mode>): Use register as dest either
19355 always when a MEM, or when it is a MEM not rtx_equal_p to the
19356 corresponding dup operand, or even not when it is a CONST_VECTOR
19357 depending on the mode and lo vs. hi.
19358 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
19359 parens.
19360 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
19361 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
19362 Likewise. Require that operands[2] is even.
19363 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
19364 Remove extraneous parens. Require that operands[2] is a multiple
19365 of 4.
19366 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
19367 operands[0] is a MEM if <mask_applied>, the predicates/constraints
19368 disallow memory then.
19369
19370 2017-03-30 Richard Biener <rguenther@suse.de>
19371
19372 PR tree-optimization/77498
19373 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
19374 to non-constants over backedges.
19375
19376 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
19377
19378 PR rtl-optimization/80233
19379 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
19380 as last_combined_insn. Do not test for BARRIER_P separately.
19381
19382 2017-03-29 Andreas Schwab <schwab@suse.de>
19383
19384 PR ada/80146
19385 * calls.c (prepare_call_address): Convert funexp to Pmode before
19386 copying to temp reg.
19387
19388 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19389
19390 PR tree-optimization/80158
19391 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
19392 Handle possible future case of more than one alternate
19393 interpretation.
19394 (replace_rhs_if_not_dup): Likewise.
19395 (replace_one_candidate): Likewise.
19396
19397 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
19398
19399 PR rtl-optimization/80193
19400 * ira.c (ira): Do not check allocation for LRA.
19401
19402 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
19403
19404 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
19405 (nvptx_output_simt_exit): Declare.
19406 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
19407 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
19408 (init_softstack_frame): Move initialization of crtl->is_leaf to...
19409 (nvptx_declare_function_name): ...here. Emit declaration of local
19410 memory space buffer for omp_simt_enter insn.
19411 (nvptx_output_unisimt_switch): New.
19412 (nvptx_output_softstack_switch): New.
19413 (nvptx_output_simt_enter): New.
19414 (nvptx_output_simt_exit): New.
19415 * config/nvptx/nvptx.h (struct machine_function): New fields
19416 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
19417 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
19418 (UNSPECV_SIMT_EXIT): Ditto.
19419 (omp_simt_enter_insn): New insn.
19420 (omp_simt_enter): New expansion.
19421 (omp_simt_exit): New insn.
19422 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
19423
19424 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
19425 (expand_GOMP_SIMT_ENTER_ALLOC): New.
19426 (expand_GOMP_SIMT_EXIT): New.
19427 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
19428 (GOMP_SIMT_ENTER_ALLOC): Ditto.
19429 (GOMP_SIMT_EXIT): Ditto.
19430 * target-insns.def (omp_simt_enter): New insn.
19431 (omp_simt_exit): Ditto.
19432 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
19433 simt_dlist.
19434 (lower_rec_simd_input_clauses): Implement SIMT privatization.
19435 (lower_rec_input_clauses): Likewise.
19436 (lower_lastprivate_clauses): Handle SIMT privatization.
19437
19438 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
19439 (ompdevlow_adjust_simt_enter): New.
19440 (find_simtpriv_var_op): New.
19441 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
19442 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
19443
19444 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
19445 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
19446 (copy_decl_for_dup_finish): Ditto.
19447
19448 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
19449
19450 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
19451
19452 PR target/53383
19453 * config/i386/i386.c (ix86_option_override_internal): Always
19454 allow -mpreferred-stack-boundary=3 for 64-bit targets.
19455
19456 2017-03-28 Bin Cheng <bin.cheng@arm.com>
19457
19458 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
19459
19460 2017-03-28 Bin Cheng <bin.cheng@arm.com>
19461
19462 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
19463 mark new edge's irreducible flag accordign to it.
19464 (vect_do_peeling): Check loop preheader edge's irreducible flag
19465 and pass it to function slpeel_add_loop_guard.
19466
19467 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
19468
19469 PR tree-optimization/80218
19470 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
19471 Update block frequencies and counts.
19472
19473 2017-03-28 Richard Biener <rguenther@suse.de>
19474
19475 PR tree-optimization/78644
19476 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
19477 of a simplification result we may not use it at all.
19478
19479 2017-03-28 Richard Biener <rguenther@suse.de>
19480
19481 PR ipa/80205
19482 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
19483 without arguments, generate default definition of a SSA name.
19484
19485 2017-03-28 Richard Biener <rguenther@suse.de>
19486
19487 PR middle-end/80222
19488 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
19489 TYPE_REF_CAN_ALIAS_ALL references.
19490 * fold-const.c (fold_indirect_ref_1): Likewise.
19491
19492 2017-03-28 Martin Liska <mliska@suse.cz>
19493
19494 PR ipa/80104
19495 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
19496 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
19497
19498 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
19499 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
19500
19501 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
19502 (EXTRA_SPECS): Define.
19503 (SUBTARGET_EXTRA_SPECS): Likewise.
19504 (SUBTARGET_CPP_SPEC): Likewise.
19505 * config/arc/elf.h (EXTRA_SPECS): Renamed to
19506 SUBTARGET_EXTRA_SPECS.
19507 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
19508
19509 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
19510
19511 * config/arc/simdext.md (vst64_insn): Update pattern.
19512 (vld32wh_insn): Likewise.
19513 (vld32wl_insn): Likewise.
19514 (vld64_insn): Likewise.
19515 (vld32_insn): Likewise.
19516
19517 2017-03-28 Marek Polacek <polacek@redhat.com>
19518
19519 PR sanitizer/80067
19520 * fold-const.c (fold_comparison): Use protected_set_expr_location
19521 instead of SET_EXPR_LOCATION.
19522
19523 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
19524
19525 * tree.c (add_expr): Avoid name lookup warning.
19526
19527 2017-03-27 Jeff Law <law@redhat.com>
19528
19529 PR tree-optimization/80216
19530 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
19531 function name. Limit recursion depth.
19532 (record_temporary_equivalences): Corresponding changes.
19533
19534 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
19535
19536 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
19537 covered first.
19538
19539 2017-03-27 Jakub Jelinek <jakub@redhat.com>
19540
19541 PR target/80102
19542 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
19543 notes.
19544 * cfgcleanup.c (reg_note_cfa_p): New array.
19545 (insns_have_identical_cfa_notes): New function.
19546 (old_insns_match_p): Don't cross-jump in between /f
19547 and non-/f instructions. If both i1 and i2 are frame related,
19548 verify all CFA notes, their order and content.
19549
19550 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
19551
19552 PR target/78543
19553 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
19554 HImode and SImode with zero extend to DImode to one insn.
19555 (bswap<mode>2_extenddi): Likewise.
19556 (bswapsi2_extenddi): Likewise.
19557 (bswaphi2_extendsi): Likewise.
19558 (bswaphi2): Combine bswap HImode and SImode into one insn.
19559 Separate memory insns from swapping register.
19560 (bswapsi2): Likewise.
19561 (bswap<mode>2): Likewise.
19562 (bswaphi2_internal): Delete, no longer used.
19563 (bswapsi2_internal): Likewise.
19564 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
19565 store, and gpr<-gpr swap insns.
19566 (bswap<mode>2_store): Likewise.
19567 (bswaphi2_reg): Register only splitter, combine with the splitter.
19568 (bswaphi2 splitter): Likewise.
19569 (bswapsi2_reg): Likewise.
19570 (bswapsi2 splitter): Likewise.
19571 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
19572 the insns into load, store, and register/register insns.
19573 (bswapdi2_ldbrx): Likewise.
19574 (bswapdi2_load): Likewise.
19575 (bswapdi2_store): Likewise.
19576 (bswapdi2_reg): Likewise.
19577
19578 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
19579
19580 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
19581 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
19582
19583 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
19584
19585 PR target/80103
19586 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
19587 add comments.
19588 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
19589 special handling for target option conflicts between dform
19590 options (-mpower9-dform, -mpower9-dform-vector,
19591 -mpower9-dform-scalar) and -mno-direct-move.
19592
19593 2017-03-27 Richard Biener <rguenther@suse.de>
19594
19595 PR tree-optimization/80181
19596 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
19597
19598 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
19599
19600 * config/arc/predicates.md (move_double_src_operand): Replace the
19601 call to move_double_src_operand with a call to address_operand.
19602
19603 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
19604
19605 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
19606 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
19607 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
19608
19609 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
19610
19611 * config/arc/predicates.md (long_immediate_loadstore_operand):
19612 Consider scaled addresses cases.
19613
19614 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
19615
19616 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
19617 restored when in interrupt.
19618 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
19619 doesn't have delay slot.
19620
19621 2017-03-27 Richard Biener <rguenther@suse.de>
19622
19623 PR ipa/79776
19624 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
19625 inlined thunk clones.
19626
19627 2017-03-27 Jakub Jelinek <jakub@redhat.com>
19628
19629 PR sanitizer/80168
19630 * asan.c (instrument_derefs): Copy over last operand from
19631 original COMPONENT_REF to the new COMPONENT_REF with
19632 DECL_BIT_FIELD_REPRESENTATIVE.
19633 * ubsan.c (instrument_object_size): Likewise.
19634
19635 2017-03-27 Richard Biener <rguenther@suse.de>
19636
19637 PR tree-optimization/80170
19638 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
19639 sure DR/SCEV didnt fold in constants we do not see when looking
19640 at the reference base alignment.
19641
19642 2017-03-27 Richard Biener <rguenther@suse.de>
19643
19644 PR middle-end/80171
19645 * gimple-fold.c (fold_ctor_reference): Properly guard against
19646 NULL return value from canonicalize_constructor_val.
19647
19648 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
19649
19650 PR target/80180
19651 * config/i386/i386.c (ix86_expand_builtin)
19652 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
19653 flags reg setting and flags reg using instructions.
19654 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
19655 clobbering instructions to zero extend op2.
19656
19657 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
19658
19659 * doc/install.texi (Configuration) <--with-aix-soname>:
19660 Update link to AIX ld.
19661
19662 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
19663
19664 PR rtl-optimization/80160
19665 PR rtl-optimization/80159
19666 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
19667 reg_alternate_class into account.
19668
19669 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
19670
19671 PR target/80148
19672 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
19673 to consider in curr_insn_transform.
19674
19675 2017-03-24 Jakub Jelinek <jakub@redhat.com>
19676
19677 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
19678 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
19679 and emit_mode_inner.
19680
19681 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19682
19683 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
19684 argument to the overloaded builtin variants. Use the new flag to
19685 deprecate certain builtin variants.
19686 * config/s390/s390-builtin-types.def: Add new builtin types.
19687 * config/s390/s390-builtins.h: Support new flags field for
19688 overloaded builtins.
19689 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
19690 (s390_macro_to_expand): Enable vector float data type.
19691 (s390_cpu_cpp_builtins_internal): Indicate support of the new
19692 builtins by incrementing the __VEC__ version number.
19693 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
19694 vec_xst.
19695 (s390_resolve_overloaded_builtin): Emit error messages depending
19696 on the builtin flags.
19697 * config/s390/s390.c (s390_expand_builtin): Support additional
19698 flags argument. Change error message to match the messages
19699 emitted in s390-c.c.
19700 * config/s390/s390.md: New UNSPEC_* constants.
19701 (op_type): Add new instruction types.
19702 * config/s390/vecintrin.h: Add new builtins and test data class
19703 constants.
19704 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
19705 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
19706 (VEC_INEXACT, VEC_NOINEXACT): New constants.
19707 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
19708 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
19709 ("vec_mergel<mode>"): V_HW -> VEC_HW.
19710
19711 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
19712 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
19713 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
19714 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
19715
19716 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
19717 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
19718 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
19719 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
19720
19721 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
19722 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
19723 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
19724 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
19725 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
19726 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
19727 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
19728
19729 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
19730 ("vec_scatter_element<V_HW_4:mode>_DI")
19731 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
19732 ("vec_fpint<mode>", "vflls")
19733 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
19734 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
19735 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
19736 ("*vec_cmphe<mode>_cc"): ... these.
19737
19738 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
19739 mode constant instead of magic value.
19740
19741 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19742
19743 * config/s390/s390.c (s390_expand_vec_compare): Support other
19744 vector floating point modes than just V2DF.
19745 (s390_expand_vcond): Likewise.
19746 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
19747 (s390_cannot_change_mode_class): Prevent mode changes between TF
19748 and V1TF in vector registers.
19749 * config/s390/s390.md (DF, SF): New mode attributes.
19750 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
19751 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
19752 SFmode support for VRs.
19753 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
19754 vector fp modes.
19755 (VFT, VF_HW): New mode iterators.
19756 (vw, sdx): New mode attributes.
19757 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
19758 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
19759 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
19760 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
19761 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
19762 also the new vector floating point modes. Renaming to ...
19763
19764 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
19765 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
19766 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
19767 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
19768 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
19769 ("vec_unordered<mode>"): ... these.
19770
19771 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
19772 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
19773 ("*vec_extendv2df"): New insn definitions.
19774
19775 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19776
19777 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
19778 ("mulditi3_2", "*muldi3_sign"): New patterns.
19779 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
19780 rename the pattern definition.
19781
19782 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19783
19784 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
19785 expander.
19786 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
19787
19788 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19789
19790 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
19791 instruction if possible.
19792 * config/s390/vector.md (vec_halfnumelts): New mode
19793 attribute.
19794 ("*vec_vllezlf<mode>"): New pattern.
19795
19796 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19797
19798 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
19799 ("popcountv4si2", "popcountv2di2"): Rename to ...
19800 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
19801 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
19802 condition.
19803 ("popcount<mode>2_vxe"): New pattern.
19804
19805 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19806
19807 * common/config/s390/s390-common.c (processor_flags_table): Add
19808 arch12.
19809 * config.gcc: Add arch12.
19810 * config/s390/driver-native.c (s390_host_detect_local_cpu):
19811 Default to arch12 for unknown CPU model numbers.
19812 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
19813 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
19814 PROCESSOR_max sanity check.
19815 * config/s390/s390-opts.h (enum processor_type): Add
19816 PROCESSOR_ARCH12.
19817 * config/s390/s390.c (processor_table): Add arch12.
19818 (s390_expand_builtin): Add check for B_VXE flag.
19819 (s390_issue_rate): Add PROCESSOR_ARCH12.
19820 (s390_get_sched_attrmask): Likewise.
19821 (s390_get_unit_mask): Likewise.
19822 (s390_sched_score): Enable z13 scheduling for arch12.
19823 (s390_sched_reorder): Likewise.
19824 (s390_sched_variable_issue): Likewise.
19825 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
19826 PF_VXE.
19827 (s390_tune_attr): Use z13 scheduling also for arch12.
19828 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
19829 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
19830 (TARGET_VXE_P): New macros.
19831 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
19832 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
19833 * config/s390/s390.opt: Add arch12 as processor_type.
19834
19835 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19836
19837 * config/s390/s390.md
19838 ("fixuns_truncdddi2", "fixuns_trunctddi2")
19839 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
19840 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
19841
19842 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
19843 Rename expanders to ...
19844
19845 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
19846 ("fixuns_truncdddi2_emu"): ... these.
19847
19848 ("fixuns_trunc<mode>si2_emu"): New expander.
19849
19850 ("*fixuns_truncdfdi2_z13"): Rename to ...
19851 ("*fixuns_truncdfdi2_vx"): ... this.
19852
19853 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19854
19855 * config/s390/2964.md: Remove the single element vector compare
19856 instructions which are no longer used.
19857 * config/s390/s390.c (s390_select_ccmode): Remove handling of
19858 vector CCmodes.
19859 (s390_canonicalize_comparison): Remove handling of DFmode
19860 compares.
19861 (s390_expand_vec_compare_scalar): Remove function.
19862 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
19863 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
19864 pattern.
19865 ("*cmp<mode>_ccs"): Add wfcdb instruction.
19866
19867 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19868
19869 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
19870 FP zero.
19871 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
19872 will anyway by matched by mov<mode>_64dfp.
19873
19874 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19875
19876 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
19877 vlef/vstef. Add missing operand to vleif.
19878
19879 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19880
19881 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
19882 pair for all vector types with 64 bit elements.
19883 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
19884 * config/s390/vector.md (V_HW_64): ... here.
19885 (V_128_NOSINGLE): New mode iterator.
19886 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
19887 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
19888 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
19889 ("*vec_load_pairv2di"): Change to ...
19890 ("*vec_load_pair<mode>"): ... this one.
19891
19892 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19893
19894 * config/s390/constraints.md: Add comments.
19895 (jKK): Reject element sizes > 8 bytes.
19896 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
19897 s_operands.
19898 * config/s390/s390.md: Add the s_operand checks formerly in
19899 s390_split_ok_p to various splitters where they are still
19900 required.
19901 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
19902 for 128 bit vectors. Plus two splitters.
19903
19904 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19905
19906 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
19907 the file.
19908
19909 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19910
19911 PR target/79893
19912 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
19913 error if the boundary argument is not constant.
19914
19915 2017-03-24 Jakub Jelinek <jakub@redhat.com>
19916
19917 PR rtl-optimization/80112
19918 * loop-doloop.c (doloop_condition_get): Don't check condition
19919 if cmp isn't SET with IF_THEN_ELSE src.
19920
19921 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19922
19923 PR tree-optimization/80158
19924 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
19925 replacing a candidate statement, also replace it for the
19926 candidate's alternate interpretation.
19927 (replace_rhs_if_not_dup): Likewise.
19928 (replace_one_candidate): Likewise.
19929
19930 2017-03-24 Richard Biener <rguenther@suse.de>
19931
19932 PR tree-optimization/80167
19933 * graphite-isl-ast-to-gimple.c
19934 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
19935 properly.
19936 (translate_isl_ast_to_gimple::get_rename): Likewise.
19937
19938 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
19939
19940 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
19941 handling of certain combinations of target options, including the
19942 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
19943 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
19944
19945 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19946
19947 PR target/71436
19948 * config/arm/arm.md (*load_multiple): Add reload_completed to
19949 matching condition.
19950
19951 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19952 Richard Biener <rguenth@suse.de>
19953
19954 PR tree-optimization/79908
19955 PR tree-optimization/80136
19956 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
19957 been cast away, gimplify_and_add suffices.
19958
19959 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
19960
19961 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
19962
19963 2017-03-23 Richard Biener <rguenther@suse.de>
19964
19965 PR tree-optimization/80032
19966 * gimplify.c (gimple_push_cleanup): Forced unconditional
19967 cleanups still have to go to the conditional_cleanups
19968 sequence.
19969
19970 2017-03-22 Jakub Jelinek <jakub@redhat.com>
19971
19972 PR tree-optimization/80072
19973 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
19974 to unsigned int.
19975 (next_operand_entry_id): Change type to unsigned int.
19976 (sort_by_operand_rank): Make sure to return the right return value
19977 even if unsigned fields are bigger than INT_MAX.
19978 (struct oecount): Change cnt and id type to unsigned int.
19979 (oecount_hasher::equal): Formatting fix.
19980 (oecount_cmp): Make sure to return the right return value
19981 even if unsigned fields are bigger than INT_MAX.
19982 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
19983
19984 PR c++/80129
19985 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
19986 TREE_READONLY on result if writing it more than once.
19987
19988 PR sanitizer/80110
19989 * doc/invoke.texi (-fsanitize=thread): Document that with
19990 -fnon-call-exceptions atomics are not able to throw
19991 exceptions.
19992
19993 PR sanitizer/80110
19994 * tsan.c: Include tree-eh.h.
19995 (instrument_builtin_call): Call maybe_clean_eh_stmt or
19996 maybe_clean_or_replace_eh_stmt where needed.
19997 (instrument_memory_accesses): Add cfg_changed argument.
19998 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
19999 if it returned true.
20000 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
20001
20002 PR rtl-optimization/63191
20003 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
20004 wrapper function, moved the whole old content into ...
20005 (ix86_delegitimize_address_1): ... this. New inline function.
20006 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
20007 true as last argument instead of ix86_delegitimize_address.
20008
20009 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
20010
20011 * config/aarch64/aarch64.c (generic_branch_cost): Copy
20012 cortexa57_branch_cost.
20013
20014 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
20015
20016 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
20017
20018 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
20019
20020 PR target/80123
20021 * doc/md.texi (Constraints): Document wA constraint.
20022 * config/rs6000/constraints.md (wA): New.
20023 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
20024 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
20025 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
20026 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
20027
20028 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
20029
20030 PR c++/80029
20031 * gimplify.c (is_oacc_declared): New function.
20032 (oacc_default_clause): Use it to set default flags for acc declared
20033 variables inside parallel regions.
20034 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
20035 declared variables.
20036 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
20037 declare attribute to any decl as necessary.
20038
20039 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
20040
20041 PR target/80082
20042 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
20043 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
20044 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
20045 (arm_arch_lpae): This.
20046 * config/arm/arm.c (arm_arch7ve): Rename into ...
20047 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
20048 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
20049 arm_arch_lpae.
20050
20051 2017-03-22 Martin Liska <mliska@suse.cz>
20052
20053 PR target/79906
20054 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
20055 error message instead of an ICE.
20056
20057 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20058
20059 * doc/extend.texi (6.11 Additional Floating Types): Revise.
20060
20061 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
20062
20063 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
20064 comments.
20065 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
20066 comments.
20067
20068 2017-03-21 Martin Sebor <msebor@redhat.com>
20069
20070 * doc/extend.texi: Use "cannot" instead of "can't."
20071 * doc/hostconfig.texi: Same.
20072 * doc/install.texi: Same.
20073 * doc/invoke.texi: Same.
20074 * doc/loop.texi: Same.
20075 * doc/md.texi: Same.
20076 * doc/objc.texi: Same.
20077 * doc/rtl.texi: Same.
20078 * doc/tm.texi: Same.
20079 * doc/tm.texi.in: Same.
20080 * doc/trouble.texi: Same.
20081
20082 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
20083
20084 PR debug/63238
20085 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
20086 (collect_checksum_attributes): Set it.
20087 (die_checksum_ordered): Use it.
20088
20089 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20090
20091 PR tree-optimization/79908
20092 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
20093 change: For a VA_ARG whose LHS has been cast away, use
20094 force_gimple_operand to construct the side effects.
20095
20096 2017-03-21 David Malcolm <dmalcolm@redhat.com>
20097
20098 PR translation/80001
20099 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
20100 more amenable to translation.
20101 (oacc_loop_auto_partitions): Likewise.
20102
20103 2017-03-21 Marek Polacek <polacek@redhat.com>
20104 Martin Sebor <msebor@redhat.com>
20105
20106 PR tree-optimization/80109
20107 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
20108 on INTEGRAL_TYPE_P.
20109
20110 2017-03-21 Jakub Jelinek <jakub@redhat.com>
20111 Segher Boessenkool <segher@kernel.crashing.org>
20112
20113 PR target/80125
20114 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
20115 check reg_used_between_p between insn and one of succ or succ2
20116 depending on if succ is artificial insn not inserted into insn
20117 stream.
20118
20119 2017-03-21 Martin Liska <mliska@suse.cz>
20120
20121 PR gcov-profile/80081
20122 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
20123 * doc/gcc.texi: Include gcov-dump stuff.
20124 * doc/gcov-dump.texi: New file.
20125
20126 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
20127
20128 PR rtl-optimization/79150
20129 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
20130 conditional jump, if the jump is the last insn of the loop.
20131
20132 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20133 Richard Biener <rguenth@suse.de>
20134
20135 PR tree-optimization/79908
20136 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
20137 been cast away, use force_gimple_operand to construct the side
20138 effects.
20139
20140 2017-03-21 Martin Liska <mliska@suse.cz>
20141
20142 PR libfortran/79956
20143 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
20144 to NULL.
20145
20146 2017-03-21 Brad Spengler <spender@grsecurity.net>
20147
20148 PR plugins/80094
20149 * plugin.c (htab_hash_plugin): New function.
20150 (add_new_plugin): Use it and adjust.
20151 (parse_plugin_arg_opt): Adjust.
20152 (init_one_plugin): Likewise.
20153
20154 2017-03-21 Richard Biener <rguenther@suse.de>
20155
20156 PR tree-optimization/80032
20157 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
20158 if set force the cleanup to happen unconditionally.
20159 (gimplify_target_expr): Push inserted clobbers with force_uncond
20160 to avoid them being removed by control-dependent DCE.
20161
20162 2017-03-21 Richard Biener <rguenther@suse.de>
20163
20164 PR tree-optimization/80122
20165 * tree-inline.c (copy_bb): Do not expans va-arg packs or
20166 va_arg_pack_len when the inlined call stmt requires pack
20167 expansion itself.
20168 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
20169
20170 2017-03-21 Jakub Jelinek <jakub@redhat.com>
20171
20172 PR sanitizer/78158
20173 * tsan.c (instrument_builtin_call): If the memory model argument
20174 is not a constant, assume it is valid.
20175
20176 PR c/67338
20177 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
20178 avoid UB.
20179
20180 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
20181
20182 PR rtl-optimization/79910
20183 * combine.c (can_combine_p): Do not allow combining an I0 or I1
20184 if its dest is used by an insn before I2 (other than the combined
20185 insns themselves, which are properly handled already).
20186
20187 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
20188
20189 Revert:
20190 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
20191
20192 * combine.c (record_used_regs): New static function.
20193 (try_combine): Handle situations where there is an additional
20194 instruction between I2 and I3 which needs to have a LOG_LINK
20195 updated.
20196
20197 Revert:
20198 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
20199
20200 * combine.c (try_combine): Delete redundant i1 test. Call
20201 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
20202
20203 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
20204
20205 PR target/80083
20206 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
20207 alternatives 13/14.
20208
20209 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20210
20211 PR tree-optimization/80054
20212 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
20213 the optimization if a PHI or any of its arguments is not dominated
20214 by the candidate's basis. Use gphi* rather than gimple* as
20215 appropriate.
20216 (replace_profitable_candidates): Clean up a gimple* variable that
20217 should be a gphi* variable.
20218
20219 2017-03-20 Martin Sebor <msebor@redhat.com>
20220
20221 PR c++/52477
20222 * doc/extend.texi (attribute constructor): Document present limitation.
20223
20224 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
20225
20226 PR target/79963
20227 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
20228 __POWER9_VECTOR__ #ifdef control, change template definition to
20229 use Power9-specific built-in function.
20230 (vec_any_eq): Likewise.
20231 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
20232 to control outcomes from this test.
20233 (vector_ae_<mode>p): For VEC_F modes, likewise.
20234
20235 2017-03-20 Ian Lance Taylor <iant@google.com>
20236
20237 * config/i386/i386.c (ix86_function_regparm): Save an extra
20238 register for -fsplit-stack with DECL_STATIC_CHAIN.
20239
20240 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
20241
20242 PR target/79912
20243 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
20244 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
20245
20246 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
20247
20248 * config/riscv/riscv.c (riscv_print_operand): Use "fence
20249 iorw,ow".
20250 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
20251 iorw,iorw".
20252
20253 2017-03-20 Marek Polacek <polacek@redhat.com>
20254
20255 PR sanitizer/80063
20256 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
20257
20258 2017-03-20 Richard Biener <rguenther@suse.de>
20259
20260 PR tree-optimization/80113
20261 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
20262 allocate extra SSA name for PHI def.
20263 (add_close_phis_to_outer_loops): Likewise.
20264 (add_close_phis_to_merge_points): Likewise.
20265 (copy_loop_close_phi_args): Likewise.
20266 (copy_cond_phi_nodes): Likewise.
20267
20268 2017-03-20 Martin Liska <mliska@suse.cz>
20269
20270 PR middle-end/79753
20271 * tree-chkp.c (chkp_build_returned_bound): Do not build
20272 returned bounds for a LHS that's not a BOUNDED_P type.
20273
20274 2017-03-20 Martin Liska <mliska@suse.cz>
20275
20276 PR target/79769
20277 PR target/79770
20278 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
20279 COMPLEX_CST and VECTOR_CST.
20280
20281 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20282
20283 PR target/78857
20284 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
20285 target operand. A new splitter adds the clobber statement in case
20286 the target operand is dead anyway.
20287
20288 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
20289
20290 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
20291 to age-old versions of binutils and glibc.
20292
20293 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
20294
20295 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
20296
20297 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
20298
20299 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
20300
20301 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
20302
20303 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
20304 requirement for binutils 2.13.
20305
20306 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
20307
20308 * combine.c (try_combine): Delete redundant i1 test. Call
20309 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
20310
20311 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
20312
20313 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
20314 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
20315 contents.
20316 <riscv64-*-elf>: Re-arrange section
20317 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
20318 <riscv32-*-linux>: Likewise.
20319 <riscv64-*-elf>: Likewise
20320 <riscv64-*-linux>: Likewise.
20321
20322 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
20323
20324 PR target/80052
20325 * aarch64.opt(verbose-cost-dump): Fix typo.
20326
20327 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
20328
20329 PR target/79951
20330 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
20331 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
20332
20333 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
20334
20335 * reload.c (find_reloads): When reloading a nonoffsettable address,
20336 use RELOAD_OTHER for it and its address reloads.
20337
20338 PR rtl-optimization/79910
20339 * combine.c (record_used_regs): New static function.
20340 (try_combine): Handle situations where there is an additional
20341 instruction between I2 and I3 which needs to have a LOG_LINK
20342 updated.
20343
20344 2017-03-17 Jeff Law <law@redhat.com>
20345
20346 PR tree-optimization/71437
20347 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
20348 conditional in the hash table first.
20349 (vrp_dom_walker::before_dom_children): Extract condition from
20350 ASSERT_EXPR. Record condition, its inverion and any implied
20351 conditions as well.
20352
20353 2017-03-17 Marek Polacek <polacek@redhat.com>
20354 Markus Trippelsdorf <markus@trippelsdorf.de>
20355
20356 PR tree-optimization/80079
20357 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
20358 m_stores_head.
20359
20360 2017-03-17 Richard Biener <rguenther@suse.de>
20361
20362 PR middle-end/80075
20363 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
20364 Properly verify the LHS before the RHS possibly claims to be
20365 handled.
20366 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
20367 do not throw.
20368
20369 2017-03-17 Martin Jambor <mjambor@suse.cz>
20370
20371 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
20372 (List of -O2 options): Likewise.
20373 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
20374 (-fipa-vrp) New.
20375
20376 2017-03-17 Tom de Vries <tom@codesourcery.com>
20377
20378 * gcov-dump.c (print_usage): Print bug_report_url.
20379
20380 2017-03-17 Richard Biener <rguenther@suse.de>
20381
20382 PR middle-end/80050
20383 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
20384 (parser::peek): Likewise.
20385
20386 2017-03-17 Richard Biener <rguenther@suse.de>
20387
20388 PR tree-optimization/80048
20389 * sese.c (free_sese_info): Properly release rename_map and
20390 copied_bb_map elements.
20391
20392 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
20393
20394 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
20395 Add linked-list forward and backlinks. Insert on
20396 construction, remove on destruction.
20397 (class pass_store_merging): Add m_stores_head field.
20398 (pass_store_merging::terminate_and_process_all_chains):
20399 Iterate over m_stores_head list.
20400 (pass_store_merging::terminate_all_aliasing_chains):
20401 Likewise.
20402 (pass_store_merging::execute): Check for debug stmts first.
20403 Push new chains onto the m_stores_head stack.
20404
20405 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
20406
20407 PR target/71294
20408 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
20409 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
20410 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
20411
20412 2017-03-16 Jeff Law <law@redhat.com>
20413
20414 PR tree-optimization/71437
20415 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
20416 member function. Implementation moved into after_dom_children
20417 member function and into the threader's thread_outgoing_edges
20418 function.
20419 (dom_opt_dom_walker::after_dom_children): Simplify by moving
20420 some code into new thread_outgoing_edges.
20421 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
20422 definition. Simplify marker handling (do it here). Assume we always
20423 have the available expression and the const/copies tables.
20424 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
20425 and tree-vrp.c
20426 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
20427 * tree-vrp.c (equiv_stack): No longer file scoped.
20428 (vrp_dom_walker): New class.
20429 (vrp_dom_walker::before_dom_children): New member function.
20430 (vrp_dom_walker::after_dom_children): Likewise.
20431 (identify_jump_threads): Setup domwalker. Use it rather than
20432 walking edges in a random order by hand. Simplify setup/finalization.
20433 (finalize_jump_threads): Remove.
20434 (vrp_finalize): Do not call identify_jump_threads here.
20435 (execute_vrp): Do it here instead and call thread_through_all_blocks
20436 here too.
20437
20438 PR tree-optimization/71437
20439 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
20440 callers changed.
20441 (simplify_stmt_for_jump_threading): Add basic_block argument. All
20442 callers changed.
20443 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
20444 (dom_opt_dom_walker::thread_across_edge): Remove
20445 handle_dominating_asserts argument. All callers changed.
20446 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
20447 changes. Remove calls to lhs_of_dominating_assert. Other
20448 uses of handle_dominating_asserts turn into unconditional code
20449 (simplify_control_stmt_condition_1): Likewise.
20450 (simplify_control_stmt_condition): Likewise.
20451 (thread_through_normal_block, thread_across_edge): Likewise.
20452 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
20453 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
20454 object if it is not an SSA_NAME.
20455 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
20456 before calling into the VRP specific simplifiers.
20457 (identify_jump_threads): Remove handle_dominating_asserts
20458 argument.
20459
20460 2017-03-16 Jakub Jelinek <jakub@redhat.com>
20461
20462 PR fortran/79886
20463 * tree-diagnostic.c (default_tree_printer): No longer static.
20464 * tree-diagnostic.h (default_tree_printer): New prototype.
20465
20466 2017-03-16 Tamar Christina <tamar.christina@arm.com>
20467
20468 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
20469 Change ins into fmov.
20470
20471 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20472
20473 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
20474 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
20475 Use h_con constraint for operand 1.
20476 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
20477 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
20478
20479 2017-03-15 Jeff Law <law@redhat.com>
20480
20481 PR tree-optimization/71437
20482 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
20483 (record_temporary_equivalences): Use it.
20484
20485 PR tree-optimization/71437
20486 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
20487 tree-ssa-scopedtables.
20488 (lookup_avail_expr, build_and_record_new_cond): Likewise.
20489 (record_conditions, record_cond, vuse_eq): Likewise.
20490 (record_edge_info): Adjust to API tweak of record_conditions.
20491 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
20492 (record_temporary_equivalences, optimize_stmt): Likewise.
20493 (eliminate_redundant_computations): Likewise.
20494 (record_equivalences_from_stmt): Likewise.
20495 * tree-ssa-scopedtables.c: Include options.h and params.h.
20496 (vuse_eq): New function, moved from tree-ssa-dom.c
20497 (build_and_record_new_cond): Likewise.
20498 (record_conditions): Likewise. Accept vector of conditions rather
20499 than edge_equivalence structure for first argument.
20500 for the first argument.
20501 (avail_exprs_stack::lookup_avail_expr): New member function, moved
20502 from tree-ssa-dom.c.
20503 (avail_exprs_stack::record_cond): Likewise.
20504 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
20505 from tree-ssa-dom.c.
20506 (avail_exprs_stack): Add new member functions lookup_avail_expr
20507 and record_cond.
20508 (record_conditions): Declare.
20509
20510 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
20511
20512 PR target/80017
20513 * lra-constraints.c (process_alt_operands): Increase reject for
20514 reloading an input/output operand.
20515
20516 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
20517
20518 PR target/79038
20519 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
20520 insns to convert from signed/unsigned char/short to IEEE 128-bit
20521 floating point.
20522 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
20523
20524 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
20525
20526 PR target/80019
20527 * config/i386/i386.c (ix86_vector_duplicate_value): Create
20528 subreg of inner mode for values already in registers.
20529
20530 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
20531
20532 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
20533 iteration reg is used after the loop.
20534
20535 2017-03-14 Martin Sebor <msebor@redhat.com>
20536
20537 PR tree-optimization/79800
20538 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
20539 precision in negative-positive range.
20540 (format_floating): Call non-const overload with adjusted precision.
20541
20542 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
20543
20544 PR target/79947
20545 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
20546 -mpowerpc-gfxopt.
20547
20548 2017-03-14 Martin Sebor <msebor@redhat.com>
20549
20550 PR middle-end/80020
20551 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
20552 * builtins.def (aligned_alloc): Use it.
20553
20554 PR c/79936
20555 * Makefile.in (GTFILES): Add calls.c.
20556 * calls.c: Include "gt-calls.h".
20557
20558 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
20559
20560 PR rtl-optimization/79728
20561 * regs.h (struct target_regs): New field
20562 x_contains_allocatable_regs_of_mode.
20563 (contains_allocatable_regs_of_mode): New macro.
20564 * reginfo.c (init_reg_sets_1): Initialize it, and change
20565 contains_reg_of_mode so it includes global regs as well.
20566 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
20567 rather than contains_regs_of_mode.
20568
20569 2017-03-14 Martin Liska <mliska@suse.cz>
20570
20571 * doc/invoke.texi: Document options that can't be combined with
20572 -fcheck-pointer-bounds.
20573
20574 2017-03-14 Martin Liska <mliska@suse.cz>
20575
20576 PR middle-end/79831
20577 * doc/invoke.texi (-Wchkp): Document the option.
20578
20579 2017-03-14 Martin Liska <mliska@suse.cz>
20580
20581 * Makefile.in: Install gcov-dump.
20582
20583 2017-03-14 Martin Liska <mliska@suse.cz>
20584
20585 * multiple_target.c (expand_target_clones): Bail out for
20586 an invalid attribute.
20587
20588 2017-03-14 Richard Biener <rguenther@suse.de>
20589
20590 * alias.c (struct alias_set_entry): Pack properly.
20591 * cfgloop.h (struct loop): Likewise.
20592 * cse.c (struct set): Likewise.
20593 * ipa-utils.c (struct searchc_env): Likewise.
20594 * loop-invariant.c (struct invariant): Likewise.
20595 * lra-remat.c (struct cand): Likewise.
20596 * recog.c (struct change_t): Likewise.
20597 * rtl.h (struct address_info): Likewise.
20598 * symbol-summary.h (function_summary): Likewise.
20599 * tree-loop-distribution.c (struct partition): Likewise.
20600 * tree-object-size.c (struct object_size_info): Likewise.
20601 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
20602 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
20603 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
20604 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
20605 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
20606 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
20607 (struct _stmt_vec_info): Likewise.
20608
20609 2017-03-14 Martin Liska <mliska@suse.cz>
20610
20611 PR target/79892
20612 * multiple_target.c (create_dispatcher_calls): Check that
20613 a target can create a function dispatcher.
20614
20615 2017-03-14 Martin Liska <mliska@suse.cz>
20616
20617 PR lto/66295
20618 * multiple_target.c (expand_target_clones): Drop local.local
20619 flag for default implementation.
20620
20621 2017-03-14 Richard Biener <rguenther@suse.de>
20622
20623 PR tree-optimization/80030
20624 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
20625
20626 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
20627
20628 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
20629 gcc_fallthrough() instead of __attribute__((fallthrough));
20630
20631 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
20632
20633 * doc/gcc.texi: Remove "up" link to (DIR).
20634 * doc/gccint.texi: Ditto.
20635
20636 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
20637
20638 * doc/install.texi (Specific) <avr>: Remove reference to
20639 binutils 2.13.
20640
20641 2017-03-13 Jeff Law <law@redhat.com>
20642
20643 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
20644 attribute rather than comments.
20645
20646 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
20647 match_scratch operand is highest.
20648
20649 2017-03-13 Martin Liska <mliska@suse.cz>
20650
20651 PR middle-end/78339
20652 * ipa-pure-const.c (warn_function_noreturn): If the declarations
20653 is a CHKP clone, use original declaration.
20654
20655 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
20656
20657 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
20658 (arc_conditional_register_usage): Use a different allocation order
20659 when optimizing for size.
20660 * common/config/arc/arc-common.c (arc_option_optimization_table):
20661 Section anchors default on when optimizing for size.
20662
20663 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
20664
20665 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
20666
20667 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
20668
20669 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
20670 * config/arc/arc.md (cpu_facility): Add cd variant.
20671 (*movqi_insn): Add code density variant.
20672 (*movhi_insn): Likewise.
20673 (*movqi_insn): Likewise.
20674 (*addsi3_mixed): Likewise.
20675 (subsi3_insn): Likewise.
20676
20677 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
20678
20679 * config/arc/arc.md (movsi_cond_exec): Update constraint.
20680
20681 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
20682
20683 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
20684 expressions with MINUS and UNARY ops.
20685
20686 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20687
20688 PR target/79911
20689 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
20690 Rename to...
20691 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
20692 between vec_select and vector argument.
20693 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
20694 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
20695 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
20696 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
20697 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
20698 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
20699
20700 2017-03-13 Richard Biener <rguenther@suse.de>
20701
20702 PR other/79991
20703 * params.def (vect-max-peeling-for-alignment): Fix typo.
20704
20705 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
20706
20707 * doc/install.texi (Specific) <mips-*-*>: Remove description of
20708 issue that only occurred with binutils below 2.18.
20709
20710 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
20711
20712 * doc/install.texi (Specific) <cris-axis-elf>: No longer
20713 refer to binutils 2.11/2.12 minimum.
20714
20715 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
20716
20717 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
20718 ftp.kernel.org and simplify binutils requirement.
20719
20720 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
20721
20722 * doc/invoke.texi (Warning Options): Fix spelling of link-time
20723 optimization.
20724 (Optimize Options): Ditto. Also remove redundancy.
20725
20726 2017-03-10 David Malcolm <dmalcolm@redhat.com>
20727
20728 PR translation/79848
20729 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
20730 "%qs".
20731 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
20732 to G_ to avoid double translation.
20733
20734 2017-03-10 David Malcolm <dmalcolm@redhat.com>
20735
20736 PR translation/79923
20737 * auto-profile.c (get_combined_location): Convert leading
20738 character of diagnostics to lower case and remove trailing period.
20739 (read_profile): Likewise for various diagnostics.
20740 * config/arm/arm.c (arm_option_override): Remove trailing period
20741 from various diagnostics.
20742 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
20743 (msp430_expand_delay_cycles): Likewise.
20744
20745 2017-03-10 David Malcolm <dmalcolm@redhat.com>
20746
20747 PR target/79925
20748 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
20749 full command-line argument, rather than just "str".
20750 (aarch64_validate_march): Likewise.
20751 (aarch64_validate_mtune): Likewise.
20752
20753 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
20754
20755 PR rtl-optimization/78911
20756 * lra-assigns.c (must_not_spill_p): New function.
20757 (spill_for): Use it.
20758
20759 2017-03-10 Jakub Jelinek <jakub@redhat.com>
20760
20761 PR tree-optimization/79981
20762 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
20763 ATOMIC_COMPARE_EXCHANGE ifn result.
20764 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
20765 IFN_ATOMIC_COMPARE_EXCHANGE.
20766
20767 2017-03-10 David Malcolm <dmalcolm@redhat.com>
20768
20769 PR driver/79875
20770 * opts.c (parse_sanitizer_options): Add missing question mark to
20771 "did you mean" message.
20772
20773 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20774
20775 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
20776 built-in.
20777 (VMULEUH_UNS): Likewise.
20778 (VMULOUB_UNS): Likewise.
20779 (VMULOUH_UNS): Likewise.
20780 * config/rs6000/rs6000.c (builtin_function_type): Remove
20781 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
20782
20783 2017-03-10 David Malcolm <dmalcolm@redhat.com>
20784
20785 PR bootstrap/79952
20786 * read-rtl-function.c (function_reader::read_rtx_operand): Update
20787 x with result of extra_parsing_for_operand_code_0.
20788 (function_reader::extra_parsing_for_operand_code_0): Convert
20789 return type from void to rtx, returning x. When reading
20790 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
20791 larger size containing struct block_symbol.
20792
20793 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
20794
20795 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
20796 -mfloat128-hardware without -m64.
20797
20798 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
20799
20800 PR target/79941
20801 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
20802 entries to the case statement that marks unsigned arguments to
20803 overloaded functions.
20804
20805 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
20806
20807 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
20808 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
20809
20810 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
20811
20812 PR target/79907
20813 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
20814 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
20815
20816 2017-03-10 Martin Liska <mliska@suse.cz>
20817
20818 PR target/65705
20819 PR target/69804
20820 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
20821 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
20822 FIELD != NULL.
20823
20824 2017-03-10 Olivier Hainque <hainque@adacore.com>
20825
20826 * tree-switch-conversion (array_value_type): Start by resetting
20827 candidate type to it's main variant.
20828
20829 2017-03-10 Jakub Jelinek <jakub@redhat.com>
20830
20831 PR rtl-optimization/79909
20832 * combine.c (try_combine): Use simplify_replace_rtx on individual
20833 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
20834 of the whole CALL_INSN_FUNCTION_USAGE.
20835
20836 PR tree-optimization/79972
20837 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
20838 get_range_info on SSA_NAMEs. Formatting fixes.
20839
20840 2017-03-10 Richard Biener <rguenther@suse.de>
20841 Jakub Jelinek <jakub@redhat.com>
20842
20843 PR tree-optimization/77975
20844 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
20845 edge to be constant.
20846 (get_val_for): For constant x return it. Formatting fix.
20847 (loop_niter_by_eval): Avoid pointless looping if the next iteration
20848 would use the same bases as the current one.
20849
20850 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20851
20852 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
20853 instead of vec_select for V1TImode.
20854 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
20855 longer needed.
20856 (VSX_LE_128): Add V1TI to this mode iterator.
20857 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
20858 (*vsx_le_perm_store_<mode>): Likewise.
20859 (pre-reload splitter for VSX stores): Likewise.
20860 (post-reload splitter for VSX stores): Likewise.
20861 (*vsx_xxpermdi2_le_<mode>): Likewise.
20862 (*vsx_lxvd2x2_le_<mode>): Likewise.
20863 (*vsx_stxvd2x2_le_<mode>): Likewise.
20864
20865 2017-03-09 Michael Eager <eager@eagercon.com>
20866
20867 Correct failures with --enable-checking=yes,rtl.
20868
20869 * config/microblaze/microblaze.c (microblaze_expand_shift):
20870 Replace GET_CODE test with CONST_INT_P and INTVAL test with
20871 test for const0_rtx.
20872 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
20873 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
20874
20875 2017-03-09 Richard Biener <rguenther@suse.de>
20876
20877 PR tree-optimization/79977
20878 * graphite-scop-detection.c (scop_detection::merge_sese):
20879 Handle the case of extra exits to blocks dominating the entry.
20880
20881 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
20882
20883 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
20884 Document rdynamic.
20885
20886 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
20887
20888 PR rtl-optimization/79949
20889 * lra-constraints.c (process_alt_operands): Check memory when
20890 trying to predict a cycle. Print about the overall increase.
20891
20892 2017-03-09 Richard Biener <rguenther@suse.de>
20893
20894 PR middle-end/79971
20895 * gimple-expr.c (useless_type_conversion_p): Preserve
20896 TYPE_SATURATING for fixed-point types.
20897
20898 2017-03-09 Richard Biener <rguenther@suse.de>
20899
20900 PR ipa/79970
20901 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
20902 alignment of BLKmode params.
20903
20904 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20905
20906 PR target/79913
20907 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
20908 (VALL_NO_V2Q): Likewise.
20909 (VDQF_DF): Delete.
20910 * config/aarch64/aarch64-simd.md
20911 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
20912 iterator.
20913 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
20914 VALL_NO_V2Q mode iterator.
20915 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
20916
20917 2017-03-09 Martin Liska <mliska@suse.cz>
20918
20919 PR tree-optimization/79631
20920 * tree-chkp-opt.c (chkp_is_constant_addr): Call
20921 tree_int_cst_sign_bit just for INTEGER constants.
20922
20923 2017-03-09 Martin Liska <mliska@suse.cz>
20924
20925 PR target/65705
20926 PR target/69804
20927 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
20928 sanitizers.
20929
20930 2017-03-09 Marek Polacek <polacek@redhat.com>
20931
20932 PR c++/79672
20933 * tree.c (inchash::add_expr): Handle TREE_VEC.
20934
20935 2017-03-09 Martin Liska <mliska@suse.cz>
20936
20937 PR ipa/79764
20938 (chkp_narrow_size_and_offset): New function.
20939 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
20940 (void chkp_parse_bit_field_ref): New function.
20941 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
20942 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
20943
20944 2017-03-09 Martin Liska <mliska@suse.cz>
20945
20946 PR ipa/79761
20947 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
20948 (chkp_find_bounds_1): Remove gcc_unreachable.
20949
20950 2017-03-09 Jakub Jelinek <jakub@redhat.com>
20951
20952 PR sanitizer/79944
20953 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
20954 BUILT_IN_SYNC*, determine the access type from the size suffix and
20955 always build a MEM_REF with that type. Handle forgotten
20956 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
20957
20958 PR target/79932
20959 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
20960 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
20961 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
20962 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
20963 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
20964 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
20965 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
20966 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
20967 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
20968 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
20969 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
20970 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
20971 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
20972 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
20973 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
20974 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
20975 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
20976 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
20977 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
20978 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
20979 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
20980 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
20981 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
20982 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
20983 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
20984 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
20985 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
20986 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
20987 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
20988 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
20989 definitions outside of __OPTIMIZE__ guarded section.
20990
20991 PR target/79932
20992 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
20993 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
20994 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
20995 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
20996 guarded section.
20997
20998 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20999
21000 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
21001 ("vfenez<mode>"): Add missing constraints.
21002
21003 2017-03-08 Martin Sebor <msebor@redhat.com>
21004
21005 PR target/79928
21006 * config/nds32/nds32.c (nds32_option_override):
21007 Fix misspelled diagnostic.
21008
21009 2017-03-08 Jakub Jelinek <jakub@redhat.com>
21010
21011 PR c/79940
21012 * gimplify.c (gimplify_omp_for): Replace index var in outer
21013 taskloop statement with an artificial variable and add
21014 OMP_CLAUSE_PRIVATE clause for it.
21015
21016 2017-03-08 Richard Biener <rguenther@suse.de>
21017
21018 PR tree-optimization/79955
21019 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
21020 for accesses that are completely outside of the variable.
21021
21022 2017-03-08 Andrew Haley <aph@redhat.com>
21023
21024 PR tree-optimization/79943
21025 * tree-ssa-loop-split.c (compute_new_first_bound): When
21026 calculating the new upper bound, (END-BEG) should be added, not
21027 subtracted.
21028
21029 2017-03-08 Jakub Jelinek <jakub@redhat.com>
21030
21031 * config/avr/avr.md (setmemhi): Make sure match_dup
21032 operand number comes before match_scratch.
21033
21034 2017-03-08 Richard Biener <rguenther@suse.de>
21035
21036 PR tree-optimization/79920
21037 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
21038 with ncopies == 1 to ...
21039 (vect_transform_slp_perm_load): ... here. Properly compute
21040 all element loads by iterating VF times over the group. Do
21041 not handle ncopies (computed in a broken way) in
21042 vect_create_mask_and_perm.
21043
21044 2017-03-08 Jakub Jelinek <jakub@redhat.com>
21045
21046 PR sanitizer/79904
21047 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
21048 is a uniform vector, use uniform_vector_p return value instead of
21049 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
21050
21051 2017-03-07 Marek Polacek <polacek@redhat.com>
21052
21053 PR middle-end/79809
21054 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
21055 (alloca_call_type): Likewise.
21056
21057 2017-03-07 Martin Liska <mliska@suse.cz>
21058
21059 * gcov.c (process_args): Put comment to correct location.
21060
21061 2017-03-07 Martin Liska <mliska@suse.cz>
21062
21063 PR middle-end/68270
21064 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
21065 Use array_at_struct_end_p instead of DECL_CHAIN (field).
21066 (chkp_narrow_bounds_for_field): Likewise.
21067 (chkp_parse_array_and_component_ref): Pass one more argument to
21068 call.
21069
21070 2017-03-07 Richard Biener <rguenther@suse.de>
21071
21072 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
21073 preheaders.
21074
21075 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
21076
21077 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
21078 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
21079
21080 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21081
21082 PR c/79855
21083 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
21084 to end of description.
21085 (PARAM_MAX_STORES_TO_MERGE): Likewise.
21086
21087 2017-03-07 Jakub Jelinek <jakub@redhat.com>
21088
21089 PR rtl-optimization/79901
21090 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
21091 ...
21092 (*avx512f_<code><mode>3<mask_name>): ... this.
21093 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
21094 iterator instead of VI8_AVX2_AVX512BW.
21095
21096 PR rtl-optimization/79901
21097 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
21098 min/max expander, expand it using expand_vec_cond_expr.
21099
21100 PR sanitizer/79897
21101 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
21102 temporary.
21103
21104 2017-03-06 Jakub Jelinek <jakub@redhat.com>
21105
21106 PR c++/79821
21107 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
21108 to void * for PCH reasons.
21109 * dwarf2out.c (output_loc_operands, output_die): Cast
21110 v.val_vec.array to unsigned char *.
21111
21112 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
21113
21114 PR target/77850
21115 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
21116 vector types.
21117
21118 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
21119
21120 PR rtl-optimization/79571
21121 * lra-constraints.c (process_alt_operands): Calculate static
21122 reject and subtract it from overall when only addresses will be
21123 reloaded.
21124
21125 2017-03-06 Julia Koval <julia.koval@intel.com>
21126
21127 PR target/79793
21128 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
21129 incoming stack boundary to 128 for 64-bit targets.
21130
21131 2017-03-06 Richard Biener <rguenther@suse.de>
21132
21133 PR tree-optimization/79894
21134 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
21135 to NULL after folding it.
21136
21137 2017-03-06 Richard Biener <rguenther@suse.de>
21138
21139 PR tree-optimization/79824
21140 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
21141 check disabling peeling for gaps.
21142
21143 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
21144
21145 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
21146 attributes): Document gettimeofday.
21147
21148 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
21149
21150 * config/s390/s390.c (s390_option_override_internal): Set
21151 PARAM_MIN_VECT_LOOP_BOUND
21152
21153 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
21154
21155 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
21156 * config/s390/s390.md: Likewise.
21157
21158 2017-03-06 Jakub Jelinek <jakub@redhat.com>
21159
21160 PR target/79812
21161 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
21162 (<avx2_avx512>_perm<mode>): Rename to ...
21163 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
21164 of VI8F_256_512.
21165 (<avx512>_perm<mode>_mask): Rename to ...
21166 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
21167 of VI8F_256_512.
21168 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
21169 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
21170 instead of VI8F_256_512.
21171 (avx512f_perm<mode>): New define_expand.
21172 (avx512f_perm<mode>_mask): Likewise.
21173 (avx512f_perm<mode>_1<mask_name>): New define_insn.
21174 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
21175
21176 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
21177
21178 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
21179 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
21180 if_then_else.
21181 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
21182
21183 2017-03-06 Martin Liska <mliska@suse.cz>
21184
21185 PR sanitize/79783
21186 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
21187 when having a SSA NAME w/o VAR_DECL assigned to it.
21188
21189 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
21190
21191 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
21192 msa_dpsub_<su>_d): Fix MODE for vec_select.
21193
21194 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
21195
21196 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
21197 argument.
21198 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
21199
21200 2017-03-06 Richard Biener <rguenther@suse.de>
21201
21202 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
21203 * plugin.c (register_plugin_info): Likewise.
21204 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
21205
21206 2017-03-05 Jakub Jelinek <jakub@redhat.com>
21207
21208 * config/i386/sse.md (sse_storehps, sse_storelps,
21209 avx_<castmode><avxsizesuffix>_<castmode>,
21210 avx512f_<castmode><avxsizesuffix>_<castmode>,
21211 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
21212 in condition that at least one operand is not a MEM.
21213
21214 2017-03-03 Jakub Jelinek <jakub@redhat.com>
21215
21216 PR middle-end/79805
21217 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
21218 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
21219 ECF_NOTHROW.
21220 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
21221 gimple_call_nothrow_p flag based on whether original builtin can throw.
21222 If it can, emit following stmts on the fallthrough edge.
21223 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
21224 don't create new bb if inserting just debug stmts on the edge, try to
21225 insert them on the fallthru bb or just reset debug stmts.
21226
21227 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
21228
21229 PR target/43763
21230 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
21231 restore recog_data (including the operand rtxes inside it) around
21232 the call to get_insn_template.
21233
21234 2017-03-03 Martin Sebor <msebor@redhat.com>
21235
21236 PR tree-optimization/79699
21237 * context.c (context::~context): Free MPFR caches to avoid
21238 a memory leak on program exit.
21239
21240 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21241
21242 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
21243 Use wide_int::ulow () instead of .elt (0).
21244
21245 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
21246
21247 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
21248 (*pushxf): Limit oF constraint to 32bit targets and add oC
21249 constraint for 64bit targets.
21250 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
21251 (*pushdf): Change rmF constraint to rmC.
21252
21253 2017-03-03 Martin Liska <mliska@suse.cz>
21254
21255 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
21256 Remove unused variable.
21257
21258 2017-03-03 Jakub Jelinek <jakub@redhat.com>
21259
21260 PR target/79807
21261 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
21262 is a memory operand, increase num_memory.
21263 (ix86_expand_args_builtin): Likewise.
21264
21265 2017-03-03 Jan Hubicka <jh@suse.cz>
21266
21267 PR lto/79760
21268 * ipa-devirt.c (maybe_record_node): Properly handle
21269 __cxa_pure_virtual visibility.
21270
21271 2017-03-03 Martin Liska <mliska@suse.cz>
21272
21273 PR tree-optimization/79803
21274 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
21275 assert.
21276 (pass_loop_prefetch::execute): Disabled optimization if an
21277 assumption about L1 cache size is not met.
21278
21279 2017-03-03 Martin Liska <mliska@suse.cz>
21280
21281 PR rtl-optimization/79574
21282 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
21283 (hash_scan_set): Likewise.
21284 (dump_hash_table): Likewise.
21285 (hoist_code): Likewise.
21286
21287 2017-03-03 Richard Biener <rguenther@suse.de>
21288
21289 * fixed-value.c (fixed_from_string): Restore use of elt (1)
21290 in place of uhigh ().
21291 (fixed_convert_from_real): Likewise.
21292
21293 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
21294
21295 PR target/79514
21296 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
21297
21298 2017-03-03 Richard Biener <rguenther@suse.de>
21299
21300 PR middle-end/79818
21301 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
21302 TYPE_OVERFLOW_UNDEFINED check.
21303
21304 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21305
21306 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
21307 numbers.
21308 (vector_ae_<mode>_p): Likewise.
21309 (vector_nez_<mode>_p): Likewise.
21310 (vector_ne_v2di_p): Likewise.
21311 (vector_ae_v2di_p): Likewise.
21312 (vector_ne_<mode>_p): Likewise.
21313 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
21314 numbers.
21315 (vsx_tsqrt<mode>2_fe): Likewise.
21316
21317 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
21318
21319 PR target/79514
21320 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
21321
21322 2017-03-02 Jakub Jelinek <jakub@redhat.com>
21323
21324 PR rtl-optimization/79780
21325 * cprop.c (one_cprop_pass): When second and further conditional trap
21326 in a single basic block is turned into an unconditional trap, turn it
21327 into a deleted note to avoid RTL verification failures.
21328
21329 2017-03-02 Richard Biener <rguenther@suse.de>
21330
21331 * fold-const.c (const_binop): Use ulow () instead of elt (0).
21332
21333 2017-03-02 Richard Biener <rguenther@suse.de>
21334
21335 PR tree-optimization/79345
21336 PR c++/42000
21337 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
21338 param and abort the walk, returning -1 if it is hit.
21339 (walk_aliased_vdefs): Take a limit param and pass it on.
21340 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
21341 defaulting to 0 and return a signed int.
21342 * tree-ssa-uninit.c (struct check_defs_data): New struct.
21343 (check_defs): New helper.
21344 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
21345 about uninitialized memory.
21346 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
21347 bogus uninitialized warning.
21348 (fixed_convert_from_real): Likewise.
21349
21350 2017-03-02 Bin Cheng <bin.cheng@arm.com>
21351
21352 PR tree-optimization/66768
21353 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
21354 iv_use if base object can't be determined.
21355
21356 2017-03-02 Jakub Jelinek <jakub@redhat.com>
21357
21358 PR tree-optimization/79345
21359 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
21360 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
21361 (get_pattern_stats): Initialize it.
21362 * genemit.c (gen_expand): Verify match_scratch numbers come after
21363 match_operand/match_dup numbers.
21364 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
21365 match_scratch numbers.
21366 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
21367 Likewise.
21368 * config/s390/s390.md (trunctdsd2): Likewise.
21369
21370 2017-03-02 Richard Biener <rguenther@suse.de>
21371
21372 * wide-int.h (wide_int_storage::operator=): Implement in terms
21373 of wi::copy.
21374
21375 2017-03-02 Richard Biener <rguenther@suse.de>
21376
21377 PR tree-optimization/79777
21378 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
21379 the to insert expression to sth existing.
21380
21381 2017-03-01 Martin Sebor <msebor@redhat.com>
21382
21383 PR middle-end/79692
21384 * gimple-ssa-sprintf.c
21385 (directive::known_width_and_precision): New function.
21386 (format_integer): Use it.
21387 (get_mpfr_format_length): Consider the full range of precision
21388 when computing %g output with the # flag. Set the likely byte
21389 count to 3 rather than 1 when precision is indeterminate.
21390 (format_floating): Correct the lower bound of precision.
21391
21392 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21393
21394 * doc/invoke.texi: Document default code model for 64-bit Linux.
21395
21396 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
21397
21398 PR target/79752
21399 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
21400 udiv rather than div since input pattern is unsigned.
21401
21402 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
21403
21404 * config/i386/i386.c (print_reg): Warn for values of
21405 unsupported size in integer register.
21406
21407 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
21408
21409 PR target/79439
21410 * config/rs6000/predicates.md (current_file_function_operand): Do
21411 not allow self calls to be local if the function is replaceable.
21412
21413 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
21414
21415 PR target/79395
21416 * config/rs6000/altivec.h (vec_ctz and others): Change the
21417 preprocessor macro that controls conditional compilation from
21418 _ARCH_PWR9 to __POWER9_VECTOR__.
21419 (vec_all_ne): Change parameterization of __altivec_scalar_pred
21420 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
21421 control (instead of _ARCH_PWR9 control) so that template
21422 definition uses power9-specific function.
21423 (vec_any_eq): Likewise.
21424 (vec_all_ne): Change macro definition to use a power9-specific
21425 expansion under #ifdef __POWER9_VECTOR__ control (instead of
21426 _ARCH_PWR9 control).
21427 (vec_any_eq) Likewise.
21428 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
21429 expansion for CMPNEF to remove support for xvcmpnesp instruction.
21430 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
21431 support for xvcmpnedp instruction.
21432 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
21433 macro expansion so that Power9 implementation of vec_all_ne does
21434 not use the AltiVec predicate framework.
21435 (VCMPNEH_P): Likewise.
21436 (VCMPNEW_P): Likewise.
21437 (VCMPNED_P): Likewise.
21438 (VCMPNEFP_P): Likewise.
21439 (VCMPNEDP_P): Likewise.
21440 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
21441 implementation of vec_any_eq to not use AltiVec predicate
21442 framework.
21443 (VCMPAEH_P): Likewise.
21444 (VCMPAEW_P): Likewise.
21445 (VCMPAED_P): Likewise.
21446 (VCMPAEFP_P): Likewise.
21447 (VCMPAEDP_P): Likewise.
21448 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
21449 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
21450 not use the AltiVec predicate framework.
21451 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
21452 of vec_any_eq to not use AltiVec predicate framework.
21453 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
21454 support for predefined __POWER9_VECTOR__ macro to indicate that
21455 Power9 instruction selection is enabled.
21456 (altivec_overloaded_builtins): Remove extraneous
21457 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
21458 function argument types RS6000_BTI_bool_V16QI and
21459 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
21460 entry for overloaded function argument types RS6000_BTI_bool_V4SI
21461 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
21462 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
21463 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
21464 Power9 for implementations of vec_cmpne. Change the signature for
21465 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
21466 (representing vec_all_ne) to remove the previously described first
21467 argument of type RS6000_BTI_INTSI, as this was an artifact of
21468 reliance on the AltiVec predicate framework, which is no longer
21469 used in the implementation of these functions. Add
21470 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
21471 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
21472 since, unlike the AltiVec predicate framework implementation, we
21473 do not share function descriptors between vec_alle and vec_anyeq.
21474 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
21475 set of modes that receive special treatment even when
21476 TARGET_P9_VECTOR is true. The special treatment emits code that
21477 does not depend on Power9 instructions.
21478 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
21479 define_expand to not rely on AltiVec predicate framework.
21480 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
21481 function.
21482 (vector_ne_v2di_p): Change this define_expand to not rely on
21483 AltiVec predicate framework.
21484 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
21485 function.
21486 (vector_ne_<mode>_p): Change this define_expand to not rely on
21487 AltiVec predicate framework.
21488 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
21489 function.
21490 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
21491 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
21492 define_insn pattern.
21493 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
21494 define_insn pattern because the xvcmpne<VSs>. instruction is not
21495 supported.
21496 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
21497 instruction is not supported.
21498
21499 2017-03-01 Jakub Jelinek <jakub@redhat.com>
21500
21501 * config/nvptx/nvptx.c: Include intl.h.
21502
21503 2017-03-01 Martin Jambor <mjambor@suse.cz>
21504
21505 PR lto/78140
21506 * ipa-prop.h (ipa_bits): Removed field known.
21507 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
21508 to pointers. Adjusted their comments to warn about their sharing.
21509 (ipcp_transformation_summary): Change bits to a vector of pointers.
21510 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
21511 (ipa_get_ipa_bits_for_value): Declare.
21512 * tree-vrp.h (value_range): Mark as GTY((for_user)).
21513 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
21514 (ipa_bits_hash_table): Likewise.
21515 (ipa_vr_ggc_hash_traits): Likewise.
21516 (ipa_vr_hash_table): Likewise.
21517 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
21518 being pointers and vr_known being removed.
21519 (ipa_set_jf_unknown): Likewise.
21520 (ipa_get_ipa_bits_for_value): New function.
21521 (ipa_set_jfunc_bits): Likewise.
21522 (ipa_get_value_range): New overloaded functions.
21523 (ipa_set_jfunc_vr): Likewise.
21524 (ipa_compute_jump_functions_for_edge): Use the above functions to
21525 construct bits and vr parts of jump functions.
21526 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
21527 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
21528 exist.
21529 (ipcp_grow_transformations_if_necessary): Also allocate
21530 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
21531 exist.
21532 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
21533 them. Fix too long lines.
21534 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
21535 vr_known being removed.
21536 (ipa_read_jump_function): Use new setter functions to construct bits
21537 and vr parts of jump functions or set them to NULL.
21538 (write_ipcp_transformation_info): Adjust for bits being pointers.
21539 (read_ipcp_transformation_info): Likewise.
21540 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
21541 space.
21542 Include gt-ipa-prop.h.
21543 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
21544 being pointers.
21545 (ipcp_store_bits_results): Likewise.
21546 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
21547 Do not write to existing jump functions but use a temporary instead.
21548
21549 2017-03-01 Jakub Jelinek <jakub@redhat.com>
21550
21551 PR c++/79681
21552 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
21553 attempt to use its first operand as BIT_FIELD_REF base.
21554
21555 2017-03-01 Richard Biener <rguenther@suse.de>
21556
21557 PR middle-end/79721
21558 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
21559 interpolating formula in wrapping arithmetic.
21560 (chrec_apply): Convert chrec_evaluate return value to wanted type.
21561
21562 2017-03-01 Jakub Jelinek <jakub@redhat.com>
21563
21564 PR tree-optimization/79734
21565 * tree-vect-generic.c (expand_vector_condition): Optimize
21566 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
21567 Handle VEC_COND_EXPR where comparison has different inner width from
21568 type's inner width.
21569
21570 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
21571
21572 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
21573 markup, and similar issues. Remove @opindex entries for things
21574 that aren't options. Add missing -mmpy-option entries.
21575
21576 2017-02-28 Jakub Jelinek <jakub@redhat.com>
21577
21578 PR tree-optimization/79737
21579 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
21580 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
21581 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
21582 instead of byte_size. Formatting fix.
21583 (shift_bytes_in_array_right): Formatting fix.
21584
21585 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
21586
21587 PR target/79749
21588 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
21589 condition on optimize for the leaf function test.
21590
21591 2017-02-28 Martin Liska <mliska@suse.cz>
21592
21593 PR lto/79625
21594 * read-rtl-function.c (function_reader::handle_unknown_directive):
21595 Bail out when one uses -flto.
21596
21597 2017-02-28 Martin Liska <mliska@suse.cz>
21598
21599 * common.opt: Replace space with tabular for options of <number>
21600 type.
21601 * config/i386/i386.opt: Show <number> value for
21602 -mlarge-data-threshold.
21603 * opts.c (print_filtered_help): Do not display number in hexadecimal
21604 format.
21605
21606 2017-02-28 Martin Liska <mliska@suse.cz>
21607
21608 * common.opt: Fix --help=option -Q for options which are of
21609 an enum type.
21610
21611 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
21612
21613 * config/i386/i386.c (print_reg): Error out for values
21614 of 8-bit size in invalid integer register.
21615
21616 2017-02-28 Martin Sebor <msebor@redhat.com>
21617
21618 PR tree-optimization/79691
21619 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
21620
21621 2017-02-28 Jakub Jelinek <jakub@redhat.com>
21622
21623 PR target/79729
21624 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
21625 gcc_unreachable with output_operand_lossage.
21626
21627 2017-02-28 Richard Biener <rguenther@suse.de>
21628
21629 PR tree-optimization/79740
21630 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
21631 inserts.
21632 (visit_nary_op): Insert the nary into the hashtable if we
21633 pattern-matched sth.
21634 * tree-ssa-pre.c (eliminate_insert): Robustify.
21635
21636 2017-02-28 Richard Biener <rguenther@suse.de>
21637
21638 PR middle-end/79731
21639 * fold-const.c (decode_field_reference): Reject out-of-bound
21640 accesses.
21641
21642 2017-02-28 Jakub Jelinek <jakub@redhat.com>
21643
21644 * config/i386/i386.c: Include intl.h.
21645 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
21646 instead of just cond ? "..." : "...".
21647 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
21648 * coverage.c (read_counts_file): Likewise.
21649 * omp-offload.c: Include intl.h.
21650 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
21651 of just cond ? "..." : "...".
21652 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
21653 of just cond ? "..." : "...".
21654
21655 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
21656
21657 PR target/79742
21658 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
21659 entry, if present.
21660 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
21661 'tune for' CPU name.
21662 * config/arm/arm-cpu-data.h: Regenerated.
21663
21664 2017-02-28 Richard Biener <rguenther@suse.de>
21665
21666 PR tree-optimization/79732
21667 * tree-inline.c (expand_call_inline): Do not shadow var.
21668
21669 2017-02-28 Richard Biener <rguenther@suse.de>
21670
21671 PR tree-optimization/79723
21672 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
21673 address-space properly.
21674
21675 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
21676
21677 * doc/optinfo.texi (Optimization groups): Fix option used for
21678 OPTGROUP_ALL.
21679 * doc/invoke.texi (-fopt-info): Document "omp".
21680 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
21681 (OPTGROUP_ALL): Add OPTGROUP_OMP.
21682 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
21683 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
21684 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
21685
21686 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
21687 all users.
21688 * dumpfile.c (optgroup_options): Instead of "openmp", associate
21689 OPTGROUP_OMP with "omp".
21690
21691 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
21692
21693 PR target/79544
21694 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
21695 for arithmetic shift of unsigned V2DI.
21696
21697 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
21698
21699 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
21700 arc/linux.h headers.
21701 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
21702 (LINK_SPEC): Likewise.
21703 (ARC_TLS_EXTRA_START_SPEC): Likewise.
21704 (EXTRA_SPECS): Likewise.
21705 (STARTFILE_SPEC): Likewise.
21706 (ENDFILE_SPEC): Likewise.
21707 (LIB_SPEC): Likewise.
21708 (TARGET_SDATA_DEFAULT): Likewise.
21709 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
21710 (MULTILIB_DEFAULTS): Likewise.
21711 (DWARF2_UNWIND_INFO): Likewise.
21712 * config/arc/big.h: New file.
21713 * config/arc/elf.h: Likewise.
21714 * config/arc/linux.h: Likewise.
21715 * config/arc/t-uClibc: Remove.
21716
21717 2017-02-27 Bin Cheng <bin.cheng@arm.com>
21718
21719 PR tree-optimization/77536
21720 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
21721 (tree_transform_and_unroll_loop): Use above function to compute the
21722 estimated niter of unrolled loop and use it when scaling profile.
21723 Also use count info rather than frequency if it's non-zero.
21724 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
21725 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
21726 (vect_transform_loop): Call above function.
21727
21728 2017-02-27 Richard Biener <rguenther@suse.de>
21729
21730 PR tree-optimization/45397
21731 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
21732 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
21733 (visit_nary_op): Add pattern matching for CSEing sign-changed
21734 or truncated operations with wider ones.
21735
21736 2017-02-27 Richard Biener <rguenther@suse.de>
21737
21738 PR tree-optimization/79690
21739 * tree-vect-stmts.c (vectorizable_store): Use vector type
21740 built from the DR with address-space.
21741
21742 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
21743
21744 * doc/invoke.texi (Optimize Options): Refine the description
21745 of asan-use-after-return.
21746
21747 2017-02-25 Alan Modra <amodra@gmail.com>
21748
21749 PR rtl-optimization/79584
21750 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
21751 base, not ad->base_term, the reg within base. Remove assertion
21752 that ad->base == ad->base_term. Replace gen_int_mode using
21753 bogus mode with const0_rtx.
21754
21755 2017-02-25 Jakub Jelinek <jakub@redhat.com>
21756
21757 PR middle-end/79396
21758 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
21759 FMA_EXPR like tcc_binary or tcc_unary.
21760
21761 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
21762
21763 PR debug/77589
21764 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
21765 bitfield.
21766 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
21767 (output_loc_operands): Handle DW_OP_call_ref and
21768 DW_OP_GNU_variable_value.
21769 (struct variable_value_struct): New type.
21770 (struct variable_value_hasher): Likewise.
21771 (variable_value_hash): New variable.
21772 (string_types): Remove.
21773 (copy_loc_descr): New function.
21774 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
21775 (prepend_loc_descr_to_each): New function.
21776 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
21777 instead of add_loc_descr_to_each if the first argument is single
21778 location list and the second has multiple.
21779 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
21780 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
21781 when looking for variable value which doesn't have other location info.
21782 (loc_list_from_tree): Formatting fix.
21783 (gen_array_type_die): Simplify DW_AT_string_length handling.
21784 (adjust_string_types): Remove.
21785 (gen_subprogram_die): Don't call adjust_string_types nor test/set
21786 string_types. Call resolve_variable_values.
21787 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
21788 (resolve_addr_in_expr): Likewise. Add A argument.
21789 (copy_deref_exprloc): Remove deref argument. Adjust for the
21790 original expression being DW_OP_GNU_variable_value with optionally
21791 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
21792 optionally after it.
21793 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
21794 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
21795 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
21796 (variable_value_hasher::hash, variable_value_hasher::equal): New
21797 methods.
21798 (resolve_variable_value_in_expr, resolve_variable_value,
21799 resolve_variable_values, note_variable_value_in_expr,
21800 note_variable_value): New functions.
21801 (dwarf2out_early_finish): Call note_variable_value on all toplevel
21802 DIEs.
21803
21804 2017-02-24 Jakub Jelinek <jakub@redhat.com>
21805
21806 PR c/79677
21807 * opts.h (handle_generated_option): Add GENERATED_P argument.
21808 * opts-common.c (handle_option): Adjust function comment.
21809 (handle_generated_option): Add GENERATED_P argument, pass it to
21810 handle_option.
21811 (control_warning_option): Pass false to handle_generated_option
21812 GENERATED_P.
21813 * opts.c (maybe_default_option): Pass true to handle_generated_option
21814 GENERATED_P.
21815 * optc-gen.awk: Likewise.
21816
21817 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
21818
21819 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
21820 a REG, look at the REG it is a SUBREG of.
21821 (splitter for cmpeqsi_t): Ditto.
21822
21823 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
21824
21825 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
21826 the special USEs with the pattern of the insn, not the insn itself.
21827
21828 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
21829
21830 PR target/79473
21831 * doc/invoke.texi: Document -mload-store-pairs.
21832
21833 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
21834 Sandra Loosemore <sandra@codesourcery.com>
21835
21836 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
21837 argument isn't a CONST_INT.
21838 (nios2_alternate_compare_const): Assert op is a CONST_INT.
21839 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
21840 (nios2_validate_compare): Bypass alternate compare logic if *op2
21841 is not a CONST_INT.
21842 (ldstwm_operation_p): Return false if first_base is not a REG or
21843 if first_offset is not a CONST_INT.
21844
21845 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
21846
21847 * config/cris/cris.md: Use correct operand in a define_peephole2.
21848
21849 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
21850
21851 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
21852
21853 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
21854
21855 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
21856 this_insn if it is an INSN or JUMP_INSN.
21857 (force_offsettable): Look at base, not at addr.
21858 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
21859 on things that aren't necessarily CONST_INTs.
21860
21861 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
21862
21863 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
21864 -mfpmath=sse is the default also for x86-32 targets with SSE2
21865 instruction set when @option{-ffast-math} is enabled
21866
21867 2017-02-24 Jeff Law <law@redhat.com>
21868
21869 PR rtl-optimizatoin/79286
21870 * ira.c (update_equiv_regs): Drop may_trap_p exception to
21871 dominance test.
21872
21873 2017-02-24 Richard Biener <rguenther@suse.de>
21874
21875 PR tree-optimization/79389
21876 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
21877 debug insns.
21878
21879 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
21880
21881 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
21882 function comment to reflect reality.
21883 (loop_exits_before_overflow): Fix typo in function description.
21884
21885 2017-02-24 Richard Biener <rguenther@suse.de>
21886
21887 PR tree-optimization/79389
21888 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
21889 properly that a threading opportunity exists. Detect conditional
21890 copy/constant propagation opportunities.
21891
21892 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
21893
21894 * config/visium/visium.md (type): Add trap.
21895 (b): New mode attribute.
21896 (*btst): Rename into...
21897 (*btst<mode>): ...this and adjust.
21898 (*cbranchsi4_btst_insn): Rename into...
21899 (*cbranch<mode>4_btst_insn): ...this and adjust.
21900 (trap): New define_insn.
21901
21902 2017-02-23 Jakub Jelinek <jakub@redhat.com>
21903
21904 PR tree-optimization/79389
21905 * ifcvt.c (struct noce_if_info): Add rev_cond field.
21906 (noce_reversed_cond_code): New function.
21907 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
21908 reversed_comparison_code. Formatting fix.
21909 (noce_try_store_flag): Test rev_cond != NULL in addition to
21910 reversed_comparison_code.
21911 (noce_try_store_flag_constants): Likewise.
21912 (noce_try_store_flag_mask): Likewise.
21913 (noce_try_addcc): Use rev_cond if non-NULL instead of
21914 reversed_comparison_code.
21915 (noce_try_cmove_arith): Likewise. Formatting fixes.
21916 (noce_try_minmax, noce_try_abs): Clear rev_cond.
21917 (noce_find_if_block): Initialize rev_cond.
21918 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
21919 instead of false as last argument never attempt to reverse it
21920 afterwards.
21921
21922 2017-02-23 Bin Cheng <bin.cheng@arm.com>
21923
21924 PR tree-optimization/79663
21925 * tree-predcom.c (combine_chains): Process refs in reverse order
21926 only for ZERO length chains, and add explaining comment.
21927
21928 2017-02-23 Jeff Law <law@redhat.com>
21929
21930 PR tree-optimization/79578
21931 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
21932 in call to operand_equal_p.
21933
21934 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
21935
21936 PR target/71017
21937 * config/i386/cpuid.h: Fix another undefined behavior.
21938
21939 2017-02-23 Richard Biener <rguenther@suse.de>
21940
21941 PR tree-optimization/79683
21942 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
21943 vector types for data-refs.
21944
21945 2017-02-23 Martin Liska <mliska@suse.cz>
21946
21947 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
21948
21949 2017-02-23 Jakub Jelinek <jakub@redhat.com>
21950
21951 PR middle-end/79665
21952 * internal-fn.c (get_range_pos_neg): Moved to ...
21953 * tree.c (get_range_pos_neg): ... here. No longer static.
21954 * tree.h (get_range_pos_neg): New prototype.
21955 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
21956 are known to be in between 0 and signed maximum inclusive, try to
21957 expand both unsigned and signed divmod and use the cheaper one from
21958 those.
21959
21960 2017-02-22 Jeff Law <law@redhat.com>
21961
21962 PR tree-optimization/79578
21963 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
21964 to compare base operands.
21965
21966 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
21967
21968 PR target/79211
21969 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
21970 gpc_reg_operand instead of fpr_reg_operand.
21971
21972 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
21973
21974 * config/mips/mips.c (mips_return_in_memory): Force FP
21975 vector types to be returned in memory for o32 ABI.
21976
21977 2017-02-22 Jakub Jelinek <jakub@redhat.com>
21978
21979 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
21980 instead of DW_TAG_member for static data member declarations and don't
21981 set no_linkage_name for static inline data members.
21982 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
21983 to DW_TAG_member.
21984
21985 2017-02-22 Martin Liska <mliska@suse.cz>
21986
21987 * doc/invoke.texi: Replace inequality signs with square brackets
21988 for -Wnormalized.
21989
21990 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21991
21992 PR tree-optimization/68644
21993 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
21994
21995 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
21996
21997 PR target/78660
21998 * lra-constraints.c (simplify_operand_subreg): Handle
21999 WORD_REGISTER_OPERATIONS targets.
22000
22001 2017-02-22 Jakub Jelinek <jakub@redhat.com>
22002
22003 PR target/70465
22004 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
22005 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
22006 elimination by swapping fld*.
22007
22008 2017-02-22 Richard Biener <rguenther@suse.de>
22009
22010 PR tree-optimization/79673
22011 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
22012 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
22013 irrelevant address-space qualifiers and avoiding a
22014 ADDR_SPACE_CONVERT_EXPR from fold_convert.
22015
22016 2017-02-22 Richard Biener <rguenther@suse.de>
22017
22018 PR tree-optimization/79666
22019 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
22020 to not symbolically negate if that may introduce undefined
22021 overflow.
22022
22023 2017-02-22 Martin Liska <mliska@suse.cz>
22024
22025 PR lto/79587
22026 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
22027 * data-streamer-out.c (streamer_write_gcov_count_stream):
22028 Likewise.
22029 * value-prof.c (stream_out_histogram_value): Make assert more
22030 precise based on type of counter.
22031
22032 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
22033
22034 PR target/79593
22035 * config/i386/i386.md (standard_x87sse_constant_load splitter):
22036 Use nonimmediate_operand instead of memory_operand for operand 1.
22037 (float-extend standard_x87sse_constant_load splitter): Ditto.
22038
22039 2017-02-21 Jeff Law <law@redhat.com>
22040
22041 PR tree-optimization/79621
22042 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
22043 blocks with edges to themselves.
22044
22045 2017-02-21 Jakub Jelinek <jakub@redhat.com>
22046
22047 PR target/79633
22048 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
22049 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
22050 Use gimple_call_builtin_p.
22051
22052 PR target/79570
22053 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
22054 on temporarily removed DEBUG_INSNs.
22055
22056 PR tree-optimization/79649
22057 * tree-loop-distribution.c (classify_partition): Give up on
22058 non-generic address space loads/stores.
22059
22060 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
22061
22062 * doc/loop.texi (Loop manipulation): Remove nonexistent
22063 tree_ssa_loop_version from the documentation.
22064 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
22065
22066 2017-02-21 Jakub Jelinek <jakub@redhat.com>
22067
22068 PR target/79494
22069 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
22070 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
22071 * config/rs6000/rs6000.c: Include except.h.
22072 (rs6000_expand_split_stack_prologue): Call
22073 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
22074
22075 2017-02-21 Martin Jambor <mjambor@suse.cz>
22076
22077 PR lto/79579
22078 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
22079 have been analyzed.
22080
22081 2017-02-21 Martin Jambor <mjambor@suse.cz>
22082
22083 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
22084 for backward compatibility only.
22085 * doc/invoke.texi (Option Summary): Remove all references to
22086 -fipa-cp-alignment.
22087
22088 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
22089
22090 PR target/78660
22091 Revert:
22092 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
22093
22094 * lra-constraints.c (curr_insn_transform): Handle
22095 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
22096
22097 2017-02-21 Martin Liska <mliska@suse.cz>
22098
22099 * config/i386/i386.opt: Replace -masm-dialect with -masm.
22100
22101 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
22102
22103 PR translation/79638
22104 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
22105
22106 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
22107
22108 PR ada/67205
22109 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
22110 (arm_function_ok_for_sibcall): Return false for an indirect call by
22111 descriptor if all the argument registers are used.
22112 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
22113 alignment of the function.
22114
22115 2017-02-21 Jakub Jelinek <jakub@redhat.com>
22116
22117 PR tree-optimization/61441
22118 * simplify-rtx.c (simplify_const_unary_operation): For
22119 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
22120 the sNaN unmodified.
22121
22122 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
22123
22124 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
22125 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
22126 instead of SYSTEM_HEADER_DIR.
22127
22128 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
22129 Martin Liška <mliska@suse.cz>
22130
22131 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
22132 Fix typos and grammar, use active voice, and clarify.
22133
22134 2017-02-20 Marek Polacek <polacek@redhat.com>
22135
22136 PR middle-end/79537
22137 * gimplify.c (gimplify_expr): Handle unused *&&L;.
22138
22139 PR sanitizer/79558
22140 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
22141
22142 2017-02-20 Jakub Jelinek <jakub@redhat.com>
22143
22144 PR target/79568
22145 * config/i386/i386.c (ix86_expand_builtin): Handle
22146 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
22147 ix86_builtins_isa[fcode].isa as a requirement of those
22148 flags and any other flag in the bitmask.
22149 (ix86_init_mmx_sse_builtins): Use 0 instead of
22150 ~OPTION_MASK_ISA_64BIT as mask.
22151 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
22152 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
22153 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
22154 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
22155
22156 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
22157
22158 PR target/78012
22159 * lra-constraints.c (split_reg): Check requested split mode
22160 is supported by the register.
22161
22162 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
22163
22164 * lra-constraints.c (simplify_operand_subreg): Remove early
22165 return false.
22166
22167 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
22168
22169 PR target/78660
22170 * lra-constraints.c (curr_insn_transform): Tighten condition
22171 for converting SUBREG reloads from OP_OUT to OP_INOUT.
22172
22173 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
22174
22175 PR target/78660
22176 * lra-constraints.c (curr_insn_transform): Handle
22177 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
22178
22179 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
22180
22181 Revert:
22182 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
22183
22184 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
22185
22186 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
22187
22188 PR c++/69523
22189 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
22190 description.
22191
22192 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22193
22194 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
22195 for FMA_EXPR.
22196
22197 2017-02-18 Jakub Jelinek <jakub@redhat.com>
22198
22199 * final.c (last_columnnum, override_columnnum): New variables.
22200 (final_start_function): Set last_columnnum, pass it to begin_prologue
22201 hook and pass 0 to dwarf2out_begin_prologue.
22202 (final_scan_insn): Update override_columnnum. Pass last_columnnum
22203 to source_line debug hook.
22204 (notice_source_line): Compute last_columnnum and for debug_column_info
22205 return true on column changes.
22206 * debug.h (struct gcc_debug_hooks): Add column argument to
22207 source_line and begin_prologue hooks.
22208 (debug_nothing_int_charstar_int_bool): Remove prototype.
22209 (debug_nothing_int_int_charstar,
22210 debug_nothing_int_int_charstar_int_bool): New prototypes.
22211 (dwarf2out_begin_prologue): Add column argument.
22212 * debug.c (do_nothing_debug_hooks): Adjust source_line and
22213 begin_prologue hooks.
22214 (debug_nothing_int_charstar_int_bool): Remove.
22215 (debug_nothing_int_int_charstar,
22216 debug_nothing_int_int_charstar_int_bool): New functions.
22217 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
22218 through to dwarf2out_source_line.
22219 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
22220 (dwarf2out_source_line): Add column argument, emit it if requested.
22221 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
22222 arguments.
22223 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
22224 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
22225 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
22226 through to dwarf2out_begin_prologue.
22227 (vmsdbgout_source_line): Add column argument, pass it through to
22228 dwarf2out_source_line.
22229 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
22230 dbxout_source_line caller.
22231 (dbxout_source_line): Add column argument.
22232
22233 * common.opt (gno-column-info, gcolumn-info): New options.
22234 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
22235 (check_die): Also test for multiple DW_AT_decl_column attributes.
22236 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
22237 DW_AT_decl_column if requested.
22238 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
22239 if requested.
22240 (gen_variable_die): Likewise.
22241 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
22242 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
22243
22244 PR target/79569
22245 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
22246 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
22247 (ix86_handle_option): Handle OPT_m3dnowa.
22248 * doc/invoke.texi (-m3dnowa): Document.
22249 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
22250 -m3dnowa instead of -m3dnow -march=athlon.
22251
22252 PR target/79559
22253 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
22254 instead of gcc_assert for K, r and R code checks. Formatting fixes.
22255
22256 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22257
22258 PR target/79261
22259 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
22260 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
22261 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
22262 generator for vsx_xxpermdi_<mode>_be.
22263 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
22264 force big-endian semantics.
22265 (vsx_xxpermdi_<mode>_be): New define_expand with same
22266 implementation as previous version of vsx_xxpermdi_<mode>.
22267
22268 2017-02-17 Jakub Jelinek <jakub@redhat.com>
22269
22270 PR tree-optimization/79327
22271 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
22272 variable, its initialization and use.
22273
22274 2017-02-17 Julia Koval <julia.koval@intel.com>
22275
22276 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
22277 (OPTION_MASK_ISA_PKU_UNSET): New.
22278 (ix86_handle_option): Handle -mrdpid.
22279 * config/i386/cpuid.h (bit_RDPID): New.
22280 * config/i386/driver-i386.c (host_detect_local_cpu):
22281 Detect RDPID feature.
22282 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
22283 * config/i386/i386-c.c (ix86_target_macros_internal):
22284 Handle RDPID flag.
22285 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
22286 (ix86_valid_target_attribute_inner_p): Add "rdpid".
22287 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
22288 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
22289 * config/i386/i386.md (define_insn "rdpid"): New.
22290 * config/i386/i386.opt Add -mrdpid.
22291 * config/i386/immintrin.h (_rdpid_u32): New.
22292
22293 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
22294
22295 PR rtl-optimization/79541
22296 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
22297 instead of transforming it into USE.
22298
22299 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
22300
22301 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
22302 If HONOR_SNANS (SFmode) force the input to a register.
22303 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
22304 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
22305 an frsp or similar insn.
22306
22307 2017-02-17 Martin Liska <mliska@suse.cz>
22308
22309 PR rtl-optimization/79577
22310 * params.def (selsched-max-sched-times): Increase minimum to 1.
22311
22312 2017-02-17 Martin Liska <mliska@suse.cz>
22313
22314 PR rtl-optimization/79574
22315 * gcse.c (want_to_gcse_p): Prevent integer overflow.
22316
22317 2017-02-17 Martin Liska <mliska@suse.cz>
22318
22319 PR tree-optimization/79529
22320 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
22321 ssa_defined_default_def_p to handle cases which are implicitly
22322 defined.
22323 * tree-ssa.c (ssa_defined_default_def_p): New function.
22324 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
22325 which are implicitly defined.
22326 * tree-ssa.h (ssa_defined_default_def_p): Declare.
22327
22328 2017-02-17 Richard Biener <rguenther@suse.de>
22329
22330 PR middle-end/79576
22331 * params.def (max-ssa-name-query-depth): Limit to 10.
22332
22333 2017-02-17 Richard Biener <rguenther@suse.de>
22334
22335 PR tree-optimization/79552
22336 * tree-ssa-structalias.c (visit_loadstore): Properly verify
22337 default defs.
22338
22339 2017-02-17 Richard Biener <rguenther@suse.de>
22340
22341 PR bootstrap/79567
22342 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
22343
22344 2017-02-17 Marek Polacek <polacek@redhat.com>
22345
22346 PR middle-end/79536
22347 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
22348 (fold_negate_expr): New wrapper.
22349
22350 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
22351
22352 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
22353 Correct terminology and de-emphasize pre-standard behavior.
22354
22355 2017-02-16 Alan Modra <amodra@gmail.com>
22356
22357 PR rtl-optimization/79286
22358 * ira.c (def_dominates_uses): New function.
22359 (update_equiv_regs): Don't create an equivalence for insns that
22360 may trap where the register def does not dominate the use.
22361
22362 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
22363
22364 PR rtl-optimization/78127
22365 * lra.c (lra): Call lra_eliminate before finish the loop after
22366 lra_constraint.
22367
22368 2017-02-16 Richard Biener <rguenther@suse.de>
22369
22370 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
22371 isl/isl_val.h.
22372 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
22373 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
22374 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
22375 (isl_val_int_from_wi): New function.
22376 (extract_affine_gmp): Rename to ...
22377 (extract_affine_wi): ... this, take a widest_int.
22378 (extract_affine_int): Just wrap extract_affine_wi.
22379 (add_param_constraints): Use isl_val_int_from_wi.
22380 (add_loop_constraints): Likewise, and extract_affine_wi.
22381
22382 2017-02-15 Jeff Law <law@redhat.com>
22383
22384 PR middle-end/79521
22385 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
22386 ira_init_register_move_cost_if_necessary.
22387
22388 2017-02-15 Martin Sebor <msebor@redhat.com>
22389
22390 PR middle-end/32003
22391 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
22392 removed in a prior commit.
22393
22394 2017-02-15 Bin Cheng <bin.cheng@arm.com>
22395
22396 PR tree-optimization/79347
22397 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
22398 counters during peeling.
22399
22400 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
22401
22402 * Makefile.in (site.exp): Remove "set ISLVER".
22403
22404 2017-02-15 Jakub Jelinek <jakub@redhat.com>
22405
22406 PR target/79487
22407 * real.c (real_from_integer): Call real_convert even for decimal.
22408
22409 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
22410
22411 PR target/79421
22412 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
22413
22414 2017-02-14 Andrew Pinski <apinski@cavium.com>
22415
22416 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
22417 cores and change the partno/implementer to be correct.
22418 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
22419 the 'B" as the implementer.
22420 * config/aarch64/aarch64-tune.md: Regenerate.
22421
22422 2017-02-14 Carl Love <cel@us.ibm.com>
22423
22424 * config/rs6000/rs6000.c: Add case statement entry to make the
22425 xvcvuxdsp built-in argument unsigned.
22426 * config/rs6000/vsx.md: Fix the source and return operand types so they
22427 match the instruction definitions from the ISA document. Fix typo
22428 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
22429 statement.
22430
22431 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
22432
22433 PR target/79282
22434 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
22435 member early_clobber_alts.
22436 * lra-lives.c (reg_early_clobber_p): New.
22437 (process_bb_lives): Use it.
22438 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
22439 (debug_operand_data): Initialize early_clobber_alts.
22440 (setup_operand_alternative): Set up early_clobber_alts.
22441 (collect_non_operand_hard_regs): Ditto. Pass early clobber
22442 alternatives to new_insn_reg.
22443 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
22444 it.
22445 (lra_update_insn_regno_info): Pass the new arg.
22446
22447 2017-02-14 Jakub Jelinek <jakub@redhat.com>
22448
22449 PR middle-end/79505
22450 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
22451 (new_oacc_loop_raw): Don't clear already cleared fields.
22452
22453 PR target/79481
22454 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
22455 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
22456 _mm512_prefetch_i64gather_ps): New inline functions and macros.
22457
22458 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
22459
22460 PR target/79495
22461 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
22462
22463 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
22464
22465 PR target/79498
22466 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
22467 the extra instruction to the right place to store 128-bit constant
22468 when needed.
22469
22470 2017-02-14 Martin Sebor <msebor@redhat.com>
22471
22472 PR middle-end/79448
22473 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
22474 warning for strings of unknown length.
22475
22476 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
22477
22478 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
22479
22480 2017-02-14 Jeff Law <law@redhat.com>
22481
22482 PR target/79404
22483 * ira-costs.c (scan_one_insn): Initialize register move costs
22484 for pseudos seen in USE/CLOBBER insns.
22485
22486 PR tree-optimization/79095
22487 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
22488 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
22489 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
22490 if the operands are known to be not equal, then the resulting range
22491 is ~[0,0].
22492 (intersect_ranges): If the new range is ~[0,0] and the old range is
22493 wide, then prefer ~[0,0].
22494 * tree-vrp.c (overflow_comparison_p_1): New function.
22495 (overflow_comparison_p): New function.
22496 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
22497 if NAME is used in an overflow test.
22498 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
22499 overflow check that can be expressed as an equality test, then adjust
22500 ops to be that equality test.
22501
22502 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22503
22504 * config/s390/s390-builtin-types.def: Remove flags argument.
22505 * config/s390/s390.c (s390_init_builtins): Likewise.
22506
22507 2017-02-14 Martin Liska <mliska@suse.cz>
22508
22509 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
22510 vector. Fix trailing white spaces.
22511
22512 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
22513
22514 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
22515 HFmode.
22516
22517 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22518
22519 PR rtl-optimization/68664
22520 * config/arm/arm.c (arm_sched_can_speculate_insn):
22521 New function. Declare prototype.
22522 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
22523
22524 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22525
22526 PR rtl-optimization/68664
22527 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
22528 New function.
22529 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
22530
22531 2017-02-14 Amit Pawar <amit.pawar@amd.com>
22532
22533 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
22534 max skip bytes for function, loop and jump.
22535
22536 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22537
22538 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
22539 ABS_EXPR for gimple dump.
22540
22541 2017-02-14 Jakub Jelinek <jakub@redhat.com>
22542
22543 PR target/79462
22544 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
22545
22546 PR tree-optimization/79408
22547 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
22548 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
22549 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
22550 also if rhs1 is INTEGER_CST.
22551
22552 2017-02-14 Richard Biener <rguenther@suse.de>
22553
22554 PR middle-end/79432
22555 * tree-into-ssa.c (insert_phi_nodes): When the function can
22556 have abnormal edges rewrite SSA names with broken use-def
22557 dominance out of SSA and register them for PHI insertion.
22558
22559 2017-02-13 Martin Sebor <msebor@redhat.com>
22560
22561 PR middle-end/79496
22562 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
22563 clearing info.nowrite flag when snprintf size argument is a range.
22564
22565 2017-02-13 Jakub Jelinek <jakub@redhat.com>
22566
22567 * cprop.c (cprop_jump): Add missing space in string literal.
22568 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
22569 (get_constraint_for_component_ref): Likewise.
22570 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
22571 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
22572 * lra-constraints.c (process_alt_operands): Likewise.
22573 * ipa-inline.c (inline_small_functions): Likewise.
22574 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
22575 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
22576 * trans-mem.c (diagnose_tm_1_op): Likewise.
22577 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
22578 (grid_parallel_clauses_gridifiable): Likewise.
22579
22580 * config/nvptx/mkoffload.c (process): Add space in between
22581 , and %d.
22582
22583 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
22584 "MOD4_SSE_REGS" and "ALL_REGS".
22585
22586 * spellcheck.c (test_data): Add , in between "foo" and "food".
22587
22588 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
22589
22590 PR target/79449
22591 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
22592 boundary crossing check and subsequent code generation agree.
22593
22594 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22595
22596 * config/aarch64/aarch64.c (has_memory_op): Delete.
22597 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
22598 has_memory_op.
22599
22600 2017-02-13 Jakub Jelinek <jakub@redhat.com>
22601
22602 PR rtl-optimization/79388
22603 PR rtl-optimization/79450
22604 * combine.c (distribute_notes): When removing TEM_INSN for which
22605 corresponding dest has last value recorded, invalidate that last
22606 value.
22607
22608 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22609
22610 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
22611 of explicit '@'. Add missing assembly comment marker on branch costs
22612 printout.
22613
22614 2017-02-13 Nathan Sidwell <nathan@acm.org>
22615
22616 * gengtype-lex.l (<in_struct>): Add '/'.
22617
22618 2017-02-13 Martin Liska <mliska@suse.cz>
22619
22620 PR c/79471
22621 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
22622
22623 2017-02-13 Richard Biener <rguenther@suse.de>
22624
22625 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
22626 Remove.
22627 * configure: Re-generate.
22628 * config.in: Likewise.
22629 * graphite-dependences.c: Simplify as if
22630 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
22631 * graphite-isl-ast-to-gimple.c: Likewise.
22632 * graphite-optimize-isl.c: Likewise.
22633 * graphite-poly.c: Likewise.
22634 * graphite-sese-to-poly.c: Likewise.
22635 * graphite.h: Likewise.
22636 * toplev.c: Include isl/version.h and use isl_version () for
22637 printing the ISL version.
22638 * doc/install.texi: Update ISL requirement.
22639
22640 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
22641
22642 * doc/standards.texi (Standards): Update reference to
22643 Objective-C 2.0.
22644
22645 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
22646
22647 * doc/extend.texi (Named Address Spaces): sourceware.org now
22648 defaults to https.
22649 * doc/install.texi (Binaries): Ditto.
22650 (Specific): Ditto.
22651
22652 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
22653
22654 * doc/cpp.texi: Replace "stringify"/"stringification" with C
22655 standard terminology "stringize"/"stringizing" throughout.
22656 * doc/cppinternals.texi: Likewise.
22657
22658 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
22659
22660 * doc/extend.texi: Fix some spelling mistakes and typos.
22661 * doc/invoke.texi: Likewise.
22662
22663 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
22664
22665 PR ipa/79224
22666 * params.def (inline-min-speedup) Change from 10 to 8.
22667
22668 2017-02-11 Jakub Jelinek <jakub@redhat.com>
22669
22670 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
22671 4.5.
22672
22673 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
22674
22675 PR ipa/79224
22676 * ipa-inline-analysis.c (get_minimal_bb): New function.
22677 (record_modified): Use it.
22678 (remap_edge_change_prob): Handle also ancestor functions.
22679
22680 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
22681
22682 * doc/contrib.texi (Contributors): Remove broken link into
22683 the Mauve CVS repository.
22684
22685 2017-02-11 Jakub Jelinek <jakub@redhat.com>
22686
22687 PR middle-end/79454
22688 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
22689 result computation whenever lhs doesn't have vector mode, not
22690 just when it has BLKmode.
22691
22692 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
22693
22694 * doc/makefile.texi (profiledbootstrap): Refer to the
22695 installation instructions only in textual form.
22696
22697 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
22698
22699 PR target/79295
22700 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
22701
22702 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
22703
22704 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
22705 (Specific): Update mingw-w64 reference.
22706 (Binaries): Ditto.
22707 (Specific): Remove broken link to Renesas RX processor.
22708
22709 2017-02-10 Richard Biener <rguenther@suse.de>
22710
22711 * toplev.c (process_options): Do not mention obsolete graphite
22712 options when printing sorry message about missing graphite support.
22713 Mention -floop-nest-optimize.
22714
22715 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
22716
22717 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
22718 (vtst_p16): Likewise.
22719 (vtstq_p8): Likewise.
22720 (vtstq_p16): Likewise.
22721 (vtst_p64): New.
22722 (vtstq_p64): Likewise.
22723 * config/arm/arm_neon.h (vgetq_lane_p64): New.
22724 (vset_lane_p64): New.
22725 (vsetq_lane_p64): New.
22726
22727 2017-02-10 Jakub Jelinek <jakub@redhat.com>
22728
22729 PR tree-optimization/79411
22730 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
22731 stmt operands are SSA_NAMEs used in abnormal phis.
22732 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
22733 phis.
22734
22735 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
22736
22737 PR ipa/70795
22738 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
22739 flag if needed.
22740
22741 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
22742
22743 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
22744
22745 2017-02-09 Jakub Jelinek <jakub@redhat.com>
22746
22747 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
22748 to avoid warning.
22749
22750 PR c/79413
22751 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
22752 not arbitrary TREE_CONSTANT.
22753
22754 PR c/79431
22755 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
22756 "omp declare target link" attribute unless is_global_var.
22757 * omp-offload.c (find_link_var_op): Likewise.
22758
22759 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
22760 Chung-Lin Tang <cltang@codesourcery.com>
22761
22762 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
22763 OMP_CLAUSE_TILE.
22764 (gimplify_adjust_omp_clauses): Don't delete TILE.
22765 (gimplify_omp_for): Deal with TILE.
22766 * internal-fn.c (expand_GOACC_TILE): New function.
22767 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
22768 (GOACC_TILE): New.
22769 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
22770 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
22771 element fields.
22772 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
22773 avoid DIV for outermost collapse var.
22774 (expand_oacc_for): Insert tile element loop as needed. Adjust.
22775 Remove out of date comments, fix whitespace.
22776 * omp-general.c (omp_extract_for_data): Deal with tiling.
22777 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
22778 adjust OLF_DIM_BASE value.
22779 (struct omp_for_data): Add tiling field.
22780 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
22781 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
22782 for auto loops. Remove default auto determining, moved to
22783 oacc_loop_fixed_partitions.
22784 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
22785 stmts, add e_mask field.
22786 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
22787 (oacc_thread_numbers): Use oacc_dim_call.
22788 (oacc_xform_tile): New.
22789 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
22790 (finish_oacc_loop): Adjust for ifns vector.
22791 (oacc_loop_discover_walk): Append loop abstraction sites to list,
22792 add case for GOACC_TILE fns.
22793 (oacc_loop_xform_loop): Delete.
22794 (oacc_loop_process): Iterate over call list directly, and add
22795 handling for GOACC_TILE fns.
22796 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
22797 dump partitioning.
22798 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
22799 vector partitioning to outer loops. Assign 2 partitions to loops
22800 when available. Add TILE handling.
22801 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
22802 (execite_oacc_device_lower): Process GOACC_TILE fns,
22803 ignore unknown specs.
22804 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
22805 * tree.c (omp_clause_num_ops): Adjust TILE ops.
22806 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
22807
22808 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
22809
22810 * configure.ac (ACX_BUGURL): Update.
22811 * configure: Regenerate.
22812
22813 2017-02-09 Richard Biener <rguenther@suse.de>
22814
22815 PR tree-optimization/69823
22816 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
22817 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
22818
22819 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
22820
22821 * config/arc/arc-c.def: Add __NPS400__ definition.
22822 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
22823 (TARGET_NPS400): Define.
22824
22825 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
22826
22827 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
22828 file.
22829 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
22830 pointer, arch_info.
22831 (arc_cpu_types): Fill the arch_info field with a pointer into the
22832 arc_arch_types table.
22833 (arc_selected_cpu): Declare.
22834 * config/arc/arc.c (arc_selected_cpu): Make global.
22835 (arc_selected_arch): Delete.
22836 (arc_base_cpu): Delete.
22837 (arc_override_options): Remove references to deleted variables,
22838 update access to arch information.
22839 (ARC_OPT): Update access to arch information.
22840 (ARC_OPTX): Likewise.
22841 * config/arc/arc.h (arc_base_cpu): Remove declaration.
22842 (TARGET_ARC600): Update access to arch information.
22843 (TARGET_ARC601): Likewise.
22844 (TARGET_ARC700): Likewise.
22845 (TARGET_EM): Likewise.
22846 (TARGET_HS): Likewise.
22847 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
22848 information.
22849
22850 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
22851
22852 PR target/78604
22853 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
22854 condition/operands for integer GE/LE/GEU/LEU operations.
22855
22856 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
22857
22858 PR translation/79397
22859 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
22860 of AltiVec.
22861
22862 2017-02-08 Martin Jambor <mjambor@suse.cz>
22863
22864 PR ipa/79375
22865 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
22866 whether allocation happened.
22867 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
22868 nothing was allocated.
22869
22870 2017-02-08 Jakub Jelinek <jakub@redhat.com>
22871
22872 PR tree-optimization/79408
22873 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
22874 constant, but SSA_NAME with a known integer range, use the minimum
22875 of that range instead of op1 to determine if modulo can be replaced
22876 with its first operand.
22877
22878 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22879
22880 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
22881
22882 2017-02-08 Richard Biener <rguenther@suse.de>
22883
22884 PR tree-optimization/71824
22885 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
22886 Check all loops contained in the merged region.
22887
22888 2017-02-07 Andrew Pinski <apinski@cavium.com>
22889
22890 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
22891
22892 2017-02-07 Andrew Pinski <apinski@cavium.com>
22893
22894 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
22895 (thunderxt88): Likewise.
22896 (thunderxt81): Disable LSE and change v8.1 to v8.
22897 (thunderxt83): Likewise.
22898
22899 2017-02-07 Jakub Jelinek <jakub@redhat.com>
22900 Richard Biener <rguenther@suse.de>
22901
22902 PR middle-end/79399
22903 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
22904 type from int to size_t.
22905 * ira-costs.c (struct_costs_size): Change type from int to size_t.
22906
22907 2017-02-07 Jakub Jelinek <jakub@redhat.com>
22908
22909 PR rtl-optimization/79386
22910 * cprop.c (bypass_conditional_jumps): Initialize
22911 bypass_last_basic_block already before splitting bbs after
22912 unconditional traps...
22913 (bypass_conditional_jumps): ... rather than here.
22914
22915 PR target/79299
22916 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
22917 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
22918 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
22919 fix -masm=intel patterns.
22920
22921 2017-02-07 Richard Biener <rguenther@suse.de>
22922
22923 PR tree-optimization/79256
22924 PR middle-end/79278
22925 * builtins.c (get_object_alignment_2): Use min_align_of_type
22926 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
22927 and ADJUST_FIELD_ALIGN.
22928
22929 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
22930 type parameter.
22931 * doc/tm.texi: Regenerate.
22932 * stor-layout.c (layout_decl): Adjust.
22933 (update_alignment_for_field): Likewise.
22934 (place_field): Likewise.
22935 (min_align_of_type): Likewise.
22936 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
22937 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
22938 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
22939 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
22940 * config/frv/frv.c (frv_adjust_field_align): Likewise.
22941 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
22942 * config/i386/i386.c (x86_field_alignment): Likewise.
22943 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
22944 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
22945 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
22946 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
22947 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
22948 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
22949 Likewise.
22950
22951 Revert
22952 2017-01-30 Richard Biener <rguenther@suse.de>
22953
22954 PR tree-optimization/79256
22955 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
22956 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
22957 alignment on TYPE.
22958
22959 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
22960
22961 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
22962 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
22963 builtins to SImode and emit a zero-extend, if necessary.
22964
22965 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
22966
22967 * docs/invoke.texi (RISC-V Options): Alphabetize.
22968
22969 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
22970
22971 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
22972 options.
22973
22974 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
22975
22976 * config/riscv/riscv.c: New file.
22977 * common/config/riscv/riscv-common.c: Likewise.
22978 * config.gcc: Likewise.
22979 * config/riscv/constraints.md: Likewise.
22980 * config/riscv/elf.h: Likewise.
22981 * config/riscv/generic.md: Likewise.
22982 * config/riscv/linux.h: Likewise.
22983 * config/riscv/multilib-generator: Likewise.
22984 * config/riscv/peephole.md: Likewise.
22985 * config/riscv/pic.md: Likewise.
22986 * config/riscv/predicates.md: Likewise.
22987 * config/riscv/riscv-builtins.c: Likewise.
22988 * config/riscv/riscv-c.c: Likewise.
22989 * config/riscv/riscv-ftypes.def: Likewise.
22990 * config/riscv/riscv-modes.def: Likewise.
22991 * config/riscv/riscv-opts.h: Likewise.
22992 * config/riscv/riscv-protos.h: Likewise.
22993 * config/riscv/riscv.h: Likewise.
22994 * config/riscv/riscv.md: Likewise.
22995 * config/riscv/riscv.opt: Likewise.
22996 * config/riscv/sync.md: Likewise.
22997 * config/riscv/t-elf-multilib: Likewise.
22998 * config/riscv/t-linux: Likewise.
22999 * config/riscv/t-linux-multilib: Likewise.
23000 * config/riscv/t-riscv: Likewise.
23001 * configure.ac: Likewise.
23002 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
23003 Waterman as RISC-V maintainers.
23004 * doc/install.texi: Add RISC-V entries.
23005 * doc/invoke.texi: Add RISC-V options section.
23006 * doc/md.texi: Add RISC-V constraints section.
23007 * configure: Regenerated.
23008
23009 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
23010
23011 PR target/66144
23012 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
23013 false values to be constant vectors with all 0 or all 1 bits set.
23014 (vcondu<mode><mode>): Likewise.
23015 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
23016 predicate.
23017 (fpmask_comparison_operator): Update comment.
23018 (vecint_comparison_operator): New predicate.
23019 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
23020 vector conditionals when the true and false values are constant
23021 vectors with all 0 bits or all 1 bits set.
23022
23023 2017-02-06 Martin Sebor <msebor@redhat.com>
23024
23025 PR tree-optimization/79376
23026 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
23027
23028 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
23029
23030 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
23031 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
23032 to simplify split condition.
23033
23034 2017-02-06 Jakub Jelinek <jakub@redhat.com>
23035
23036 * omp-expand.c (oxpand_omp_atomic_fetch_op,
23037 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
23038 false.
23039
23040 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
23041
23042 PR rtl-optimization/68664
23043 * target.def (can_speculate_insn): New hook.
23044 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
23045 * doc/tm.texi: Regenerate.
23046 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
23047 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
23048 (rs6000_sched_can_speculate_insn): New function.
23049
23050 2017-02-06 Jakub Jelinek <jakub@redhat.com>
23051
23052 PR tree-optimization/79284
23053 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
23054 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
23055 vectorizable_mask_load_store, vectorizable_operation,
23056 vect_is_simple_cond, get_same_sized_vectype): Use it instead
23057 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
23058 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
23059 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
23060 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23061 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
23062 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
23063 is_gimple_assign (stmt). Replace another such test with
23064 is_gimple_assign (stmt).
23065
23066 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
23067
23068 PR target/78883
23069 * config/avr/avr.c (rtl-iter.h): Include it.
23070 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
23071 (avr_legitimate_combined_insn): ...and implementation.
23072
23073 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
23074
23075 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
23076 * config/s390/s390.c (s390_const_operand_ok)
23077 (s390_canonicalize_comparison, s390_extract_part)
23078 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
23079 (s390_contiguous_bitmask_p, s390_rtx_costs)
23080 (legitimize_pic_address): Likewise.
23081 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
23082 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
23083 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
23084 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
23085 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
23086
23087 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
23088
23089 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
23090 REGNO($0) == REGNO($1).
23091
23092 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23093
23094 * config/s390/linux.h(SIZE_TYPE): Add comment.
23095
23096 2017-02-06 Julian Brown <julian@codesourcery.com>
23097 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
23098 Virendra Pathak <virendra.pathak@broadcom.com>
23099
23100 * config/aarch64/aarch64-cores.def: Change the scheduler
23101 to Thunderx2t99.
23102 * config/aarch64/aarch64.md: Include thunderx2t99.md.
23103 * config/aarch64/thunderx2t99.md: New file.
23104
23105 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
23106
23107 * doc/standards.texi (Go Language): Update link to language
23108 standard.
23109
23110 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
23111
23112 * tree-eh.c (lower_resx): Sanitize profile.
23113 (cleanup_empty_eh_move_lp): Likewise.
23114
23115 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
23116
23117 PR tree-ssa/79347
23118 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
23119 ELSE_PROB.
23120 * cfgloopmanip.h (loop_version): Update prototype.
23121 * modulo-sched.c (sms_schedule): Update call of loop_version.
23122 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
23123 * tree-parloops.c (gen_parallel_loop): Likewise.
23124 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
23125 * tree-ssa-loop-split.c (split_loop): Likewise.
23126 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
23127 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
23128
23129 2017-02-05 Martin Liska <mliska@suse.cz>
23130
23131 PR bootstrap/78985
23132 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
23133 variable to NULL.
23134 (print_operand_address): Initialize a struct to zero.
23135
23136 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
23137
23138 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
23139 garbage collector only in textual form.
23140
23141 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
23142
23143 * doc/extend.texi (x86 specific memory model extensions for
23144 transactional memory): Simplify a phrase.
23145
23146 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
23147
23148 PR target/79353
23149 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
23150 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
23151 (atomic_storedi_1): Likewise.
23152
23153 2017-02-04 Jakub Jelinek <jakub@redhat.com>
23154
23155 PR tree-optimization/79338
23156 * tree-parloops.c (gather_scalar_reductions): Don't call
23157 vect_analyze_loop_form for loop->inner before destroying loop's
23158 loop_vinfo.
23159
23160 2017-02-03 Martin Sebor <msebor@redhat.com>
23161
23162 PR tree-optimization/79327
23163 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
23164 when precision has resulted in leading zeros.
23165 (format_integer): Adjust the likely counter to assume an unknown
23166 argument that may be zero is non-zero.
23167
23168 2017-02-03 Jason Merrill <jason@redhat.com>
23169
23170 PR c++/78689
23171 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
23172 avoid copying non-taken branch.
23173
23174 2017-02-03 Jakub Jelinek <jakub@redhat.com>
23175
23176 PR tree-optimization/79340
23177 * tree-vect-loop.c (vectorizable_reduction): Release
23178 vec_defs elements after safe_splicing them into other vectors.
23179 Formatting fixes.
23180
23181 PR tree-optimization/79327
23182 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
23183 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
23184 dirtype.
23185 (format_integer): Use wide_int_to_tree instead of build_int_cst
23186 + to_?hwi. If argmin is NULL, just set argmin and argmax to
23187 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
23188 of shortest and longest sequence.
23189
23190 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
23191
23192 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
23193 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
23194
23195 2017-02-03 Walter Lee <walt@tilera.com>
23196
23197 PR target/78862
23198 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
23199 after initial stackframe link reg save.
23200 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
23201
23202 2017-02-03 Jakub Jelinek <jakub@redhat.com>
23203
23204 PR target/79354
23205 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
23206 wu for stxssp alternative.
23207
23208 2017-02-03 Martin Sebor <msebor@redhat.com>
23209
23210 PR tree-optimization/79352
23211 * gimple-fold.c (get_range_strlen): Add argument.
23212 (get_range_strlen): Change return type to bool.
23213 (get_maxval_strlen): Pass in a dummy argument.
23214 * gimple-fold.h (get_range_strlen): Change return type to bool.
23215 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
23216 * tree.h (array_at_struct_end_p): Add argument.
23217 * tree.c (array_at_struct_end_p): Handle it.
23218
23219 2017-02-03 Martin Liska <mliska@suse.cz>
23220
23221 PR lto/66295
23222 * multiple_target.c (create_dispatcher_calls): Redirect edge
23223 from a caller of a dispatcher.
23224 (expand_target_clones): Make the clones local.
23225 (ipa_target_clone): Do both target clones and resolvers.
23226 (ipa_dispatcher_calls): Remove the pass.
23227 (pass_dispatcher_calls::gate): Likewise.
23228 (make_pass_dispatcher_calls): Likewise.
23229 * passes.def (pass_target_clone): Put as very first IPA early
23230 pass.
23231
23232 2017-02-03 Martin Liska <mliska@suse.cz>
23233
23234 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
23235 in case of a function with ifunc attribute.
23236
23237 2017-02-03 Martin Liska <mliska@suse.cz>
23238
23239 * cgraph.c (cgraph_node::dump): Dump function version info.
23240 * symtab.c (symtab_node::dump_base): Add missing new line.
23241
23242 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
23243
23244 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
23245 (ifcombine_ifandif): Use it.
23246
23247 2017-02-03 Martin Liska <mliska@suse.cz>
23248
23249 * doc/invoke.texi: Document default value for
23250 use-after-scope-direct-emission-threshold.
23251
23252 2017-02-03 Martin Liska <mliska@suse.cz>
23253
23254 PR tree-optimization/79339
23255 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
23256 (format_floating): Likewise.
23257
23258 2017-02-03 Martin Liska <mliska@suse.cz>
23259
23260 PR ipa/79337
23261 * ipa-prop.c (ipa_node_params_t::insert): Remove current
23262 implementation.
23263 (ipa_node_params_t::remove): Likewise.
23264 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
23265 initialization from removed ipa_node_params_t::insert.
23266 (ipa_node_params::~ipa_node_params): Move from removed
23267 ipa_node_params_t::release.
23268 * symbol-summary.h (symbol_summary::m_released): New member.
23269 Do not release a summary twice. Do not allow to call finalizer
23270 for types of a summary that live in GGC memory.
23271
23272 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
23273
23274 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
23275 cmp_branch fusion.
23276
23277 2017-02-02 Martin Sebor <msebor@redhat.com>
23278
23279 PR middle-end/79275
23280 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
23281 (format_string): Tighten up the range of output for non-constant
23282 strings and correct the expected range for wide non-constant strings.
23283
23284 2017-02-02 Martin Sebor <msebor@redhat.com>
23285
23286 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
23287
23288 PR middle-end/32003
23289 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
23290 index.
23291 (-fdump-tree-@var): Add to index and document how to come up
23292 with pass-specific option and dump file names.
23293 (-fdump-passes): Clarify where to look for output.
23294
23295 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
23296
23297 PR middle-end/77445
23298 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
23299 statistics of the analyzed path; allow threading for speed when
23300 any of BBs along the path are optimized for speed.
23301
23302 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
23303
23304 PR middle-end/78468
23305 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
23306 settings of the virtual registers.
23307
23308 Revert again
23309 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
23310
23311 * explow.c (get_dynamic_stack_size): Take known alignment of stack
23312 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
23313 needed.
23314
23315 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23316
23317 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
23318 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
23319
23320 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23321
23322 * config/s390/s390.md: Add missing comments with the expanded
23323 mnemonics.
23324 * config/s390/vector.md: Likewise.
23325 * config/s390/vx-builtins.md: Likewise.
23326
23327 2017-02-02 Jakub Jelinek <jakub@redhat.com>
23328
23329 PR target/79197
23330 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
23331 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
23332 conditions on a single line.
23333
23334 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23335
23336 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
23337 __S390_VX__ to __VX__.
23338
23339 2017-02-01 Andrew Pinski <apinski@cavium.com>
23340
23341 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
23342 stmt_info to record_stmt_cost.
23343 (vect_get_known_peeling_cost): Pass stmt_info if known to
23344 record_stmt_cost.
23345 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
23346 cpu_vector_cost field into
23347 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
23348 field into vec_int_stmt_cost and vec_fp_stmt_cost.
23349 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
23350 splitting of scalar_stmt_cost and vec_stmt_cost.
23351 (thunderx_vector_cost): Likewise.
23352 (cortexa57_vector_cost): LIkewise.
23353 (exynosm1_vector_cost): Likewise.
23354 (xgene1_vector_cost): Likewise.
23355 (thunderx2t99_vector_cost): Improve after the splitting of the two
23356 fields.
23357 (aarch64_builtin_vectorization_cost): Update for the splitting of
23358 scalar_stmt_cost and vec_stmt_cost.
23359
23360 2017-02-01 Torvald Riegel <triegel@redhat.com>
23361 Richard Henderson <rth@redhat.com>
23362
23363 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
23364 conditional on existance of a fast atomic load.
23365 * optabs-query.c (can_atomic_load_p): New function.
23366 * optabs-query.h (can_atomic_load_p): Declare it.
23367 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
23368 no fast atomic load is available for the particular size of access.
23369 (expand_atomic_compare_and_swap): Likewise.
23370 (expand_atomic_load): Likewise.
23371 (expand_atomic_store): Likewise.
23372 (expand_atomic_fetch_op): Likewise.
23373 * testsuite/lib/target-supports.exp
23374 (check_effective_target_sync_int_128): Remove x86 because it provides
23375 no fast atomic load.
23376 (check_effective_target_sync_int_128_runtime): Likewise.
23377
23378 2017-02-01 Richard Biener <rguenther@suse.de>
23379
23380 * graphite.c: Include tree-vectorizer.h for find_loop_location.
23381 (graphite_transform_loops): Provide opt-info for optimized nests.
23382 * tree-parloop.c (parallelize_loops): Provide opt-info for
23383 parallelized loops.
23384
23385 2017-02-01 Richard Biener <rguenther@suse.de>
23386
23387 PR middle-end/79315
23388 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
23389 was not set before.
23390
23391 2017-02-01 Richard Biener <rguenther@suse.de>
23392
23393 PR tree-optimization/71824
23394 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
23395 Verify the loops are valid in the merged SESE region.
23396 (scop_detection::can_represent_loop_1): Check analyzing the
23397 evolution of the number of iterations in the region succeeds.
23398
23399 2017-01-31 Ian Lance Taylor <iant@golang.org>
23400
23401 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
23402 REG_ARGS_SIZE note to 32-bit push insns and call insn.
23403
23404 2017-01-31 David Malcolm <dmalcolm@redhat.com>
23405
23406 PR preprocessor/79210
23407 * input.c (get_substring_ranges_for_loc): Replace line_width
23408 assertion with error-handling.
23409
23410 2017-01-31 Richard Biener <rguenther@suse.de>
23411
23412 PR tree-optimization/77318
23413 * graphite-sese-to-poly.c (extract_affine): Fix assert.
23414 (create_pw_aff_from_tree): Take loop parameter.
23415 (add_condition_to_pbb): Pass loop of the condition to
23416 create_pw_aff_from_tree.
23417
23418 2017-01-31 Jakub Jelinek <jakub@redhat.com>
23419
23420 * config/s390/s390.c (s390_asan_shadow_offset): New function.
23421 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
23422
23423 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
23424
23425 PR target/78597
23426 PR target/79038
23427 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
23428 no longer used.
23429 (convert_int_to_float128): Likewise.
23430 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
23431 (convert_int_to_float128): Likewise.
23432 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
23433 (UNSPEC_IEEE128_CONVERT): Likewise.
23434 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
23435 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
23436 Use local variables for IBM extended format.
23437 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
23438 (fix_trunc<mode>si2_fprs): Likewise.
23439 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
23440 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
23441 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
23442 to know that we can now have integers of all sizes in vector
23443 registers.
23444 (fix<uns>_<mode>di2_hw): Likewise.
23445 (float<uns>_<mode>si2_hw): Likewise.
23446 (fix_<mode>si2_hw): Likewise.
23447 (fixuns_<mode>si2_hw): Likewise.
23448 (float<uns>_<mode>di2_hw): Likewise.
23449 (float_<mode>di2_hw): Likewise.
23450 (float_<mode>si2_hw): Likewise.
23451 (floatuns_<mode>di2_hw): Likewise.
23452 (floatuns_<mode>si2_hw): Likewise.
23453 (xscvqp<su>wz_<mode>): Delete, no longer used.
23454 (xscvqp<su>dz_<mode>): Likewise.
23455 (xscv<su>dqp_<mode>): Likewise.
23456 (ieee128_mfvsrd_64bit): Likewise.
23457 (ieee128_mfvsrd_32bit): Likewise.
23458 (ieee128_mfvsrwz): Likewise.
23459 (ieee128_mtvsrw): Likewise.
23460 (ieee128_mtvsrd_64bit): Likewise.
23461 (ieee128_mtvsrd_32bit): Likewise.
23462
23463 2017-01-31 Martin Liska <mliska@suse.cz>
23464
23465 PR ipa/79285
23466 * ipa-prop.c (ipa_free_all_node_params): Call release method
23467 instead of ~sumbol_summary to not to trigger double times
23468 dtor of hash_map.
23469
23470 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
23471
23472 PR tree-optimization/71691
23473 * bitmap.h (class auto_bitmap): New.
23474 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
23475 is_maybe_undefined instead of ssa_undefined_value_p.
23476
23477 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23478
23479 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
23480 __S390_ARCH_LEVEL__ to __ARCH__.
23481
23482 2017-01-31 Jakub Jelinek <jakub@redhat.com>
23483
23484 PR tree-optimization/79267
23485 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
23486 if should_remove_lhs_p is true.
23487
23488 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
23489
23490 PR debug/63238
23491 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
23492 (add_alignment_attribute): New.
23493 (base_type_die): Add alignment attribute.
23494 (subrange_type_die): Likewise.
23495 (modified_type_die): Likewise.
23496 (gen_array_type_die): Likewise.
23497 (gen_descr_array_type_die: Likewise.
23498 (gen_enumeration_type_die): Likewise.
23499 (gen_subprogram_die): Likewise.
23500 (gen_variable_die): Likewise.
23501 (gen_field_die): Likewise.
23502 (gen_ptr_to_mbr_type_die): Likewise.
23503 (gen_struct_or_union_type_die): Likewise.
23504 (gen_subroutine_type_die): Likewise.
23505 (gen_typedef_die): Likewise.
23506 (base_type_cmp): Compare alignment attribute.
23507
23508 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
23509
23510 PR target/79170
23511 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
23512 (setb_unsigned) New pattern for setb with CCUNS.
23513 * config/rs6000/rs6000.c (expand_block_compare): Use a different
23514 subfc./subfe sequence to avoid overflow problems. Generate a
23515 shorter sequence with cmpld/setb for power9.
23516 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
23517 for generating subfc. instruction.
23518 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
23519 now uses this instruction.
23520
23521 2017-01-30 Ian Lance Taylor <iant@google.com>
23522
23523 PR debug/79289
23524 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
23525 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
23526
23527 2017-01-30 Martin Sebor <msebor@redhat.com>
23528
23529 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
23530 Move constant to the right of a relational operator.
23531 (get_mpfr_format_length, format_character, format_string): Ditto.
23532 (should_warn_p, maybe_warn): Same.
23533
23534 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
23535
23536 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
23537
23538 PR lto/79061
23539 * asan.c (get_translation_unit_decl): Remove function.
23540 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
23541
23542 2017-01-30 Martin Liska <mliska@suse.cz>
23543
23544 PR gcov-profile/79259
23545 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
23546 -fprofile-generate.
23547
23548 2017-01-30 Martin Liska <mliska@suse.cz>
23549
23550 PR bootstrap/78985
23551 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
23552 Initialize variables with NULL value.
23553
23554 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
23555
23556 PR target/79260
23557 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
23558 tm_p_file.
23559 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
23560
23561 2017-01-30 Richard Biener <rguenther@suse.de>
23562
23563 PR tree-optimization/79276
23564 * tree-vrp.c (process_assert_insertions): Properly adjust common
23565 when removing a duplicate.
23566
23567 * gcc.dg/torture/pr79276.c: New testcase.
23568
23569 2017-01-30 Richard Biener <rguenther@suse.de>
23570
23571 PR tree-optimization/79256
23572 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
23573 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
23574 alignment on TYPE.
23575 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
23576
23577 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
23578
23579 PR target/79240
23580 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
23581 ("*r<noxa>sbg_<mode>_sll_bitmask")
23582 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
23583 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
23584 Use contiguous_bitmask_nowrap_operand.
23585
23586 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23587
23588 PR target/79268
23589 * config/rs6000/altivec.h (vec_xl): Revise #define.
23590 (vec_xst): Likewise.
23591
23592 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
23593
23594 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
23595
23596 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
23597
23598 PR rtl-optimization/79194
23599 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
23600 traps before call to bypass_conditional_jumps.
23601
23602 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
23603
23604 PR tree-optimization/71374
23605 * lra-constraints.c (check_conflict_input_operands): New.
23606 (match_reload): Use it.
23607
23608 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
23609
23610 PR target/79131
23611 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
23612 account to calculate conflict_set.
23613
23614 2017-01-27 Bin Cheng <bin.cheng@arm.com>
23615
23616 PR rtl-optimization/78559
23617 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
23618 other_insn in combine.
23619
23620 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
23621
23622 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
23623 uint16_type_node for BT_UINT16.
23624
23625 2017-01-27 David Malcolm <dmalcolm@redhat.com>
23626
23627 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
23628 "RTL Tests" to menu.
23629 (GIMPLE Tests): New node.
23630 (RTL Tests): New node.
23631
23632 2017-01-27 Richard Biener <rguenther@suse.de>
23633
23634 PR tree-optimization/79245
23635 * tree-loop-distribution.c (distribute_loop): Apply cost
23636 modeling also to detected patterns.
23637
23638 2017-01-27 Richard Biener <rguenther@suse.de>
23639
23640 PR tree-optimization/71433
23641 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
23642 (compare_assert_loc): New function.
23643 (process_assert_insertions): Sort and optimize assert locations
23644 to remove duplicates and push down identical assertions on
23645 edges to their destination block.
23646
23647 2017-01-27 Richard Biener <rguenther@suse.de>
23648
23649 PR tree-optimization/79244
23650 * tree-vrp.c (remove_range_assertions): Forcefully propagate
23651 out SSA names even if abnormal.
23652
23653 2017-01-27 Jakub Jelinek <jakub@redhat.com>
23654
23655 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
23656 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
23657 instead of MPFR_RNDN.
23658
23659 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
23660
23661 PR target/79239
23662 * arm.c (arm_option_override): Don't call build_target_option_node
23663 until after doing all option overrides.
23664 (arm_valid_target_attribute_tree): Likewise.
23665
23666 2017-01-27 Martin Liska <mliska@suse.cz>
23667
23668 * doc/invoke.texi (-fprofile-arcs): Document profiling support
23669 for {cd}tors and C++ {cd}tors.
23670
23671 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
23672
23673 * config/s390/s390.md ("*setmem_long_and")
23674 ("*setmem_long_and_31z"): Use zero_extend instead of and.
23675
23676 2017-01-26 Martin Sebor <msebor@redhat.com>
23677
23678 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
23679 of precision.
23680
23681 2017-01-26 Martin Sebor <msebor@redhat.com>
23682
23683 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
23684 HAVE_DFmode before using XFmode or DFmode.
23685 (parse_directive): Avoid using the z length modifier to avoid
23686 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
23687
23688 PR middle-end/78703
23689 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
23690 to accept adjustment as an array.
23691 (get_int_range): New function.
23692 (struct directive): Make width and prec arrays.
23693 (directive::set_width, directive::set_precision): Call get_int_range.
23694 (format_integer, format_floating): Handle width and precision ranges.
23695 (format_string, parse_directive): Same.
23696
23697 2017-01-26 Jakub Jelinek <jakub@redhat.com>
23698
23699 PR debug/79129
23700 * dwarf2out.c (generate_skeleton_bottom_up): For children with
23701 comdat_type_p set, just clone them, but keep the children in the
23702 original DIE.
23703
23704 PR debug/78835
23705 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
23706 which have direct callers with -fvar-tracking-assignments enabled
23707 in the current TU.
23708 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
23709 inside of type units.
23710
23711 2017-01-26 Martin Sebor <msebor@redhat.com>
23712
23713 PR middle-end/78703
23714 * gimple-ssa-sprintf.c (struct result_range): Add likely and
23715 unlikely counters.
23716 (struct format_result): Replace number_chars, number_chars_min,
23717 and number_chars_max with a single member of struct result_range.
23718 Remove bounded.
23719 (format_result::operator+=): Adjust.
23720 (struct fmtresult): Remove bounded. Handle likely and unlikely
23721 counters.
23722 (fmtresult::adjust_for_width_or_precision): New function.
23723 (fmtresult:type_max_digits): New function.
23724 (bytes_remaining): Handle likely and unlikely counters.
23725 (min_bytes_remaining): Remove.
23726 (format_percent): Simplify.
23727 (format_integer, format_floating): Set likely and unlikely counters.
23728 (get_string_length, format_character, format_string): Same.
23729 (format_plain, should_warn_p): New function.
23730 (maybe_warn): Call should_warn_p. Update diagnostic messages
23731 and handle those for all directives, including plain strings.
23732 (format_directive): Handle likely and unlikely counters.
23733 Remove unnecessary quoting from diagnostics. Add an informational
23734 note.
23735 (add_bytes): Remove.
23736 (pass_sprintf_length::compute_format_length): Simplify.
23737 (try_substitute_return_value): Handle likely and unlikely counters.
23738
23739 2017-01-26 Carl Love <cel@us.ibm.com>
23740
23741 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
23742 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
23743
23744 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
23745
23746 PR target/79131
23747 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
23748 endianess for subregs into account.
23749 * lra-constraints.c (lra_constraints): Do risky transformations
23750 always on the first iteration.
23751 * lra-lives.c (check_pseudos_live_through_calls): Add arg
23752 last_call_used_reg_set.
23753 (process_bb_lives): Define and use last_call_used_reg_set.
23754 * lra.c (lra): Always continue after lra_constraints on the first
23755 iteration.
23756
23757 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
23758
23759 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
23760 constant.
23761 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
23762
23763 2017-01-26 Jakub Jelinek <jakub@redhat.com>
23764
23765 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
23766 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
23767 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
23768 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
23769 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
23770 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
23771 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
23772 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
23773 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
23774
23775 2017-01-26 Marek Polacek <polacek@redhat.com>
23776
23777 PR c/79199
23778 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
23779 for the third operand.
23780
23781 2017-01-26 Jakub Jelinek <jakub@redhat.com>
23782
23783 PR middle-end/79236
23784 * omp-low.c (struct omp_context): Add simt_stmt field.
23785 (scan_omp_for): Return omp_context *.
23786 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
23787 context to the _simt_ SIMD stmt.
23788 (lower_omp_for): For combined SIMD with sibling _simt_
23789 SIMD, make sure to use the same decls in _looptemp_
23790 clauses as in the sibling.
23791
23792 2017-01-26 David Sherwood <david.sherwood@arm.com>
23793
23794 PR middle-end/79212
23795 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
23796 all contexts.
23797
23798 2017-01-26 Jakub Jelinek <jakub@redhat.com>
23799
23800 PR target/70465
23801 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
23802 emit fld b; fld a; if possible.
23803
23804 * brig-builtins.def: Update copyright years.
23805 * config/arm/arm_acle_builtins.def: Update copyright years.
23806
23807 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
23808
23809 PR target/79179
23810 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
23811 constraint instead of o for the stxsd instruction.
23812
23813 2017-01-25 Carl Love <cel@us.ibm.com>
23814
23815 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
23816 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
23817
23818 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
23819
23820 * doc/invoke.texi (C++ Dialect Options): Fix typo.
23821
23822 2017-01-25 Richard Biener <rguenther@suse.de>
23823
23824 PR tree-optimization/69264
23825 * target.def (vector_alignment_reachable): Improve documentation.
23826 * doc/tm.texi: Regenerate.
23827 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
23828 and add a comment.
23829 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
23830 earlier changes with respect to TYPE_USER_ALIGN.
23831 (vector_alignment_reachable_p): Likewise. Improve dumping.
23832
23833 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23834
23835 PR target/79145
23836 * config/arm/arm.md (xordi3): Force constant operand into a register
23837 for TARGET_IWMMXT.
23838
23839 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23840
23841 * doc/invoke.texi (-fstore-merging): Correct default optimization
23842 levels at which it is enabled.
23843 (-O): Move -fstore-merging from list to...
23844 (-O2): ... Here.
23845
23846 2017-01-25 Richard Biener <rguenther@suse.de>
23847
23848 PR debug/78363
23849 * omp-expand.c: Include debug.h.
23850 (expand_omp_taskreg): Make sure to generate early debug before
23851 outlining anything from a function.
23852 (expand_omp_target): Likewise.
23853 (grid_expand_target_grid_body): Likewise.
23854
23855 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
23856
23857 PR lto/79061
23858 * asan.c (get_translation_unit_decl): New function.
23859 (asan_add_global): Extract modules file name from globals
23860 TRANSLATION_UNIT_DECL name.
23861
23862 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
23863
23864 PR target/77439
23865 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
23866 for long calls with APCS frame and VFP.
23867
23868 2017-01-24 David Malcolm <dmalcolm@redhat.com>
23869
23870 * cfg.c (original_copy_tables_initialized_p): New function.
23871 * cfg.h (original_copy_tables_initialized_p): New decl.
23872 * cfgrtl.c (relink_block_chain): Guard the call to
23873 free_original_copy_tables with a call to
23874 original_copy_tables_initialized_p.
23875 * cgraph.h (symtab_node::native_rtl_p): New decl.
23876 * cgraphunit.c (symtab_node::native_rtl_p): New function.
23877 (symtab_node::needed_p): Don't assert for early assembly output
23878 for __RTL functions.
23879 (cgraph_node::finalize_function): Set "force_output" for __RTL
23880 functions.
23881 (cgraph_node::analyze): Bail out early for __RTL functions.
23882 (analyze_functions): Update assertion to support __RTL functions.
23883 (cgraph_node::expand): Bail out early for __RTL functions.
23884 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
23885 __RTL functions.
23886 * function.h (struct function): Update comment for field
23887 "pass_startwith".
23888 * gimple-expr.c: Include "tree-pass.h".
23889 (gimple_has_body_p): Return false for __RTL functions.
23890 * Makefile.in (OBJS): Add run-rtl-passes.o.
23891 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
23892 accessor.
23893 (gcc::pass_manager::get_clean_slate): New accessor.
23894 * passes.c: Include "insn-addr.h".
23895 (should_skip_pass_p): Add logging. Update logic for running
23896 "expand" to be compatible with both __GIMPLE and __RTL. Guard
23897 property-provider override so it is only done for gimple passes.
23898 Don't skip dfinit.
23899 (skip_pass): New function.
23900 (execute_one_pass): Call skip_pass when skipping passes.
23901 * read-md.c (md_reader::read_char): Support filtering
23902 the input to a subset of line numbers.
23903 (md_reader::md_reader): Initialize fields
23904 m_first_line and m_last_line.
23905 (md_reader::read_file_fragment): New function.
23906 * read-md.h (md_reader::read_file_fragment): New decl.
23907 (md_reader::m_first_line): New field.
23908 (md_reader::m_last_line): New field.
23909 * read-rtl-function.c (function_reader::create_function): Only
23910 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
23911 curr_properties. Set DECL_INITIAL to a dummy block.
23912 (read_rtl_function_body_from_file_range): New function.
23913 * read-rtl-function.h (read_rtl_function_body_from_file_range):
23914 New decl.
23915 * run-rtl-passes.c: New file.
23916 * run-rtl-passes.h: New file.
23917
23918 2017-01-24 Jeff Law <law@redhat.com>
23919
23920 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
23921 buffer size.
23922
23923 2017-01-24 Bin Cheng <bin.cheng@arm.com>
23924
23925 PR tree-optimization/79159
23926 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
23927 (record_nonwrapping_iv): Improve boundary using above function if no
23928 value range information.
23929
23930 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
23931 Martin Jambor <mjambor@suse.cz>
23932
23933 * brig-builtins.def: New file.
23934 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
23935 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
23936 (DEF_HSAIL_SAT_BUILTIN): Likewise.
23937 (DEF_HSAIL_INTR_BUILTIN): Likewise.
23938 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
23939 * builtin-types.def (BT_INT8): New.
23940 (BT_INT16): Likewise.
23941 (BT_UINT8): Likewise.
23942 (BT_UINT16): Likewise.
23943 (BT_FN_ULONG): Likewise.
23944 (BT_FN_UINT_INT): Likewise.
23945 (BT_FN_UINT_ULONG): Likewise.
23946 (BT_FN_UINT_LONG): Likewise.
23947 (BT_FN_UINT_PTR): Likewise.
23948 (BT_FN_ULONG_PTR): Likewise.
23949 (BT_FN_INT8_FLOAT): Likewise.
23950 (BT_FN_INT16_FLOAT): Likewise.
23951 (BT_FN_UINT32_FLOAT): Likewise.
23952 (BT_FN_UINT16_FLOAT): Likewise.
23953 (BT_FN_UINT8_FLOAT): Likewise.
23954 (BT_FN_UINT64_FLOAT): Likewise.
23955 (BT_FN_UINT16_UINT32): Likewise.
23956 (BT_FN_UINT32_UINT16): Likewise.
23957 (BT_FN_UINT16_UINT16_UINT16): Likewise.
23958 (BT_FN_INT_PTR_INT): Likewise.
23959 (BT_FN_UINT_PTR_UINT): Likewise.
23960 (BT_FN_LONG_PTR_LONG): Likewise.
23961 (BT_FN_ULONG_PTR_ULONG): Likewise.
23962 (BT_FN_VOID_UINT64_UINT64): Likewise.
23963 (BT_FN_UINT8_UINT8_UINT8): Likewise.
23964 (BT_FN_INT8_INT8_INT8): Likewise.
23965 (BT_FN_INT16_INT16_INT16): Likewise.
23966 (BT_FN_INT_INT_INT): Likewise.
23967 (BT_FN_UINT_FLOAT_UINT): Likewise.
23968 (BT_FN_FLOAT_UINT_UINT): Likewise.
23969 (BT_FN_ULONG_UINT_UINT): Likewise.
23970 (BT_FN_ULONG_UINT_PTR): Likewise.
23971 (BT_FN_ULONG_ULONG_ULONG): Likewise.
23972 (BT_FN_UINT_UINT_UINT): Likewise.
23973 (BT_FN_VOID_UINT_PTR): Likewise.
23974 (BT_FN_UINT_UINT_PTR: Likewise.
23975 (BT_FN_UINT32_UINT64_PTR): Likewise.
23976 (BT_FN_INT_INT_UINT_UINT): Likewise.
23977 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
23978 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
23979 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
23980 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
23981 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
23982 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
23983 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
23984 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
23985 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
23986 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
23987 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
23988 * doc/frontends.texi: List BRIG FE.
23989 * doc/install.texi (Testing): Add BRIG tesring requirements.
23990 * doc/invoke.texi (Overall Options): Mention BRIG.
23991 * doc/standards.texi (Standards): Doucment BRIG HSA version.
23992
23993 2017-01-24 Richard Biener <rguenther@suse.de>
23994
23995 PR translation/79208
23996 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
23997
23998 2017-01-24 Martin Jambor <mjambor@suse.cz>
23999
24000 PR bootstrap/79198
24001 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
24002 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
24003 and known_contexts.
24004
24005 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
24006
24007 PR middle-end/79123
24008 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
24009 casts from signed to unsigned really don't have a range.
24010
24011 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
24012
24013 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
24014 GMP_RNDx for compatiblity.
24015
24016 2017-01-24 Martin Liska <mliska@suse.cz>
24017
24018 PR bootstrap/79132
24019 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
24020 that would prevent us to call alloca with -1 as argument.
24021
24022 2017-01-24 Jakub Jelinek <jakub@redhat.com>
24023
24024 * dwarf2out.c (output_compilation_unit_header, output_file_names):
24025 Avoid -Wformat-security warning.
24026
24027 2017-01-23 Andrew Pinski <apinski@cavium.com>
24028
24029 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
24030 cost table.
24031
24032 2017-01-23 Martin Sebor <msebor@redhat.com>
24033
24034 PR middle-end/78703
24035 * gimple-ssa-sprintf.c (warn_level): New global.
24036 (format_integer): Use it here and throughout the rest of the file.
24037 Use the same switch to compute sign as base.
24038 (maybe_warn): New function.
24039 (format_directive): Factor out warnings into maybe_warn.
24040 Add debugging output. Use warn_level.
24041 (add_bytes): Use warn_level.
24042 (pass_sprintf_length::compute_format_length): Add debugging output.
24043 (try_substitute_return_value): Same.
24044 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
24045
24046 PR middle-end/78703
24047 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
24048 (struct fmtresult, format_integer, format_floating): Adjust.
24049 (fmtresult::fmtresult): Set max correctly in two argument ctor.
24050 (get_string_length, format_string,format_directive): Same.
24051 (pass_sprintf_length::compute_format_length): Same.
24052 (try_substitute_return_value): Simplify slightly.
24053
24054 PR middle-end/78703
24055 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
24056 (fmtresult::operator+=): Outlined.
24057 (struct fmtresult): Add ctors.
24058 (struct conversion_spec): Rename...
24059 (struct directive): ...to this. Add and remove data members.
24060 (directive::set_width, directive::set_precision): New functions.
24061 (format_percent): Use fmtresult ctor.
24062 (get_width_and_precision): Remove.
24063 (format_integer): Make naming changes. Avoid computing width and
24064 precision.
24065 (format_floating): Same. Adjust indentation.
24066 (format_character, format_none): New functions.
24067 (format_string): Moved character handling to format_character.
24068 (format_directive): Remove arguments, change return type.
24069 (parse_directive): New function.
24070 (pass_sprintf_length::compute_format_length): Move directive
24071 parsing to parse_directive.
24072
24073 2017-01-23 Jakub Jelinek <jakub@redhat.com>
24074
24075 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
24076 (assign_assembler_name_if_needed): ... this.
24077 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
24078 (assign_assembler_name_if_needed): ... this.
24079 (free_lang_data_in_cgraph): Adjust callers.
24080 * cgraphunit.c (cgraph_node::analyze): Likewise.
24081 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
24082 Likewise.
24083
24084 2017-01-23 Richard Biener <rguenther@suse.de>
24085
24086 PR tree-optimization/79088
24087 PR tree-optimization/79188
24088 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
24089 resetting loop bounds after last path deletion. Reset loop
24090 bounds of the target loop, make code match the comments.
24091 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
24092 Make sure loops need no fixups.
24093
24094 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
24095
24096 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
24097 exponent support with double type for first argument.
24098 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
24099 type returned by __builtin_vec_extract_sig,
24100 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
24101 functions from "vector int" to "vector unsigned int" or from
24102 "vector long long int" to "vector unsigned long long int".
24103 Changed type returned by __builtin_vec_extract_exp,
24104 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
24105 functions from "vector int" to "vector unsigned int" or from
24106 "vector long long int" to "vector unsigned long long int".
24107 Changed return type of __builtin_vec_test_data_class,
24108 __builtin_vec_test_data_class_sp, and
24109 __builtin_vec_test_data_class_dp from "vector int" to
24110 "vector bool int" or from "vector long long int" to "vector bool
24111 long long int" and changed second argument type from "unsigned
24112 int" to "int". Added new overloaded function forms "vector float
24113 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
24114 "vector float __builtin_vec_insert_exp_sp (vector float, vector
24115 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
24116 double, vector unsigned long long int)" and "vector double
24117 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
24118 long int)". Changed return type of
24119 __builtin_scalar_test_data_class and
24120 __builtin_scalar_test_data_class_sp and
24121 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
24122 int" and changed second argument from "unsigned int" to "int".
24123 Changed type returned by __builtin_scalar_test_neg,
24124 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
24125 from "int" to "bool int". Added new overloaded function form
24126 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
24127 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
24128 exponent double-precision with floating point first argument.
24129 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
24130 documentation of scalar_test_data_class, scalar_test_neg,
24131 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
24132 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
24133 vec_test_data_class built-in functions to reflect refinements in
24134 their type signatures.
24135
24136 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
24137
24138 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
24139 size of buf.
24140 (aarch64_elf_asm_destructor): Likewise.
24141
24142 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
24143
24144 PR rtl-optimization/78634
24145 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
24146 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
24147 * ifcvt.c (noce_try_cmove): Add missing cost check.
24148
24149 PR rtl-optimization/71724
24150 * combine.c (if_then_else_cond): Look for situations where it is
24151 beneficial to undo the work of one of the recursive calls.
24152
24153 2017-01-23 Bin Cheng <bin.cheng@arm.com>
24154
24155 PR tree-optimization/70754
24156 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
24157 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
24158 combined stmt before it if not NULL.
24159 (combine_chains): Process refs reversely and compute dominance point
24160 for root ref.
24161
24162 2017-01-23 Martin Liska <mliska@suse.cz>
24163
24164 PR tree-optimization/79196
24165 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
24166 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
24167 instead of memcmp.
24168 (strlen_optimize_stmt): Call the renamed function.
24169
24170 2017-01-23 Michael Matz <matz@suse.de>
24171
24172 PR tree-optimization/78384
24173 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
24174
24175 2017-01-23 Richard Biener <rguenther@suse.de>
24176
24177 PR tree-optimization/79186
24178 * tree-vrp.c (register_new_assert_for): Make sure we've seen
24179 both incoming edges before moving an assert.
24180
24181 2017-01-23 Martin Jambor <mjambor@suse.cz>
24182
24183 * ipa-prop.c (load_from_param_1): Removed.
24184 (load_from_unmodified_param): Bits from load_from_param_1 put back
24185 here.
24186 (load_from_param): Removed.
24187 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
24188 with stmt. Reverted back to use of load_from_unmodified_param.
24189
24190 2017-01-23 Martin Jambor <mjambor@suse.cz>
24191
24192 PR ipa/79108
24193 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
24194 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
24195 field a pointer to garbage collected vector, mark lattices and
24196 ipcp_orig_node with GTY((skip)).
24197 (ipa_get_param_count): Adjust to descriptors being a pointer.
24198 (ipa_get_param): Likewise.
24199 (ipa_get_type): Likewise.
24200 (ipa_get_param_move_cost): Likewise.
24201 (ipa_set_param_used): Likewise.
24202 (ipa_get_controlled_uses): Likewise.
24203 (ipa_set_controlled_uses): Likewise.
24204 (ipa_is_param_used): Likewise.
24205 (ipa_node_params_t): Move into garbage collector. New methods insert
24206 and remove.
24207 (ipa_node_params_sum): Annotate wth GTY(()).
24208 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
24209 garbage collected.
24210 (ipa_load_from_parm_agg): Adjust declaration.
24211 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
24212 * ipa-profile.c (ipa_profile): Likewise.
24213 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
24214 (ipa_populate_param_decls): Make descriptors parameter garbage
24215 collected.
24216 (ipa_dump_param): Adjust to descriptors being a pointer.
24217 (ipa_alloc_node_params): Likewise.
24218 (ipa_initialize_node_params): Likewise.
24219 (load_from_param_1): Make descriptors parameter garbage collected.
24220 (load_from_unmodified_param): Likewise.
24221 (load_from_param): Likewise.
24222 (ipa_load_from_parm_agg): Likewise.
24223 (ipa_node_params::~ipa_node_params): Removed.
24224 (ipa_free_all_node_params): Remove call to delete operator.
24225 (ipa_node_params_t::insert): New.
24226 (ipa_node_params_t::remove): Likewise.
24227 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
24228 copy known_csts and known_contexts vectors.
24229 (ipa_read_node_info): Adjust to descriptors being a pointer.
24230 (ipcp_modif_dom_walker): Make m_descriptors field garbage
24231 collected.
24232 (ipcp_transform_function): Make descriptors variable garbage
24233 collected.
24234
24235 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
24236
24237 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
24238 * config/i386/avx512dqintrin.h: Ditto.
24239 * config/i386/avx512fintrin.h: Ditto.
24240 * config/i386/i386.c: Handle new builtins.
24241 * config/i386/i386-builtin.def: Add new builtins.
24242 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
24243 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
24244
24245 2017-01-23 Jakub Jelinek <jakub@redhat.com>
24246 Martin Liska <mliska@suse.cz>
24247
24248 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
24249 * asan.c (asan_expand_poison_ifn): Support stores and use
24250 appropriate ASAN report function.
24251 * internal-fn.c (expand_ASAN_POISON_USE): New function.
24252 * internal-fn.def (ASAN_POISON_USE): Declare.
24253 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
24254 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
24255 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
24256 ASAN_POISON calls w/o LHS.
24257 * tree-ssa.c (execute_update_addresses_taken): Create clobber
24258 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
24259 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
24260 * gimplify.c (asan_poison_variables): Add attribute
24261 use_after_scope_memory to variables that really needs to live
24262 in memory.
24263 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
24264 having the attribute.
24265
24266 2017-01-23 Martin Liska <mliska@suse.cz>
24267
24268 * asan.c (create_asan_shadow_var): New function.
24269 (asan_expand_poison_ifn): Likewise.
24270 * asan.h (asan_expand_poison_ifn): New declaration.
24271 * internal-fn.c (expand_ASAN_POISON): Likewise.
24272 * internal-fn.def (ASAN_POISON): New builtin.
24273 * sanopt.c (pass_sanopt::execute): Expand
24274 asan_expand_poison_ifn.
24275 * tree-inline.c (copy_decl_for_dup_finish): Make function
24276 external.
24277 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
24278 * tree-ssa.c (is_asan_mark_p): New function.
24279 (execute_update_addresses_taken): Rewrite local variables
24280 (identified just by use-after-scope as addressable) into SSA.
24281
24282 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
24283
24284 * doc/install.texi (Specific): opensource.apple.com uses https
24285 now. Remove trailing slash.
24286
24287 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
24288
24289 * README.Portability: Remove note on an Irix compatibility issue.
24290
24291 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
24292
24293 * gcov.c (INCLUDE_ALGORITHM): Define.
24294 (INCLUDE_VECTOR): Define.
24295 No longer include <vector> and <algorithm> directly.
24296
24297 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
24298
24299 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
24300 to https.
24301 * doc/invoke.texi (Code Gen Options): Ditto.
24302
24303 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
24304
24305 PR lto/78407
24306 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
24307
24308 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
24309
24310 rtl-optimization/79125
24311 * cprop.c (local_cprop_pass): Handle cases where we make an
24312 unconditional trap.
24313
24314 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
24315
24316 PR target/61729
24317 PR target/77850
24318 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
24319 read from, for big endian.
24320
24321 2017-01-20 Jiong Wang <jiong.wang@arm.com>
24322
24323 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
24324 register pauth builtins for LP64 only.
24325
24326 2017-01-20 Marek Polacek <polacek@redhat.com>
24327
24328 PR c/79152
24329 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
24330 non-case labels.
24331
24332 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
24333
24334 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
24335 of safelen status.
24336 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
24337 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
24338 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
24339
24340 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24341
24342 PR target/71270
24343 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
24344 in big-endian mode when they are not a single duplicated value.
24345
24346 2017-01-20 Richard Biener <rguenther@suse.de>
24347
24348 * BASE-VER: Bump to 7.0.1.
24349
24350 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
24351
24352 * omp-low.c (omplow_simd_context): New struct. Use it...
24353 (lower_rec_simd_input_clauses): ...here and...
24354 (lower_rec_input_clauses): ...here to hold common data. Adjust all
24355 references to idx, lane, max_vf, is_simt.
24356
24357 2017-01-20 Graham Markall <graham.markall@embecosm.com>
24358
24359 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
24360 mcpu=nps400.
24361
24362 2017-01-20 Martin Jambor <mjambor@suse.cz>
24363
24364 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
24365 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
24366 gt-hsa-common.h.
24367 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
24368 (GTFILES): Rename hsa.c to hsa-common.c.
24369 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
24370 * hsa-dump.c: Likewise.
24371 * hsa-gen.c: Likewise.
24372 * hsa-regalloc.c: Likewise.
24373 * ipa-hsa.c: Likewise.
24374 * omp-expand.c: Likewise.
24375 * omp-low.c: Likewise.
24376 * toplev.c: Likewise.
24377
24378 2017-01-20 Marek Polacek <polacek@redhat.com>
24379
24380 PR c/64279
24381 * doc/invoke.texi: Document -Wduplicated-branches.
24382 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
24383 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
24384 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
24385 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
24386 return 0 only when not OEP_LEXICOGRAPHIC.
24387 (fold_build_cleanup_point_expr): Use the expression
24388 location when building CLEANUP_POINT_EXPR.
24389 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
24390 * tree.c (add_expr): Handle error_mark_node.
24391
24392 2017-01-20 Martin Liska <mliska@suse.cz>
24393
24394 PR lto/69188
24395 * tree-profile.c (init_ic_make_global_vars): Do not call
24396 finalize_decl.
24397 (gimple_init_gcov_profiler): Likewise.
24398
24399 2017-01-20 Martin Liska <mliska@suse.cz>
24400
24401 PR ipa/71190
24402 * cgraph.h (maybe_create_reference): Remove argument and
24403 update comment.
24404 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
24405 argument.
24406 * ipa-cp.c (create_specialized_node): Likewise.
24407 * symtab.c (symtab_node::maybe_create_reference): Handle
24408 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
24409
24410 2017-01-20 Martin Liska <mliska@suse.cz>
24411
24412 * read-rtl-function.c (function_reader::create_function): Use
24413 build_decl instread of build_decl_stat.
24414
24415 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
24416
24417 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
24418 * config/i386/avx512dqintrin.h: Ditto.
24419 * config/i386/avx512fintrin.h: Ditto.
24420 * config/i386/i386-builtin-types.def: Add new types.
24421 * config/i386/i386.c: Handle new types.
24422 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
24423 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
24424 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
24425 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
24426 (__builtin_ia32_kshiftridi): New.
24427 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
24428
24429 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
24430
24431 PR target/78875
24432 PR target/79140
24433 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
24434 define to rs6000_init_stack_protect_guard.
24435 (rs6000_init_stack_protect_guard): New function.
24436
24437 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
24438 Yunqiang Su <yunqiang.su@imgtec.com>
24439
24440 * config.gcc (supported_defaults): Add madd4.
24441 (with_madd4): Add validation.
24442 (all_defaults): Add madd4.
24443 * config/mips/mips.opt (mmadd4): New option.
24444 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
24445 mmadd4.
24446 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
24447 __mips_no_madd4.
24448 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
24449 (ISA_HAS_FUSED_MADD4): Likewise.
24450 * doc/invoke.texi (-mmadd4): Document the new option.
24451 * doc/install.texi (--with-madd4): Document the new option.
24452
24453 2017-01-19 Jiong Wang <jiong.wang@arm.com>
24454
24455 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
24456 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
24457 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
24458 (aarch64_init_pauth_hint_builtins): New.
24459 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
24460 (aarch64_expand_builtin): Expand new builtins.
24461
24462 2017-01-19 Jiong Wang <jiong.wang@arm.com>
24463
24464 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
24465 * combine-stack-adj.c (no_unhandled_cfa): Handle
24466 REG_CFA_TOGGLE_RA_MANGLE.
24467 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
24468 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
24469 info for return address signing.
24470 (aarch64_expand_epilogue): Likewise.
24471
24472 2017-01-19 Jiong Wang <jiong.wang@arm.com>
24473
24474 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
24475 * config/aarch64/aarch64-protos.h
24476 (aarch64_return_address_signing_enabled): New declaration.
24477 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
24478 New function.
24479 (aarch64_expand_prologue): Sign return address before it's pushed onto
24480 stack.
24481 (aarch64_expand_epilogue): Authenticate return address fetched from
24482 stack.
24483 (aarch64_override_options): Sanity check for ILP32 and ISA level.
24484 (aarch64_attributes): New function attributes for "sign-return-address".
24485 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
24486 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
24487 ("*do_return"): Generate combined instructions according to key index.
24488 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
24489 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
24490 iterators.
24491 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
24492 * config/aarch64/aarch64.opt (msign-return-address=): New.
24493 * doc/extend.texi (AArch64 Function Attributes): Documents
24494 "sign-return-address=".
24495 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
24496
24497 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
24498
24499 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
24500 overall option summary.
24501
24502 2017-01-19 Jiong Wang <jiong.wang@arm.com>
24503
24504 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
24505 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
24506 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
24507 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
24508
24509 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
24510
24511 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
24512 -mpower9-minmax by default for -mcpu=power9.
24513 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
24514 128-bit floating point.
24515
24516 2017-01-20 Alan Modra <amodra@gmail.com>
24517
24518 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
24519 optimizing for size.
24520
24521 2017-01-20 Alan Modra <amodra@gmail.com>
24522
24523 PR target/79144
24524 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
24525 for strcmp and strncmp from corresponding builtin decl.
24526
24527 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
24528
24529 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
24530 instead of i386/rtems-64.h.
24531 * config/i386/rtems-64.h: Remove.
24532
24533 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
24534
24535 PR target/78478
24536 Revert:
24537 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
24538
24539 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
24540
24541 2017-01-19 Tamar Christina <tamar.christina@arm.com>
24542
24543 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
24544 Change int to HOST_WIDE_INT.
24545 * config/aarch64/aarch64-protos.h
24546 (aarch64_simd_gen_const_vector_dup): Likewise.
24547 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
24548
24549 2017-01-19 David Malcolm <dmalcolm@redhat.com>
24550
24551 * langhooks-def.h (lhd_type_for_size): New decl.
24552 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
24553 * langhooks.c (lhd_type_for_size): New function, taken from
24554 lto_type_for_size.
24555
24556 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
24557
24558 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
24559 define_bypass for CR latency.
24560 (power9-cracked-alu): Update bypass latency and remove power9-branch.
24561 (power9-alu2): Add define_bypass for CR latency.
24562 (power9-cmp): New.
24563 (power9-mul): Update insn latency.
24564 (power9-mul-compare): Update insn latency, bypass latency and remove
24565 power9-branch.
24566
24567 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24568
24569 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
24570 Delete.
24571 * config/aarch64/aarch64.md
24572 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
24573 aarch64_nopcrelative_literal_loads.
24574 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
24575
24576 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
24577
24578 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
24579 TARGET_LOONGSON_3A.
24580 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
24581
24582 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
24583
24584 PR target/78176
24585 * config.gcc (supported_defaults): Add lxc1-sxc1.
24586 (with_lxc1_sxc1): Add validation.
24587 (all_defaults): Add lxc1-sxc1.
24588 * config/mips/mips.opt (mlxc1-sxc1): New option.
24589 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
24590 mlxc1-sxc1.
24591 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
24592 __mips_no_lxc1_sxc1.
24593 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
24594 * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
24595 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
24596
24597 2017-01-19 Richard Biener <rguenther@suse.de>
24598
24599 PR tree-optimization/72488
24600 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
24601 sure to restore SSA info.
24602 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
24603
24604 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
24605
24606 PR rtl-optimization/79121
24607 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
24608 of the inner type when shifting an extended value.
24609
24610 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
24611
24612 PR lto/78407
24613 * symtab.c (symtab_node::equal_address_to): Fix comparing of
24614 interposable aliases.
24615
24616 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
24617
24618 PR target/78516
24619 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
24620 Use the evmergelohi instruction.
24621 (mov_si<mode>_e500_subreg4_2_le): Likewise.
24622 (mov_sitf_e500_subreg8_2_be): Likewise.
24623 (mov_sitf_e500_subreg12_2_le): Likewise.
24624 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
24625 (mov_si<mode>_e500_subreg4_2_be): Likewise.
24626 (mov_sitf_e500_subreg8_2_le): Likewise.
24627 (mov_sitf_e500_subreg12_2_be): Likewise.
24628
24629 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24630
24631 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
24632 attribute from vecsimple to vecperm.
24633 (altivec_vbpermq2): Likewise.
24634
24635 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24636
24637 PR target/79040
24638 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
24639
24640 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
24641 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
24642 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
24643 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
24644 case where N arg is SIZE_MAX.
24645 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
24646 (cmpstrsi): Add pattern.
24647
24648 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
24649
24650 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24651 __builtin_vec_revb builtins.
24652 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
24653 built-in functions to support generation of the ISA 3.0 XXBR<x>
24654 vector byte reverse instructions.
24655 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
24656 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
24657 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
24658 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
24659 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
24660 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
24661 (P9V_BUILTIN_VEC_REVB): Likewise.
24662 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
24663 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
24664 (p9_xxbrq_v16qi): Likewise.
24665 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
24666 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
24667 (p9_xxbrh_v8hi): Likewise.
24668 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
24669 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
24670 vec_revb built-in functions.
24671
24672 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
24673
24674 PR rtl-optimization/78952
24675 * config/i386/i386.md (any_extract): New code iterator.
24676 (*insvqi_2): Use any_extract for source operand.
24677 (*insvqi_3): Use any_shiftrt for source operand.
24678
24679 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
24680
24681 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
24682 New function.
24683 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
24684
24685 2017-01-18 Matthias Klose <doko@ubuntu.com>
24686
24687 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
24688
24689 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24690
24691 * config/rs6000/altivec.h (vec_bperm): Change #define.
24692 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
24693 (altivec_vbpermq2): New define_insn.
24694 (altivec_vbpermd): Likewise.
24695 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
24696 function interface.
24697 (VBPERMD): Likewise.
24698 (VBPERM): New polymorphic function interface.
24699 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
24700 Add entries for P9V_BUILTIN_VEC_VBPERM.
24701 * doc/extend.texi: Add interfaces for vec_bperm.
24702
24703 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24704
24705 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
24706 first letter of error messages.
24707 (s390_resolve_overloaded_builtin): Likewise.
24708 * config/s390/s390.c (s390_expand_builtin): Likewise.
24709 (s390_invalid_arg_for_unprototyped_fn): Likewise.
24710 (s390_valid_target_attribute_inner_p): Likewise.
24711 * config/s390/s390.md ("tabort"): Likewise.
24712
24713 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
24714
24715 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
24716 (ISA_AVOID_DIV_HILO): New macro.
24717 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
24718 (ISA_HAS_DDIV): Likewise.
24719
24720 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
24721
24722 * doc/invoke.texi (fabi-version): Correct number of occurrences.
24723
24724 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
24725
24726 * doc/invoke.texi (fabi-version): Spelling fix.
24727
24728 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
24729
24730 PR c++/70182
24731 * doc/invoke.texi (fabi-version): Mention mangling fix for
24732 operator names.
24733
24734 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
24735
24736 PR c++/77489
24737 * doc/invoke.texi (fabi-version): Document discriminator mangling.
24738
24739 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
24740
24741 PR target/78875
24742 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
24743 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
24744 the new options.
24745 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
24746 flexible settings.
24747 (stack_protect_test): Ditto.
24748 * config/rs6000/rs6000.opt (mstack-protector-guard=,
24749 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
24750 options.
24751 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
24752 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
24753 -mstack-protector-guard-offset=.
24754 (RS/6000 and PowerPC Options): Ditto.
24755
24756 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
24757
24758 * config/i386/i386.h (MASK_CLASS_P): New define.
24759 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
24760 there are no registers from different register sets also when
24761 mask registers are used. Update function comment.
24762 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
24763 to (*k/*r) and (*k/*km) alternatives.
24764
24765 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
24766
24767 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
24768 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
24769 (EH_RETURN_HANDLER_RTX): New define.
24770 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
24771 Force frame pointer in EH return functions.
24772 (aarch64_expand_epilogue): Add barrier for eh_return.
24773 (aarch64_final_eh_return_addr): Remove.
24774 (aarch64_eh_return_handler_rtx): New function.
24775 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
24776 Remove.
24777 (aarch64_eh_return_handler_rtx): New prototype.
24778
24779 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24780
24781 * config/rs6000/altivec.h (vec_rlmi): New #define.
24782 (vec_vrlnm): Likewise.
24783 (vec_rlnm): Likewise.
24784 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
24785 (UNSPEC_VRLNM): Likewise.
24786 (VIlong): New mode iterator.
24787 (altivec_vrl<VI_char>mi): New define_insn.
24788 (altivec_vrl<VI_char>nm): Likewise.
24789 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
24790 function entry.
24791 (VRLDNM): Likewise.
24792 (RLNM): New polymorphic function entry.
24793 (VRLWMI): New monomorphic function entry.
24794 (VRLDMI): Likewise.
24795 (RLMI): New polymorphic function entry.
24796 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
24797 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
24798 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
24799 vec_vrlnm.
24800
24801 2017-01-17 Jakub Jelinek <jakub@redhat.com>
24802
24803 PR debug/78839
24804 * dwarf2out.c (field_byte_offset): Restore the
24805 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
24806 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
24807 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
24808 of build2 + fold.
24809
24810 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
24811
24812 PR ada/67205
24813 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
24814
24815 2017-01-17 Jakub Jelinek <jakub@redhat.com>
24816
24817 PR debug/71669
24818 * dwarf2out.c (add_data_member_location_attribute): For constant
24819 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
24820 instead of DW_AT_data_member_location, DW_AT_bit_offset and
24821 DW_AT_byte_size attributes.
24822
24823 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
24824
24825 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
24826 after forcing to constant memory when the code model is medium.
24827
24828 2017-01-17 Julia Koval <julia.koval@intel.com>
24829
24830 PR target/76731
24831 * config/i386/avx512fintrin.h
24832 (_mm512_i32gather_ps): Change __addr type to void const*.
24833 (_mm512_mask_i32gather_ps): Ditto.
24834 (_mm512_i32gather_pd): Ditto.
24835 (_mm512_mask_i32gather_pd): Ditto.
24836 (_mm512_i64gather_ps): Ditto.
24837 (_mm512_mask_i64gather_ps): Ditto.
24838 (_mm512_i64gather_pd): Ditto.
24839 (_mm512_mask_i64gather_pd): Ditto.
24840 (_mm512_i32gather_epi32): Ditto.
24841 (_mm512_mask_i32gather_epi32): Ditto.
24842 (_mm512_i32gather_epi64): Ditto.
24843 (_mm512_mask_i32gather_epi64): Ditto.
24844 (_mm512_i64gather_epi32): Ditto.
24845 (_mm512_mask_i64gather_epi32): Ditto.
24846 (_mm512_i64gather_epi64): Ditto.
24847 (_mm512_mask_i64gather_epi64): Ditto.
24848 (_mm512_i32scatter_ps): Change __addr type to void*.
24849 (_mm512_mask_i32scatter_ps): Ditto.
24850 (_mm512_i32scatter_pd): Ditto.
24851 (_mm512_mask_i32scatter_pd): Ditto.
24852 (_mm512_i64scatter_ps): Ditto.
24853 (_mm512_mask_i64scatter_ps): Ditto.
24854 (_mm512_i64scatter_pd): Ditto.
24855 (_mm512_mask_i64scatter_pd): Ditto.
24856 (_mm512_i32scatter_epi32): Ditto.
24857 (_mm512_mask_i32scatter_epi32): Ditto.
24858 (_mm512_i32scatter_epi64): Ditto.
24859 (_mm512_mask_i32scatter_epi64): Ditto.
24860 (_mm512_i64scatter_epi32): Ditto.
24861 (_mm512_mask_i64scatter_epi32): Ditto.
24862 (_mm512_i64scatter_epi64): Ditto.
24863 (_mm512_mask_i64scatter_epi64): Ditto.
24864 * config/i386/avx512pfintrin.h
24865 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
24866 (_mm512_mask_prefetch_i32gather_ps): Ditto.
24867 (_mm512_mask_prefetch_i64gather_pd): Ditto.
24868 (_mm512_mask_prefetch_i64gather_ps): Ditto.
24869 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
24870 (_mm512_prefetch_i32scatter_ps): Ditto.
24871 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
24872 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
24873 (_mm512_prefetch_i64scatter_pd): Ditto.
24874 (_mm512_prefetch_i64scatter_ps): Ditto.
24875 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
24876 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
24877 * config/i386/avx512vlintrin.h
24878 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
24879 (_mm_mmask_i32gather_ps): Ditto.
24880 (_mm256_mmask_i32gather_pd): Ditto.
24881 (_mm_mmask_i32gather_pd): Ditto.
24882 (_mm256_mmask_i64gather_ps): Ditto.
24883 (_mm_mmask_i64gather_ps): Ditto.
24884 (_mm256_mmask_i64gather_pd): Ditto.
24885 (_mm_mmask_i64gather_pd): Ditto.
24886 (_mm256_mmask_i32gather_epi32): Ditto.
24887 (_mm_mmask_i32gather_epi32): Ditto.
24888 (_mm256_mmask_i32gather_epi64): Ditto.
24889 (_mm_mmask_i32gather_epi64): Ditto.
24890 (_mm256_mmask_i64gather_epi32): Ditto.
24891 (_mm_mmask_i64gather_epi32): Ditto.
24892 (_mm256_mmask_i64gather_epi64): Ditto.
24893 (_mm_mmask_i64gather_epi64): Ditto.
24894 (_mm256_i32scatter_ps): Change __addr type to void*.
24895 (_mm256_mask_i32scatter_ps): Ditto.
24896 (_mm_i32scatter_ps): Ditto.
24897 (_mm_mask_i32scatter_ps): Ditto.
24898 (_mm256_i32scatter_pd): Ditto.
24899 (_mm256_mask_i32scatter_pd): Ditto.
24900 (_mm_i32scatter_pd): Ditto.
24901 (_mm_mask_i32scatter_pd): Ditto.
24902 (_mm256_i64scatter_ps): Ditto.
24903 (_mm256_mask_i64scatter_ps): Ditto.
24904 (_mm_i64scatter_ps): Ditto.
24905 (_mm_mask_i64scatter_ps): Ditto.
24906 (_mm256_i64scatter_pd): Ditto.
24907 (_mm256_mask_i64scatter_pd): Ditto.
24908 (_mm_i64scatter_pd): Ditto.
24909 (_mm_mask_i64scatter_pd): Ditto.
24910 (_mm256_i32scatter_epi32): Ditto.
24911 (_mm256_mask_i32scatter_epi32): Ditto.
24912 (_mm_i32scatter_epi32): Ditto.
24913 (_mm_mask_i32scatter_epi32): Ditto.
24914 (_mm256_i32scatter_epi64): Ditto.
24915 (_mm256_mask_i32scatter_epi64): Ditto.
24916 (_mm_i32scatter_epi64): Ditto.
24917 (_mm_mask_i32scatter_epi64): Ditto.
24918 (_mm256_i64scatter_epi32): Ditto.
24919 (_mm256_mask_i64scatter_epi32): Ditto.
24920 (_mm_i64scatter_epi32): Ditto.
24921 (_mm_mask_i64scatter_epi32): Ditto.
24922 (_mm256_i64scatter_epi64): Ditto.
24923 (_mm256_mask_i64scatter_epi64): Ditto.
24924 (_mm_i64scatter_epi64): Ditto.
24925 (_mm_mask_i64scatter_epi64): Ditto.
24926 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
24927 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
24928 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
24929 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
24930 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
24931 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
24932 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
24933 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
24934 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
24935 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
24936 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
24937 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
24938 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
24939 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
24940 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
24941 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
24942 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
24943 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
24944 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
24945 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
24946 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
24947 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
24948 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
24949 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
24950 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
24951 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
24952 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
24953 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
24954 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
24955 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
24956 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
24957 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
24958 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
24959 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
24960 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
24961 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
24962 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
24963 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
24964 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
24965 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
24966 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
24967 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
24968 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
24969 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
24970 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
24971 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
24972 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
24973 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
24974 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
24975 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
24976 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
24977 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
24978 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
24979 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
24980 definitions accordingly.
24981
24982 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
24983 Kuan-Lin Chen <kuanlinchentw@gmail.com>
24984
24985 PR target/79079
24986 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
24987 gen_lowpart.
24988
24989 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
24990
24991 PR target/79058
24992 * ira-conflicts.c (ira_build_conflicts): Update total conflict
24993 hard regs for inner regno.
24994
24995 2017-01-17 Martin Liska <mliska@suse.cz>
24996
24997 PR ipa/71207
24998 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
24999 assumption and add comment.
25000
25001 2017-01-17 Nathan Sidwell <nathan@acm.org>
25002
25003 * ipa-visibility.c (localize_node): New function, broken out of ...
25004 (function_and_variable_visibility): ... here. Call it.
25005
25006 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
25007
25008 PR middle-end/77445
25009 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
25010 correctly set frequency of oudgoing edge.
25011 (duplicate_thread_path): Fix profile updating.
25012
25013 2017-01-17 Jakub Jelinek <jakub@redhat.com>
25014
25015 PR other/79046
25016 * configure.ac: Add GCC_BASE_VER.
25017 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
25018 version from BASE-VER file.
25019 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
25020 (gcc.o): Depend on $(BASEVER).
25021 * common.opt (dumpfullversion): New option.
25022 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
25023 * doc/invoke.texi: Document -dumpfullversion.
25024 * doc/install.texi: Document --with-gcc-major-version-only.
25025 * configure: Regenerated.
25026
25027 2017-01-17 Richard Biener <rguenther@suse.de>
25028
25029 PR tree-optimization/71433
25030 * tree-vrp.c (register_new_assert_for): Merge same asserts
25031 on all incoming edges.
25032 (process_assert_insertions_for): Handle insertions at the
25033 beginning of BBs.
25034
25035 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
25036
25037 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
25038 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
25039
25040 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
25041
25042 PR target/78633
25043 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
25044 RTL sharing.
25045
25046 2017-01-17 Alan Modra <amodra@gmail.com>
25047
25048 PR target/79066
25049 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
25050 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
25051 symbolic stack limit when pic.
25052
25053 2017-01-16 Martin Sebor <msebor@redhat.com>
25054
25055 PR tree-optimization/78608
25056 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
25057
25058 2017-01-16 Jeff Law <law@redhat.com>
25059
25060 Revert:
25061 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
25062 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
25063 for several include directories that may be relative to sysroot.
25064 * config/i386/x-mingw32 (gplus_includedir): Define.
25065 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
25066 (native_system_includedir): Likewise.
25067 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
25068 override if TARGET_SYSTEM_ROOT is defined.
25069 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
25070
25071 PR tree-optimization/79090
25072 PR tree-optimization/33562
25073 PR tree-optimization/61912
25074 PR tree-optimization/77485
25075 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
25076 and computed trims into the dump file.
25077
25078 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
25079
25080 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
25081
25082 2017-01-16 Jakub Jelinek <jakub@redhat.com>
25083
25084 PR c/79089
25085 * gimplify.c (gimplify_init_constructor): If want_value and
25086 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
25087 fix.
25088
25089 PR target/79080
25090 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
25091 sequence. Formatting fixes.
25092 (doloop_optimize): Formatting fixes.
25093
25094 PR driver/49726
25095 * gcc.c (debug_level_greater_than_spec_func): New function.
25096 (static_spec_functions): Add debug-level-gt spec function.
25097 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
25098 !g0.
25099 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
25100 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
25101 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
25102 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
25103 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
25104 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
25105
25106 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
25107
25108 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
25109 QImode fixups to general and mask registers only.
25110
25111 2017-01-16 Carl Love <cel@us.ibm.com>
25112
25113 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
25114 for built-in functions
25115 vector signed char vec_nabs (vector signed char)
25116 vector signed short vec_nabs (vector signed short)
25117 vector signed int vec_nabs (vector signed int)
25118 vector signed long long vec_nabs (vector signed long long)
25119 vector float vec_nabs (vector float)
25120 vector double vec_nabs (vector double)
25121 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
25122 and NABS overload.
25123 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
25124 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
25125 * doc/extend.texi: Update the documentation file for the new built-in
25126 functions.
25127
25128 2017-01-16 Martin Sebor <msebor@redhat.com>
25129
25130 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
25131 message.
25132
25133 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25134
25135 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
25136 UNSPEC_VSX__XXSPLTD to require special splat handling.
25137
25138 2017-01-16 David Malcolm <dmalcolm@redhat.com>
25139
25140 PR bootstrap/78616
25141 * system.h: Poison strndup.
25142
25143 2017-01-16 Alan Modra <amodra@gmail.com>
25144
25145 PR target/79098
25146 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
25147 use a switch.
25148
25149 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
25150
25151 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
25152
25153 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
25154
25155 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
25156 call recog here. Assert that INSN_CODE (insn) is non-negative.
25157
25158 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
25159
25160 PR target/72749
25161 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
25162 fallthrough.
25163 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
25164 in the currently scheduled RTL fragment.
25165
25166 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
25167
25168 PR rtl-optimization/78751
25169 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
25170 give up.
25171
25172 2017-01-14 Jeff Law <law@redhat.com>
25173
25174 PR tree-optimization/79090
25175 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
25176 variable length stores.
25177 (compute_trims): Delete dead assignment to *trim_tail.
25178 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
25179 zero length.
25180
25181 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
25182
25183 PR rtl-optimization/78626
25184 PR rtl-optimization/78727
25185 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
25186 of a block, and split such blocks after everything else is finished.
25187
25188 2017-01-14 Alan Modra <amodra@gmail.com>
25189
25190 PR target/72749
25191 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
25192 target legitimate_combined_insn.
25193 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
25194 (rs6000_legitimate_combined_insn): New function.
25195 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
25196 all uses.
25197 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
25198 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
25199 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
25200
25201 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
25202
25203 * doc/frontends.texi (G++ and GCC): Remove references to Java.
25204
25205 2017-01-13 Jeff Law <law@redhat.com>
25206
25207 PR tree-optimization/33562
25208 PR tree-optimization/61912
25209 PR tree-optimization/77485
25210 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
25211 a statement.
25212 (delete_dead_assignment): Likewise.
25213 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
25214 statement to delete_dead_call and delete_dead_assignment.
25215
25216 2017-01-13 David Malcolm <dmalcolm@redhat.com>
25217
25218 PR c/78304
25219 * substring-locations.c (format_warning_va): Strengthen case 1 so
25220 that both endpoints of the substring must be within the format
25221 range for just the substring to be printed.
25222
25223 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
25224
25225 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
25226 * config/i386/i386.c (ix86_target_string): Add missing options
25227 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
25228 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
25229 flags_other and ix86_target_other to flags2_other. Display unknown
25230 isa2 options.
25231 (ix86_valid_target_attribute_inner_p): Add missing options and
25232 reorder options by implied ISAs, as in ix86_target_string.
25233
25234 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
25235
25236 * hash-table.h (hash_table::too_empty_p): New function.
25237 (hash_table::expand): Use it.
25238 (hash_table::traverse): Likewise.
25239 (hash_table::empty_slot): Use sizeof (value_type) instead of
25240 sizeof (PTR) to convert bytes to elements. Shrink the table
25241 if the current size is excessive for the current number of
25242 elements.
25243
25244 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
25245
25246 * ira-costs.c (record_reg_classes): Break from the inner loop
25247 early once alt_fail is known to be true. Update outer loop
25248 handling accordingly.
25249
25250 2017-01-13 Jeff Law <law@redhat.com>
25251
25252 * tree-ssa-dse.c (decrement_count): New function.
25253 (increment_start_addr, maybe_trim_memstar_call): Likewise.
25254 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
25255 when we know the partially dead statement is a mem* function.
25256
25257 PR tree-optimization/61912
25258 PR tree-optimization/77485
25259 * tree-ssa-dse.c: Include expr.h.
25260 (maybe_trim_constructor_store): New function.
25261 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
25262
25263 PR tree-optimization/33562
25264 PR tree-optimization/61912
25265 PR tree-optimization/77485
25266 * doc/invoke.texi: Document new dse-max-object-size param.
25267 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
25268 * tree-ssa-dse.c: Include params.h.
25269 (dse_store_status): New enum.
25270 (initialize_ao_ref_for_dse): New, partially extracted from
25271 dse_optimize_stmt.
25272 (valid_ao_ref_for_dse, normalize_ref): New.
25273 (setup_live_bytes_from_ref, compute_trims): Likewise.
25274 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
25275 (maybe_trim_partially_dead_store): Likewise.
25276 (maybe_trim_complex_store): Likewise.
25277 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
25278 Track what bytes live from the original store. Return tri-state
25279 for dead, partially dead or live.
25280 (dse_dom_walker): Add constructor, destructor and new private members.
25281 (delete_dead_call, delete_dead_assignment): New extracted from
25282 dse_optimize_stmt.
25283 (dse_optimize_stmt): Make a member of dse_dom_walker.
25284 Use initialize_ao_ref_for_dse.
25285
25286 PR tree-optimization/33562
25287 PR tree-optimization/61912
25288 PR tree-optimization/77485
25289 * sbitmap.h (bitmap_count_bits): Prototype.
25290 (bitmap_clear_range, bitmap_set_range): Likewise.
25291 * sbitmap.c (bitmap_clear_range): New function.
25292 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
25293
25294 2017-01-13 Martin Liska <mliska@suse.cz>
25295
25296 PR ipa/79043
25297 * function.c (set_cfun): Add new argument force.
25298 * function.h (set_cfun): Likewise.
25299 * ipa-inline-transform.c (inline_call): Use the function when
25300 strict alising from is dropped for function we inline to.
25301
25302 2017-01-13 Richard Biener <rguenther@suse.de>
25303
25304 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
25305 for dumping GIMPLE INTEGER_CSTs.
25306
25307 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25308
25309 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
25310 to 201112L since C++17.
25311
25312 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
25313
25314 PR sanitizer/78887
25315 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
25316 if -fsanitize=kernel-address is present.
25317
25318 2017-01-13 Richard Biener <rguenther@suse.de>
25319
25320 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
25321 as _Literal ( type ) number in case usual suffixes do not
25322 preserve all information.
25323
25324 2017-01-13 Richard Biener <rguenther@suse.de>
25325
25326 PR tree-optimization/77283
25327 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
25328 and ssa-iterators.h.
25329 (is_feasible_trace): Implement a cost model based on joiner
25330 PHI node uses.
25331
25332 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
25333
25334 PR target/79004
25335 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
25336 char or short to __float128/_Float128 directly.
25337
25338 2017-01-12 Martin Sebor <msebor@redhat.com>
25339
25340 to -Wformat-overflow.
25341 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
25342 (min_bytes_remaining): Same.
25343 (get_string_length): Same.
25344 (format_string): Same.
25345 (format_directive): Same.
25346 (add_bytes): Same.
25347 (pass_sprintf_length::handle_gimple_call): Same.
25348
25349 2017-01-12 Jakub Jelinek <jakub@redhat.com>
25350
25351 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
25352 info.nowrite calls with no lhs that can't throw. Return bool
25353 whether gsi_remove has been called or not.
25354 (pass_sprintf_length::handle_gimple_call): Return bool whether
25355 try_substitute_return_value called gsi_remove. Formatting fix.
25356 (pass_sprintf_length::execute): Don't use gsi_remove if
25357 handle_gimple_call returned true.
25358
25359 PR bootstrap/79069
25360 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
25361 be removed due to side-effects, don't remove following barrier nor
25362 turn the successor edge into fallthru edge.
25363
25364 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25365
25366 PR target/79044
25367 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
25368 element-reversing loads and stores as not swappable.
25369
25370 2017-01-12 Nathan Sidwell <nathan@acm.org>
25371 Nicolai Stange <nicstange@gmail.com>
25372
25373 * combine.c (try_combine): Don't ignore result of overlap checking
25374 loop. Combine overlap & asm check into single loop.
25375
25376 2017-01-12 Richard Biener <rguenther@suse.de>
25377
25378 * tree-pretty-print.c (dump_generic_node): Provide -gimple
25379 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
25380
25381 2017-01-12 Richard Biener <rguenther@suse.de>
25382
25383 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
25384 and TS_TARGET_OPTION directly derive from TS_BASE.
25385 * tree-core.h (tree_optimization_option): Derive from tree_base.
25386 (tree_target_option): Likewise.
25387
25388 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
25389
25390 * config/i386/i386.c (memory_address_length): Increase len
25391 only when rip_relative_addr_p returns false.
25392
25393 2017-01-11 Julia Koval <julia.koval@intel.com>
25394
25395 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
25396 (OPTION_MASK_ISA_SGX_SET): New.
25397 (ix86_handle_option): Handle OPT_msgx.
25398 * config.gcc: Added sgxintrin.h.
25399 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
25400 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
25401 * config/i386/i386.c (ix86_target_string): Add -msgx.
25402 (PTA_SGX): New.
25403 (ix86_option_override_internal): Handle new options.
25404 (ix86_valid_target_attribute_inner_p): Add sgx.
25405 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
25406 * config/i386/i386.opt: Add msgx.
25407 * config/i386/sgxintrin.h: New file.
25408 * config/i386/x86intrin.h: Add sgxintrin.h.
25409
25410 2017-01-11 Jakub Jelinek <jakub@redhat.com>
25411
25412 PR c++/71537
25413 * fold-const.c (maybe_nonzero_address): Return 1 for function
25414 local objects.
25415 (tree_single_nonzero_warnv_p): Don't handle function local objects
25416 here.
25417
25418 PR c++/72813
25419 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
25420 of c-header.
25421
25422 2017-01-11 David Malcolm <dmalcolm@redhat.com>
25423
25424 PR driver/78877
25425 * opts.c: Include "spellcheck.h"
25426 (struct string_fragment): New struct.
25427 (struct edit_distance_traits<const string_fragment &>): New
25428 struct.
25429 (get_closest_sanitizer_option): New function.
25430 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
25431
25432 2017-01-11 Jakub Jelinek <jakub@redhat.com>
25433
25434 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
25435 by 12.
25436 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
25437 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
25438 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
25439 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
25440 for initial die_offset if dwarf_split_debug_info.
25441 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
25442 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
25443 fields.
25444 (output_skeleton_debug_sections): Formatting fix. Use
25445 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
25446 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
25447
25448 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
25449
25450 * config/arm/cortex-a53.md: Add bypasses for
25451 cortex_a53_r2f_cvt.
25452 (cortex_a53_r2f): Only use for transfers.
25453 (cortex_a53_f2r): Likewise.
25454 (cortex_a53_r2f_cvt): Add reservation for conversions.
25455 (cortex_a53_f2r_cvt): Likewise.
25456
25457 2017-01-11 Tamar Christina <tamar.christina@arm.com>
25458
25459 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
25460 to all inlined functions, change static to extern.
25461
25462 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
25463
25464 PR target/78253
25465 * config/arm/arm.c (legitimize_pic_address): Handle reference to
25466 weak symbol.
25467 (arm_assemble_integer): Likewise.
25468
25469 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
25470
25471 * config.gcc: Use new awk script to check CPU, FPU and architecture
25472 parameters for --with-... options.
25473 * config/arm/parsecpu.awk: New file
25474 * config/arm/arm-cpus.in: New file.
25475 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
25476 files.
25477 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
25478 files.
25479 * config/arm/t-arm: Update dependency rules.
25480 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
25481 of processing .def files.
25482 * config/arm/genopt.sh: Deleted.
25483 * config/arm/gentune.sh: Deleted.
25484 * config/arm/arm-cores.def: Deleted.
25485 * config/arm/arm-arches.def: Deleted.
25486 * config/arm/arm-fpus.def: Deleted.
25487 * config/arm/arm-tune.md: Regenerated.
25488 * config/arm/arm-tables.opt: Regenerated.
25489 * config/arm/arm-cpu.h: New generated file.
25490 * config/arm/arm-cpu-data.h: New generated file.
25491 * config/arm/arm-cpu-cdata.h: New generated file.
25492
25493 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
25494
25495 PR lto/79042
25496 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
25497 bit.
25498 (input_varpool_node): Unpack dynamically_initialized bit.
25499
25500 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
25501
25502 PR rtl-optimization/79032
25503 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
25504 the alignment of the adjusted memory reference against that of MODE,
25505 instead of the alignment of the original memory reference.
25506
25507 2017-01-11 Martin Jambor <mjambor@suse.cz>
25508
25509 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
25510 test.
25511 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
25512 decorated functions.
25513
25514 2017-01-11 Richard Biener <rguenther@suse.de>
25515
25516 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
25517 set range/nonnull info for PHI results. Do not set it on
25518 stmts marked for removal.
25519
25520 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
25521
25522 * expr.c (store_field): In the bitfield case, fetch the return value
25523 from the registers before applying a single big-endian adjustment.
25524 Always do a final load for a BLKmode value not larger than a word.
25525
25526 2017-01-10 David Malcolm <dmalcolm@redhat.com>
25527
25528 PR c++/77949
25529 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
25530 that we correctly handle column numbers greater than
25531 LINE_MAP_MAX_COLUMN_NUMBER.
25532
25533 2017-01-10 Martin Sebor <msebor@redhat.com>
25534
25535 PR middle-end/78245
25536 * gimple-ssa-sprintf.c (get_destination_size): Call
25537 {init,fini}object_sizes.
25538 * tree-object-size.c (addr_object_size): Adjust.
25539 (pass_through_call): Adjust.
25540 (pass_object_sizes::execute): Adjust.
25541 * tree-object-size.h (fini_object_sizes): Declare.
25542
25543 2017-01-10 Martin Sebor <msebor@redhat.com>
25544
25545 PR tree-optimization/78775
25546 * builtins.c (get_size_range): Move...
25547 * calls.c: ...to here.
25548 (alloc_max_size): Accept zero argument.
25549 (operand_signed_p): Remove.
25550 (maybe_warn_alloc_args_overflow): Call get_size_range.
25551 * calls.h (get_size_range): Declare.
25552
25553 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
25554
25555 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
25556 from TI's devices.csv file as of September 2016.
25557 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
25558
25559 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
25560
25561 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
25562 * doc/invoke.texi: Likewise.
25563 * doc/md.texi: Likewise.
25564 * doc/objc.texi: Likewise.
25565
25566 2017-01-10 Joshua Conner <joshconner@google.com>
25567
25568 * config/arm/fuchsia-elf.h: New file.
25569 * config/fuchsia.h: New file.
25570 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
25571 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
25572 targets.
25573 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
25574
25575 2016-01-10 Richard Biener <rguenther@suse.de>
25576
25577 PR tree-optimization/79034
25578 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
25579 Propagate out degenerate PHIs in the joiner.
25580
25581 2017-01-10 Martin Liska <mliska@suse.cz>
25582
25583 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
25584 (sort_congruence_classes_by_decl_uid): Likewise.
25585 (sort_congruence_class_groups_by_decl_uid): Likewise.
25586 (sem_item_optimizer::merge_classes): Sort class, groups in these
25587 classes and members in the groups by DECL_UID of declarations.
25588 This would make merge operations stable.
25589
25590 2017-01-10 Martin Liska <mliska@suse.cz>
25591
25592 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
25593 usage of m_classes_vec.
25594 (sem_item_optimizer::~sem_item_optimizer): Likewise.
25595 (sem_item_optimizer::get_group_by_hash): Likewise.
25596 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
25597 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
25598 (sem_item_optimizer::verify_classes): Likewise.
25599 (sem_item_optimizer::process_cong_reduction): Likewise.
25600 (sem_item_optimizer::dump_cong_classes): Likewise.
25601 (sem_item_optimizer::merge_classes): Likewise.
25602 * ipa-icf.h (congruence_class_hash): Rename from
25603 congruence_class_group_hash. Remove declaration of m_classes_vec.
25604
25605 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
25606
25607 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
25608 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
25609 * config.gcc: Add avx512vpopcntdqintrin.h.
25610 * config/i386/avx512vpopcntdqintrin.h: New.
25611 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
25612 * config/i386/i386-builtin-types.def: Add new types.
25613 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
25614 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
25615 __builtin_ia32_vpopcountq_v8di_mask): New.
25616 * config/i386/i386-c.c (ix86_target_macros_internal): Define
25617 __AVX512VPOPCNTDQ__.
25618 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
25619 (PTA_AVX512VPOPCNTDQ): Define.
25620 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
25621 TARGET_AVX512VPOPCNTDQ_P): Define.
25622 * config/i386/i386.opt: Add mavx512vpopcntdq.
25623 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
25624 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
25625
25626 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
25627
25628 PR middle-end/77484
25629 * predict.def (PRED_CALL): Set to 67.
25630
25631 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
25632
25633 * expr.c (store_field): In the bitfield case, if the value comes from
25634 a function call and is of an aggregate type returned in registers, do
25635 not modify the field mode; extract the value in all cases if the mode
25636 is BLKmode and the size is not larger than a word.
25637
25638 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
25639
25640 PR target/71017
25641 * config/i386/cpuid.h: Fix undefined behavior.
25642
25643 2017-01-04 Jeff Law <law@redhat.com>
25644
25645 PR tree-optimization/79007
25646 PR tree-optimization/67955
25647 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
25648 conservative for pt.null when flag_non_call_exceptions is on.
25649
25650 2017-01-09 Jakub Jelinek <jakub@redhat.com>
25651
25652 PR translation/79019
25653 PR translation/79020
25654 * params.def (PARAM_INLINE_MIN_SPEEDUP,
25655 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
25656 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
25657 in descriptions.
25658 * config/avr/avr.opt (maccumulate-args): Likewise.
25659 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
25660 * common.opt (freport-bug): Likewise.
25661 * cif-code.def (CIF_FINAL_ERROR): Likewise.
25662 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
25663 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
25664 translatable string.
25665 * config/i386/i386.c (function_value_32): Likewise.
25666 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
25667 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
25668 Likewise.
25669 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
25670 * common/config/msp430/msp430-common.c (msp430_handle_option):
25671 Likewise.
25672 * symtab.c (symtab_node::verify_base): Likewise.
25673 * opts.c (set_debug_level): Likewise.
25674 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
25675 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
25676 missing whitespace to translatable strings.
25677 * config/avr/avr.md (bswapsi2): Fix typo in comment.
25678 * config/sh/superh.h: Likewise.
25679 * config/i386/xopintrin.h: Likewise.
25680 * config/i386/znver1.md: Likewise.
25681 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
25682 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
25683 * double-int.h (struct double_int): Likewise.
25684 * double-int.c (div_and_round_double): Likewise.
25685 * wide-int.cc: Likewise.
25686 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
25687 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
25688 * cfgcleanup.c (crossjumps_occured): Renamed to ...
25689 (crossjumps_occurred): ... this.
25690 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
25691 Adjust all uses.
25692
25693 PR tree-optimization/78899
25694 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
25695 returning bool return struct loop *, NULL for failure and the new
25696 loop on success.
25697 (versionable_outer_loop_p): Don't version outer loop if it has
25698 dont_vectorized bit set.
25699 (tree_if_conversion): When versioning outer loop, ensure
25700 tree_if_conversion is performed also on the inner loop of the
25701 non-vectorizable outer loop copy.
25702 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
25703 LOOP_VECTORIZED in inner loop of the scalar outer loop and
25704 prevent vectorization of it.
25705 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
25706 the outer loop vectorization of the non-scalar version is attempted
25707 before vectorization of the inner loop in scalar version. If
25708 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
25709 vectorization of its inner loop.
25710 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
25711 has 2 inner loops, rename also on edges from bb whose single pred
25712 is outer_loop->header. Fix typo in function comment.
25713
25714 2017-01-09 Martin Sebor <msebor@redhat.com>
25715
25716 PR bootstrap/79033
25717 * asan.c (asan_emit_stack_protection): Increase local buffer size
25718 to avoid snprintf truncation warning.
25719
25720 2017-01-09 Andrew Pinski <apinski@cavium.com>
25721
25722 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
25723 to reference thunderx2t99 for the tuning structure
25724 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
25725 Rename to ...
25726 (thunderx2t99_extra_costs): This.
25727 * config/aarch64/aarch64-tune.md: Regenerate.
25728 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
25729 (vulcan_addrcost_table): This.
25730 (vulcan_regmove_cost): Rename to ...
25731 (thunderx2t99_regmove_cost): This.
25732 (vulcan_vector_cost): Rename to ...
25733 (thunderx2t99_vector_cost): this.
25734 (vulcan_branch_cost): Rename to ...
25735 (thunderx2t99_branch_cost): This.
25736 (vulcan_tunings): Rename to ...
25737 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
25738 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
25739
25740 2017-01-09 Martin Jambor <mjambor@suse.cz>
25741
25742 PR ipa/78365
25743 PR ipa/78599
25744 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
25745 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
25746 (propagate_vr_accross_jump_function): Use the above function for all
25747 value range computations for pass-through jump functions and type
25748 converasion from explicit value range values.
25749 (ipcp_propagate_stage): Do not attempt to deduce types of formal
25750 parameters from TYPE_ARG_TYPES.
25751 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
25752 (ipa_write_node_info): Stream type of the actual argument.
25753 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
25754
25755 2017-01-09 Martin Liska <mliska@suse.cz>
25756
25757 PR pch/78970
25758 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
25759 (lookup_compiler): Do not show error message with have_E.
25760
25761 2017-01-09 Jakub Jelinek <jakub@redhat.com>
25762
25763 PR tree-optimization/78938
25764 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
25765 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
25766 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
25767 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
25768 fixes.
25769
25770 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25771
25772 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
25773 is const0_rtx.
25774
25775 2017-01-09 Richard Biener <rguenther@suse.de>
25776
25777 PR tree-optimization/78997
25778 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
25779 name condition properly.
25780
25781 2017-01-09 Richard Biener <rguenther@suse.de>
25782
25783 PR debug/79000
25784 * dwarf2out.c (is_cxx): New overload with context.
25785 (is_naming_typedef_decl): Use it.
25786
25787 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
25788
25789 * invoke.texi (Option Summary): Correct spacing in option lists
25790 and add line breaks to fix over-long lines.
25791
25792 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
25793
25794 PR middle-end/17660
25795
25796 * extend.texi (Common Variable Attributes): Add xref to GCC
25797 Internals manual to explain mode attribute keywords.
25798
25799 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
25800
25801 PR other/16519
25802 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
25803 and Preprocessor Options.
25804 (Options for Linking): Document -pthread here....
25805 (RS/6000 and PowerPC Options): ...not here.
25806 (Solaris 2 Options): ...or here.
25807 * doc/cppopts.texi: Document -pthread.
25808
25809 2017-01-08 Martin Sebor <msebor@redhat.com>
25810
25811 PR middle-end/77708
25812 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
25813 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
25814 New member functions.
25815 (format_directive): Used them.
25816 (add_bytes): Same.
25817 (pass_sprintf_length::handle_gimple_call): Same.
25818 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
25819 to avoid truncation for any argument.
25820 (extract_affine_mul): Same.
25821 * tree.c (get_file_function_name): Same.
25822
25823 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
25824
25825 PR middle-end/77484
25826 * predict.def (PRED_INDIR_CALL): Set to 86.
25827
25828 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
25829
25830 PR preprocessor/54124
25831 * doc/cppopts.texi: Reformat -d subtable to list the full name
25832 of the options. Add cross-reference to the docs for the general
25833 compiler -d options.
25834 * doc/invoke.texi (Developer Options): Add cross-reference to the
25835 preprocessor-specific -d option documentation.
25836
25837 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
25838
25839 PR preprocessor/13498
25840 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
25841 redudant material, and reflect new command-line options.
25842 (System Headers): Likewise.
25843
25844 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
25845
25846 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
25847 -isystem, and -idirafter. Copy-edit.
25848 * doc/cppopts.texi: Copy-edit. Remove contradiction about
25849 default for -ftrack-macro-expansion. Delete obsolete and
25850 badly-formatted implementation details about -fdebug-cpp output.
25851 * doc/cppwarnopts.texi: Copy-edit.
25852
25853 2017-01-07 David Malcolm <dmalcolm@redhat.com>
25854
25855 PR c++/72803
25856 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
25857 that the transition from a max line width >= 1<<10 to narrower
25858 lines works correctly.
25859
25860 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
25861
25862 * doc/options.texi (PerFunction): New.
25863 * opt-functions.awk (switch_flags): Map both Optimization and
25864 PerFunction to CL_OPTIMIZATION.
25865 * opth-gen.awk: Test for PerFunction flag along with
25866 Optimization.
25867 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
25868 it only when the latter is present. Skip those that don't in
25869 the hash function generator.
25870 * common.opt (fvar-tracking): Mark as PerFunction instead of
25871 Optimization.
25872 (fvar-tracking-assignments): Likewise.
25873 (fvar-tracking-assignments-toggle): Likewise.
25874 (fvar-tracking-uninit): Likewise.
25875
25876 2017-01-07 Jakub Jelinek <jakub@redhat.com>
25877
25878 PR translation/79018
25879 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
25880 the and store.
25881
25882 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
25883
25884 PR target/57583
25885 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
25886 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
25887 TARGET_LONG_JUMP_TABLE_OFFSETS.
25888 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
25889 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
25890 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
25891 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
25892 * config/m68k/m68k.md (tablejump expander): Likewise.
25893 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
25894 TARGET_LONG_JUMP_TABLE_OFFSETS.
25895 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
25896 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
25897
25898 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
25899 David Holsgrove <david.holsgrove@xilinx.com>
25900
25901 * common/config/microblaze/microblaze-common.c
25902 (TARGET_EXCEPT_UNWIND_INFO): Remove.
25903 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
25904 New prototype.
25905 * config/microblaze/microblaze.c (microblaze_must_save_register)
25906 (microblaze_expand_epilogue, microblaze_return_addr): Handle
25907 calls_eh_return.
25908 (microblaze_eh_return): New function.
25909 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
25910 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
25911 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
25912 * config/microblaze/microblaze.md (eh_return): New pattern.
25913
25914 2017-01-06 Jakub Jelinek <jakub@redhat.com>
25915
25916 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
25917 GCC_DIAGNOSTIC_STRINGIFY): Define.
25918
25919 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
25920
25921 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
25922
25923 * config/arm/arm.md (<mcrr>): New.
25924 (<mrrc>): New.
25925 * config/arm/arm.c (arm_arch5te): New.
25926 (arm_option_override): Set arm_arch5te.
25927 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
25928 and mrrc2.
25929 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
25930 (arm_mcrr_qualifiers): ... this. New.
25931 (MRRC_QUALIFIERS): Define to...
25932 (arm_mrrc_qualifiers): ... this. New.
25933 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
25934 __arm_mrrc2): New.
25935 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
25936 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
25937 (MRRCI, mrrc, MRRC): New.
25938 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
25939 VUNSPEC_MRRC2): New.
25940
25941 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
25942
25943 * config/arm/arm.md (<mcr>): New.
25944 (<mrc>): New.
25945 * config/arm/arm.c (arm_coproc_builtin_available): Add
25946 support for mcr, mrc, mcr2 and mrc2.
25947 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
25948 (arm_mcr_qualifiers): ... this. New.
25949 (MRC_QUALIFIERS): Define to ...
25950 (arm_mrc_qualifiers): ... this. New.
25951 (MCR_QUALIFIERS): Define to ...
25952 (arm_mcr_qualifiers): ... this. New.
25953 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
25954 __arm_mrc2): New.
25955 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
25956 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
25957 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
25958 VUNSPEC_MRC2): New.
25959
25960 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
25961
25962 * config/arm/arm.md (*ldc): New.
25963 (*stc): New.
25964 (<ldc>): New.
25965 (<stc>): New.
25966 * config/arm/arm.c (arm_coproc_builtin_available): Add
25967 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
25968 (arm_coproc_ldc_stc_legitimate_address): New.
25969 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
25970 'qualifier_const_pointer'.
25971 (LDC_QUALIFIERS): Define to...
25972 (arm_ldc_qualifiers): ... this. New.
25973 (STC_QUALIFIERS): Define to...
25974 (arm_stc_qualifiers): ... this. New.
25975 * config/arm/arm-protos.h
25976 (arm_coproc_ldc_stc_legitimate_address): New.
25977 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
25978 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
25979 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
25980 stc2, stcl, stc2l): New.
25981 * config/arm/constraints.md (Uz): New.
25982 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
25983 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
25984 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
25985 VUNSPEC_STC2L): New.
25986
25987 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
25988
25989 * config/arm/arm.md (<cdp>): New.
25990 * config/arm/arm.c (neon_const_bounds): Rename this ...
25991 (arm_const_bounds): ... this.
25992 (arm_coproc_builtin_available): New.
25993 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
25994 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
25995 (CDP_QUALIFIERS): Define to...
25996 (arm_cdp_qualifiers): ... this. New.
25997 (void_UP): Define.
25998 (arm_expand_builtin_args): Add case for 6 arguments.
25999 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
26000 (arm_const_bounds): ... this.
26001 (arm_coproc_builtin_available): New.
26002 * config/arm/arm_acle.h (__arm_cdp): New.
26003 (__arm_cdp2): New.
26004 * config/arm/arm_acle_builtins.def (cdp): New.
26005 (cdp2): New.
26006 * config/arm/iterators.md (CDPI,CDP,cdp): New.
26007 * config/arm/neon.md: Rename all 'neon_const_bounds' to
26008 'arm_const_bounds'.
26009 * config/arm/types.md (coproc): New.
26010 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
26011 * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
26012 * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
26013 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
26014
26015 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
26016
26017 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
26018 (UBINOP_QUALIFIERS): New.
26019 (si_UP): Define.
26020 (acle_builtin_data): New. Change comment.
26021 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
26022 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
26023 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
26024 arm_acle_builtins.def.
26025 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
26026 (arm_init_acle_builtins): New.
26027 (CRC32_BUILTIN): Remove.
26028 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
26029 crc32cb, crc32ch and crc32cw.
26030 (arm_init_crc32_builtins): Remove.
26031 (arm_init_builtins): Use arm_init_acle_builtins rather
26032 than arm_init_crc32_builtins.
26033 (arm_expand_acle_builtin): New.
26034 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
26035 * config/arm/arm_acle_builtins.def: New.
26036
26037 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
26038
26039 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
26040 (arm_builtin_datum): ... this.
26041 (arm_init_neon_builtin): Rename to ...
26042 (arm_init_builtin): ... this. Add a new parameters PREFIX
26043 and USE_SIG_IN_NAME.
26044 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
26045 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
26046 'arm_builtin_datum'.
26047 (arm_init_vfp_builtins): Likewise.
26048 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
26049 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
26050 (arm_expand_neon_args): Rename to ...
26051 (arm_expand_builtin_args): ... this. Rename builtin_arg
26052 enum values and differentiate between ARG_BUILTIN_MEMORY
26053 and ARG_BUILTIN_NEON_MEMORY.
26054 (arm_expand_neon_builtin_1): Rename to ...
26055 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
26056 values, arm_expand_builtin_args and add bool parameter NEON.
26057 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
26058 (arm_expand_vfp_builtin): Likewise.
26059 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
26060
26061 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
26062
26063 PR middle-end/77484
26064 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
26065 * predict.c (tree_estimate_probability_bb): Reverse direction of
26066 polymorphic call predictor.
26067
26068 2017-01-06 David Malcolm <dmalcolm@redhat.com>
26069
26070 * passes.c (execute_one_pass): Split out pass-skipping logic into...
26071 (determine_pass_name_match): ...this new function and...
26072 (should_skip_pass_p): ...this new function.
26073
26074 2017-01-06 Nathan Sidwell <nathan@acm.org>
26075
26076 * ipa-visibility.c (function_and_variable_visibility): Reformat
26077 comments and long lines. Remove extrneous if.
26078 * symtab.c (symtab_node::make_decl_local): Fix code format.
26079 (symtab_node::set_section_for_node): Fix comment typo.
26080
26081 2017-01-06 Martin Liska <mliska@suse.cz>
26082
26083 PR bootstrap/79003
26084 * lra-constraints.c: Rename invariant to lra_invariant.
26085 * predict.c (set_even_probabilities): Initialize e to NULL.
26086
26087 2017-01-05 Martin Sebor <msebor@redhat.com>
26088
26089 PR tree-optimization/78910
26090 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
26091 (format_integer): Correct off-by-one error in the handling
26092 of precision with negative numbers in signed conversions..
26093
26094 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
26095
26096 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
26097
26098 2017-01-05 Jakub Jelinek <jakub@redhat.com>
26099
26100 PR tree-optimization/71016
26101 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
26102 factor_out_conditional_conversion. Formatting fix.
26103 (factor_out_conditional_conversion): Add cond_stmt argument.
26104 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
26105 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
26106 Formatting fix.
26107
26108 2017-01-05 David Malcolm <dmalcolm@redhat.com>
26109
26110 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
26111 read-rtl-function.o, and selftest-rtl.o.
26112 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
26113 (selftest::aarch64_test_loading_full_dump): New function.
26114 (selftest::aarch64_run_selftests): New function.
26115 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
26116 selftest::aarch64_run_selftests.
26117 * config/i386/i386.c
26118 (selftest::ix86_test_loading_dump_fragment_1): New function.
26119 (selftest::ix86_test_loading_call_insn): New function.
26120 (selftest::ix86_test_loading_full_dump): New function.
26121 (selftest::ix86_test_loading_unspec): New function.
26122 (selftest::ix86_run_selftests): Call the new functions.
26123 * emit-rtl.c (maybe_set_max_label_num): New function.
26124 * emit-rtl.h (maybe_set_max_label_num): New decl.
26125 * function.c (instantiate_decls): Guard call to
26126 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
26127 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
26128 "static".
26129 * gensupport.c (gen_reader::gen_reader): Pass "false"
26130 for new "compact" param of rtx_reader.
26131 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
26132 rather than an empty string for NULL strings.
26133 * read-md.c: Potentially include config.h rather than bconfig.h.
26134 Wrap include of errors.h with #ifdef GENERATOR_FILE.
26135 (have_error): New global, copied from errors.c.
26136 (md_reader::read_name): Rename to...
26137 (md_reader::read_name_1): ...this, adding "out_loc" param,
26138 and converting "missing name or number" to returning false, rather
26139 than failing.
26140 (md_reader::read_name): Reimplement in terms of read_name_1.
26141 (md_reader::read_name_or_nil): New function.
26142 (md_reader::read_string): Handle "(nil)" by returning NULL.
26143 (md_reader::md_reader): Add new param "compact".
26144 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
26145 (md_reader::read_file): New method.
26146 * read-md.h (md_reader::md_reader): Add new param "compact".
26147 (md_reader::read_file): New method.
26148 (md_reader::is_compact): New accessor.
26149 (md_reader::read_name): Convert return type from void to file_location.
26150 (md_reader::read_name_or_nil): New decl.
26151 (md_reader::read_name_1): New decl.
26152 (md_reader::m_compact): New field.
26153 (noop_reader::noop_reader): Pass "false" for new "compact" param
26154 of rtx_reader.
26155 (rtx_reader::rtx_reader): Add new "compact" param.
26156 (rtx_reader::read_rtx_operand): Make virtual and convert return
26157 type from void to rtx.
26158 (rtx_reader::read_until): New decl.
26159 (rtx_reader::handle_any_trailing_information): New virtual function.
26160 (rtx_reader::postprocess): New virtual function.
26161 (rtx_reader::finalize_string): New virtual function.
26162 (rtx_reader::m_in_call_function_usage): New field.
26163 (rtx_reader::m_reuse_rtx_by_id): New field.
26164 * read-rtl-function.c: New file.
26165 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
26166 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
26167 (selftest::verify_three_block_rtl_cfg): New decl.
26168 * read-rtl-function.h: New file.
26169 * read-rtl.c: Potentially include config.h rather than bconfig.h.
26170 For host, include function.h, memmodel.h, and emit-rtl.h.
26171 (one_time_initialization): New function.
26172 (struct compact_insn_name): New struct.
26173 (compact_insn_names): New array.
26174 (find_code): Handle insn codes in compact dumps.
26175 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
26176 (bind_subst_iter_and_attr): Likewise.
26177 (add_condition_to_string): Likewise.
26178 (add_condition_to_rtx): Likewise.
26179 (apply_attribute_uses): Likewise.
26180 (add_current_iterators): Likewise.
26181 (apply_iterators): Likewise.
26182 (initialize_iterators): Guard usage of apply_subst_iterator with
26183 #ifdef GENERATOR_FILE.
26184 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
26185 (md_reader::read_mapping): Likewise.
26186 (add_define_attr_for_define_subst): Likewise.
26187 (add_define_subst_attr): Likewise.
26188 (read_subst_mapping): Likewise.
26189 (check_code_iterator): Likewise.
26190 (rtx_reader::read_rtx): Likewise. Move one-time initialization
26191 logic to...
26192 (one_time_initialization): New function.
26193 (rtx_reader::read_until): New method.
26194 (read_flags): New function.
26195 (parse_reg_note_name): New function.
26196 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
26197 Handle reuse_rtx ids.
26198 Wrap iterator lookup within #ifdef GENERATOR_FILE.
26199 Add parsing support for RTL dumps, mirroring the special-cases in
26200 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
26201 values, and calling handle_any_trailing_information.
26202 (rtx_reader::read_rtx_operand): Convert return type from void
26203 to rtx, returning return_rtx. Handle case 'e'. Call
26204 finalize_string on XSTR and XTMPL fields.
26205 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
26206 "(nil)" values were omitted. Call the postprocess vfunc on the
26207 return_rtx.
26208 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
26209 class ctor. Initialize m_in_call_function_usage. Call
26210 one_time_initialization.
26211 * rtl-tests.c (selftest::test_uncond_jump): Call
26212 set_new_first_and_last_insn.
26213 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
26214 * selftest-rtl.c: New file.
26215 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
26216 (selftest::get_insn_by_uid): New decl.
26217 * selftest-run-tests.c (selftest::run_tests): Call
26218 read_rtl_function_c_tests.
26219 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
26220 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
26221 dumps.
26222
26223 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
26224
26225 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
26226 operands in a special way. Assert that pos+len <= mode precision.
26227
26228 2017-01-05 Jakub Jelinek <jakub@redhat.com>
26229
26230 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
26231 3 argument Alias with unlimited for the negative form.
26232 (fno-vect-cost-model): Removed.
26233
26234 2017-01-05 Martin Liska <mliska@suse.cz>
26235
26236 * hsa-gen.c (gen_hsa_divmod): New function.
26237 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
26238
26239 2017-01-05 Martin Liska <mliska@suse.cz>
26240
26241 PR pch/78970
26242 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
26243 header.
26244
26245 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26246
26247 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
26248 small constant length operands.
26249
26250 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26251
26252 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
26253 between loop iterations.
26254
26255 2017-01-05 Martin Liska <mliska@suse.cz>
26256
26257 PR sanitizer/78815
26258 * gimplify.c (gimplify_decl_expr): Compare to
26259 asan_poisoned_variables instread of checking flags.
26260 (gimplify_target_expr): Likewise.
26261 (gimplify_expr): Likewise.
26262 (gimplify_function_tree): Conditionally initialize
26263 asan_poisoned_variables.
26264
26265 2017-01-04 Jeff Law <law@redhat.com>
26266
26267 PR tree-optimizatin/78812
26268 * rtl.h (contains_mem_rtx_p): Prototype.
26269 * ifcvt.c (containts_mem_rtx_p): Move from here to...
26270 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
26271 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
26272 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
26273 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
26274
26275 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
26276
26277 * input.c (assert_char_at_range): Default-initialize actual_range.
26278
26279 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
26280
26281 * df-scan.c (df_ref_create_structure): Make regno unsigned,
26282 to match the caller.
26283
26284 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
26285
26286 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
26287 insns after final jump in test to emit dummy move.
26288
26289 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
26290
26291 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
26292 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
26293
26294 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
26295
26296 * multiple_target.c (create_dispatcher_calls): Init e_next.
26297 * tree-ssa-loop-split.c (split_loop): Init border.
26298 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
26299 scalar_type.
26300
26301 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
26302
26303 PR target/71977
26304 PR target/70568
26305 PR target/78823
26306 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
26307 (altivec_register_operand): Do not return true if the operand
26308 contains a SUBREG mixing SImode and SFmode.
26309 (vsx_register_operand): Likewise.
26310 (vsx_reg_sfsubreg_ok): New predicate.
26311 (vfloat_operand): Do not return true if the operand contains a
26312 SUBREG mixing SImode and SFmode.
26313 (vint_operand): Likewise.
26314 (vlogical_operand): Likewise.
26315 (gpc_reg_operand): Likewise.
26316 (int_reg_operand): Likewise.
26317 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
26318 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
26319 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
26320 SImode and SFmode.
26321 (rs6000_emit_move_si_sf_subreg): New helper function.
26322 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
26323 fixup SUBREGs involving SImode and SFmode.
26324 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
26325 numbers for the new peephole2 optimization.
26326 (peephole2 for SFmode unions): New peephole2 to optimize cases in
26327 the GLIBC math library that do AND/IOR/XOR operations on single
26328 precision floating point.
26329 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
26330 target macros to say whether we need to avoid SUBREGs mixing
26331 SImode and SFmode.
26332 (TARGET_ALLOW_SF_SUBREG): Likewise.
26333 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
26334 (UNSPEC_SI_FROM_SF): Likewise.
26335 (iorxor): Change spacing.
26336 (and_ior_xor): New iterator for AND, IOR, and XOR.
26337 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
26338 (movdi_from_sf_zero_ext): Likewise.
26339 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
26340 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
26341 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
26342 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
26343 (fms<mode>4): Likewise.
26344 (fnma<mode>4): Likewise.
26345 (fnms<mode>4): Likewise.
26346 (nfma<mode>4): Likewise.
26347 (nfms<mode>4): Likewise.
26348
26349 2017-01-04 Marek Polacek <polacek@redhat.com>
26350
26351 PR c++/64767
26352 * doc/invoke.texi: Document -Wpointer-compare.
26353
26354 2017-01-04 Jakub Jelinek <jakub@redhat.com>
26355
26356 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
26357 RejectNegative.
26358
26359 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
26360 descriptions for -gdwarf-5 and emit them as uleb128 instead of
26361 2-byte data.
26362
26363 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
26364
26365 PR target/78056
26366 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
26367 documentation of the powerpc_popcntb_ok attribute.
26368 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
26369 code to issue warning messages if a requested CPU configuration is
26370 not supported by the binary (assembler and loader) toolchain.
26371 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
26372 made to define a built-in function that has been disabled.
26373 (paired_init_builtins): Add assertion to prevent ICE if attempt is
26374 made to define a built-in function that has been disabled.
26375 (altivec_init_builtins): Add comment explaining why definition
26376 of the DST built-in functions is not preceded by an assertion
26377 check. Add assertions to prevent ICE if attempts are made to
26378 define an altivec predicate or an abs* built-in function that has
26379 been disabled.
26380 (htm_init_builtins): Add comment explaining why definition of the
26381 htm built-in functions is not preceded by an assertion check.
26382
26383 2017-01-04 Jeff Law <law@redhat.com>
26384
26385 PR tree-optimizatin/67955
26386 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
26387 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
26388 the points-to solution does not include pt_null. Use DECL_PT_UID
26389 unconditionally.
26390
26391 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
26392
26393 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
26394 Use gen_int_mode instead of gen_lopwart for const_int operands.
26395
26396 2017-01-04 Jakub Jelinek <jakub@redhat.com>
26397
26398 PR tree-optimization/71563
26399 * match.pd: Simplify X << Y into X if Y is known to be 0 or
26400 out of range value - has low bits known to be zero.
26401
26402 2017-01-04 Alan Modra <amodra@gmail.com>
26403
26404 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
26405 * configure: Regenerate.
26406 * config.in: Regenerate.
26407
26408 2017-01-04 Jakub Jelinek <jakub@redhat.com>
26409
26410 PR bootstrap/77569
26411 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
26412 a substring of the message, but strcmp with the whole message. Ifdef
26413 ENABLE_NLS, translate the message first using dgettext.
26414
26415 2017-01-03 Jeff Law <law@redhat.com>
26416
26417 PR tree-optimizatin/78856
26418 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
26419 (mark_threaded_blocks): Remove code to truncate thread paths that
26420 cross multiple loop headers. Instead invalidate the cached loop
26421 iteration information and handle case of a thread path walking
26422 into an irreducible region.
26423
26424 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
26425
26426 PR target/78900
26427 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
26428 assertions. Add support for doing the signbit if the IEEE 128-bit
26429 floating point value is in a GPR.
26430 * config/rs6000/rs6000.md (Fsignbit): Delete.
26431 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
26432 Update the length attribute if the value is in a GPR.
26433 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
26434 the sign or zero extension instruction, since the value is always 0/1.
26435 (signbit<mode>2_dm2): Delete using <Fsignbit>.
26436
26437 PR target/78953
26438 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
26439 extracting SImode to a GPR register so that we can generate a
26440 store, limit the vector to be in a traditional Altivec register
26441 for the vextuwrx instruction.
26442
26443 2017-01-03 Ian Lance Taylor <iant@google.com>
26444
26445 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
26446
26447 2017-01-03 Martin Sebor <msebor@redhat.com>
26448
26449 PR tree-optimization/78696
26450 * gimple-ssa-sprintf.c (format_floating): Correct handling of
26451 precision. Use MPFR for %f for greater fidelity. Correct handling
26452 of %g.
26453 (pass_sprintf_length::compute_format_length): Set width and precision
26454 specified by asrerisk to void_node for vararg functions.
26455 (try_substitute_return_value): Adjust dump output.
26456
26457 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
26458
26459 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
26460
26461 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
26462
26463 * doc/invoke.texi (SPARC options): Document -mlra as the default.
26464 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
26465 -mlra/-mno-lra was passed to the compiler.
26466
26467 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
26468
26469 PR rtl-optimization/65618
26470 * emit-rtl.c (try_split): Move initialization of "before" and
26471 "after" to just before the call to emit_insn_after_setloc.
26472
26473 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
26474
26475 * doc/md.texi (Standard Names): Remove reference to Java frontend.
26476
26477 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
26478
26479 * dwarf2out.c (gen_enumeration_type_die): When
26480 -gno-strict-dwarf, add a DW_AT_encoding attribute.
26481
26482 2017-01-03 Jakub Jelinek <jakub@redhat.com>
26483
26484 PR tree-optimization/78965
26485 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
26486 Change first argument from const call_info & to call_info &. For %n
26487 set info.nowrite to false.
26488
26489 PR middle-end/78901
26490 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
26491 possibly throwing calls.
26492
26493 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
26494 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
26495 and fns handling, rather than in a separate case SSA_NAME.
26496
26497 2017-01-02 Jeff Law <law@redhat.com>
26498
26499 * config/darwin-driver.c (darwin_driver_init): Const-correctness
26500 fixes for first_period and second_period variables.
26501
26502 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
26503
26504 PR target/78967
26505 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
26506 (*insvqi_1): New insn pattern.
26507 (*insvqi_1_mem_rex64): Ditto.
26508 (*insvqi_2): Ditto.
26509 (*insvqi_3): Rename from *insvqi.
26510
26511 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
26512
26513 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
26514
26515 * doc/cfg.texi (Edges): Remove reference to Java.
26516 (Maintaining the CFG): Ditto.
26517
26518 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
26519
26520 PR middle-end/77674
26521 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
26522 transparent aliases.
26523
26524 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
26525
26526 PR middle-end/77484
26527 * predict.def (PRED_CALL): Update hitrate.
26528 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
26529 * predict.c (tree_estimate_probability_bb): Split CALL predictor
26530 into direct/indirect/polymorphic variants.
26531
26532 2017-01-01 Jakub Jelinek <jakub@redhat.com>
26533
26534 Update copyright years.
26535
26536 * gcc.c (process_command): Update copyright notice dates.
26537 * gcov-dump.c (print_version): Ditto.
26538 * gcov.c (print_version): Ditto.
26539 * gcov-tool.c (print_version): Ditto.
26540 * gengtype.c (create_file): Ditto.
26541 * doc/cpp.texi: Bump @copying's copyright year.
26542 * doc/cppinternals.texi: Ditto.
26543 * doc/gcc.texi: Ditto.
26544 * doc/gccint.texi: Ditto.
26545 * doc/gcov.texi: Ditto.
26546 * doc/install.texi: Ditto.
26547 * doc/invoke.texi: Ditto.
26548 \f
26549 Copyright (C) 2017 Free Software Foundation, Inc.
26550
26551 Copying and distribution of this file, with or without modification,
26552 are permitted in any medium without royalty provided the copyright
26553 notice and this notice are preserved.