i386.c (find_constant_1): Delete.
[gcc.git] / gcc / ChangeLog
1 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
2
3 * config/i386/i386.c (find_constant_1): Delete.
4 (find_constant): Use FOR_EACH_SUBRTX.
5
6 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
7
8 * config/i386/i386.c (extended_reg_mentioned_1): Delete.
9 (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
10
11 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
12
13 * config/i386/i386.c: Include rtl-iter.h
14 (ix86_check_avx256_register): Take a const_rtx and return a bool.
15 (ix86_check_avx256_stores): Update call accordingly.
16 (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
17 (ix86_avx_u128_mode_needed): Likewise. Use FOR_EACH_SUBRTX.
18
19 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
20
21 * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
22 Take an rtx and return a bool.
23 * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
24 Use FOR_EACH_SUBRTX_VAR.
25 * config/alpha/predicates.md (some_small_symbolic_operand): Update
26 accordingly.
27
28 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
29
30 * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
31 a bool.
32 * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
33 (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX. Return a bool.
34
35 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
36
37 * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
38 (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
39
40 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
41
42 * config/alpha/alpha.c: Include rtl-iter.h.
43 (split_small_symbolic_operand_1): Delete.
44 (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
45
46 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
47
48 * config/s390/s390.c: Include rtl-iter.h.
49 (check_dpu): Delete.
50 (s390_loop_unroll_adjust): Only iterate over patterns.
51 Use FOR_EACH_SUBRTX.
52
53 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
54
55 * config/spu/spu.c: Include rtl-iter.h
56 (ea_symbol_ref): Replace with...
57 (ea_symbol_ref_p): ...this new function.
58 (spu_legitimate_address_p): Update call accordingly.
59 (spu_legitimate_constant_p): Likewise. Use FOR_EACH_SUBRTX.
60
61 2014-10-27 Phil Muldoon <pmuldoon@redhat.com>
62 Tom Tromey <tromey@redhat.com>
63
64 * aclocal.m4, configure: Rebuild.
65 * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
66 * configure.ac: Use GCC_ENABLE_PLUGINS.
67 * stor-layout.c (finish_bitfield_layout): Now public. Change
68 argument type to 'tree'.
69 (finish_record_layout): Update.
70 * stor-layout.h (finish_bitfield_layout): Declare.
71
72 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
73
74 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
75 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
76 Restore, enable for bigendian, update to use __builtin..._scal...
77
78 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
79
80 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
81 reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
82 (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
83 reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
84
85 * config/aarch64/aarch64-simd.md
86 (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
87 (reduc_<maxmin_uns>_internal<mode>): ...this.
88 (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
89 (reduc_<maxmin_uns>_scal_<mode>): New (*2).
90
91 (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
92 (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
93 (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
94
95 * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
96 vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
97 vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
98 vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
99 vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
100 vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
101 vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
102 __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
103
104 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
105
106 * config/aarch64/aarch64-simd-builtins.def
107 (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
108 Remove.
109 (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
110
111 * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
112 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
113
114 (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
115 (aarch64_reduc_plus_internal<mode>): ...this.
116
117 (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
118 (aarch64_reduc_plus_internalv2si): ...this.
119
120 (reduc_splus_<mode>/V2F): Rename to...
121 (aarch64_reduc_plus_internal<mode>): ...this.
122
123 * config/aarch64/iterators.md
124 (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
125 (UNSPEC_ADDV): New.
126 (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
127
128 * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
129 vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
130 vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
131 vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
132 __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
133
134 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
135
136 PR tree-optimization/61114
137 * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
138 optabs, and note in reduc_[us](plus|min|max) to prefer the former.
139
140 * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
141 back to old reduc_... + BIT_FIELD_REF only if not.
142
143 * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
144 return the reduce-to-scalar (reduc_..._scal) optab.
145 (scalar_reduc_to_vector): New.
146
147 * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
148 reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
149 New.
150
151 * optabs.h (scalar_reduc_to_vector): Declare.
152
153 * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
154 to either scalar or vector.
155
156 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
157
158 PR tree-optimization/61114
159 * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
160 extract_bit_field around optab result.
161
162 * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
163 scalar not vector.
164
165 * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
166 for REDUC_{MIN,MAX,PLUS}_EXPR.
167
168 * tree-vect-loop.c (vect_analyze_loop): Update comment.
169 (vect_create_epilog_for_reduction): For direct vector reduction, use
170 result of tree code directly without extract_bit_field.
171
172 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
173 comment.
174
175 2014-10-27 Andrew MacLeod <amacleod@redhat.com>
176
177 * basic-block.h: Remove all includes.
178 (enum profile_status_d, struct control_flow_graph): Move to cfg.h
179 * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
180 * Makefile.in (GTFILES): Add cfg.h to list.
181 * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
182 * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
183 * genconditions.c (write_header): Add predict.h and basic-block.h to
184 lits of includes.
185 * genemit.c (main): Ditto.
186 * genpreds.c (write_insn_preds_c): Ditto.
187 * genrecog.c (write_header): Ditto.
188 * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
189 to list of includes.
190 * alias.c: Adjust include files.
191 * asan.c: Ditto.
192 * auto-inc-dec.c: Ditto.
193 * auto-profile.c: Ditto.
194 * bb-reorder.c: Ditto.
195 * bt-load.c: Ditto.
196 * builtins.c: Ditto.
197 * caller-save.c: Ditto.
198 * calls.c: Ditto.
199 * cfg.c: Ditto.
200 * cfganal.c: Ditto.
201 * cfgbuild.c: Ditto.
202 * cfgcleanup.c: Ditto.
203 * cfgexpand.c: Ditto.
204 * cfghooks.c: Ditto.
205 * cfgloop.c: Ditto.
206 * cfgloopanal.c: Ditto.
207 * cfgloopmanip.c: Ditto.
208 * cfgrtl.c: Ditto.
209 * cgraphbuild.c: Ditto.
210 * cgraphclones.c: Ditto.
211 * cgraphunit.c: Ditto.
212 * combine-stack-adj.c: Ditto.
213 * combine.c: Ditto.
214 * compare-elim.c: Ditto.
215 * coverage.c: Ditto.
216 * cprop.c: Ditto.
217 * cse.c: Ditto.
218 * cselib.c: Ditto.
219 * data-streamer-in.c: Ditto.
220 * data-streamer-out.c: Ditto.
221 * data-streamer.c: Ditto.
222 * dce.c: Ditto.
223 * ddg.c: Ditto.
224 * ddg.h: Ditto.
225 * df-core.c: Ditto.
226 * df-problems.c: Ditto.
227 * df-scan.c: Ditto.
228 * df.h: Ditto.
229 * dojump.c: Ditto.
230 * dominance.c: Ditto.
231 * domwalk.c: Ditto.
232 * dse.c: Ditto.
233 * dwarf2cfi.c: Ditto.
234 * emit-rtl.c: Ditto.
235 * et-forest.c: Ditto.
236 * except.c: Ditto.
237 * expmed.c: Ditto.
238 * expr.c: Ditto.
239 * final.c: Ditto.
240 * fold-const.c: Ditto.
241 * function.c: Ditto.
242 * fwprop.c: Ditto.
243 * gcc-plugin.h: Ditto.
244 * gcse.c: Ditto.
245 * generic-match-head.c: Ditto.
246 * ggc-page.c: Ditto.
247 * gimple-builder.c: Ditto.
248 * gimple-expr.c: Ditto.
249 * gimple-fold.c: Ditto.
250 * gimple-iterator.c: Ditto.
251 * gimple-low.c: Ditto.
252 * gimple-match-head.c: Ditto.
253 * gimple-pretty-print.c: Ditto.
254 * gimple-ssa-isolate-paths.c: Ditto.
255 * gimple-ssa-strength-reduction.c: Ditto.
256 * gimple-streamer-in.c: Ditto.
257 * gimple-streamer-out.c: Ditto.
258 * gimple-streamer.h: Ditto.
259 * gimple-walk.c: Ditto.
260 * gimple.c: Ditto.
261 * gimplify-me.c: Ditto.
262 * gimplify.c: Ditto.
263 * graph.c: Ditto.
264 * graphite-blocking.c: Ditto.
265 * graphite-clast-to-gimple.c: Ditto.
266 * graphite-dependences.c: Ditto.
267 * graphite-interchange.c: Ditto.
268 * graphite-isl-ast-to-gimple.c: Ditto.
269 * graphite-optimize-isl.c: Ditto.
270 * graphite-poly.c: Ditto.
271 * graphite-scop-detection.c: Ditto.
272 * graphite-sese-to-poly.c: Ditto.
273 * graphite.c: Ditto.
274 * haifa-sched.c: Ditto.
275 * hw-doloop.c: Ditto.
276 * ifcvt.c: Ditto.
277 * init-regs.c: Ditto.
278 * internal-fn.c: Ditto.
279 * ipa-cp.c: Ditto.
280 * ipa-devirt.c: Ditto.
281 * ipa-icf-gimple.c: Ditto.
282 * ipa-icf.c: Ditto.
283 * ipa-inline-analysis.c: Ditto.
284 * ipa-inline.c: Ditto.
285 * ipa-polymorphic-call.c: Ditto.
286 * ipa-profile.c: Ditto.
287 * ipa-prop.c: Ditto.
288 * ipa-pure-const.c: Ditto.
289 * ipa-reference.c: Ditto.
290 * ipa-split.c: Ditto.
291 * ipa-utils.c: Ditto.
292 * ipa.c: Ditto.
293 * ira-build.c: Ditto.
294 * ira-color.c: Ditto.
295 * ira-conflicts.c: Ditto.
296 * ira-costs.c: Ditto.
297 * ira-emit.c: Ditto.
298 * ira-lives.c: Ditto.
299 * ira.c: Ditto.
300 * jump.c: Ditto.
301 * lcm.c: Ditto.
302 * loop-doloop.c: Ditto.
303 * loop-init.c: Ditto.
304 * loop-invariant.c: Ditto.
305 * loop-iv.c: Ditto.
306 * loop-unroll.c: Ditto.
307 * lower-subreg.c: Ditto.
308 * lra-assigns.c: Ditto.
309 * lra-coalesce.c: Ditto.
310 * lra-constraints.c: Ditto.
311 * lra-eliminations.c: Ditto.
312 * lra-lives.c: Ditto.
313 * lra-spills.c: Ditto.
314 * lra.c: Ditto.
315 * lto-cgraph.c: Ditto.
316 * lto-compress.c: Ditto.
317 * lto-opts.c: Ditto.
318 * lto-section-in.c: Ditto.
319 * lto-section-out.c: Ditto.
320 * lto-streamer-in.c: Ditto.
321 * lto-streamer-out.c: Ditto.
322 * lto-streamer.c: Ditto.
323 * mcf.c: Ditto.
324 * mode-switching.c: Ditto.
325 * modulo-sched.c: Ditto.
326 * omp-low.c: Ditto.
327 * optabs.c: Ditto.
328 * opts-global.c: Ditto.
329 * passes.c: Ditto.
330 * postreload-gcse.c: Ditto.
331 * postreload.c: Ditto.
332 * predict.c: Ditto.
333 * print-rtl.c: Ditto.
334 * profile.c: Ditto.
335 * recog.c: Ditto.
336 * ree.c: Ditto.
337 * reg-stack.c: Ditto.
338 * regcprop.c: Ditto.
339 * regcprop.h: Ditto.
340 * reginfo.c: Ditto.
341 * regrename.c: Ditto.
342 * regstat.c: Ditto.
343 * reload.c: Ditto.
344 * reload1.c: Ditto.
345 * reorg.c: Ditto.
346 * resource.c: Ditto.
347 * rtlanal.c: Ditto.
348 * sched-deps.c: Ditto.
349 * sched-ebb.c: Ditto.
350 * sched-int.h: Ditto.
351 * sched-rgn.c: Ditto.
352 * sched-vis.c: Ditto.
353 * sel-sched-dump.c: Ditto.
354 * sel-sched-ir.c: Ditto.
355 * sel-sched-ir.h: Ditto.
356 * sel-sched.c: Ditto.
357 * sese.c: Ditto.
358 * shrink-wrap.c: Ditto.
359 * stack-ptr-mod.c: Ditto.
360 * stmt.c: Ditto.
361 * store-motion.c: Ditto.
362 * symtab.c: Ditto.
363 * toplev.c: Ditto.
364 * tracer.c: Ditto.
365 * trans-mem.c: Ditto.
366 * tree-affine.c: Ditto.
367 * tree-call-cdce.c: Ditto.
368 * tree-cfg.c: Ditto.
369 * tree-cfgcleanup.c: Ditto.
370 * tree-chrec.c: Ditto.
371 * tree-complex.c: Ditto.
372 * tree-data-ref.c: Ditto.
373 * tree-dfa.c: Ditto.
374 * tree-eh.c: Ditto.
375 * tree-emutls.c: Ditto.
376 * tree-if-conv.c: Ditto.
377 * tree-inline.c: Ditto.
378 * tree-into-ssa.c: Ditto.
379 * tree-loop-distribution.c: Ditto.
380 * tree-nested.c: Ditto.
381 * tree-nrv.c: Ditto.
382 * tree-object-size.c: Ditto.
383 * tree-outof-ssa.c: Ditto.
384 * tree-parloops.c: Ditto.
385 * tree-phinodes.c: Ditto.
386 * tree-predcom.c: Ditto.
387 * tree-pretty-print.c: Ditto.
388 * tree-profile.c: Ditto.
389 * tree-scalar-evolution.c: Ditto.
390 * tree-sra.c: Ditto.
391 * tree-ssa-address.c: Ditto.
392 * tree-ssa-alias.c: Ditto.
393 * tree-ssa-ccp.c: Ditto.
394 * tree-ssa-coalesce.c: Ditto.
395 * tree-ssa-copy.c: Ditto.
396 * tree-ssa-copyrename.c: Ditto.
397 * tree-ssa-dce.c: Ditto.
398 * tree-ssa-dom.c: Ditto.
399 * tree-ssa-dse.c: Ditto.
400 * tree-ssa-forwprop.c: Ditto.
401 * tree-ssa-ifcombine.c: Ditto.
402 * tree-ssa-live.c: Ditto.
403 * tree-ssa-loop-ch.c: Ditto.
404 * tree-ssa-loop-im.c: Ditto.
405 * tree-ssa-loop-ivcanon.c: Ditto.
406 * tree-ssa-loop-ivopts.c: Ditto.
407 * tree-ssa-loop-manip.c: Ditto.
408 * tree-ssa-loop-niter.c: Ditto.
409 * tree-ssa-loop-prefetch.c: Ditto.
410 * tree-ssa-loop-unswitch.c: Ditto.
411 * tree-ssa-loop.c: Ditto.
412 * tree-ssa-math-opts.c: Ditto.
413 * tree-ssa-operands.c: Ditto.
414 * tree-ssa-phiopt.c: Ditto.
415 * tree-ssa-phiprop.c: Ditto.
416 * tree-ssa-pre.c: Ditto.
417 * tree-ssa-propagate.c: Ditto.
418 * tree-ssa-reassoc.c: Ditto.
419 * tree-ssa-sccvn.c: Ditto.
420 * tree-ssa-sink.c: Ditto.
421 * tree-ssa-strlen.c: Ditto.
422 * tree-ssa-structalias.c: Ditto.
423 * tree-ssa-tail-merge.c: Ditto.
424 * tree-ssa-ter.c: Ditto.
425 * tree-ssa-threadedge.c: Ditto.
426 * tree-ssa-threadupdate.c: Ditto.
427 * tree-ssa-uncprop.c: Ditto.
428 * tree-ssa-uninit.c: Ditto.
429 * tree-ssa.c: Ditto.
430 * tree-ssanames.c: Ditto.
431 * tree-stdarg.c: Ditto.
432 * tree-streamer-in.c: Ditto.
433 * tree-streamer-out.c: Ditto.
434 * tree-streamer.c: Ditto.
435 * tree-switch-conversion.c: Ditto.
436 * tree-tailcall.c: Ditto.
437 * tree-vect-data-refs.c: Ditto.
438 * tree-vect-generic.c: Ditto.
439 * tree-vect-loop-manip.c: Ditto.
440 * tree-vect-loop.c: Ditto.
441 * tree-vect-patterns.c: Ditto.
442 * tree-vect-slp.c: Ditto.
443 * tree-vect-stmts.c: Ditto.
444 * tree-vectorizer.c: Ditto.
445 * tree-vrp.c: Ditto.
446 * tree.c: Ditto.
447 * tsan.c: Ditto.
448 * ubsan.c: Ditto.
449 * valtrack.c: Ditto.
450 * valtrack.h: Ditto.
451 * value-prof.c: Ditto.
452 * var-tracking.c: Ditto.
453 * varasm.c: Ditto.
454 * varpool.c: Ditto.
455 * vtable-verify.c: Ditto.
456 * web.c: Ditto.
457 * config/aarch64/aarch64-builtins.c: Ditto.
458 * config/aarch64/aarch64.c: Ditto.
459 * config/alpha/alpha.c: Ditto.
460 * config/arc/arc.c: Ditto.
461 * config/arm/arm.c: Ditto.
462 * config/avr/avr.c: Ditto.
463 * config/bfin/bfin.c: Ditto.
464 * config/c6x/c6x.c: Ditto.
465 * config/cr16/cr16.c: Ditto.
466 * config/cris/cris.c: Ditto.
467 * config/darwin-c.c: Ditto.
468 * config/darwin.c: Ditto.
469 * config/epiphany/epiphany.c: Ditto.
470 * config/epiphany/mode-switch-use.c: Ditto.
471 * config/epiphany/resolve-sw-modes.c: Ditto.
472 * config/fr30/fr30.c: Ditto.
473 * config/frv/frv.c: Ditto.
474 * config/h8300/h8300.c: Ditto.
475 * config/i386/i386.c: Ditto.
476 * config/i386/winnt.c: Ditto.
477 * config/ia64/ia64.c: Ditto.
478 * config/iq2000/iq2000.c: Ditto.
479 * config/lm32/lm32.c: Ditto.
480 * config/m32c/m32c.c: Ditto.
481 * config/m32r/m32r.c: Ditto.
482 * config/m68k/m68k.c: Ditto.
483 * config/mcore/mcore.c: Ditto.
484 * config/mep/mep.c: Ditto.
485 * config/microblaze/microblaze.c: Ditto.
486 * config/mips/mips.c: Ditto.
487 * config/mmix/mmix.c: Ditto.
488 * config/mn10300/mn10300.c: Ditto.
489 * config/moxie/moxie.c: Ditto.
490 * config/msp430/msp430.c: Ditto.
491 * config/nds32/nds32-cost.c: Ditto.
492 * config/nds32/nds32-fp-as-gp.c: Ditto.
493 * config/nds32/nds32-intrinsic.c: Ditto.
494 * config/nds32/nds32-isr.c: Ditto.
495 * config/nds32/nds32-md-auxiliary.c: Ditto.
496 * config/nds32/nds32-memory-manipulation.c: Ditto.
497 * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
498 * config/nds32/nds32-predicates.c: Ditto.
499 * config/nds32/nds32.c: Ditto.
500 * config/nios2/nios2.c: Ditto.
501 * config/pa/pa.c: Ditto.
502 * config/pdp11/pdp11.c: Ditto.
503 * config/rl78/rl78.c: Ditto.
504 * config/rs6000/rs6000.c: Ditto.
505 * config/rx/rx.c: Ditto.
506 * config/s390/s390.c: Ditto.
507 * config/sh/sh-mem.cc: Ditto.
508 * config/sh/sh.c: Ditto.
509 * config/sh/sh_optimize_sett_clrt.cc: Ditto.
510 * config/sh/sh_treg_combine.cc: Ditto.
511 * config/sparc/sparc.c: Ditto.
512 * config/spu/spu.c: Ditto.
513 * config/stormy16/stormy16.c: Ditto.
514 * config/tilegx/tilegx.c: Ditto.
515 * config/tilepro/tilepro.c: Ditto.
516 * config/v850/v850.c: Ditto.
517 * config/vax/vax.c: Ditto.
518 * config/xtensa/xtensa.c: Ditto.
519
520 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
521
522 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
523 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
524 Remove using preprocessor directives.
525
526 2014-10-27 Richard Biener <rguenther@suse.de>
527
528 * match.pd (0 % X): Properly use the iterator iterating over
529 all modulo operators.
530 (X % 1): Likewise.
531
532 2014-10-27 Richard Biener <rguenther@suse.de>
533
534 * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
535 (lattice): New global.
536 (fwprop_ssa_val): New function.
537 (fold_all_stmts): Likewise.
538 (pass_forwprop::execute): Finally fold all stmts.
539
540 2014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
541
542 PR c++/53061
543 * doc/invoke.texi (fmessage-length): Update text to match reality.
544
545 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
546
547 * config/microblaze/microblaze.c: Include rtl-iter.h.
548 (microblaze_tls_referenced_p_1): Delete.
549 (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
550
551 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
552
553 * config/mips/mips.c (mips_at_reg_p): Delete.
554 (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
555
556 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
557
558 * config/mips/mips.c (mips_record_lo_sum): Replace with...
559 (mips_record_lo_sums): ...this new function.
560 (mips_reorg_process_insns): Update accordingly.
561
562 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
563
564 * config/mips/mips.c (mips_sim_insn): Update comment.
565 (mips_sim_wait_regs_2): Delete.
566 (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
567
568 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
569
570 * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
571 and return a bool. Iterate over all subrtxes here.
572 (r10k_needs_protection_p): Update accordingly.
573
574 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
575
576 * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
577 rather than an rtx pointer. Change type of insn from "void *"
578 to its real type. Return bool rather than int. Iterate over
579 all subrtxes here.
580 (r10k_needs_protection_p_store): Update accordingly.
581 (r10k_needs_protection_p): Likewise.
582
583 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
584
585 * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
586 (mips16_rewrite_pool_refs): Take the insn and constant pool as
587 parameters. Iterate over the instruction's pattern and return void.
588 (mips16_lay_out_constants): Update accordingly.
589
590 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
591
592 * config/mips/mips.c (mips_kernel_reg_p): Replace with...
593 (mips_refers_to_kernel_reg_p): ...this new function.
594 (mips_expand_prologue): Update accordingly.
595
596 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
597
598 * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
599 as a parameter instead of the containing MEM. Iterate over all
600 subrtxes. Don't return a value.
601 (mips_rewrite_small_data): Update call accordingly.
602
603 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
604
605 * config/mips/mips.c: Include rtl-iter.h.
606 (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
607 Take the context as a parameter instead of the containing MEM.
608 Iterate over all subrtxes.
609 (mips_small_data_pattern_p): Update call accordingly.
610
611 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
612
613 * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
614 (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
615
616 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
617
618 * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
619 return a bool. Replace "void *" with specific type. Iterate
620 over all subrtxes.
621 (mep_store_data_bypass_1): Update calls accordingly.
622
623 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
624
625 * config/mep/mep.c: Include rtl-iter.h.
626 (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
627 (xtensa_tls_referenced_p): Return a bool. Use FOR_EACH_SUBRTX.
628
629 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
630
631 * config/xtensa/xtensa.c: Include rtl-iter.h.
632 (xtensa_tls_referenced_p_1): Delete.
633 (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
634
635 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
636
637 * config/sh/sh.c (sh_contains_memref_p_1): Delete.
638 (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
639
640 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
641
642 * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
643 rtx as argument and return the number of changes.
644 * config/sh/sh.c: Include rtl-iter.h.
645 (shmedia_cleanup_truncate): Take an rtx as argument and iterate
646 over all subrtxes. Return the number of changes made.
647 * config/sh/sh.md: Update caller accordingly.
648
649 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
650
651 * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
652 (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
653
654 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
655
656 * config/m68k/m68k.c: Include rtl-iter.h.
657 (m68k_final_prescan_insn_1): Delete.
658 (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
659
660 2014-10-25 Jakub Jelinek <jakub@redhat.com>
661
662 PR tree-optimization/63641
663 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
664 to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
665
666 2014-10-25 Alan Modra <amodra@gmail.com>
667
668 PR rtl-optimization/63615
669 * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
670 decomposing PLUS or MINUS if operands are not placed adjacent
671 in the "ops" array.
672
673 2014-10-25 Joseph Myers <joseph@codesourcery.com>
674
675 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
676 not allow e500 double in registers not satisyfing
677 SPE_SIMD_REGNO_P.
678
679 2014-10-24 Aldy Hernandez <aldyh@redhat.com>
680
681 * dwarf2out.c (declare_in_namespace): Only emit external
682 declarations in the local scope once.
683
684 2014-10-24 Jonathan Wakely <jwakely@redhat.com>
685
686 * ginclude/stdbool.h: Do not define bool, true or false in C++11.
687
688 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
689
690 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
691 update uses to use new macro arguments.
692 (__LD3_LANE_FUNC): Likewise.
693 (__LD4_LANE_FUNC): Likewise.
694
695 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
696
697 * config/aarch64/aarch64-builtins.c
698 (aarch64_types_loadstruct_lane_qualifiers): Define.
699 * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
700 ld4_lane): New builtins.
701 * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
702 New pattern.
703 (aarch64_vec_load_lanesci_lane<mode>): Likewise.
704 (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
705 (aarch64_ld2_lane<mode>): New expand.
706 (aarch64_ld3_lane<mode>): Likewise.
707 (aarch64_ld4_lane<mode>): Likewise.
708 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
709 UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
710
711 2014-10-24 Georg-Johann Lay <avr@gjlay.de>
712
713 * avr-protos.h (avr_out_sign_extend): New.
714 * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
715 (avr_out_sign_extend): New function.
716 * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
717 (extendhisi2, extendpsisi2): Use it.
718 (adjust_len) [sext]: New.
719
720 2014-10-24 Martin Liska <mliska@suse.cz>
721
722 * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
723 added.
724
725 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
726
727 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
728 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
729 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
730 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
731
732 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
733
734 * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
735 do while (0).
736 * config/aarch64/aarch64.c (is_mem_p): Delete.
737 (is_memory_op): Rename to...
738 (has_memory_op): ... This. Use FOR_EACH_SUBRTX.
739 (dep_between_memop_and_curr): Assert that the input is a SET.
740 (aarch64_madd_needs_nop): Add comment. Do not call
741 dep_between_memop_and_curr on NULL body.
742 (aarch64_final_prescan_insn): Add comment.
743 Include rtl-iter.h.
744
745 2014-10-24 Richard Biener <rguenther@suse.de>
746
747 * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
748 to genmatch BUILD_LIBS instead.
749
750 2014-10-24 Richard Biener <rguenther@suse.de>
751
752 * genmatch.c (expr::gen_transform): Use fold_buildN_loc
753 and build_call_expr_loc.
754 (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
755 non_lvalue_loc to build it for GENERIC.
756 (decision_tree::gen_generic): Add location argument to
757 generic_simplify prototype.
758 (capture_info): New class.
759 (capture_info::capture_info): New constructor.
760 (capture_info::walk_match): New method.
761 (capture_info::walk_result): New method.
762 (capture_info::walk_c_expr): New method.
763 (dt_simplify::gen): Handle preserving side-effects for
764 GENERIC code generation.
765 (decision_tree::gen_generic): Do not reject operands
766 with TREE_SIDE_EFFECTS.
767 * generic-match.h: New file.
768 * generic-match-head.c: Include generic-match.h, not gimple-match.h.
769 * match.pd: Add some constant folding patterns from fold-const.c.
770 * fold-const.c: Include generic-match.h.
771 (fold_unary_loc): Dispatch to generic_simplify.
772 (fold_ternary_loc): Likewise.
773 (fold_binary_loc): Likewise. Remove patterns now implemented
774 by generic_simplify.
775 * gimple-fold.c (replace_stmt_with_simplification): New function.
776 (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
777 (no_follow_ssa_edges): New function.
778 (fold_stmt): New overload with valueization hook. Use
779 no_follow_ssa_edges for the overload without hook.
780 (fold_stmt_inplace): Likewise.
781 * gimple-fold.h (no_follow_ssa_edges): Declare.
782
783 2014-10-24 Felix Yang <felix.yang@huawei.com>
784 Jiji Jiang <jiangjiji@huawei.com>
785
786 PR target/63173
787 * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
788 (__LD3R_FUNC): Ditto.
789 (__LD4R_FUNC): Ditto.
790 (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
791 vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
792 vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
793 vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
794 vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
795 vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
796 (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
797 vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
798 vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
799 vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
800 vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
801 vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
802 (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
803 vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
804 vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
805 vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
806 vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
807 vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
808 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
809 UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
810 * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
811 builtins.
812 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
813 (aarch64_simd_ld3r<mode>): Likewise.
814 (aarch64_simd_ld4r<mode>): Likewise.
815 (aarch64_ld2r<mode>): New expand.
816 (aarch64_ld3r<mode>): Likewise.
817 (aarch64_ld4r<mode>): Likewise.
818
819 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
820
821 * rtlanal.c (get_base_term): Handle SCRATCH.
822
823 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
824
825 * haifa-sched.c (sched_init): Disable max_issue when scheduling for
826 register pressure.
827
828 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
829
830 * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
831 (cached_issue_rate): Remove. Use dfa_lookahead and issue_rate instead.
832 (max_issue, choose_ready, sched_init): Update.
833
834 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
835
836 * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
837 * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
838 (rfs_result): Set INSN_LAST_RFS_WIN. Update signature.
839 (rank_for_schedule): Update calls to rfs_result to pass new parameters.
840 (print_rank_for_schedule_stats): Print out elements of ready list that
841 ended up on their respective places due to each of the sorting
842 heuristics.
843 (ready_sort): Update.
844 (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
845 (schedule_block): Update.
846
847 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
848
849 * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
850 arrays. Use sched_class_regs_num instead of ira_class_hard_regs_num.
851 (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
852 (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
853 (model_start_schedule): Update.
854 (sched_pressure_start_bb): New static function. Calculate
855 sched_class_regs_num.
856 (schedule_block): Use it.
857 (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
858
859 2014-10-24 Richard Biener <rguenther@suse.de>
860
861 * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
862 host library and make sure to pull in the required libintl
863 and libiconv dependencies.
864
865 2014-10-24 Richard Biener <rguenther@suse.de>
866
867 * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
868
869 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
870
871 PR bootstrap/63632
872 * collect2.c (main): Filter out -fno-lto.
873
874 2014-10-24 Martin Liska <mliska@suse.cz>
875
876 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
877 division by zero in dumps.
878 (sem_item_optimizer::merge_classes): Ditto.
879
880 2014-10-23 John David Anglin <danglin@gcc.gnu.org>
881
882 * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
883
884 2014-10-23 Ian Lance Taylor <iant@google.com>
885
886 * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
887
888 2014-10-23 Ian Lance Taylor <iant@google.com>
889
890 * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
891
892 2014-10-23 Jakub Jelinek <jakub@redhat.com>
893
894 PR debug/63623
895 * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
896 (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
897 instead of only handling autoinc in dest if it is a MEM.
898 (vt_stack_adjustments): Fix up formatting.
899
900 2014-10-23 DJ Delorie <dj@redhat.com>
901
902 * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
903 independend of -mlarge.
904 * config/msp430/constraints.md (Ys): Update comment.
905
906 2014-10-23 Evgeny Stupachenko <evstupac@gmail.com>
907
908 PR target/63534
909 PR target/63618
910 * cse.c (delete_trivially_dead_insns): Consider PIC register is used
911 while it is pseudo.
912 * dse.c (deletable_insn_p): Likewise.
913
914 2014-10-23 Georg-Johann Lay <avr@gjlay.de>
915
916 * config/avr/avr.c: Fix GNU coding rules and typos.
917 * config/avr/avr.h: Dito.
918 * config/avr/avr-c.c: Dito.
919 * config/avr/avr.md: Dito.
920
921 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
922
923 * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
924 New.
925 (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
926 iterator.
927 (define_expand "abs<mode>2"): Ditto.
928
929 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
930
931 * tree-core.h (tree_var_decl): Extend `function_code' field
932 by one bit, move `regdecl_flag' field to ...
933 (tree_decl_with_vis): Here.
934 * tree.h (DECL_STATIC_CHAIN): Update struct name.
935
936 2014-10-23 Richard Biener <rguenther@suse.de>
937
938 * Makefile.in (BUILD_CPPLIB): Add.
939 (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
940 Drop LIBIBERTY.
941
942 2014-10-23 Richard Biener <rguenther@suse.de>
943
944 * fold-const.c (fold_binary_loc): Preserve side-effects of
945 X - X when simplifying to 0.
946 * stor-layout.c (finish_bitfield_representative): Strip
947 side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
948
949 2014-10-22 Richard Biener <rguenther@suse.de>
950 Tobias Burnus <burnus@net-b.de>
951
952 PR lto/63603
953 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
954
955 2014-10-22 Dehao Chen <dehao@google.com>
956
957 * auto-profile.c: Change order of header files.
958
959 2014-10-22 Guozhi Wei <carrot@google.com>
960
961 PR tree-optimization/63530
962 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
963 pointer alignment according to DR_MISALIGNMENT.
964
965 2014-10-22 David Malcolm <dmalcolm@redhat.com>
966
967 * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
968
969 2014-10-22 Andrew MacLeod <amacleod@redhat.com>
970
971 * cfgbuild.h: New. Add prototypes for cfgbuild.c.
972 * cfgcleanup.h: New. Add prototypes for cfgcleanup.c.
973 * cfgloopmanip.h: New. Add prototypes for cfgloopmanip.c.
974 * dominance.h: New. Add prototypes for dominance.c.
975 * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
976 * cfghooks.h: (struct profile_record) Relocate here.
977 Relocate 2 prototypes from basic-block.h.
978 * basic-block.h: Move prototypes and struct to new header files.
979 Include cfgbuild.h, cfgcleanup.h, and dominance.h.
980 * rtl.h: Move a few prototypes to new header files.
981 * cfgcleanup.c (merge_memattrs): Make static.
982 * genopinit.c (main): Add predict.h to list of includes.
983 * predict.h: Update prototype list to match predict.c.
984 * predict.c (maybe_hot_count_p): Export.
985 (cgraph_edge::maybe_hot_p): Move to cgraph.c.
986 (cgraph_node::optimize_for_size_p): Move to cgraph.h.
987 * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
988 * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
989 * profile.h: Adjust prototypes.
990 * ifcvt.h: New. Relocate struct ce_if_block here.
991 * ifcvt.c: Include ifcvt.h.
992 * config/frv/frv.c: Include ifcvt.h.
993 * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
994
995 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
996
997 * lra.c (lra): Remove call to recog_init.
998 * config/i386/i386.md (preferred_for_speed): New attribute
999 (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
1000 "enabled". Remove check for sched1.
1001
1002 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
1003
1004 * recog.h (recog_data_d): Remove enabled_alternatives.
1005 * recog.c (extract_insn): Don't set it.
1006 * reload.c (find_reloads): Call get_enabled_alternatives.
1007
1008 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
1009
1010 * recog.h (constrain_operands): Add an alternative_mask parameter.
1011 (constrain_operands_cached): Likewise.
1012 (get_preferred_alternatives): Declare new form.
1013 * recog.c (get_preferred_alternatives): New bb-taking instance.
1014 (constrain_operands): Take the set of available alternatives as
1015 a parameter.
1016 (check_asm_operands, insn_invalid_p, extract_constrain_insn)
1017 (extract_constrain_insn_cached): Update calls to constrain_operands.
1018 * caller-save.c (reg_save_code): Likewise.
1019 * ira.c (setup_prohibited_mode_move_regs): Likewise.
1020 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
1021 * ree.c (combine_reaching_defs): Likewise.
1022 * reload.c (can_reload_into): Likewise.
1023 * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
1024 (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
1025 (emit_insn_if_valid_for_reload): Likewise.
1026 * reorg.c (fill_slots_from_thread): Likewise.
1027 * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
1028 * config/pa/pa.c (pa_can_combine_p): Likewise.
1029 * config/rl78/rl78.c (insn_ok_now): Likewise.
1030 * config/sh/sh.md (define_peephole2): Likewise.
1031 * final.c (final_scan_insn): Update call to constrain_operands_cached.
1032
1033 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
1034
1035 * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
1036 attributes.
1037 * genattr.c (main): Handle "preferred_for_size" and
1038 "preferred_for_speed" in the same way as "enabled".
1039 * recog.h (bool_attr): New enum.
1040 (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
1041 (get_preferred_alternatives, check_bool_attrs): Declare.
1042 * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
1043 (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
1044 New functions.
1045 (get_enabled_alternatives): Use get_bool_attr_mask.
1046 * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
1047 instead of recog_data.enabled_alternatives.
1048 * ira.c (ira_setup_alts): Likewise.
1049 * postreload.c (reload_cse_simplify_operands): Likewise.
1050 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
1051 * ira-lives.c (preferred_alternatives): New variable.
1052 (process_bb_node_lives): Set it.
1053 (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
1054 (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
1055 of recog_data.enabled_alternatives.
1056 * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
1057 to preferred_alternatives.
1058 * lra-constraints.c (process_alt_operands): Update accordingly.
1059 * lra.c (lra_set_insn_recog_data): Likewise.
1060 (lra_update_insn_recog_data): Assert check_bool_attrs.
1061
1062 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
1063
1064 * recog.h (extract_constrain_insn): Declare.
1065 * recog.c (extract_constrain_insn): New function.
1066 * lra.c (check_rtl): Use it.
1067 * postreload.c (reload_cse_simplify_operands): Likewise.
1068 * reg-stack.c (check_asm_stack_operands): Likewise.
1069 (subst_asm_stack_regs): Likewise.
1070 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
1071 * regrename.c (build_def_use): Likewise.
1072 * sel-sched.c (get_reg_class): Likewise.
1073 * config/arm/arm.c (note_invalid_constants): Likewise.
1074 * config/s390/predicates.md (execute_operation): Likewise.
1075
1076 2014-10-22 Jakub Jelinek <jakub@redhat.com>
1077 Yury Gribov <y.gribov@samsung.com>
1078
1079 * common.opt (flag_sanitize_recover): New variable.
1080 (fsanitize-recover): Remove Var/Init, deprecate.
1081 (fsanitize-recover=): New option.
1082 * doc/invoke.texi (fsanitize-recover): Update docs.
1083 * opts.c (finish_options): Use opts->x_flag_sanitize
1084 instead of flag_sanitize. Prohibit -fsanitize-recover
1085 for anything besides UBSan. Formatting.
1086 (common_handle_option): Handle OPT_fsanitize_recover_
1087 and OPT_fsanitize_recover. Use opts->x_flag_sanitize
1088 instead of flag_sanitize.
1089 * asan.c (pass_sanopt::execute): Fix up formatting.
1090 * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
1091 ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
1092 instrument_bool_enum_load, ubsan_instrument_float_cast,
1093 instrument_nonnull_arg, instrument_nonnull_return): Check
1094 bits in flag_sanitize_recover bitmask instead of
1095 flag_sanitize_recover as bool flag.
1096
1097 2014-10-22 Jiong Wang <jiong.wang@arm.com>
1098
1099 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
1100
1101 2014-10-22 Renlin Li <renlin.li@arm.com>
1102
1103 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
1104 __ARM_FEATURE_IDIV__.
1105
1106 2014-10-22 Richard Biener <rguenther@suse.de>
1107
1108 * Makefile.in (s-match): Adjust dependencies to only catch
1109 match.pd.
1110
1111 2014-10-22 Richard Biener <rguenther@suse.de>
1112 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
1113
1114 * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
1115 (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
1116 (gimple-match.c): Generate by triggering s-match.
1117 (generic-match.c): Likewise.
1118 (s-match): Rule to build gimple-match.c and generic-match.c
1119 by running the genmatch generator program.
1120 (build/hash-table.o): Dependencies to build hash-table.c for the host.
1121 (build/genmatch.o): Dependencies to build genmatch.
1122 (genprog): Add match.
1123 (build/genmatch): Likewise.
1124 (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
1125 * generic-match-head.c: New file.
1126 * gimple-match-head.c: Likewise.
1127 * gimple-match.h: Likewise.
1128 * genmatch.c: Likewise.
1129 * match.pd: Likewise.
1130 * builtins.h (fold_builtin_n): Export.
1131 * builtins.c (fold_builtin_n): Likewise.
1132 * gimple-fold.h (gimple_build): Declare various overloads.
1133 (gimple_simplify): Likewise.
1134 (gimple_convert): Re-implement in terms of gimple_build.
1135 * gimple-fold.c (gimple_convert): Remove.
1136 (gimple_build): New functions.
1137 * doc/match-and-simplify.texi: New file.
1138 * doc/gccint.texi: Add menu item Match and Simplify and include
1139 match-and-simplify.texi.
1140
1141 2014-10-22 Jakub Jelinek <jakub@redhat.com>
1142
1143 PR target/63594
1144 * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
1145 V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
1146 even for just TARGET_AVX2, not only for
1147 TARGET_AVX512VL && TARGET_AVX512BW. For V{32HI,64QI}mode,
1148 call ix86_vector_duplicate_value only if TARGET_AVX512BW,
1149 otherwise build it using concatenation of 256-bit
1150 broadcast.
1151 * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
1152 avx512 broadcast patterns.
1153 (vec_dup<mode>): Likewise. For avx2 use
1154 v<sseintprefix>broadcast<bcstscalarsuff> instead of
1155 vbroadcast<ssescalarmodesuffix>.
1156 (AVX2_VEC_DUP_MODE): New mode iterator.
1157 (*vec_dup<mode>): New TARGET_AVX2 define_insn with
1158 AVX2_VEC_DUP_MODE iterator, add a splitter for that.
1159
1160 PR target/63542
1161 * config/i386/i386.c (ix86_pic_register_p): Also return
1162 true if x is a hard register with ORIGINAL_REGNO equal to
1163 pic_offset_table_rtx pseudo REGNO.
1164 (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
1165 after reload, subtract GOT_SYMBOL_NAME symbol if possible.
1166
1167 2014-10-22 Alan Modra <amodra@gmail.com>
1168
1169 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
1170 * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
1171 (gcc_obstack_init): Use obstack_specify_allocation in place of
1172 _obstack_begin.
1173 * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
1174 (regexp_representation): Likewise.
1175 * godump.c (go_output_type): Likewise.
1176
1177 2014-10-21 John David Anglin <danglin@gcc.gnu.org>
1178
1179 * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
1180 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
1181 * config/pa/pa.opt (mjump-in-delay): Ignore option. Update comment.
1182
1183 2014-10-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
1184
1185 * doc/invoke.texi (pedantic-errors): Explain better.
1186
1187 2014-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
1188 Vidya Praveen <vidya.praveen@atmel.com>
1189 Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
1190 Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
1191 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
1192
1193 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
1194 __MEMX for avrtiny.
1195 * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
1196 (avr_nonconst_pointer_addrspace): Likewise.
1197 * config/avr/avr.h (AVR_HAVE_LPM): Define.
1198
1199 Added AVRTINY architecture to avr target.
1200 * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
1201 (base_arch_s): member added for AVRTINY architecture.
1202 * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
1203 alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
1204 AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
1205 and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
1206 respectively. LAST_CALLEE_SAVED_REG macro added for the last register
1207 in callee saved register list.
1208 (avr_option_override): CCP address updated for AVRTINY.
1209 (avr_init_expanders): tmp and zero rtx initialized as per arch.
1210 Reset avr_have_dimode if AVRTINY.
1211 (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
1212 (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
1213 (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
1214 Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
1215 (expand_epilogue): Likewise.
1216 (avr_print_operand): Print CCP address in case of AVRTINY also.
1217 <TBD>bad address
1218 (function_arg_regno_p): Check different register list for arguments
1219 if AVRTINY.
1220 (init_cumulative_args): Check for AVRTINY to update number of argument
1221 registers.
1222 (tiny_valid_direct_memory_access_range): New function. Return false if
1223 direct memory access range is not in accepted range for AVRTINY.
1224 (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
1225 indirect load (with displacement) for AVRTINY.
1226 (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
1227 avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
1228 (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
1229 indirect load (no displacement) for AVRTINY.
1230 (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
1231 indirect load (with displacement) for AVRTINY.
1232 (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
1233 indirect load for pre-decrement address.
1234 (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
1235 functions. Update instruction length for AVRTINY.
1236 (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
1237 SImode.
1238 (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
1239 (out_movsi_r_mr): Likewise, for SImode.
1240 (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
1241 indirect store (no displacement) for AVRTINY.
1242 (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
1243 indirect store (with displacement) for AVRTINY.
1244 (out_movsi_mr_r): Emit out insn for IO address store. Update store
1245 instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
1246 store functions.
1247 (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
1248 indirect load (no displacement) for PSImode in AVRTINY.
1249 (avr_out_load_psi_reg_disp_tiny): New function to handle register
1250 indirect load (with displacement) for PSImode in AVRTINY.
1251 (avr_out_load_psi): Call PSImode register indirect load functions for
1252 AVRTINY. Update instruction length for AVRTINY.
1253 (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
1254 indirect store (no displacement) for PSImode in AVRTINY.
1255 (avr_out_store_psi_reg_disp_tiny): New function to handle register
1256 indirect store (with displacement) for PSImode in AVRTINY.
1257 (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
1258 register indirect store functions for AVRTINY.
1259 (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
1260 register indirect store (with displacement) for AVRTINY.
1261 (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
1262 register indirect store function for QImode in AVRTINY.
1263 (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
1264 (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
1265 indirect store (no displacement) for HImode in AVRTINY.
1266 (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
1267 indirect store (with displacement) for HImode in AVRTINY.
1268 (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
1269 indirect store for post-increment address in HImode.
1270 (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
1271 register indirect store function for HImode in AVRTINY.
1272 (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
1273 in case of AVRTINY.
1274 (order_regs_for_local_alloc): Updated register allocation order for
1275 AVRTINY.
1276 (avr_conditional_register_usage): New function. It is a target hook
1277 (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
1278 used registers list and register allocation order for AVRTINY.
1279 (avr_return_in_memory): Update return value size for AVRTINY.
1280 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
1281 for AVRTINY arch and tiny program memory base address.
1282 * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
1283 (avr_texinfo): Added description for AVRTINY arch.
1284 * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
1285 STATIC_CHAIN_REGNUM for AVRTINY.
1286 * config/avr/avr-mcus.def: Added AVRTINY arch devices.
1287 * config/avr/avr.md: Added constants for tmp/ zero registers in
1288 AVRTINY. Attributes for AVRTINY added.
1289 (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
1290 memory access range.
1291 (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
1292 in AVRTINY memory access range.
1293 (*mov<mode>): Likewise for HImode and SImode.
1294 (*movsf): Likewise for SFmode.
1295 (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
1296 not have sbiw.
1297 * config/avr/avr-protos.h: Added function prototype for
1298 tiny_valid_direct_memory_access_range.
1299 * config/avr/avr-tables.opt: Regenerate.
1300 * gcc/config/avr/t-multilib: Regenerate.
1301 * doc/avr-mmcu.texi: Regenerate.
1302
1303 2014-10-21 Andrew Pinski <apinski@cavium.com>
1304
1305 * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
1306 available option also.
1307 * config/aarch64/aarch64-cost-tables.h: New file.
1308 * config/aarch64/aarch64-cores.def (thunderx): New core.
1309 * config/aarch64/aarch64-tune.md: Regenerate.
1310 * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
1311 of config/arm/aarch-cost-tables.h.
1312 (thunderx_regmove_cost): New variable.
1313 (thunderx_tunings): New variable.
1314
1315 2014-10-21 Dehao Chen <dehao@google.com>
1316
1317 * auto-profile.c: New file.
1318 * auto-profile.h: New file.
1319 * basic-block.h (maybe_hot_count_p): New export func.
1320 (add_working_set): New export func.
1321 * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
1322 (GCOV_TAG_AFDO_FUNCTION): Likewise.
1323 (GCOV_TAG_AFDO_WORKING_SET): Likewise.
1324 * opts.c (enable_fdo_optimizations): New func.
1325 (common_handle_option): Handle -fauto-profile flag.
1326 * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
1327 (class pass_early_inline): Export early_inliner.
1328 (early_inliner): Likewise.
1329 (pass_early_inline::execute): Likewise.
1330 * ipa-inline.h (early_inliner): Likewise.
1331 * predict.c (maybe_hot_count_p): New export func.
1332 (counts_to_freqs): AutoFDO logic.
1333 (rebuild_frequencies): Likewise.
1334 * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
1335 * profile.c (add_working_set): New func.
1336 * Makefile.in (auto-profile.o): New object file.
1337 * passes.def (pass_ipa_auto_profile): New pass.
1338 * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
1339 * tree-pass.h (make_pass_ipa_auto_profile): New pass.
1340 * toplev.c (compile_file): AutoFDO logic.
1341 * doc/invoke.texi (-fauto-profile): New doc.
1342 * coverage.c (coverage_init): AutoFDO logic.
1343 * common.opt (-fauto-profile): New flag.
1344 * timevar.def (TV_IPA_AUTOFDO): New tag.
1345 * value-prof.c (gimple_alloc_histogram_value): New export func.
1346 (check_ic_target): Likewise.
1347 * value-prof.h (gimple_alloc_histogram_value): Likewise.
1348 (check_ic_target): Likewise.
1349
1350 2014-10-21 David Malcolm <dmalcolm@redhat.com>
1351
1352 * cgraph.c (cgraph_c_finalize): New function.
1353 * cgraph.h (cgraph_c_finalize): New prototype.
1354 (cgraphunit_c_finalize): New prototype.
1355 * cgraphunit.c (first_analyzed): Move from analyze_functions
1356 to file-scope.
1357 (first_analyzed_var): Likewise.
1358 (analyze_functions): Move static variables into file-scope.
1359 (cgraphunit_c_finalize): New function.
1360 * diagnostic.c (diagnostic_finish): Free the memory for
1361 context->classify_diagnostic and context->printer, running the
1362 destructor for the latter.
1363 (bt_stop): Use toplev::main.
1364 * dwarf2out.c (dwarf2out_finalize): New function.
1365 * dwarf2out.h (dwarf2out_c_finalize): New prototype.
1366 * gcse.c (gcse_c_finalize): New function.
1367 * gcse.h (gcse_c_finalize): New prototype.
1368 * ggc-page.c (init_ggc): Make idempotent.
1369 * input.c (input_location): Initialize to UNKNOWN_LOCATION.
1370 * ipa-cp.c (ipa_cp_c_finalize): New function.
1371 * ipa-prop.h (ipa_cp_c_finalize): New prototype.
1372 * ipa-pure-const.c (function_insertion_hook_holder): Move to be
1373 a field of class pass_ipa_pure_const.
1374 (node_duplication_hook_holder): Likewise.
1375 (node_removal_hook_holder): Likewise.
1376 (register_hooks): Convert to method...
1377 (pass_ipa_pure_const::register_hooks): ...here, converting
1378 static variable init_p into...
1379 (pass_ipa_pure_const::init_p): ...new field.
1380 (pure_const_generate_summary): Update invocation of
1381 register_hooks to invoke as a method of current_pass.
1382 (pure_const_read_summary): Likewise.
1383 (propagate): Convert to...
1384 (pass_ipa_pure_const::execute): ...method.
1385 * ipa-reference.c (ipa_init): Move static bool init_p from here
1386 to...
1387 (ipa_init_p): New file-scope variable, so that it can be reset
1388 when repeatedly invoking the compiler within one process by...
1389 (ipa_reference_c_finalize): New function.
1390 * ipa-reference.h (ipa_reference_c_finalize): New.
1391 * main.c (main): Replace invocation of toplev_main with
1392 construction of a toplev instance, and call its "main" method.
1393 * params.c (global_init_params): Add an assert that
1394 params_finished is false.
1395 (params_c_finalize): New.
1396 * params.h (params_c_finalize): New.
1397 * passes.c (execute_ipa_summary_passes): Set "current_pass" before
1398 invoking generate_summary, for the benefit of pass_ipa_pure_const.
1399 (ipa_write_summaries_2): Assign "pass" to "current_pass" global
1400 before calling write_summary hook.
1401 (ipa_write_optimization_summaries_1): Likewise when calling
1402 write_optimization_summary hook.
1403 (ipa_read_summaries_1): Likewise for read_summary hook.
1404 (ipa_read_optimization_summaries_1): Likewise for
1405 read_optimization_summary hook.
1406 (execute_ipa_stmt_fixups): Likewise.
1407 * stringpool.c (init_stringpool): Clean up if we're called more
1408 than once.
1409 * timevar.c (timevar_init): Ignore repeated calls.
1410 * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
1411 "ipa-prop.h".
1412 (general_init): Reset "input_location" to UNKNOWN_LOCATION.
1413 (initialize_rtl): Move static local "initialized_once"
1414 into file scope, and rename to...
1415 (rtl_initialized): New variable.
1416 (do_compile): Move timevar initialization from here to
1417 toplev::start_timevars.
1418 (toplev::toplev, toplev::~toplev, toplev::start_timevars,
1419 toplev::finalize): New functions.
1420 (toplev_main): Rename to...
1421 (toplev::main): ...this.
1422 * toplev.h (class toplev): New class.
1423
1424 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
1425
1426 * loop-doloop.c: Include loop-unroll.h.
1427
1428 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
1429
1430 * cfg.h: New. Header file for cfg.c.
1431 * cfganal.h: New. Header file for cfganal.c.
1432 * lcm.h: New. Header file for lcm.c.
1433 * loop-unroll.h: New. Header file for loop-unroll.h.
1434 * cfgloop.h: (unroll_loops): Remove prototype.
1435 * basic-block.h: Move prototypes and structs to new header files.
1436 Include cfg.h, cfganal.h, and lcm.h.
1437 * loop-init.c: Include loop-unroll.h.
1438 * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
1439 * modulo-sched.c: Include loop-unroll.h.
1440
1441 2014-10-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
1442
1443 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
1444 MARKER_BYTE_UNKNOWN markers when handling casts.
1445
1446 2014-10-21 Richard Biener <rguenther@suse.de>
1447
1448 * tree-ssa-phiopt.c (value_replacement): Properly verify we
1449 are the non-singleton PHI.
1450
1451 2014-10-21 Jakub Jelinek <jakub@redhat.com>
1452
1453 PR tree-optimization/63563
1454 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
1455 if either dra or drb stmts are not normal loads/stores.
1456
1457 2014-10-21 Ilya Tocar <ilya.tocar@intel.com>
1458
1459 * config/i386/i386.c (expand_vec_perm_1): Fix
1460 expand_vec_perm_palignr case.
1461 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
1462 VI1_AVX512.
1463
1464 2014-10-21 Zhenqiang Chen <zhenqiang.chen@arm.com>
1465
1466 * cfgloopanal.c (seq_cost): Delete.
1467 * rtl.h (seq_cost): New prototype.
1468 * rtlanal.c (seq_cost): New function.
1469 * tree-ssa-loop-ivopts.c (seq_cost): Delete.
1470
1471 2014-10-20 Andrew MacLeod <amacleod@redhat.com>
1472
1473 * cfgrtl.h: New. Add prototypes for cfgrtl.c.
1474 * basic-block.h: Remove prototypes for cfgrtl.c.
1475 * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
1476 prototypes to cfgrtl.h.
1477 * profile.h (profile_info): Add extern export declaration.
1478 * rtl.h: Remove prototypes for cfgrtl.h.
1479 * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
1480 * ipa-inline.c: Include profile.h.
1481 * loop-unroll.c: Ditto.
1482 * modulo-sched.c: Ditto.
1483 * postreload-gcse.c: Ditto.
1484 * predict.c: Ditto.
1485 * sched-ebb.c: Ditto.
1486 * sched-rgn.c: Ditto.
1487 * tracer.c: Ditto.
1488 * tree-ssa-loop-ivcanon.c: Ditto.
1489
1490 2014-10-20 Richard Biener <rguenther@suse.de>
1491
1492 * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
1493 operands to get a def operand kind match. Signal mismatches
1494 to the parent so we can try swapping its operands.
1495 (vect_build_slp_tree): Try swapping operands if they have
1496 a mismatched operand kind.
1497
1498 2014-10-20 Alan Modra <amodra@gmail.com>
1499
1500 PR debug/60655
1501 * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
1502 Increase "ops" array size. Correct array size tests. Init
1503 n_constants in loop. Break out of innermost loop when finding
1504 a trivial CONST expression.
1505
1506 2014-10-20 Martin Liska <mliska@suse.cz>
1507
1508 PR ipa/63583
1509 * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
1510 Gimple tempate string is compared.
1511
1512 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
1513
1514 * varasm.c (const_alias_set): Remove.
1515 (init_varasm_once): Remove initialization of const_alias_set.
1516 (build_constant_desc): Do not set alias set to const_alias_set.
1517
1518 2014-10-19 Ilya Verbin <ilya.verbin@intel.com>
1519
1520 * configure: Regenerate.
1521 * configure.ac: Move the test for section attribute specifier "e" in GAS
1522 out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
1523 * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
1524 * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
1525 ifdef HAVE_GAS_SECTION_EXCLUDE.
1526
1527 2014-10-19 Andreas Schwab <schwab@linux-m68k.org>
1528
1529 * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
1530 match_operand expression.
1531
1532 2014-10-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
1533 David Edelsohn <dje.gcc@gmail.com>
1534
1535 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
1536 function.
1537 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
1538
1539 2014-10-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
1540
1541 * doc/invoke.texi (Options to Request or Suppress Warnings):
1542 Explain options precedence.
1543 (Wtrampolines): Do not indent paragraph.
1544
1545 2014-10-18 John David Anglin <danglin@gcc.gnu.org>
1546
1547 * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
1548 * config/pa/pa-protos.h (pa_following_call): Delete declaration.
1549 (pa_jump_in_call_delay): Likewise.
1550 * config/pa/pa.c (pa_option_override): Remove jump in call delay
1551 override.
1552 (pa_output_millicode_call): Remove support for jump in call delay.
1553 (pa_output_call): Likewise.
1554 (pa_jump_in_call_delay): Delete.
1555 (pa_following_call): Likewise.
1556 * config/pa/pa.md (in_call_delay): Remove jump in delay check.
1557 (uncond_branch): Remove following call check from attribute length.
1558
1559 2014-10-18 Oleg Endo <olegendo@gcc.gnu.org>
1560
1561 PR target/53513
1562 * config/sh/sh-modes.def (PSI): Remove.
1563 * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
1564 * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
1565 (sh_reorg): Remove commented out FPSCR code.
1566 (fpscr_set_from_mem): Use SImode instead of PSImode. Emit lds_fpscr
1567 insn instead of move insn.
1568 (sh_hard_regno_mode_ok): Return SImode for FPSCR.
1569 (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
1570 handling.
1571 (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
1572 (sh1_builtin_p): Uncomment.
1573 (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
1574 (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
1575 * config/sh/sh/predicates.md (fpscr_operand): Simplify.
1576 (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
1577 (general_movsrc_operand, general_movdst_operand): Disallow
1578 fpscr_operand.
1579 * config/sh/sh.md (FPSCR_FR): New constant.
1580 (push_fpscr): Emit sts_fpscr insn.
1581 (pop_fpscr): Emit lds_fpscr_insn.
1582 (movsi_ie): Disallow FPSCR operands.
1583 (fpu_switch, unnamed related split, extend_psi_si,
1584 truncate_si_psi): Remove insns.
1585 (lds_fpscr, sts_fpscr): New insns.
1586 (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
1587
1588 2014-10-17 Eric Botcazou <ebotcazou@adacore.com>
1589
1590 * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
1591 (clone_inlined_nodes): Do not overwrite the clone if above predicate
1592 returns true.
1593
1594 2014-10-17 Ilya Tocar <ilya.tocar@intel.com>
1595
1596 * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
1597 (expand_vec_perm_d): Ditto.
1598 (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
1599 V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
1600 V4DFmode.
1601 (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
1602 (ix86_expand_sse_unpack): Handle V64QImode.
1603 (expand_vec_perm_blend): Update conditions for TARGET, handle
1604 V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
1605 (expand_vec_perm_pshufb): Handle V64QImode.
1606 (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
1607 V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
1608 (ix86_expand_vec_perm_const_1): Call ix86_expand_vec_perm_vpermi2.
1609 (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
1610 (ix86_expand_vecop_qihi): Handle V64QImode.
1611 * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
1612 (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
1613 (define_mode_iterator VEC_PERM_CONST): Add V32HI.
1614 (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
1615 (mul<mode>3): Use VI1_AVX512.
1616 (<sse2_avx2>_packsswb): Ditto.
1617 (<sse2_avx2>_packuswb): Ditto.
1618 (<ssse3_avx2>_pshufb<mode>3): Ditto.
1619 (<shift_insn><mode>3): Ditto.
1620
1621 2014-10-17 Kirill Yukhin <kirill.yukhin@intel.com>
1622
1623 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
1624 conditions to fix bootstrap.
1625
1626 2014-10-17 Andrew MacLeod <amacleod@redhat.com>
1627
1628 gcc-plugin.h: Add tm.h and flattened includes from function.h.
1629
1630 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
1631 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1632 Anna Tikhonova <anna.tikhonova@intel.com>
1633 Ilya Tocar <ilya.tocar@intel.com>
1634 Andrey Turetskiy <andrey.turetskiy@intel.com>
1635 Ilya Verbin <ilya.verbin@intel.com>
1636 Kirill Yukhin <kirill.yukhin@intel.com>
1637 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1638
1639 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
1640 and V32HI modes, update V8HI, V16QI, V32QI modes handling.
1641 (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
1642 * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
1643 (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
1644 (define_expand "vec_init<mode>"): Use VF48_I1248.
1645
1646 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
1647 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1648 Anna Tikhonova <anna.tikhonova@intel.com>
1649 Ilya Tocar <ilya.tocar@intel.com>
1650 Andrey Turetskiy <andrey.turetskiy@intel.com>
1651 Ilya Verbin <ilya.verbin@intel.com>
1652 Kirill Yukhin <kirill.yukhin@intel.com>
1653 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1654
1655 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
1656 expand_sse2_mulvxdi3.
1657
1658 2014-10-17 Richard Biener <rguenther@suse.de>
1659
1660 * fold-const.c (fold_comparison): Remove redundant constant
1661 folding and operand swapping.
1662 (fold_binary_loc): Do comparison operand swapping here.
1663 (fold_ternary_loc): Canonicalize operand order for
1664 commutative ternary operations.
1665 * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
1666 and FMA_EXPR.
1667
1668 2014-10-17 Jakub Jelinek <jakub@redhat.com>
1669
1670 PR tree-optimization/63464
1671 * gimple.h (gimple_seq_discard): New prototype.
1672 * gimple.c: Include stringpool.h and tree-ssanames.h.
1673 (gimple_seq_discard): New function.
1674 * optabs.h (lshift_cheap_p): New prototype.
1675 * optabs.c (lshift_cheap_p): New function, moved from...
1676 * tree-switch-conversion.c (lshift_cheap_p): ... here.
1677 * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
1678 (reassoc_branch_fixups): New variable.
1679 (update_range_test): Add otherrangep and seq arguments.
1680 Unshare exp. If otherrange is NULL, use for other ranges
1681 array of pointers pointed by otherrangep instead.
1682 Emit seq before gimplified statements for tem.
1683 (optimize_range_tests_diff): Adjust update_range_test
1684 caller.
1685 (optimize_range_tests_xor): Likewise. Fix up comment.
1686 (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
1687 functions.
1688 (optimize_range_tests): Adjust update_range_test caller.
1689 Call optimize_range_tests_to_bit_test.
1690 (branch_fixup): New function.
1691 (execute_reassoc): Call branch_fixup.
1692
1693 PR tree-optimization/63302
1694 * tree-ssa-reassoc.c (optimize_range_tests_xor,
1695 optimize_range_tests_diff): Use !integer_pow2p () instead of
1696 tree_log2 () < 0.
1697
1698 2014-10-17 Martin Liska <mliska@suse.cz>
1699
1700 * ipa-icf.c (sem_function::merge): Local flags are set to false
1701 to enforce equal calling convention to be used.
1702 * opts.c (common_handle_option): Indentation fix.
1703
1704 2014-10-17 Marc Glisse <marc.glisse@inria.fr>
1705
1706 * tree-into-ssa.c (is_old_name): Replace "new" with "old".
1707
1708 2014-10-17 Tom de Vries <tom@codesourcery.com>
1709
1710 PR rtl-optimization/61605
1711 * regcprop.c (copyprop_hardreg_forward_1): Use
1712 regs_invalidated_by_this_call instead of regs_invalidated_by_call.
1713
1714 2014-10-17 Tom de Vries <tom@codesourcery.com>
1715
1716 PR rtl-optimization/61605
1717 * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p. Don't
1718 notice stores for noops. Don't regard noops as copies.
1719
1720 2014-10-17 Uros Bizjak <ubizjak@gmail.com>
1721
1722 * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
1723 register in a special way.
1724 (__cpuid_count): Ditto.
1725 * config/i386/driver-i386.h: Protect with
1726 "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
1727 (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
1728 is required to compile the function.
1729
1730 2014-10-16 DJ Delorie <dj@redhat.com>
1731
1732 * flag-types.h (sanitize_code): Don't assume targets have 32-bit
1733 integers.
1734
1735 * config/rs6000/rs6000-c.c (rid_int128): New.
1736 (rs6000_macro_to_expand): Use instead of RID_INT128.
1737
1738 2014-10-16 Andrew MacLeod <amacleod@redhat.com>
1739
1740 * function.h: Flatten file. Remove includes, adjust prototypes to
1741 reflect only what is in function.h.
1742 (enum direction, struct args_size, struct locate_and_pad_arg_data,
1743 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
1744 from expr.h.
1745 (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
1746 (optimize_function_for_size_p, optimize_function_for_speed_p): Move
1747 prototypes to predict.h.
1748 (init_varasm_status): Move prototype to varasm.h.
1749 * expr.h: Adjust include files.
1750 (enum direction, struct args_size, struct locate_and_pad_arg_data,
1751 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
1752 to function.h.
1753 (locate_and_pad_parm): Move prototype to function.h.
1754 * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
1755 assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
1756 assign_temp, reposition_prologue_and_epilogue_notes,
1757 prologue_epilogue_contains, sibcall_epilogue_contains,
1758 update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
1759 set_return_jump_label): Move prototypes to function.h.
1760 * predict.h (optimize_function_for_size_p,
1761 optimize_function_for_speed_p): Relocate prototypes from function.h.
1762 * shrink-wrap.h (emit_return_into_block, active_insn_between,
1763 convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
1764 function.h.
1765 * varasm.h (init_varasm_status): Relocate prototype from function.h.
1766 * genattrtab.c (write_header): Add predict.h to include list.
1767 * genconditions.c (write_header): Add predict.h to include list.
1768 * genemit.c (main): Adjust header file includes.
1769 * gengtype.c (ifiles): Add flattened function.h header files.
1770 * genoutput.c (output_prologue): Add predict.h to include list.
1771 * genpreds.c (write_insn_preds_c): Adjust header file includes.
1772 * genrecog.c (write_header): Add flattened function.h header files.
1773 * alias.c: Adjust include files.
1774 * auto-inc-dec.c: Likewise.
1775 * basic-block.h: Likewise.
1776 * bb-reorder.c: Likewise.
1777 * bt-load.c: Likewise.
1778 * builtins.c: Likewise.
1779 * caller-save.c: Likewise.
1780 * calls.c: Likewise.
1781 * cfgbuild.c: Likewise.
1782 * cfgcleanup.c: Likewise.
1783 * cfgexpand.c: Likewise.
1784 * cfgloop.c: Likewise.
1785 * cfgloop.h: Likewise.
1786 * cfgrtl.c: Likewise.
1787 * cgraph.h: Likewise.
1788 * cgraphclones.c: Likewise.
1789 * cgraphunit.c: Likewise.
1790 * combine-stack-adj.c: Likewise.
1791 * combine.c: Likewise.
1792 * coverage.c: Likewise.
1793 * cprop.c: Likewise.
1794 * cse.c: Likewise.
1795 * cselib.c: Likewise.
1796 * dbxout.c: Likewise.
1797 * ddg.c: Likewise.
1798 * df-core.c: Likewise.
1799 * df-problems.c: Likewise.
1800 * df-scan.c: Likewise.
1801 * dojump.c: Likewise.
1802 * dwarf2cfi.c: Likewise.
1803 * dwarf2out.c: Likewise.
1804 * emit-rtl.c: Likewise.
1805 * except.c: Likewise.
1806 * explow.c: Likewise.
1807 * expr.c: Likewise.
1808 * final.c: Likewise.
1809 * function.c: Likewise.
1810 * gcse.c: Likewise.
1811 * gimple-fold.c: Likewise.
1812 * gimple-low.c: Likewise.
1813 * gimple-streamer.h: Likewise.
1814 * haifa-sched.c: Likewise.
1815 * ifcvt.c: Likewise.
1816 * ira.c: Likewise.
1817 * jump.c: Likewise.
1818 * lcm.c: Likewise.
1819 * loop-invariant.c: Likewise.
1820 * lra-assigns.c: Likewise.
1821 * lra-coalesce.c: Likewise.
1822 * lra-constraints.c: Likewise.
1823 * lra-eliminations.c: Likewise.
1824 * lra-lives.c: Likewise.
1825 * lra-spills.c: Likewise.
1826 * lra.c: Likewise.
1827 * lto-cgraph.c: Likewise.
1828 * lto-section-in.c: Likewise.
1829 * lto-section-out.c: Likewise.
1830 * lto-streamer-in.c: Likewise.
1831 * lto-streamer-out.c: Likewise.
1832 * mode-switching.c: Likewise.
1833 * modulo-sched.c: Likewise.
1834 * omp-low.c: Likewise.
1835 * optabs.c: Likewise.
1836 * passes.c: Likewise.
1837 * postreload-gcse.c: Likewise.
1838 * postreload.c: Likewise.
1839 * predict.c: Likewise.
1840 * profile.c: Likewise.
1841 * recog.c: Likewise.
1842 * ree.c: Likewise.
1843 * reg-stack.c: Likewise.
1844 * regcprop.c: Likewise.
1845 * reginfo.c: Likewise.
1846 * regrename.c: Likewise.
1847 * reload.c: Likewise.
1848 * reload1.c: Likewise.
1849 * reorg.c: Likewise.
1850 * resource.c: Likewise.
1851 * rtlanal.c: Likewise.
1852 * sched-deps.c: Likewise.
1853 * sched-ebb.c: Likewise.
1854 * sched-rgn.c: Likewise.
1855 * sel-sched-dump.c: Likewise.
1856 * sel-sched-ir.c: Likewise.
1857 * sel-sched.c: Likewise.
1858 * shrink-wrap.c: Likewise.
1859 * simplify-rtx.c: Likewise.
1860 * statistics.c: Likewise.
1861 * stmt.c: Likewise.
1862 * stor-layout.c: Likewise.
1863 * store-motion.c: Likewise.
1864 * symtab.c: Likewise.
1865 * targhooks.c: Likewise.
1866 * toplev.c: Likewise.
1867 * trans-mem.c: Likewise.
1868 * tree-cfg.c: Likewise.
1869 * tree-cfgcleanup.c: Likewise.
1870 * tree-dfa.c: Likewise.
1871 * tree-eh.c: Likewise.
1872 * tree-inline.c: Likewise.
1873 * tree-into-ssa.c: Likewise.
1874 * tree-nested.c: Likewise.
1875 * tree-nrv.c: Likewise.
1876 * tree-profile.c: Likewise.
1877 * tree-ssa-alias.c: Likewise.
1878 * tree-ssa-ccp.c: Likewise.
1879 * tree-ssa-copy.c: Likewise.
1880 * tree-ssa-copyrename.c: Likewise.
1881 * tree-ssa-dom.c: Likewise.
1882 * tree-ssa-operands.c: Likewise.
1883 * tree-ssa-propagate.c: Likewise.
1884 * tree-ssa-structalias.c: Likewise.
1885 * tree-ssa-tail-merge.c: Likewise.
1886 * tree-ssa-threadedge.c: Likewise.
1887 * tree-ssa-threadupdate.c: Likewise.
1888 * tree-ssa-uncprop.c: Likewise.
1889 * tree-ssa-uninit.c: Likewise.
1890 * tree-ssa.c: Likewise.
1891 * tree-stdarg.c: Likewise.
1892 * tree-tailcall.c: Likewise.
1893 * tree.c: Likewise.
1894 * tsan.c: Likewise.
1895 * valtrack.c: Likewise.
1896 * varasm.c: Likewise.
1897 * vmsdbgout.c: Likewise.
1898 * web.c: Likewise.
1899 * config/aarch64/aarch64.c: Add flattened includes from function.h.
1900 * config/alpha/alpha.c: Likewise.
1901 * config/arc/arc.c: Likewise.
1902 * config/arm/arm.c: Likewise.
1903 * config/avr/avr-log.c: Likewise.
1904 * config/avr/avr.c: Likewise.
1905 * config/bfin/bfin.c: Likewise.
1906 * config/c6x/c6x.c: Likewise.
1907 * config/cr16/cr16.c: Likewise.
1908 * config/cris/cris.c: Likewise.
1909 * config/darwin.c: Likewise.
1910 * config/epiphany/epiphany.c: Likewise.
1911 * config/epiphany/mode-switch-use.c: Likewise.
1912 * config/epiphany/resolve-sw-modes.c: Likewise.
1913 * config/fr30/fr30.c: Likewise.
1914 * config/frv/frv.c: Likewise.
1915 * config/h8300/h8300.c: Likewise.
1916 * config/i386/i386.c: Likewise.
1917 * config/ia64/ia64.c: Likewise.
1918 * config/iq2000/iq2000.c: Likewise.
1919 * config/lm32/lm32.c: Likewise.
1920 * config/m32c/m32c.c: Likewise.
1921 * config/m32r/m32r.c: Likewise.
1922 * config/m68k/m68k.c: Likewise.
1923 * config/mcore/mcore.c: Likewise.
1924 * config/mep/mep-pragma.c: Likewise.
1925 * config/mep/mep.c: Likewise.
1926 * config/microblaze/microblaze.c: Likewise.
1927 * config/mips/mips.c: Likewise.
1928 * config/mmix/mmix.c: Likewise.
1929 * config/mn10300/mn10300.c: Likewise.
1930 * config/moxie/moxie.c: Likewise.
1931 * config/msp430/msp430.c: Likewise.
1932 * config/nds32/nds32-cost.c: Likewise.
1933 * config/nds32/nds32-fp-as-gp.c: Likewise.
1934 * config/nds32/nds32-intrinsic.c: Likewise.
1935 * config/nds32/nds32-isr.c: Likewise.
1936 * config/nds32/nds32-md-auxiliary.c: Likewise.
1937 * config/nds32/nds32-memory-manipulation.c: Likewise.
1938 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1939 * config/nds32/nds32-predicates.c: Likewise.
1940 * config/nds32/nds32.c: Likewise.
1941 * config/nios2/nios2.c: Likewise.
1942 * config/pa/pa.c: Likewise.
1943 * config/pdp11/pdp11.c: Likewise.
1944 * config/rl78/rl78.c: Likewise.
1945 * config/rs6000/rs6000.c: Likewise.
1946 * config/rx/rx.c: Likewise.
1947 * config/s390/s390.c: Likewise.
1948 * config/score/score.c: Likewise.
1949 * config/sh/sh.c: Likewise.
1950 * config/sparc/sparc.c: Likewise.
1951 * config/spu/spu.c: Likewise.
1952 * config/stormy16/stormy16.c: Likewise.
1953 * config/tilegx/tilegx.c: Likewise.
1954 * config/tilepro/tilepro.c: Likewise.
1955 * config/v850/v850.c: Likewise.
1956 * config/vax/vax.c: Likewise.
1957 * config/xtensa/xtensa.c: Likewise.
1958
1959 2014-10-16 Richard Earnshaw <rearnsha@arm.com>
1960
1961 * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
1962 (TARGET_LEGITIMIZE_ADDRESS): Redefine.
1963
1964 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
1965
1966 * config/sh/sh-protos.h (fldi_ok): Remove.
1967 * config/sh/sh.c (fldi_ok): Likewise.
1968 (sh_secondary_reload): Don't use fldi_ok.
1969 * config/sh/constraints.md (G constraint, H constraint): Don't use
1970 fldi_ok.
1971
1972 2014-10-16 Martin Liska <mliska@suse.cz>
1973
1974 * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
1975 Cast to unsigned long.
1976 (sem_item_optimizer::dump_cong_classes): Likewise.
1977
1978 2014-10-16 Tom de Vries <tom@codesourcery.com>
1979
1980 * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
1981 with SSA_NAME_IN_FREELIST.
1982
1983 2014-10-16 Richard Biener <rguenther@suse.de>
1984
1985 PR middle-end/63554
1986 * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
1987 (fold_builtin_strncat_chk): Move ...
1988 * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
1989 (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
1990
1991 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
1992
1993 PR target/59401
1994 * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
1995 GBR to 0.
1996
1997 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
1998 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1999 Anna Tikhonova <anna.tikhonova@intel.com>
2000 Ilya Tocar <ilya.tocar@intel.com>
2001 Andrey Turetskiy <andrey.turetskiy@intel.com>
2002 Ilya Verbin <ilya.verbin@intel.com>
2003 Kirill Yukhin <kirill.yukhin@intel.com>
2004 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2005
2006 * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
2007 V64QI modes.
2008
2009 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
2010 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2011 Anna Tikhonova <anna.tikhonova@intel.com>
2012 Ilya Tocar <ilya.tocar@intel.com>
2013 Andrey Turetskiy <andrey.turetskiy@intel.com>
2014 Ilya Verbin <ilya.verbin@intel.com>
2015 Kirill Yukhin <kirill.yukhin@intel.com>
2016 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2017
2018 * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
2019 V16SI, V32HI, V64QI modes.
2020
2021 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
2022
2023 PR target/53513
2024 * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
2025 expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
2026
2027 * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
2028 to match fp insn patterns.
2029 (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
2030 list.
2031 (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
2032 expand_df_unop, expand_df_binop): Remove.
2033 (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
2034 FPSCR_STAT_REG as not call clobbered.
2035 (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
2036 invoking fpscr_set_from_mem.
2037
2038 * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
2039 (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
2040 FPSCR_STAT_REG.
2041 (REGISTER_NAMES): Adjust.
2042 (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
2043 (FIRST_PSEUDO_REGISTER): Increase to 156.
2044 (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
2045 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
2046 FPSCR_STAT_REG.
2047 (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
2048 FPSCR_MODES_REG and FPSCR_STAT_REG.
2049 (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
2050
2051 * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
2052 FPSCR_SZ): Add new constants.
2053 (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
2054
2055 (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
2056 (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
2057 Use TARGET_FPU_ANY condition.
2058 (fpu_switch peephole2): Remove.
2059 (fpu_switch split): Use simple_mem_operand to capture the mem and
2060 adjust split implementation.
2061 (extend_psi_si, truncate_si_psi): New insns.
2062 (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants. Add
2063 set of FPSCR_MODES_REG.
2064
2065 (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
2066 reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
2067 calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
2068 call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
2069 call_value_compact, call_value_compact_rettramp, call,
2070 call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
2071 sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
2072 sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
2073 sibcall_value_compact, sibcall_value, call_value_pop_compact,
2074 call_value_pop_compact_rettramp, various unnamed splits):
2075 Replace use of FPSCR_REG with use of FPSCR_MODES_REG. Adjust gen_*
2076 function uses.
2077
2078 (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
2079 (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
2080 (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
2081 (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
2082 (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
2083
2084 (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
2085 *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
2086 cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
2087 subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
2088 cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
2089 truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
2090 and use of FPSCR_MODES_REG. Adjust gen_* function uses.
2091
2092 2014-10-16 Martin Liska <mliska@suse.cz>
2093 Jan Hubicka <hubicka@ucw.cz>
2094
2095 * Makefile.in: New object files included.
2096 * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
2097 is printed.
2098 (verify_edge_corresponds_to_fndecl): More sensitive verification
2099 of nodes that are merged by IPA ICF.
2100 * cgraph.h (cgraph_node::num_references): New function.
2101 * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
2102 * common.opt: New options ipa-icf, ipa-icf-functions and
2103 ipa-icf-variables introduced.
2104 * doc/invoke.texi: Documentation of new options introduced.
2105 * ipa-icf-gimple.c: New file.
2106 * ipa-icf-gimple.h: New file.
2107 * ipa-icf.c: New file.
2108 * ipa-icf.h: New file.
2109 * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
2110 (input_overwrite_node): Likewise.
2111 * lto-section-in.c: New icf section added.
2112 * lto-streamer.h (enum lto_section_type): Likewise.
2113 * opts.c (common_handle_option): New option added.
2114 * passes.def: New pass included.
2115 * timevar.def: Time variable for IPA ICF added.
2116 * tree-pass.h: New IPA ICF pass entry point added.
2117
2118 2014-10-16 Richard Biener <rguenther@suse.de>
2119
2120 PR tree-optimization/63168
2121 * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
2122 latches if after merging they are no longer simple.
2123 * cfghooks.c (merge_blocks): Handle merging a latch block
2124 into another block.
2125
2126 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
2127 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2128 Anna Tikhonova <anna.tikhonova@intel.com>
2129 Ilya Tocar <ilya.tocar@intel.com>
2130 Andrey Turetskiy <andrey.turetskiy@intel.com>
2131 Ilya Verbin <ilya.verbin@intel.com>
2132 Kirill Yukhin <kirill.yukhin@intel.com>
2133 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2134
2135 * config/i386/sse.md
2136 (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
2137 support AVX-512VL instructions.
2138
2139 2014-10-16 DJ Delorie <dj@redhat.com>
2140
2141 * tree-core.h: Fix comment to not assume pointers are multiples of
2142 bytes.
2143
2144 2014-10-15 Tom Tromey <tromey@redhat.com>
2145
2146 * timevar.h (class auto_timevar): New class.
2147
2148 2014-10-15 Uros Bizjak <ubizjak@gmail.com>
2149
2150 PR go/59432
2151 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
2152 Remove the second alternative.
2153 (regprefix): Remove mode attribute.
2154 (atomic_compare_and_swap<mode>): Do not fixup operand 2.
2155 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
2156
2157 Revert:
2158 2013-11-05 Ian Lance Taylor <iant@google.com>
2159
2160 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
2161 If possible, add .cfi directives to record change to bx.
2162 * config/i386/i386.c (ix86_emit_cfi): New function.
2163 * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
2164
2165 2014-10-15 Jan Hubicka <hubicka@ucw.cz>
2166
2167 PR lto/62026
2168 * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
2169 to duplicate.
2170 * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
2171 at WPA time.
2172
2173 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
2174
2175 PR rtl-optimization/63448
2176 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
2177 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
2178 (LRA_MAX_INHERITANCE_PASSES): Use it.
2179 (lra_constraint_iter_after_spill): Remove.
2180 (lra_assignment_iter): New.
2181 (lra_assignment_iter_after_spill): New.
2182 * lra-assigns.c (lra_assignment_iter): New.
2183 (lra_assignment_iter_after_spill): New.
2184 (former_reload_pseudo_spill_p): New.
2185 (spill_for): Set up former_reload_pseudo_spill_p.
2186 (setup_live_pseudos_and_spill_after_risky): Ditto.
2187 (assign_by_spills): Ditto.
2188 (lra_assign): Increment lra_assignment_iter. Print the iteration
2189 number. Reset former_reload_pseudo_spill_p. Check
2190 lra_assignment_iter_after_spill.
2191 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
2192 lra_assignment_iter and lra_assignment_iter_after_spill.
2193 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
2194 (lra_constraints): Remove code with
2195 lra_assignment_iter_after_spill.
2196
2197 2014-10-15 Teresa Johnson <tejohnson@google.com>
2198
2199 PR bootstrap/63432
2200 * tree-ssa-threadupdate.c (recompute_probabilities): Better
2201 overflow checking.
2202
2203 2014-10-15 Renlin Li <renlin.li@arm.com>
2204
2205 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
2206 __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
2207 __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
2208 __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
2209
2210 2014-10-15 Richard Biener <rguenther@suse.de>
2211
2212 * gimple-fold.c (gimple_fold_call): Properly keep virtual
2213 SSA form up-to-date when devirtualizing a call to
2214 __builtin_unreachable and avoid fixing up EH info here.
2215
2216 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
2217 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2218 Anna Tikhonova <anna.tikhonova@intel.com>
2219 Ilya Tocar <ilya.tocar@intel.com>
2220 Andrey Turetskiy <andrey.turetskiy@intel.com>
2221 Ilya Verbin <ilya.verbin@intel.com>
2222 Kirill Yukhin <kirill.yukhin@intel.com>
2223 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2224
2225 * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
2226 to support AVX-512BW.
2227 (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
2228 (define_expand "<plusminus_insn><mode>3"): Remove masking support.
2229 (define_insn "*<plusminus_insn><mode>3"): Ditto.
2230 (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
2231 (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
2232 (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
2233 (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
2234 (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
2235 (define_insn "*andnot<mode>3"): Ditto.
2236 (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
2237 (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
2238 (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
2239 (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
2240 (define_insn "*abs<mode>2"): Remove masking support.
2241 (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
2242 (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
2243 (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
2244
2245 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
2246 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2247 Anna Tikhonova <anna.tikhonova@intel.com>
2248 Ilya Tocar <ilya.tocar@intel.com>
2249 Andrey Turetskiy <andrey.turetskiy@intel.com>
2250 Ilya Verbin <ilya.verbin@intel.com>
2251 Kirill Yukhin <kirill.yukhin@intel.com>
2252 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2253
2254 * config/i386/predicates.md (define_predicate "constm1_operand"): New.
2255 * config/i386/sse.md
2256 (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
2257 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
2258 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
2259 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
2260 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
2261 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
2262 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
2263
2264 2014-10-15 Renlin Li <renlin.li@arm.com>
2265
2266 * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
2267
2268 2014-10-15 Jakub Jelinek <jakub@redhat.com>
2269
2270 * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
2271 MINUS_EXPR in unsigned type to avoid undefined behavior.
2272
2273 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
2274
2275 * stor-layout.c (self_referential_size): Do not promote arguments.
2276
2277 2014-10-15 Marek Polacek <polacek@redhat.com>
2278
2279 * doc/invoke.texi: Update to reflect that GNU11 is the default
2280 mode for C.
2281 * c-common.h (c_language_kind): Update comment.
2282
2283 2014-10-15 Richard Biener <rguenther@suse.de>
2284
2285 * hash-table.c: Include bconfig.h if building for the host.
2286 * hash-table.h: Do not include ggc.h on the host but just declare
2287 a few ggc allocation templates.
2288
2289 2014-10-15 Joern Rennecke <joern.rennecke@embecosm.com>
2290 Jeff Law <law@redhat.com>
2291
2292 * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
2293 multiple hard registers, use smaller mode derived from MODE.
2294
2295 2014-10-15 Andreas Schwab <schwab@suse.de>
2296
2297 * explow.c (convert_memory_address_addr_space_1): Mark in_const
2298 as ATTRIBUTE_UNUSED.
2299
2300 2014-10-14 Jan Hubicka <hubicka@ucw.cz>
2301
2302 * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
2303 (decide_unrolling): ... this one.
2304 (peel_loops_completely): Remove.
2305 (decide_peel_simple): Remove.
2306 (decide_peel_once_rolling): Remove.
2307 (decide_peel_completely): Remove.
2308 (peel_loop_simple): Remove.
2309 (peel_loop_completely): Remove.
2310 (unroll_and_peel_loops): Rename to ...
2311 (unroll_loops): ... this one; handle only unrolling.
2312 * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
2313 LPT_PEEL_SIMPLE.
2314 (UAP_PEEL): Remove.
2315 (unroll_and_peel_loops): Remove.
2316 (unroll_loops): New.
2317 * passes.def: Replace
2318 pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
2319 * loop-init.c (gate_rtl_unroll_and_peel_loops,
2320 rtl_unroll_and_peel_loops): Rename to ...
2321 (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
2322 (pass_rtl_unroll_and_peel_loops): Rename to ...
2323 (pass_rtl_unroll_loops): ... this one.
2324 * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
2325 (make_pass_rtl_unroll_loops): New.
2326 * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
2327 (canonicalize_loop_induction_variables): Update.
2328
2329 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
2330
2331 * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
2332 * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
2333 !TARGET_HARD_FLOAT_POSTINC.
2334 (*lsip, *ssip): new instructions.
2335
2336 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
2337
2338 * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
2339 remove.
2340
2341 2014-10-14 Andrew Pinski <apinski@cavium.com>
2342
2343 * explow.c (convert_memory_address_addr_space): Rename to ...
2344 (convert_memory_address_addr_space_1): This. Add in_const argument.
2345 Inside a CONST RTL, permute the conversion and addition of constant
2346 for zero and sign extended pointers.
2347 (convert_memory_address_addr_space): New function.
2348
2349 2014-10-14 Andrew Pinski <apinski@cavium.com>
2350
2351 Revert:
2352 2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
2353
2354 PR middle-end/49721
2355 * explow.c (convert_memory_address_addr_space): Also permute the
2356 conversion and addition of constant for zero-extend.
2357
2358 2014-10-14 DJ Delorie <dj@redhat.com>
2359
2360 * config/msp430/msp430-modes.def (PSI): Add.
2361
2362 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
2363 (msp430_hard_regno_nregs_with_padding): New.
2364 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
2365 (msp430_hard_regno_nregs_has_padding): New.
2366 (msp430_hard_regno_nregs_with_padding): New.
2367 (msp430_unwind_word_mode): Use PSImode instead of SImode.
2368 (msp430_addr_space_legitimate_address_p): New.
2369 (msp430_asm_integer): New.
2370 (msp430_init_dwarf_reg_sizes_extra): New.
2371 (msp430_print_operand): Use X suffix for PSImode even in small model.
2372 * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
2373 (PTR_SIZE): ...but 4 bytes for EH.
2374 (SIZE_TYPE): Use __int20.
2375 (PTRDIFF_TYPE): Likewise.
2376 (INCOMING_FRAME_SP_OFFSET): Adjust.
2377 * config/msp430/msp430.md (movqi_topbyte): New.
2378 (movpsi): Use fixed suffixes.
2379 (movsipsi2): Enable for 430X, not large model.
2380 (extendhipsi2): Likewise.
2381 (zero_extendhisi2): Likewise.
2382 (zero_extendhisipsi2): Likewise.
2383 (extend_and_shift1_hipsi2): Likewise.
2384 (extendpsisi2): Likewise.
2385 (*bitbranch<mode>4_z): Fix suffix logic.
2386
2387 2014-10-14 Eric Botcazou <ebotcazou@adacore.com>
2388
2389 PR ada/62019
2390 * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
2391 do not choke on null node.
2392 <VAR_DECL>: Likewise.
2393
2394 2014-10-14 DJ Delorie <dj@redhat.com>
2395
2396 * machmode.h (int_n_data_t): New.
2397 (int_n_enabled_p): New.
2398 (int_n_data): New.
2399 * tree.c (int_n_enabled_p): New.
2400 (int_n_trees): New.
2401 (make_or_reuse_type): Check for all __intN types, not just
2402 __int128.
2403 (build_common_tree_nodes): Likewise. Also fill in integer_typs[]
2404 entries.
2405 * tree.h (int128_integer_type_node): Remove.
2406 (int128_unsigned_type_node): Remove.
2407 (int_n_trees_t): New.
2408 (int_n_enabled_p): New.
2409 (int_n_trees): New.
2410 * toplev.c (standard_type_bitsize): New.
2411 (do_compile): Check which __intN types are enabled for the current
2412 run.
2413 * builtin-types.def (BT_INT128): Remove.
2414 (BT_UINT128): Remove.
2415 * machmode.def: Add macro to create __int128 for all targets.
2416 * stor-layout.c (mode_for_size): Support __intN types.
2417 (smallest_mode_for_size): Likewise.
2418 (initialize_sizetypes): Support __intN types.
2419 * genmodes.c (struct mode_data): Add int_n field.
2420 (blank_mode): Likewise.
2421 (INT_N): New.
2422 (make_int_n): New.
2423 (emit_insn_modes_h): Count __intN entries and define
2424 NUM_INT_N_ENTS.
2425 (emit_mode_int_n): New.
2426 (emit_insn_modes_c): Call it.
2427 * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
2428 types, not just __int128.
2429 * tree-core.h (integer_type_kind): Remove __int128-specific
2430 entries, reserve spots for __intN entries.
2431
2432 * config/msp430/msp430-modes.def (PSI): Add.
2433
2434 2014-10-14 Kito Cheng <kito@0xlab.org>
2435
2436 * ira.c: Fix typo in comment.
2437 * ira.h: Ditto.
2438 * ira-build.c: Ditto.
2439 * ira-color.c: Ditto.
2440 * ira-emit.c: Ditto.
2441 * ira-int.h: Ditto.
2442 * ira-lives.c: Ditto.
2443
2444 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
2445
2446 PR rtl-optimization/63475
2447 * alias.c (true_dependence_1): Always use get_addr to extract
2448 true address operands from x_addr and mem_addr. Use extracted
2449 address operands to check for references with alignment ANDs.
2450 Use extracted address operands with find_base_term and
2451 base_alias_check. For noncanonicalized operands call canon_rtx with
2452 extracted address operand.
2453 (write_dependence_1): Ditto.
2454 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
2455
2456 2014-10-14 Evgeny Stupachenko <evstupac@gmail.com>
2457
2458 PR target/63534
2459 * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
2460 __morestack local.
2461
2462 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2463 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2464 Anna Tikhonova <anna.tikhonova@intel.com>
2465 Ilya Tocar <ilya.tocar@intel.com>
2466 Andrey Turetskiy <andrey.turetskiy@intel.com>
2467 Ilya Verbin <ilya.verbin@intel.com>
2468 Kirill Yukhin <kirill.yukhin@intel.com>
2469 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2470
2471 * config/i386/i386.c
2472 (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
2473 (ix86_expand_int_vcond): Ditto.
2474
2475 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2476 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2477 Anna Tikhonova <anna.tikhonova@intel.com>
2478 Ilya Tocar <ilya.tocar@intel.com>
2479 Andrey Turetskiy <andrey.turetskiy@intel.com>
2480 Ilya Verbin <ilya.verbin@intel.com>
2481 Kirill Yukhin <kirill.yukhin@intel.com>
2482 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2483
2484 * config/i386/i386.c
2485 (emit_reduc_half): Handle V64QI and V32HI mode.
2486 * config/i386/sse.md
2487 (define_mode_iterator VI_AVX512BW): New.
2488 (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
2489
2490 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2491 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2492 Anna Tikhonova <anna.tikhonova@intel.com>
2493 Ilya Tocar <ilya.tocar@intel.com>
2494 Andrey Turetskiy <andrey.turetskiy@intel.com>
2495 Ilya Verbin <ilya.verbin@intel.com>
2496 Kirill Yukhin <kirill.yukhin@intel.com>
2497 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2498
2499 * config/i386/sse.md
2500 (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
2501
2502 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2503 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2504 Anna Tikhonova <anna.tikhonova@intel.com>
2505 Ilya Tocar <ilya.tocar@intel.com>
2506 Andrey Turetskiy <andrey.turetskiy@intel.com>
2507 Ilya Verbin <ilya.verbin@intel.com>
2508 Kirill Yukhin <kirill.yukhin@intel.com>
2509 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2510
2511 * config/i386/i386.c
2512 (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
2513 * config/i386/sse.md
2514 (define_mode_iterator VI): Add V64QI and V32HI modes.
2515
2516 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2517 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2518 Anna Tikhonova <anna.tikhonova@intel.com>
2519 Ilya Tocar <ilya.tocar@intel.com>
2520 Andrey Turetskiy <andrey.turetskiy@intel.com>
2521 Ilya Verbin <ilya.verbin@intel.com>
2522 Kirill Yukhin <kirill.yukhin@intel.com>
2523 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2524
2525 * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
2526
2527 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2528 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2529 Anna Tikhonova <anna.tikhonova@intel.com>
2530 Ilya Tocar <ilya.tocar@intel.com>
2531 Andrey Turetskiy <andrey.turetskiy@intel.com>
2532 Ilya Verbin <ilya.verbin@intel.com>
2533 Kirill Yukhin <kirill.yukhin@intel.com>
2534 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2535
2536 * config/i386/sse.md
2537 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
2538 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
2539
2540 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2541 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2542 Anna Tikhonova <anna.tikhonova@intel.com>
2543 Ilya Tocar <ilya.tocar@intel.com>
2544 Andrey Turetskiy <andrey.turetskiy@intel.com>
2545 Ilya Verbin <ilya.verbin@intel.com>
2546 Kirill Yukhin <kirill.yukhin@intel.com>
2547 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2548
2549 * config/i386/sse.md
2550 (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
2551 (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
2552
2553 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2554 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2555 Anna Tikhonova <anna.tikhonova@intel.com>
2556 Ilya Tocar <ilya.tocar@intel.com>
2557 Andrey Turetskiy <andrey.turetskiy@intel.com>
2558 Ilya Verbin <ilya.verbin@intel.com>
2559 Kirill Yukhin <kirill.yukhin@intel.com>
2560 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2561
2562 * config/i386/sse.md
2563 (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
2564 (define_mode_iterator VI2_AVX2): Add V32HI mode.
2565 (define_expand "mul<mode>3<mask_name>"): Add masking.
2566 (define_insn "*mul<mode>3<mask_name>"): Ditto.
2567 (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
2568 (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
2569 (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
2570 (define_mode_attr SDOT_PMADD_SUF): Ditto.
2571 (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
2572 (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
2573 (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
2574 (define_insn "avx2_packusdw"): Delete.
2575 (define_insn "sse4_1_packusdw"): Ditto.
2576 (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
2577
2578 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2579 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2580 Anna Tikhonova <anna.tikhonova@intel.com>
2581 Ilya Tocar <ilya.tocar@intel.com>
2582 Andrey Turetskiy <andrey.turetskiy@intel.com>
2583 Ilya Verbin <ilya.verbin@intel.com>
2584 Kirill Yukhin <kirill.yukhin@intel.com>
2585 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2586
2587 * config/i386/sse.md
2588 (define_insn "vec_dup<mode>"): Update constraints.
2589
2590 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2591 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2592 Anna Tikhonova <anna.tikhonova@intel.com>
2593 Ilya Tocar <ilya.tocar@intel.com>
2594 Andrey Turetskiy <andrey.turetskiy@intel.com>
2595 Ilya Verbin <ilya.verbin@intel.com>
2596 Kirill Yukhin <kirill.yukhin@intel.com>
2597 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2598
2599 * config/i386/sse.md
2600 (define_mode_iterator SSESCALARMODE): Add V4TI mode.
2601 (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
2602 (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
2603
2604 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2605 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2606 Anna Tikhonova <anna.tikhonova@intel.com>
2607 Ilya Tocar <ilya.tocar@intel.com>
2608 Andrey Turetskiy <andrey.turetskiy@intel.com>
2609 Ilya Verbin <ilya.verbin@intel.com>
2610 Kirill Yukhin <kirill.yukhin@intel.com>
2611 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2612
2613 * config/i386/sse.md
2614 (define_expand "mul<mode>3<mask_name>"): Add masking.
2615
2616 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2617 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2618 Anna Tikhonova <anna.tikhonova@intel.com>
2619 Ilya Tocar <ilya.tocar@intel.com>
2620 Andrey Turetskiy <andrey.turetskiy@intel.com>
2621 Ilya Verbin <ilya.verbin@intel.com>
2622 Kirill Yukhin <kirill.yukhin@intel.com>
2623 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2624
2625 * config/i386/sse.md
2626 (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
2627 (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
2628
2629 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2630 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2631 Anna Tikhonova <anna.tikhonova@intel.com>
2632 Ilya Tocar <ilya.tocar@intel.com>
2633 Andrey Turetskiy <andrey.turetskiy@intel.com>
2634 Ilya Verbin <ilya.verbin@intel.com>
2635 Kirill Yukhin <kirill.yukhin@intel.com>
2636 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2637
2638 * config/i386/sse.md
2639 (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
2640 (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
2641 (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
2642 Ditto.
2643
2644 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2645 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2646 Anna Tikhonova <anna.tikhonova@intel.com>
2647 Ilya Tocar <ilya.tocar@intel.com>
2648 Andrey Turetskiy <andrey.turetskiy@intel.com>
2649 Ilya Verbin <ilya.verbin@intel.com>
2650 Kirill Yukhin <kirill.yukhin@intel.com>
2651 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2652
2653 * config/i386/sse.md
2654 (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
2655 use VF_128_256 mode iterator and update assembler emit code.
2656 (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
2657 (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
2658 Add masking, use VF_128_256 mode iterator.
2659 (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
2660 (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
2661 Add masking, use VF_128_256 mode iterator and update assembler emit
2662 code.
2663 (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
2664 (define_mode_attr avx512flogicsuff): Delete.
2665 (define_insn "avx512f_<logic><mode>"): Ditto.
2666 (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
2667 MODE_TI.
2668 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
2669
2670 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2671 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2672 Anna Tikhonova <anna.tikhonova@intel.com>
2673 Ilya Tocar <ilya.tocar@intel.com>
2674 Andrey Turetskiy <andrey.turetskiy@intel.com>
2675 Ilya Verbin <ilya.verbin@intel.com>
2676 Kirill Yukhin <kirill.yukhin@intel.com>
2677 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2678
2679 * config/i386/sse.md
2680 (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
2681 (define_expand "vashr<mode>3<mask_name>"): Add masking,
2682 use VI12_128 mode iterator.
2683 (define_expand "ashrv2di3<mask_name>"): New.
2684
2685 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2686 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2687 Anna Tikhonova <anna.tikhonova@intel.com>
2688 Ilya Tocar <ilya.tocar@intel.com>
2689 Andrey Turetskiy <andrey.turetskiy@intel.com>
2690 Ilya Verbin <ilya.verbin@intel.com>
2691 Kirill Yukhin <kirill.yukhin@intel.com>
2692 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2693
2694 * config/i386/i386.c
2695 (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
2696 CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
2697 CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
2698 CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
2699 CODE_FOR_avx512vl_ucmpv4si3_mask.
2700 * config/i386/sse.md
2701 (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
2702 "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
2703 (define_insn
2704 "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
2705 (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
2706 (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
2707 (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
2708 (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
2709 (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
2710
2711 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2712 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2713 Anna Tikhonova <anna.tikhonova@intel.com>
2714 Ilya Tocar <ilya.tocar@intel.com>
2715 Andrey Turetskiy <andrey.turetskiy@intel.com>
2716 Ilya Verbin <ilya.verbin@intel.com>
2717 Kirill Yukhin <kirill.yukhin@intel.com>
2718 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2719
2720 * config/i386/sse.md
2721 (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
2722 (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
2723 (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
2724 (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
2725 (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
2726 (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
2727 (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2728 (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2729 (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
2730
2731 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2732 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2733 Anna Tikhonova <anna.tikhonova@intel.com>
2734 Ilya Tocar <ilya.tocar@intel.com>
2735 Andrey Turetskiy <andrey.turetskiy@intel.com>
2736 Ilya Verbin <ilya.verbin@intel.com>
2737 Kirill Yukhin <kirill.yukhin@intel.com>
2738 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2739
2740 * config/i386/sse.md
2741 (define_insn "avx512f_blendm<mode>"): Delete.
2742 (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
2743 (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
2744 (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
2745 V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
2746 (define_insn
2747 "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2748 Remove.
2749 (define_insn
2750 "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2751 New.
2752 (define_insn
2753 "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2754 Ditto.
2755 (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
2756 (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
2757 (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
2758 (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
2759 Delete.
2760 (define_insn
2761 "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
2762 New.
2763 (define_insn
2764 "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
2765 Ditto.
2766 (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
2767 Delete.
2768 (define_insn
2769 "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
2770 New.
2771 (define_insn
2772 "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
2773 Ditto.
2774
2775 2014-10-14 Richard Biener <rguenther@suse.de>
2776
2777 PR tree-optimization/63512
2778 * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
2779 modified.
2780
2781 2014-10-14 Oleg Endo <olegendo@gcc.gnu.org>
2782
2783 PR target/63260
2784 * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
2785 abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute. Remove use
2786 of FPSCR.
2787 (negsf2_i): Rename to *negsf2_i.
2788 (abssf2_i): Rename to *abssf2_i.
2789 (negdf2_i): Rename to *negdf2_i.
2790 (absdf2_i): Rename to *absdf2_i.
2791
2792 2014-10-14 Felix Yang <felix.yang@huawei.com>
2793 Jeff Law <law@redhat.com>
2794
2795 * ira.c (struct equivalence): Change member "is_arg_equivalence" and
2796 "replace" into boolean bitfields; turn member "loop_depth" into a short
2797 integer; add new member "no_equiv" and "reserved".
2798 (no_equiv): Set no_equiv of struct equivalence if register is marked
2799 as having no known equivalence.
2800 (update_equiv_regs): Check all definitions for a multiple-set
2801 register to make sure that the RHS have the same value.
2802
2803 2014-10-13 Richard Henderson <rth@redhat.com>
2804
2805 * combine-stack-adj.c (no_unhandled_cfa): New.
2806 (maybe_merge_cfa_adjust): New.
2807 (combine_stack_adjustments_for_block): Use them.
2808
2809 2014-10-13 Aldy Hernandez <aldyh@redhat.com>
2810
2811 * Makefile.in (TAGS): Tag ../include files.
2812
2813 2014-10-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2814
2815 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
2816 to rs6000_dbx_register_number.
2817 (DWARF_FRAME_REGNUM): Redefine as identity map.
2818 (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
2819 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
2820 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
2821 argument to handle .debug_frame and .eh_frame directly. Always
2822 translate SPE high register numbers. Add special treatment for CR,
2823 but only in .debug_frame. Respect RS6000_USE_DWARF_NUMBERING.
2824
2825 * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
2826 * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
2827 (RS6000_USE_DWARF_NUMBERING): Define.
2828 * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
2829 (RS6000_USE_DWARF_NUMBERING): Define.
2830 * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
2831 (RS6000_USE_DWARF_NUMBERING): Define.
2832 * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
2833 (RS6000_USE_DWARF_NUMBERING): Define.
2834 * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
2835 * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
2836
2837 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
2838
2839 * config/i386/i386.c (ix86_address_cost): Lower cost for
2840 when address contains GOT register.
2841
2842 2014-10-13 Ilya Enkovich <ilya.enkovich@intel.com>
2843 Vladimir Makarov <vmakarov@redhat.com>
2844
2845 PR target/8340
2846 PR middle-end/47602
2847 PR rtl-optimization/55458
2848 * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
2849 (ix86_init_pic_reg): New.
2850 (ix86_select_alt_pic_regnum): Add check on pseudo register.
2851 (ix86_save_reg): Likewise.
2852 (ix86_expand_prologue): Remove PIC register initialization
2853 now performed in ix86_init_pic_reg.
2854 (ix86_output_function_epilogue): Add check on pseudo register.
2855 (set_pic_reg_ever_alive): New.
2856 (legitimize_pic_address): Replace df_set_regs_ever_live with new
2857 set_pic_reg_ever_alive.
2858 (legitimize_tls_address): Likewise.
2859 (ix86_pic_register_p): New check.
2860 (ix86_delegitimize_address): Add check on pseudo register.
2861 (ix86_expand_call): Insert move from pseudo PIC register to ABI
2862 defined REAL_PIC_OFFSET_TABLE_REGNUM.
2863 (TARGET_INIT_PIC_REG): New.
2864 (TARGET_USE_PSEUDO_PIC_REG): New.
2865 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
2866 if pic_offset_table_rtx exists.
2867 * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
2868 Document.
2869 * doc/tm.texi: Regenerate.
2870 * function.c (assign_parms): Generate pseudo register for PIC.
2871 * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
2872 register.
2873 * ira-color.c (color_pass): Add check on pseudo register.
2874 * ira-emit.c (change_loop): Don't create copies for PIC pseudo
2875 register.
2876 * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
2877 register.
2878 (ira): Add target specific PIC register initialization.
2879 (do_reload): Keep PIC pseudo register.
2880 * lra-assigns.c (spill_for): Add checks on pseudo register.
2881 * lra-constraints.c (contains_symbol_ref_p): New.
2882 (lra_constraints): Enable lra risky transformations when PIC is pseudo
2883 register.
2884 * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
2885 * target.def (use_pseudo_pic_reg): New.
2886 (init_pic_reg): New.
2887
2888 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
2889
2890 * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
2891 Remove m_SILVERMONT and m_INTEL from the tune.
2892
2893 2014-10-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2894
2895 PR libfortran/63471
2896 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
2897 when _HPUX_SOURCE is defined.
2898
2899 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
2900
2901 PR tree-optimization/62127
2902 * tree.c (remap_type_1): When remapping array, remap
2903 also its type.
2904
2905 2014-10-13 Christophe Lyon <christophe.lyon@linaro.org>
2906
2907 * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
2908 longer impact parallelization.
2909
2910 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
2911
2912 PR bootstrap/63496
2913 * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
2914
2915 2014-10-13 Marat Zakirov <m.zakirov@samsung.com>
2916
2917 * asan.c (instrument_derefs): BIT_FIELD_REF added.
2918
2919 2014-10-13 Richard Biener <rguenther@suse.de>
2920
2921 PR tree-optimization/63419
2922 * gimple-fold.h (gimple_convert): New function.
2923 * gimple-fold.c (gimple_convert): Likewise.
2924 * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
2925 to split out required conversions early.
2926
2927 2014-10-13 Richard Sandiford <richard.sandiford@arm.com>
2928
2929 * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
2930 Add the parts of an insn in reverse order, with the pattern at
2931 the top of the queue. Detect when we're iterating over a SEQUENCE
2932 pattern and in that case just consider patterns of subinstructions.
2933
2934 2014-10-12 Oleg Endo <olegendo@gcc.gnu.org>
2935
2936 PR target/59401
2937 * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
2938 of rtx.
2939 * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
2940 insn walking.
2941 (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
2942 address. Use def chains to handle GBR clobbering call insns.
2943
2944 2014-10-12 Trevor Saunders <tsaunders@mozilla.com>
2945
2946 * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
2947 config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
2948 config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
2949 function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
2950 output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
2951 tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
2952 * doc/gty.texi (for_user): Document new option.
2953 * gengtype.c (create_user_defined_type): Don't try to get a struct for
2954 char.
2955 (walk_type): Don't error out on for_user option.
2956 (write_func_for_structure): Emit user marking routines if requested by
2957 for_user option.
2958 (write_local_func_for_structure): Likewise.
2959 (main): Mark types with for_user option as used.
2960 * ggc.h (gt_pch_nx): Add overload for unsigned int.
2961 * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
2962 * hash-table.h (ggc_hasher): New struct.
2963 (hash_table::create_ggc): New function.
2964 (gt_pch_nx): New overload for hash_table.
2965
2966 2014-10-11 Oleg Endo <olegendo@gcc.gnu.org>
2967
2968 * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
2969 * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
2970 * config/sh/sh.c: Likewise.
2971 * config/sh/sh-mem.cc: Likewise.
2972 * config/sh/sh.md: Likewise.
2973 * config/sh/predicates.md: Likewise.
2974 * config/sh/sync.md: Likewise.
2975
2976 2014-10-11 Martin Liska <mliska@suse.cz>
2977
2978 PR middle-end/63376
2979 * cgraphunit.c (symbol_table::process_new_functions): Missing call
2980 for call_cgraph_insertion_hooks added.
2981
2982 2014-10-10 Jakub Jelinek <jakub@redhat.com>
2983
2984 PR c/63495
2985 * stor-layout.c (min_align_of_type): Don't decrease alignment
2986 through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
2987 TYPE_USER_ALIGN is set.
2988
2989 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
2990
2991 PR rtl-optimization/63483
2992 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
2993 references when alignment ANDs are involved.
2994 (write_dependence_p): Ditto.
2995 (may_alias_p): Ditto.
2996
2997 2014-10-10 Marek Polacek <polacek@redhat.com>
2998
2999 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
3000 * doc/invoke.texi: Document -fsanitize=object-size.
3001 * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
3002 or it into SANITIZE_UNDEFINED.
3003 * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
3004 * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
3005 * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
3006 * opts.c (common_handle_option): Handle -fsanitize=object-size.
3007 * ubsan.c: Include tree-object-size.h.
3008 (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
3009 (ubsan_expand_bounds_ifn): Use false instead of 0.
3010 (ubsan_expand_objsize_ifn): New function.
3011 (instrument_object_size): New function.
3012 (pass_ubsan::execute): Add object size instrumentation.
3013 * ubsan.h (ubsan_expand_objsize_ifn): Declare.
3014
3015 2014-10-10 Richard Henderson <rth@redhat.com>
3016
3017 PR target/63404
3018 * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
3019 Restrict the set of expressions we're willing to move.
3020
3021 2014-10-10 Jeff Law <law@redhat.com>
3022
3023 * ira.c (struct equivalence): Promote INIT_INSNs field to
3024 an rtx_insn_list. Add comments.
3025 (no_equiv): Promote LIST to an rtx_insn_list. Update
3026 testing for and creating the special marker. Use methods
3027 to extract the insn and next pointers. Promote INSN to an
3028 rtx_insn.
3029 (update_equiv_regs): Update test for special marker in the
3030 INIT_INSNs list.
3031
3032 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3033
3034 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
3035 * configure: Regenerate.
3036 * config/aarch64/aarch64.c (aarch64_override_options): Handle
3037 TARGET_FIX_ERR_A53_835769_DEFAULT.
3038 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
3039 value to 2.
3040 * doc/install.texi (aarch64*-*-*): Document
3041 new --enable-fix-cortex-a53-835769 option.
3042
3043 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3044 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3045
3046 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
3047 (ADJUST_INSN_LENGTH): Define.
3048 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
3049 * config/aarch64/aarch64.c (is_mem_p): New function.
3050 (is_memory_op): Likewise.
3051 (aarch64_prev_real_insn): Likewise.
3052 (is_madd_op): Likewise.
3053 (dep_between_memop_and_curr): Likewise.
3054 (aarch64_madd_needs_nop): Likewise.
3055 (aarch64_final_prescan_insn): Likewise.
3056 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
3057 and -mno-fix-cortex-a53-835769 options.
3058
3059 2014-10-10 Jakub Jelinek <jakub@redhat.com>
3060
3061 PR tree-optimization/63464
3062 * tree-switch-conversion.c (struct case_bit_test): Remove
3063 hi and lo fields, add wide_int mask field.
3064 (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
3065 hi/lo fields into wide_int mask operations, optimize by pretending
3066 minval to be 0 if maxval is small enough.
3067 (process_switch): Adjust caller.
3068
3069 2014-10-10 Richard Biener <rguenther@suse.de>
3070
3071 PR tree-optimization/63379
3072 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
3073 a neutral operand for min/max when it is not a reduction chain.
3074
3075 2014-10-10 Richard Biener <rguenther@suse.de>
3076
3077 PR tree-optimization/63476
3078 * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
3079 (BB_LIVE_VOP_ON_EXIT): New define.
3080 (create_expression_by_pieces): Assign VUSEs to stmts.
3081 (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
3082 (pass_pre::execute): Assert virtual SSA form is up-to-date
3083 after insertion.
3084
3085 2014-10-10 Eric Botcazou <ebotcazou@adacore.com>
3086
3087 * lra-assigns.c (assign_by_spills): Error out on spill failure.
3088
3089 2014-10-09 Markus Trippelsdorf <markus@trippelsdorf.de>
3090
3091 * pa-polymorphic-call.c (check_stmt_for_type_change): Move
3092 assertion.
3093
3094 2014-10-09 Richard Biener <rguenther@suse.de>
3095
3096 PR tree-optimization/63380
3097 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
3098 may trap.
3099
3100 2014-10-09 Joern Rennecke <joern.rennecke@embecosm.com>
3101
3102 * config/avr/avr.opt (mmcu=): Change to have a string value.
3103 (mn-flash=, mskip-bug, march=, mrmw): New options.
3104 (HeaderInclude): New.
3105 (mmcu=): Remove Var / Init clauses.
3106 * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
3107 -specs option.
3108 (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
3109 (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
3110 (SYMBOL_FLAG_IO_LOW): Define.
3111 (avr_device_to_as, avr_device_to_ld): Don't declare.
3112 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3113 (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
3114 (EXTRA_SPEC_FUNCTIONS): Don't define.
3115 (ASM_SPEC): Translate -arch= option to -mmcu= option.
3116 (LINK_SPEC): Translate -arch= option to -m= option.
3117 Don't use device_to_ld / device_to_data_start.
3118 (STARTFILE_SPEC): Now empty.
3119 (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
3120 * config/avr/gen-avr-mmcu-specs.c: New file.
3121 * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
3122 (s-device-specs): Likewise.
3123 (GCC_PASSES): Add s-device-specs.
3124 (install-driver): Depend on install-device-specs.
3125 (install-device-specs): New rule.
3126 * config/avr/avr.c (avr_option_override): Look up mcu arch by
3127 avr_arch_index and provide fallback initialization for avr_n_flash.
3128 (varasm.h): #include.
3129 (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
3130 (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
3131 (avr_attribute_table): Add "io", "address" and "io_low".
3132 (avr_asm_output_aligned_decl_common): Change type of decl to tree.
3133 Add special handling for symbols with "io" and/or "address" attributes.
3134 (avr_asm_asm_output_aligned_bss): New function.
3135 (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
3136 as appropriate. Handle io_low attribute.
3137 (avr_out_sbxx_branch): Handle symbolic io addresses.
3138 (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
3139 avr_n_flash instead of avr_current_device->n_flash.
3140 (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
3141 (avr_emit_movmemhi): Likewise.
3142 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
3143 Use TARGET_RMW instead of avr_current_device->dev_attributes.
3144 Don't define avr_current_device->macro (that's the specfile's job).
3145 Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
3146 * config/avr/avr.c (avr_2word_insn_p): Likewise.
3147 * config/avr/avr.md (*cpse.ne): Likewise.
3148 (mov<mode>): Use avr_eval_addr_attrib.
3149 (cbi): Change constraint for low_io_address_operand operand to "i".
3150 (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
3151 * config/avr/predicates.md (io_address_operand):
3152 Allow SYMBOL_REF with SYMBOL_FLAG_IO.
3153 (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
3154 * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
3155 Update prototype.
3156 (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
3157 * config/avr/genmultilib.awk: Use -march=.
3158 Remove Multilib matches processing.
3159 * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
3160 * config/avr/avr-arch.h: Add double include guard.
3161 (avr_mcu_t) <library_name>: Update comment.
3162 * config/avr/driver-avr.c (avr_device_to_as): Delete.
3163 (avr_device_to_ld, avr_device_to_data_start): Likewise.
3164 (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
3165 (avr_device_to_sp8): Likewise.
3166 * config/avr/genopt.sh: Instead avr_mcu, emit an Enum for avr_arch.
3167
3168 * doc/extend.texi (io, address): Document new AVR variable attributes.
3169 (io_low): Likewise.
3170
3171 2014-10-09 Marek Polacek <polacek@redhat.com>
3172
3173 * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
3174
3175 2014-10-08 Richard Biener <rguenther@suse.de>
3176
3177 PR tree-optimization/61969
3178 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
3179 variables.
3180
3181 2014-10-09 Richard Biener <rguenther@suse.de>
3182
3183 PR tree-optimization/63445
3184 * tree-vrp.c (simplify_cond_using_ranges): Only warn about
3185 overflow for non-equality compares.
3186
3187 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
3188
3189 PR rtl-optimization/57003
3190 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
3191 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
3192 killing regs_invalidated_by_call.
3193
3194 2014-10-08 Teresa Johnson <tejohnson@google.com>
3195
3196 PR bootstrap/63432.
3197 * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
3198 (ssa_fix_duplicate_block_edges): Invoke it.
3199 (mark_threaded_blocks): Make two passes to avoid ordering dependences.
3200
3201 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
3202
3203 PR target/52941
3204 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
3205 atomic_fetch_<fetchop_name>si_hard,
3206 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
3207 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
3208 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
3209 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
3210
3211 2014-10-08 Rong Xu <xur@google.com>
3212
3213 * gcov-tool.c (profile_overlap): New driver function
3214 to compute profile overlap.
3215 (print_overlap_usage_message): New.
3216 (overlap_usage): New.
3217 (do_overlap): New.
3218 (print_usage): Add calls to overlap function.
3219 (main): Ditto.
3220 * doc/gcov-tool.texi: Add documentation.
3221
3222 2014-10-08 Steve Ellcey <sellcey@mips.com>
3223
3224 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
3225 LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
3226
3227 2014-10-08 Jan Hubicka <hubicka@ucw.cz>
3228
3229 * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
3230 pattern matching of MEM_REF.
3231 (check_stmt_for_type_change): Update.
3232
3233 2014-10-08 Steve Ellcey <sellcey@mips.com>
3234
3235 * config/mips/linux64.h: Remove.
3236 * config/mips/gnu-user64.h: Remove.
3237 * gcc.config (mips*-*-*): Remove references to linux64.h and
3238 gnu-user64.h
3239 * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
3240 with modified version from gnu-user64.h.
3241 (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
3242 (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
3243 * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
3244 linux64.h.
3245 (GNU_USER_LINK_EMULATION64): Ditto.
3246 (GNU_USER_LINK_EMULATIONN32): Ditto.
3247 (GLIBC_DYNAMIC_LINKER32): Ditto.
3248 (GLIBC_DYNAMIC_LINKER64): Ditto.
3249 (GLIBC_DYNAMIC_LINKERN32): Ditto.
3250 (UCLIBC_DYNAMIC_LINKER32): Ditto.
3251 (UCLIBC_DYNAMIC_LINKER64): Ditto.
3252 (UCLIBC_DYNAMIC_LINKERN32): Ditto.
3253 (BIONIC_DYNAMIC_LINKERN32): Ditto.
3254 (GNU_USER_DYNAMIC_LINKERN32): Ditto.
3255 (GLIBC_DYNAMIC_LINKER): Delete.
3256 (UCLIBC_DYNAMIC_LINKER): Delete.
3257
3258 2014-10-08 Joern Rennecke <joern.rennecke@embecosm.com>
3259 Richard Biener <rguenther@suse.de>
3260
3261 * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
3262 Get address space from operand 0 (BASE).
3263
3264 2014-10-07 Iain Sandoe <iain@codesourcery.com>
3265
3266 PR target/61387
3267 * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
3268
3269 2014-10-07 Aldy Hernandez <aldyh@redhat.com>
3270
3271 * dwarf2out.c: Remove current_function_has_inlines.
3272 (gen_subprogram_die): Same.
3273 (gen_inlined_subroutine_die): Same.
3274
3275 2014-10-07 Ilya Tocar <ilya.tocar@intel.com>
3276
3277 * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
3278 type.
3279 (_addcarry_u64): Ditto.
3280 (_addcarryx_u64): Ditto.
3281
3282 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
3283
3284 * cgraph.h (cgraph_node::get_fun): Declare.
3285 * cgraph.c (cgraph_node::get_fun): New method.
3286 * ipa-inline.c (can_inline_edge_p): Use it.
3287
3288 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
3289
3290 * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
3291 and -ftrapping-math.
3292 * lto-wrapper.c (merge_and_complain): Likewise.
3293 (run_gcc): Likewise.
3294
3295 2014-10-06 Rong Xu <xur@google.com>
3296
3297 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
3298 * tree-profile.c: (params.h): New include.
3299 (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
3300 and __gcov_indirect_call_topn_counters for
3301 indirect_call_topn_profile.
3302 (gimple_init_edge_profiler): New decls for
3303 __gcov_indirect_call_topn_profiler.
3304 (gimple_gen_ic_profiler): Generate the correct profiler call.
3305 (gimple_gen_ic_func_profiler): Fix format.
3306 * value-prof.c (params.h): New include.
3307 (dump_histogram_value): Hanlde indirect_call_topn counters.
3308 (stream_in_histogram_value): Ditto.
3309 (gimple_indirect_call_to_profile): Use indirect_call_topn
3310 profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
3311 (gimple_find_values_to_profile): Hanlde indirect_call_topn
3312 counters.
3313 * value-prof.h (enum hist_type): Histrogram type for
3314 indirect_call_topn counters.
3315 * profile.c (instrument_values): Instrument
3316 indirect_call_topn counters.
3317
3318 2014-10-06 Rong Xu <xur@google.com>
3319
3320 * Makefile.in: Fix dependence.
3321 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
3322 indirect call topn profiler.
3323 * gcov-io.h: Ditto.
3324
3325 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
3326
3327 * calls.c (expand_call): Do not use the target as the return slot if
3328 it is not sufficiently aligned.
3329
3330 2014-10-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3331
3332 * config/rs6000/rs6000.c (analyze_swaps commentary): Add
3333 discussion of permutes and why we don't handle them.
3334
3335 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
3336
3337 * config/sparc/predicates.md (int_register_operand): Delete.
3338
3339 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
3340
3341 * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
3342
3343 2014-10-06 Jakub Jelinek <jakub@redhat.com>
3344
3345 * ubsan.h (ubsan_get_source_location): New prototype.
3346 * ubsan.c (ubsan_source_location_type): New variable.
3347 Function renamed to ...
3348 (ubsan_get_source_location_type): ... this. Cache
3349 return value in ubsan_source_location_type variable.
3350 (ubsan_source_location, ubsan_create_data): Use
3351 ubsan_get_source_location_type instead of
3352 ubsan_source_location_type.
3353 * asan.c (asan_protect_global): Don't protect globals
3354 with ubsan_get_source_location_type () type.
3355 (asan_add_global): Provide global decl location info
3356 if possible.
3357
3358 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
3359
3360 * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
3361 sanity check.
3362
3363 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
3364
3365 * ipa-polymorphic-call.c (possible_placement_new): Fix condition
3366 on size.
3367 (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
3368 into vptr pointer.
3369 (ipa_polymorphic_call_context::dump): Fix formating.
3370 (walk_ssa_copies): Add logic avoiding loops; update uses.
3371 * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
3372
3373 2014-10-02 Mark Wielaard <mjw@redhat.com>
3374
3375 PR debug/63239
3376 * dwarf2out.c (gen_subprogram_die): When a member function is
3377 explicitly deleted then add a DW_AT_GNU_deleted attribute.
3378 * langhooks.h (struct lang_hooks_for_decls): Add
3379 function_decl_deleted_p langhook.
3380 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
3381 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
3382
3383 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
3384
3385 * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
3386 NULL pointer checks.
3387 (ipa_polymorphic_call_context::get_dynamic_type): Return true
3388 if type doesn't change.
3389 * cgraph.h (cgraph_indirect_call_info): New flag.
3390 * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
3391 (cgraph_node::dump): Dump it.
3392 * ipa-prop.c (ipa_analyze_call_uses): Ignore return valud
3393 of context.get_dynamic_type.
3394 (ipa_make_edge_direct_to_target): Do not speculate
3395 edge that is already speuclative.
3396 (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
3397 speculate to __builtin_unreachable
3398 (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
3399 vptr_changed.
3400 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
3401
3402 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
3403
3404 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
3405 get_dynamic_type; drop TODO.
3406 * ipa-polymorphic-call.c
3407 (ipa_polymorphic_call_context::get_dynamic_type): Be ready
3408 for otr_type to be unknown.
3409
3410 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
3411
3412 * common/config/score/score-common.c: Remove.
3413 * config.gcc: Remove support for score-*.
3414 * config/score/constraints.md: Remove.
3415 * config/score/elf.h: Remove.
3416 * config/score/predicates.md: Remove.
3417 * config/score/score-conv.h: Remove.
3418 * config/score/score-generic.md: Remove.
3419 * config/score/score-modes.def: Remove.
3420 * config/score/score-protos.h: Remove.
3421 * config/score/score.c: Remove.
3422 * config/score/score.h: Remove.
3423 * config/score/score.md: Remove.
3424 * config/score/score.opt: Remove.
3425 * doc/md.texi: Don't document score-*.
3426
3427 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
3428
3429 PR pch/63429
3430 * genconditions.c: Directly include ggc.h before rtl.h.
3431
3432 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
3433
3434 * ipa-polymorphic-call.c
3435 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
3436 code determining speculative type.
3437 (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
3438
3439 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3440
3441 * altivec.md (altivec_lvsl): New define_expand.
3442 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
3443 (altivec_lvsr): New define_expand.
3444 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
3445 * rs6000.c (rs6000_expand_builtin): Change to use
3446 altivec_lvs[lr]_direct; remove commented-out code.
3447
3448 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3449
3450 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3451 Issue a warning message when vec_lvsl or vec_lvsr is used with a
3452 little endian target.
3453
3454 2014-10-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
3455
3456 * tree-pretty-print.c (dump_location): Make it extern. Dump also
3457 the column.
3458 * tree-pretty-print.h (dump_location): Declare.
3459 * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
3460 (pp_gimple_stmt_1): Likewise.
3461 (dump_implicit_edges): Likewise.
3462 * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
3463 LOCATION_LINE.
3464
3465
3466 2014-10-03 David Malcolm <dmalcolm@redhat.com>
3467
3468 * gcc.c (driver::global_initializations): Remove "const" so
3469 that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
3470 and decoded_options_count.
3471
3472 2014-10-03 Maciej W. Rozycki <macro@codesourcery.com>
3473
3474 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
3475 macro.
3476 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
3477 TARGET_E500_DOUBLE case here.
3478
3479 2014-10-03 Marc Glisse <marc.glisse@inria.fr>
3480
3481 PR c++/54427
3482 PR c++/57198
3483 PR c++/58845
3484 * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
3485
3486 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
3487
3488 * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
3489 * lto-cgraph.c (lto_output_edge, input_edge): Stream
3490 in_polymorphic_cdtor
3491 * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
3492 (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
3493 * cgraphclones.c (cgraph_edge::clone): Likewise.
3494 * ipa-prop.c (update_jump_functions_after_inlining,
3495 try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
3496 to possible_dynamic_type_change.
3497 (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
3498 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
3499 IN_POLY_CDOTR argument.
3500
3501 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
3502 for BASE and OUTER_TYPE being NULL.
3503 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
3504 in_poly_cdtor parameter.
3505
3506 2014-10-03 Jakub Jelinek <jakub@redhat.com>
3507
3508 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
3509 (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
3510 TARGET_AVX512F.
3511 (expand_vec_perm_1): Likewise.
3512
3513 2014-10-03 Jakub Jelinek <jakub@redhat.com>
3514 Uros Bizjak <ubizjak@gmail.com>
3515
3516 PR tree-optimization/61403
3517 * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
3518 error in comment. Also optimize 256-bit vectors for AVX2
3519 or AVX (floating vectors only), provided the first permutation
3520 can be performed in one insn.
3521
3522 2014-10-03 David Malcolm <dmalcolm@redhat.com>
3523
3524 * gcc.c (class driver): New class.
3525 (main): Reimplement in terms of driver::main, moving most of the
3526 locals to be locals within individual methods of class driver.
3527 The remaining locals "explicit_link_files", "decoded_options" and
3528 "decoded_options_count" are used by multiple driver:: methods, and
3529 so become member data. Doing so isolates the argc/argv reads and
3530 writes. Replace "goto out" with a special exit code from
3531 new method driver::prepare_infiles. Split out the old
3532 implementation of main into the following...
3533 (driver::main): New function, corresponding to the old "main"
3534 implementation.
3535 (driver::set_progname): New function, taken from the old
3536 "main" implementation.
3537 (driver::expand_at_files): Likewise.
3538 (driver::decode_argv): Likewise.
3539 (driver::global_initializations): Likewise.
3540 (driver::build_multilib_strings): Likewise.
3541 (driver::set_up_specs): Likewise.
3542 (driver::putenv_COLLECT_GCC): Likewise.
3543 (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
3544 (driver::handle_unrecognized_options): Likewise.
3545 (driver::maybe_print_and_exit): Likewise.
3546 (driver::prepare_infiles): Likewise.
3547 (driver::do_spec_on_infiles): Likewise.
3548 (driver::maybe_run_linker): Likewise.
3549 (driver::final_actions): Likewise.
3550 (driver::get_exit_code): Likewise.
3551
3552 2014-10-03 Yury Gribov <y.gribov@samsung.com>
3553
3554 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
3555 don't emit empty ctors.
3556
3557 2014-10-03 Eric Botcazou <ebotcazou@adacore.com>
3558
3559 * convert.c (convert_to_integer): Do not introduce useless conversions
3560 between integral types.
3561
3562 2014-10-03 David Sherwood <david.sherwood@arm.com>
3563
3564 * ira-int.h (ira_allocno): Mark hard_regno as signed.
3565
3566 2014-10-03 Ilya Enkovich <ilya.enkovich@intel.com>
3567
3568 * lra-constraints.c (inherit_in_ebb): Handle calls with
3569 multiple return values.
3570 * caller-save.c (save_call_clobbered_regs): Likewise.
3571
3572 2014-10-03 Jakub Jelinek <jakub@redhat.com>
3573
3574 * tree-vect-data-refs.c (vect_permute_load_chain,
3575 vect_shift_permute_load_chain): Fix a typo in temporary var names,
3576 suffle3 to shuffle3.
3577
3578 PR libgomp/61200
3579 * omp-low.c (taskreg_contexts): New variable.
3580 (scan_omp_parallel): Push newly created context into taskreg_contexts
3581 vector and move record layout code to finish_taskreg_scan.
3582 (scan_omp_task): Likewise.
3583 (finish_taskreg_scan): New function.
3584 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
3585 vector elements and release it.
3586
3587 PR target/62128
3588 * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
3589 of palignr arguments can't be used due to min 0 or max - min
3590 too high, try also op0, op1 order of palignr arguments.
3591
3592 2014-10-02 Jan Hubicka <hubicka@ucw.cz>
3593
3594 * cgraph.h (ipa_polymorphic_call_context):
3595 Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
3596 private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
3597 * ipa-polymorphic-call.c
3598 (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
3599 past end of dynamic types.
3600 (ipa_polymorphic_call_context::stream_out,
3601 speculative_outer_type): Stream dynamic flag.
3602 (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
3603 (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
3604 Clear DYNAMIC.
3605 (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
3606 set it.
3607 (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
3608 * ipa-prop.c (update_jump_functions_after_inlining,
3609 try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
3610
3611 2014-10-02 Teresa Johnson <tejohnson@google.com>
3612
3613 * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
3614 up when synthesizing counts to avoid rounding errors.
3615
3616 2014-10-02 Teresa Johnson <tejohnson@google.com>
3617
3618 PR middle-end/63422
3619 * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
3620 asserts to handle incoming insanities.
3621
3622 2014-10-02 Martin Jambor <mjambor@suse.cz>
3623
3624 PR tree-optimization/63375
3625 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
3626 references.
3627
3628 2014-10-02 Olivier Hainque <hainque@adacore.com>
3629
3630 * Makefile.in (CROSS): Define, to @CROSS.
3631
3632 2014-10-02 Jakub Jelinek <jakub@redhat.com>
3633
3634 PR target/62128
3635 * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
3636 if it expands to a single insn only.
3637 (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument. If true,
3638 fail unless in_order is true. Add forward declaration.
3639 (expand_vec_perm_vperm2f128): Fix up comment about which permutation
3640 is useful for one_operand_p.
3641 (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
3642
3643 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3644
3645 * cgraphclones.c (build_function_type_skip_args): Do not make new
3646 type variant of old.
3647
3648 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3649
3650 * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
3651 when speculation is added.
3652 (ipa_edge_args): Add polymorphic_call_contexts.
3653 (ipa_get_ith_polymorhic_call_context): New accesor.
3654 (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
3655 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
3656 (ipa_compute_jump_functions_for_edge): Compute contexts.
3657 (update_jump_functions_after_inlining): Update contexts.
3658 (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
3659 update dumping; add speculative edge creation.
3660 (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
3661 context updating.
3662 (update_indirect_edges_after_inlining): Pass down context.
3663 (ipa_edge_duplication_hook): Duplicate contexts.
3664 (ipa_write_node_info): Stream out contexts.
3665 (ipa_read_node_info): Stream in contexts.
3666 * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
3667 types.
3668 (try_speculative_devirtualization): New function.
3669 * ipa-utils.h (try_speculative_devirtualization): Declare.
3670
3671 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3672
3673 * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
3674 dumping during WPA.
3675
3676 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3677
3678 * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
3679 type variants.
3680
3681 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3682
3683 * ipa-polymorphic-call.c
3684 (ipa_polymorphic_call_context::restrict_to_inner_class):
3685 Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
3686 use speculation_consistent_p to do so; Add CONSDER_BASES
3687 and CONSIDER_PLACEMENT_NEW parameters.
3688 (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
3689 short circuit obvious cases.
3690 (ipa_polymorphic_call_context::dump): Improve formatting.
3691 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
3692 combine_speculation_with to record speculations; Do not ICE when
3693 object is located in pointer type decl; do not ICE for methods
3694 of UNION_TYPE; do not record nonpolymorphic types.
3695 (ipa_polymorphic_call_context::speculation_consistent_p): New method.
3696 (ipa_polymorphic_call_context::combine_speculation_with): New method.
3697 (ipa_polymorphic_call_context::combine_with): New method.
3698 (ipa_polymorphic_call_context::make_speculative): Move here; use
3699 combine speculation.
3700 * cgraph.h (ipa_polymorphic_call_context): Update
3701 restrict_to_inner_class prototype; add offset_by, make_speculative,
3702 combine_with, useless_p, combine_speculation_with and
3703 speculation_consistent_p methods.
3704 (ipa_polymorphic_call_context::offset_by): New method.
3705 (ipa_polymorphic_call_context::useless_p): New method.
3706
3707 2014-10-01 Segher Boessenkool <segher@kernel.crashing.org>
3708
3709 PR rtl-optimization/62151
3710 * combine.c (can_combine_p): Allow the destination register of INSN
3711 to be clobbered in I3.
3712 (subst): Do not substitute into clobbers of registers.
3713
3714 2014-10-01 Jakub Jelinek <jakub@redhat.com>
3715
3716 PR debug/63342
3717 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
3718 offset, TARGET_MEM_REF and SSA_NAME.
3719
3720 * config/i386/i386.c (expand_vec_perm_palignr): Handle
3721 256-bit vectors for TARGET_AVX2.
3722
3723 * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
3724 dfirst permutation.
3725
3726 PR target/63428
3727 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
3728 argument to avx2_permv2ti.
3729
3730 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3731
3732 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
3733
3734 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
3735
3736 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
3737 (fmod<mode>3): Ditto.
3738 (fpremxf4_i387): Ditto.
3739 (reminderxf3): Ditto.
3740 (reminder<mode>3): Ditto.
3741 (fprem1xf4_i387): Ditto.
3742
3743 2014-09-30 Teresa Johnson <tejohnson@google.com>
3744
3745 * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
3746 duplicate_blocks bitmap.
3747 (remove_ctrl_stmt_and_useless_edges): Ditto.
3748 (create_block_for_threading): Ditto.
3749 (compute_path_counts): New function.
3750 (update_profile): Ditto.
3751 (recompute_probabilities): Ditto.
3752 (update_joiner_offpath_counts): Ditto.
3753 (freqs_to_counts_path): Ditto.
3754 (clear_counts_path): Ditto.
3755 (ssa_fix_duplicate_block_edges): Update profile info.
3756 (ssa_create_duplicates): Pass new parameter.
3757 (ssa_redirect_edges): Remove old profile update.
3758 (thread_block_1): New duplicate_blocks bitmap,
3759 remove old profile update.
3760 (thread_single_edge): Pass new parameter.
3761
3762 2014-09-30 Ilya Tocar <ilya.tocar@intel.com>
3763
3764 PR middle-end/62120
3765 * varasm.c (decode_reg_name_and_count): Check availability for
3766 registers from ADDITIONAL_REGISTER_NAMES.
3767
3768 2014-09-30 David Malcolm <dmalcolm@redhat.com>
3769
3770 PR plugins/63410
3771 * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
3772 (PLUGIN_HEADERS): Add pass-instances.def.
3773
3774 2014-09-30 James Greenhalgh <james.greenhalgh@arm.com>
3775
3776 * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
3777 iterator.
3778 * config/aarch64/aarch64-simd.md
3779 (aarch64_sqdmull_laneq<mode>): Expand iterator.
3780 * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
3781 (vqdmulls_lane_s32): Fix return type.
3782 (vqdmulls_laneq_s32): New.
3783
3784 2014-09-30 Jakub Jelinek <jakub@redhat.com>
3785
3786 PR inline-asm/63282
3787 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
3788 or invert_jump_1 if jump isn't any_condjump_p.
3789
3790 2014-09-30 Terry Guo <terry.guo@arm.com>
3791
3792 * config/arm/arm-cores.def (cortex-m7): New core name.
3793 * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
3794 (fpv5-d16): Ditto.
3795 * config/arm/arm-tables.opt: Regenerated.
3796 * config/arm/arm-tune.md: Regenerated.
3797 * config/arm/arm.h (TARGET_VFP5): New macro.
3798 * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
3799 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
3800 smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
3801 * doc/invoke.texi: Document new cpu and fpu names.
3802
3803 2014-09-30 Jiong Wang <jiong.wang@arm.com>
3804
3805 * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
3806 before sinking insn.
3807
3808 2014-09-30 David Sherwood <david.sherwood@arm.com>
3809
3810 * ira-int.h (ira_allocno): Add "wmode" field.
3811 * ira-build.c (create_insn_allocnos): Add new "parent" function
3812 parameter.
3813 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
3814 that cannot be accessed in wmode.
3815
3816 2014-09-30 Markus Trippelsdorf <markus@trippelsdorf.de>
3817
3818 * data-streamer.c (bp_unpack_var_len_int): Avoid signed
3819 integer overflow.
3820
3821 2014-09-29 Andi Kleen <ak@linux.intel.com>
3822
3823 * opts.c (print_filtered_help): Print --param min/max/default
3824 with -Q.
3825
3826 2014-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
3827
3828 * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
3829
3830 2014-09-29 Eric Botcazou <ebotcazou@adacore.com>
3831
3832 * tree-vrp.c (get_single_symbol): New function.
3833 (build_symbolic_expr): Likewise.
3834 (symbolic_range_based_on_p): New predicate.
3835 (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
3836 for PLUS and MINUS. Do not drop symbolic ranges at the end.
3837 (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
3838 operand is symbolic and based on the other operand.
3839
3840 2014-09-29 Chen Gang <gang.chen.5i5j@gmail.com>
3841
3842 * config/microblaze/microblaze.md (call_internal1): Use VOID
3843 instead of SI to fix "((void (*)(void)) 0)()" issue
3844
3845 2014-09-29 Nick Clifton <nickc@redhat.com>
3846
3847 * config/msp430/msp430.c (msp430_expand_prologue): Return a
3848 CLOBBER rtx for naked functions.
3849 (msp430_expand_epilogue): Likewise.
3850 (msp430_use_f5_series_hwmult): Cache result.
3851 (use_32bit_hwmult): Cache result.
3852 (msp430_no_hwmult): New function.
3853 (msp430_output_labelref): Use it.
3854
3855 2014-09-29 Jakub Jelinek <jakub@redhat.com>
3856
3857 PR middle-end/63247
3858 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
3859 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
3860 use the alignment of avar rather than ovar.
3861
3862 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
3863
3864 * config/pa/pa.c (pa_output_function_epilogue): Only update
3865 last_address when a nonnote insn is found.
3866
3867 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
3868
3869 PR ipa/60665
3870 * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
3871
3872 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
3873
3874 PR ipa/62121
3875 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
3876 fix pasto in checking array size.
3877
3878 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
3879
3880 PR middle-end/35545
3881 * passes.def (pass_tracer): Move before last dominator pass.
3882
3883 2014-09-26 Thomas Schwinge <thomas@codesourcery.com>
3884
3885 * gcc.c (try_generate_repro): Remove argument "prog". Change all
3886 users.
3887 (run_attempt): Handle errors of "pex_run" invocation.
3888
3889 2014-09-26 Christophe Lyon <christophe.lyon@linaro.org>
3890
3891 * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
3892 (CC1_SPEC): Define.
3893 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
3894 (TARGET_ASAN_SHADOW_OFFSET): Define.
3895
3896 2014-09-26 Martin Liska <mliska@suse.cz>
3897
3898 * cgraph.c (cgraph_node::release_body): New argument keep_arguments
3899 introduced.
3900 * cgraph.h: Likewise.
3901 * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
3902 * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
3903 * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
3904 * tree-ssa-alias.h: Likewise.
3905
3906 2014-09-26 Jakub Jelinek <jakub@redhat.com>
3907 Max Ostapenko <m.ostapenko@partner.samsung.com>
3908
3909 * common.opt: New option.
3910 * doc/invoke.texi: Describe new option.
3911 * gcc.c (execute): Don't free first string early, but at the end
3912 of the function. Call retry_ice if compiler exited with
3913 ICE_EXIT_CODE.
3914 (main): Factor out common code.
3915 (print_configuration): New function.
3916 (files_equal_p): Likewise.
3917 (check_repro): Likewise.
3918 (run_attempt): Likewise.
3919 (do_report_bug): Likewise.
3920 (append_text): Likewise.
3921 (try_generate_repro): Likewise
3922
3923 2014-09-25 Andi Kleen <ak@linux.intel.com>
3924
3925 * config/i386/i386.c (x86_print_call_or_nop): New function.
3926 (x86_function_profiler): Support -mnop-mcount and
3927 -mrecord-mcount.
3928 * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
3929 * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
3930
3931 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
3932
3933 * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
3934 * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
3935 * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
3936 Remove.
3937
3938 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
3939
3940 * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
3941 type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
3942 types_odr_comparable): Declare.
3943 (polymorphic_type_binfo_p): Move here from ipa-devirt.c
3944 * ipa-polymorphic-call.c: New file.
3945 (contains_polymorphic_type_p, possible_placement_new,
3946 ipa_polymorphic_call_context::restrict_to_inner_class,
3947 contains_type_p, decl_maybe_in_construction_p,
3948 ipa_polymorphic_call_context::stream_out,
3949 ipa_polymorphic_call_context::debug,
3950 ipa_polymorphic_call_context::stream_in,
3951 ipa_polymorphic_call_context::set_by_decl,
3952 ipa_polymorphic_call_context::set_by_invariant,
3953 walk_ssa_copies,
3954 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3955 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3956 extr_type_from_vtbl_ptr_store, record_known_type
3957 check_stmt_for_type_change,
3958 ipa_polymorphic_call_context::get_dynamic_type): Move here from
3959 ipa-devirt.c
3960 * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
3961 and streamer-hooks.h
3962 (contains_polymorphic_type_p, possible_placement_new,
3963 ipa_polymorphic_call_context::restrict_to_inner_class,
3964 contains_type_p, decl_maybe_in_construction_p,
3965 ipa_polymorphic_call_context::stream_out,
3966 ipa_polymorphic_call_context::debug,
3967 ipa_polymorphic_call_context::stream_in,
3968 ipa_polymorphic_call_context::set_by_decl,
3969 ipa_polymorphic_call_context::set_by_invariant,
3970 walk_ssa_copies,
3971 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3972 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3973 extr_type_from_vtbl_ptr_store, record_known_type
3974 check_stmt_for_type_change,
3975 ipa_polymorphic_call_context::get_dynamic_type): Move to
3976 ipa-polymorphic-call.c
3977 (type_all_derivations_known_p, types_odr_comparable,
3978 types_must_be_same_for_odr): Export.
3979 (type_known_to_have_no_deriavations_p): New function.
3980 * Makefile.in: Add ipa-polymorphic-call.c
3981
3982 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
3983
3984 * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
3985 for better storage.
3986 (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
3987 (possible_polymorphic_call_targets): Instead of computing both
3988 speculative and non-speculative answers, do just one at a time.
3989 Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
3990 (dump_targets): Break out from ...
3991 (dump_possible_polymorphic_call_targets): ... here; dump both speculative
3992 and non-speculative lists.
3993 (ipa_devirt): Update for new possible_polymorphic_call_targets API.
3994 * ipa-utils.h (possible_polymorphic_call_targets): Update.
3995
3996 2014-09-25 Uros Bizjak <ubizjak@gmail.com>
3997
3998 PR rtl-optimization/63348
3999 * emit-rtl.c (try_split): Do not emit extra barrier.
4000
4001 2014-09-25 James Greenhalgh <james.greenhalgh@arm.com>
4002
4003 * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
4004 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
4005 new predicates.
4006 (aarch64_<sur>shll2_n<mode>): Likewise.
4007 (aarch64_<sur>shr_n<mode>): Likewise.
4008 (aarch64_<sur>sra_n<mode>: Likewise.
4009 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
4010 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
4011 * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
4012 * config/aarch64/iterators.md (ve_mode): New.
4013 (offsetlr): Remap to infix text for use in new predicates.
4014 * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
4015 (aarch64_simd_shift_imm_hi): Likewise.
4016 (aarch64_simd_shift_imm_si): Likewise.
4017 (aarch64_simd_shift_imm_di): Likewise.
4018 (aarch64_simd_shift_imm_offset_qi): Likewise.
4019 (aarch64_simd_shift_imm_offset_hi): Likewise.
4020 (aarch64_simd_shift_imm_offset_si): Likewise.
4021 (aarch64_simd_shift_imm_offset_di): Likewise.
4022 (aarch64_simd_shift_imm_bitsize_qi): Likewise.
4023 (aarch64_simd_shift_imm_bitsize_hi): Likewise.
4024 (aarch64_simd_shift_imm_bitsize_si): Likewise.
4025 (aarch64_simd_shift_imm_bitsize_di): Likewise.
4026
4027 2014-09-25 Jiong Wang <jiong.wang@arm.com>
4028
4029 * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
4030 new created BB as the intersection of live-in from "old_dest" and
4031 live-out from "bb".
4032
4033 2014-09-25 Felix Yang <felix.yang@huawei.com>
4034
4035 * lra.c (lra_set_insn_recog_data): Fix typo in comment.
4036 * genautomata.c (merge_states): Ditto.
4037
4038 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
4039
4040 PR target/62218
4041 * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
4042 in instruction sequence.
4043
4044 2014-09-25 Nick Clifton <nickc@redhat.com>
4045
4046 PR target/62218
4047 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
4048 in instruction sequence.
4049
4050 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4051
4052 PR target/63335
4053 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
4054 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
4055
4056 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
4057 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4058 Anna Tikhonova <anna.tikhonova@intel.com>
4059 Ilya Tocar <ilya.tocar@intel.com>
4060 Andrey Turetskiy <andrey.turetskiy@intel.com>
4061 Ilya Verbin <ilya.verbin@intel.com>
4062 Kirill Yukhin <kirill.yukhin@intel.com>
4063 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4064
4065 * config/i386/sse.md
4066 (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
4067 (define_expand "<avx2_avx512>_perm<mode>"): ... this.
4068 (define_expand "avx512f_perm<mode>_mask"): Rename to ...
4069 (define_expand "<avx512>_perm<mode>_mask"): ... this.
4070 Use VI8F_256_512 mode iterator.
4071 (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
4072 (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
4073
4074 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
4075 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4076 Anna Tikhonova <anna.tikhonova@intel.com>
4077 Ilya Tocar <ilya.tocar@intel.com>
4078 Andrey Turetskiy <andrey.turetskiy@intel.com>
4079 Ilya Verbin <ilya.verbin@intel.com>
4080 Kirill Yukhin <kirill.yukhin@intel.com>
4081 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4082
4083 * config/i386/sse.md
4084 (define_insn "avx_movshdup256<mask_name>"): Add masking.
4085 (define_insn "sse3_movshdup<mask_name>"): Ditto.
4086 (define_insn "avx_movsldup256<mask_name>"): Ditto.
4087 (define_insn "sse3_movsldup<mask_name>"): Ditto.
4088 (define_insn "vec_dupv2df<mask_name>"): Ditto.
4089 (define_insn "*vec_concatv2df"): Add EVEX version.
4090
4091 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
4092 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4093 Anna Tikhonova <anna.tikhonova@intel.com>
4094 Ilya Tocar <ilya.tocar@intel.com>
4095 Andrey Turetskiy <andrey.turetskiy@intel.com>
4096 Ilya Verbin <ilya.verbin@intel.com>
4097 Kirill Yukhin <kirill.yukhin@intel.com>
4098 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4099
4100 * config/i386/sse.md
4101 (define_insn "vec_set<mode>_0"): Add EVEX version.
4102
4103 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
4104 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4105 Anna Tikhonova <anna.tikhonova@intel.com>
4106 Ilya Tocar <ilya.tocar@intel.com>
4107 Andrey Turetskiy <andrey.turetskiy@intel.com>
4108 Ilya Verbin <ilya.verbin@intel.com>
4109 Kirill Yukhin <kirill.yukhin@intel.com>
4110 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4111
4112 * config/i386/sse.md
4113 (define_insn
4114 "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
4115 New.
4116 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
4117 (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
4118 (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
4119 "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
4120 (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
4121 (define_expand "sse2_cvtpd2ps_mask): New.
4122 (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
4123 (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
4124
4125 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
4126 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4127 Anna Tikhonova <anna.tikhonova@intel.com>
4128 Ilya Tocar <ilya.tocar@intel.com>
4129 Andrey Turetskiy <andrey.turetskiy@intel.com>
4130 Ilya Verbin <ilya.verbin@intel.com>
4131 Kirill Yukhin <kirill.yukhin@intel.com>
4132 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4133
4134 * config/i386/i386.c
4135 (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
4136 (ufix_notruncv8dfv8si2_mask_round): ... this.
4137 * config/i386/sse.md
4138 (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
4139 (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
4140 (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
4141 (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
4142 (define_expand "sse2_cvtpd2dq"): Delete.
4143 (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
4144 make 2nd operand const0 vector.
4145 (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
4146 Delete.
4147 (define_mode_attr pd2udqsuff): New.
4148 (define_insn
4149 "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
4150 (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
4151 (define_insn "*avx_cvttpd2dq256_2"): Delete.
4152 (define_expand "sse2_cvttpd2dq"): Ditto.
4153 (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
4154 make 2nd operand const0 vector.
4155
4156 2014-09-25 Jakub Jelinek <jakub@redhat.com>
4157
4158 PR tree-optimization/63341
4159 * tree-vectorizer.h (vect_create_data_ref_ptr,
4160 vect_create_addr_base_for_vector_ref): Add another tree argument
4161 defaulting to NULL_TREE.
4162 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
4163 argument, pass it down to vect_create_addr_base_for_vector_ref.
4164 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
4165 add that to base_offset too if non-NULL.
4166 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
4167 for dr_explicit_realign_optimized set it to vector byte size
4168 - 1 instead of setting offset, pass byte_offset down to
4169 vect_create_data_ref_ptr.
4170
4171 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
4172
4173 * ipa-devirt.c (possible_polymorphic_call_targets): Remove
4174 forgotten debug output; canonicalize querries more wtih LTO.
4175
4176 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
4177
4178 * cgraph.h (class ipa_polymorphic_call_context): Move here from
4179 ipa-utils.h; add stream_int and stream_out methods.
4180 (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
4181 OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
4182 MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
4183 add CONTEXT.
4184 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4185 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4186 ipa_polymorphic_call_context::clear_speculation,
4187 ipa_polymorphic_call_context::clear_outer_type): Move here from
4188 ipa-utils.h
4189 * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
4190 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4191 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4192 ipa_polymorphic_call_context::clear_speculation,
4193 ipa_polymorphic_call_context::clear_outer_type): Likewise.
4194 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
4195 streamer-hooks.h
4196 (ipa_polymorphic_call_context::stream_out): New method.
4197 (ipa_polymorphic_call_context::stream_in): New method.
4198 (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
4199 * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
4200 OUTER_TYPE.
4201 (ipa_analyze_call_uses): Simplify.
4202 (update_indirect_edges_after_inlining): Do not care about outer_type.
4203 (ipa_write_indirect_edge_info): Update.
4204 (ipa_write_indirect_edge_info): Likewise.
4205 * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
4206 (dump_edge_flags): Break out from ...
4207 (cgraph_node::dump): ... here; dump indirect edges.
4208
4209 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
4210
4211 * ipa-utils.h (polymorphic_call_context): Add
4212 metdhos dump, debug and clear_outer_type.
4213 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
4214 (ipa_polymorphic_call_context::clear_outer_type): New method.
4215 * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
4216 * ipa-devirt.c (types_odr_comparable): New function.
4217 (types_must_be_same_for_odr): New function.
4218 (odr_subtypes_equivalent_p): Simplify.
4219 (possible_placement_new): Break out from ...
4220 (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
4221 be more cuatious about returning false in cases the context may be
4222 valid in derived type or via placement new.
4223 (contains_type_p): Clear maybe_derived_type
4224 (ipa_polymorphic_call_context::dump): New method.
4225 (ipa_polymorphic_call_context::debug): New method.
4226 (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
4227 (ipa_polymorphic_call_context::set_by_invariant): Simplify.
4228 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
4229 (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
4230 to suceed on all valid cases; remove confused sanity check.
4231 (dump_possible_polymorphic_call_targets): Simplify.
4232
4233 2014-09-24 Aldy Hernandez <aldyh@redhat.com>
4234
4235 * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
4236 lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
4237 tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
4238 varpool.c: Rename all instances of DECL_ABSTRACT to
4239 DECL_ABSTRACT_P.
4240
4241 2014-09-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4242
4243 * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
4244 special handling for stores whose SET_SRC is an UNSPEC (such as
4245 UNSPEC_STVE).
4246
4247 2014-09-24 Jiong Wang <jiong.wang@arm.com>
4248
4249 * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
4250 !REG_P (src) to release more instruction sink opportunities.
4251
4252 2014-09-24 Wilco Dijkstra <wilco.dijkstra@arm.com>
4253
4254 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
4255 move costs for 128-bit types.
4256
4257 2014-09-24 Martin Jambor <mjambor@suse.cz>
4258
4259 * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
4260 when duplicating a PASS_THROUGH jump function when creating a
4261 speculative edge.
4262
4263 2014-09-24 Marek Polacek <polacek@redhat.com>
4264
4265 PR c/61405
4266 PR c/53874
4267 * asan.c (maybe_instrument_call): Add default case.
4268 * ipa-pure-const.c (special_builtin_state): Likewise.
4269 * predict.c (expr_expected_value_1): Likewise.
4270 * lto-streamer-out.c (write_symbol): Initialize variable.
4271
4272 2014-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4273
4274 * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
4275 the lane.
4276 (vmuld_laneq_f64): Likewise.
4277 (vmuls_lane_f32): Likewise.
4278 (vmuls_laneq_f32): Likewise.
4279
4280 2014-09-24 Kirill Yukhin <kirill.yukhin@intel.com>
4281
4282 PR bootstrap/63235
4283 * varpool.c (varpool_node::add): Pass decl attributes
4284 to lookup_attribute.
4285
4286 2014-09-24 Jakub Jelinek <jakub@redhat.com>
4287
4288 PR sanitizer/63316
4289 * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
4290
4291 2014-09-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4292
4293 PR tree-optimization/63266
4294 * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
4295 marker for unknown byte value.
4296 (MARKER_MASK): New macro.
4297 (MARKER_BYTE_UNKNOWN): New macro.
4298 (HEAD_MARKER): New macro.
4299 (do_shift_rotate): Mark bytes with unknown values due to sign
4300 extension when doing an arithmetic right shift. Replace hardcoded
4301 mask for marker by new MARKER_MASK macro.
4302 (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
4303 numbers accordingly.
4304
4305 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
4306 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4307 Anna Tikhonova <anna.tikhonova@intel.com>
4308 Ilya Tocar <ilya.tocar@intel.com>
4309 Andrey Turetskiy <andrey.turetskiy@intel.com>
4310 Ilya Verbin <ilya.verbin@intel.com>
4311 Kirill Yukhin <kirill.yukhin@intel.com>
4312 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4313
4314 * config/i386/sse.md
4315 (define_insn
4316 "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
4317 Add masking.
4318 (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
4319 (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
4320
4321 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
4322 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4323 Anna Tikhonova <anna.tikhonova@intel.com>
4324 Ilya Tocar <ilya.tocar@intel.com>
4325 Andrey Turetskiy <andrey.turetskiy@intel.com>
4326 Ilya Verbin <ilya.verbin@intel.com>
4327 Kirill Yukhin <kirill.yukhin@intel.com>
4328 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4329
4330 * config/i386/sse.md
4331 (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
4332 (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
4333 (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
4334 (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
4335 (define_expand "avx512vl_pshuflw_mask"): New.
4336 (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
4337 (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
4338 (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
4339 (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
4340 (define_expand "avx512vl_pshufhw_mask"): New.
4341 (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
4342
4343 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
4344 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4345 Anna Tikhonova <anna.tikhonova@intel.com>
4346 Ilya Tocar <ilya.tocar@intel.com>
4347 Andrey Turetskiy <andrey.turetskiy@intel.com>
4348 Ilya Verbin <ilya.verbin@intel.com>
4349 Kirill Yukhin <kirill.yukhin@intel.com>
4350 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4351
4352 * config/i386/i386.c
4353 (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
4354 CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
4355 CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
4356 CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
4357 CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
4358 * config/i386/sse.md
4359 (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
4360 (define_insn
4361 "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
4362 (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
4363 (define_insn
4364 "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
4365 (define_expand "avx512vl_pshufdv3_mask"): Ditto.
4366 (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
4367 (define_expand "avx512vl_pshufd_mask"): New.
4368 (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
4369
4370 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
4371 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4372 Anna Tikhonova <anna.tikhonova@intel.com>
4373 Ilya Tocar <ilya.tocar@intel.com>
4374 Andrey Turetskiy <andrey.turetskiy@intel.com>
4375 Ilya Verbin <ilya.verbin@intel.com>
4376 Kirill Yukhin <kirill.yukhin@intel.com>
4377 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4378
4379 * config/i386/i386.c
4380 (CODE_FOR_avx2_extracti128): Rename to ...
4381 (CODE_FOR_avx_vextractf128v4di): this.
4382 (CODE_FOR_avx2_inserti128): Rename to ...
4383 (CODE_FOR_avx_vinsertf128v4di): this.
4384 (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
4385 CODE_FOR_avx_vextractf128v4di.
4386 (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
4387 CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
4388 CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
4389 CODE_FOR_avx512vl_vinsertv8si.
4390 * config/i386/sse.md
4391 (define_expand
4392 "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
4393 AVX512_VEC mode iterator.
4394 (define_insn
4395 "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
4396 Ditto.
4397 (define_expand
4398 "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
4399 AVX512_VEC_2 mode iterator.
4400 (define_insn "vec_set_lo_<mode><mask_name>"): New.
4401 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4402 (define_expand "avx512vl_vinsert<mode>"): Ditto.
4403 (define_insn "avx2_vec_set_lo_v4di"): Delete.
4404 (define_insn "avx2_vec_set_hi_v4di"): Ditto.
4405 (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
4406 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4407 (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
4408 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4409 (define_expand "avx2_extracti128"): Delete.
4410 (define_expand "avx2_inserti128"): Ditto.
4411
4412 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
4413 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4414 Anna Tikhonova <anna.tikhonova@intel.com>
4415 Ilya Tocar <ilya.tocar@intel.com>
4416 Andrey Turetskiy <andrey.turetskiy@intel.com>
4417 Ilya Verbin <ilya.verbin@intel.com>
4418 Kirill Yukhin <kirill.yukhin@intel.com>
4419 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4420
4421 * config/i386/sse.md
4422 (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
4423 (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
4424 (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
4425 (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
4426 (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
4427 (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
4428 (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
4429 (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
4430 (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
4431 (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
4432 (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
4433 (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
4434 (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
4435
4436 2014-09-24 Zhenqiang Chen <zhenqiang.chen@arm.com>
4437
4438 PR rtl-optimization/63210
4439 * ira-color.c (assign_hard_reg): Ignore conflict cost if the
4440 HARD_REGNO is not available for CONFLICT_A.
4441
4442 2014-09-23 Andi Kleen <ak@linux.intel.com>
4443
4444 * cgraph.h (symtab_node): Add no_reorder attribute.
4445 (symbol_table::output_asm_statements): Remove.
4446 * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
4447 (cgraph_node::create_version_clone): Dito.
4448 (symbol_table::output_asm_statements): Remove.
4449 * trans-mem.c (ipa_tm_create_version_alias): Dito.
4450 * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
4451 (output_in_order): Add no_reorder flag. Only handle no_reorder
4452 nodes when set.
4453 (symbol_table::compile): Add separate pass for no_reorder nodes.
4454 (process_common_attributes): Set no_reorder flag in symtab node.
4455 Add node argument.
4456 (process_function_and_variable_attributes): Pass symtab nodes to
4457 process_common_attributes.
4458 * doc/extend.texi (no_reorder): Document no_reorder attribute.
4459 * lto-cgraph.c (lto_output_node): Serialize no_reorder.
4460 (lto_output_varpool_node): Dito.
4461 (input_overwrite_node): Dito.
4462 (input_varpool_node): Dito.
4463 * varpool.c (varpool_node::add): Set no_reorder attribute.
4464 (symbol_table::remove_unreferenced_decls): Handle no_reorder.
4465 (symbol_table::output_variables): Dito.
4466 * symtab.c (symtab_node::dump_base): Print no_reorder.
4467
4468 2014-09-23 Jiong Wang <jiong.wang@arm.com>
4469
4470 * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
4471 be INVALID_REGNUM.
4472
4473 2014-09-23 Thomas Schwinge <thomas@codesourcery.com>
4474
4475 * configure: Regenerate.
4476
4477 2014-09-23 Alan Lawrence <alan.lawrence@arm.com>
4478
4479 * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
4480 when result_mode == shift_mode.
4481
4482 2014-09-23 Kostya Serebryany <kcc@google.com>
4483
4484 Update to match the changed asan API.
4485 * asan.c (asan_global_struct): Update the __asan_global definition
4486 to match the new API.
4487 (asan_add_global): Ditto.
4488 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
4489 to __asan_init_v4.
4490
4491 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4492
4493 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
4494 refine the constraints used on 32/64-bit floating point moves.
4495 (f32_av): Likewise.
4496 (f64_vsx): Likewise.
4497 (f64_dm): Likewise.
4498 (f64_av): Likewise.
4499 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
4500 (BOOL_REGS_OP1): Likewise.
4501 (BOOL_REGS_OP2): Likewise.
4502 (BOOL_REGS_UNARY): Likewise.
4503 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
4504 32/64-bit floating point moves. Do not use wa, instead use ww/ws
4505 for moves involving VSX registers. Do not use constraints that
4506 target VSX registers for decimal types.
4507 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
4508 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
4509
4510 2014-09-23 Jan Hubicka <hubicka@ucw.cz>
4511
4512 * tree.h (int_bit_position): Turn into inline function;
4513 implement using wide int.
4514 * tree.c (int_bit_position): Remove.
4515
4516 2014-09-23 Richard Sandiford <richard.sandiford@arm.com>
4517
4518 PR bootstrap/63280
4519 * target-globals.c (target_globals::~target_globals): Fix location
4520 of ira_int destruction.
4521
4522 2014-09-23 Renlin Li <renlin.li@arm.com>
4523
4524 * config/aarch64/aarch64.md (return): New.
4525 (simple_return): Likewise.
4526 * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
4527 * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
4528
4529 2014-09-23 Wilco Dijkstra <wdijkstr@arm.com>
4530
4531 * common/config/aarch64/aarch64-common.c:
4532 (default_options aarch_option_optimization_table):
4533 Default to -fsched-pressure.
4534
4535 2014-09-23 Ilya Enkovich <ilya.enkovich@intel.com>
4536
4537 * cfgcleanup.c (try_optimize_cfg): Do not remove label
4538 with LABEL_PRESERVE_P flag set.
4539
4540 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
4541 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4542 Anna Tikhonova <anna.tikhonova@intel.com>
4543 Ilya Tocar <ilya.tocar@intel.com>
4544 Andrey Turetskiy <andrey.turetskiy@intel.com>
4545 Ilya Verbin <ilya.verbin@intel.com>
4546 Kirill Yukhin <kirill.yukhin@intel.com>
4547 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4548
4549 * config/i386/sse.md
4550 (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
4551 (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
4552 (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
4553 (define_insn "sse2_shufpd_v2df_mask"): New.
4554
4555 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
4556 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4557 Anna Tikhonova <anna.tikhonova@intel.com>
4558 Ilya Tocar <ilya.tocar@intel.com>
4559 Andrey Turetskiy <andrey.turetskiy@intel.com>
4560 Ilya Verbin <ilya.verbin@intel.com>
4561 Kirill Yukhin <kirill.yukhin@intel.com>
4562 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4563
4564 * config/i386/sse.md
4565 (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
4566 (define_insn "avx_shufps256_1<mask_name>"): Ditto.
4567 (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
4568 (define_insn "sse_shufps_v4sf_mask"): New.
4569
4570 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
4571 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4572 Anna Tikhonova <anna.tikhonova@intel.com>
4573 Ilya Tocar <ilya.tocar@intel.com>
4574 Andrey Turetskiy <andrey.turetskiy@intel.com>
4575 Ilya Verbin <ilya.verbin@intel.com>
4576 Kirill Yukhin <kirill.yukhin@intel.com>
4577 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4578
4579 * config/i386/sse.md
4580 (define_insn "avx_unpckhps256<mask_name>"): Add masking.
4581 (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
4582 (define_insn "avx_unpcklps256<mask_name>"): Ditto.
4583 (define_insn "unpcklps128_mask"): New.
4584
4585 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
4586 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4587 Anna Tikhonova <anna.tikhonova@intel.com>
4588 Ilya Tocar <ilya.tocar@intel.com>
4589 Andrey Turetskiy <andrey.turetskiy@intel.com>
4590 Ilya Verbin <ilya.verbin@intel.com>
4591 Kirill Yukhin <kirill.yukhin@intel.com>
4592 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4593
4594 * config/i386/sse.md
4595 (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
4596 (define_insn "avx512vl_unpckhpd128_mask"): New.
4597 (define_expand "avx_movddup256<mask_name>"): Add masking.
4598 (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
4599 (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
4600 (define_insn "avx512vl_unpcklpd128_mask"): New.
4601
4602 2014-09-22 Joseph Myers <joseph@codesourcery.com>
4603
4604 * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4605 * doc/tm.texi: Regenerate.
4606 * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
4607 * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4608 * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4609 Remove.
4610 * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4611 * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4612 * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4613 * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4614 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4615 Remove.
4616 * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4617 * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4618 * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4619 * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4620 * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4621 * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4622 * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4623 * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4624 * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4625 * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4626 * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4627 Remove.
4628
4629 2014-09-22 Jan Hubicka <hubicka@ucw.cz>
4630
4631 * tree-ssa-ccp.c (prop_value_d): Rename to ...
4632 (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
4633 * ipa-prop.c (struct type_change_info): Rename to ...
4634 (prop_type_change_info): ... this; update uses.
4635 * ggc-page.c (globals): Rename to ...
4636 (static struct ggc_globals): ... this; update uses.
4637 * tree-ssa-loop-im.c (mem_ref): Rename to ...
4638 (im_mem_ref): ... this; update uses.
4639 * ggc-common.c (loc_descriptor): Rename to ...
4640 (ggc_loc_descriptor): ... this; update uses.
4641 * lra-eliminations.c (elim_table): Rename to ...
4642 (lra_elim_table): ... this; update uses.
4643 * bitmap.c (output_info): Rename to ...
4644 (bitmap_output_info): ... this; update uses.
4645 * gcse.c (expr): Rename to ...
4646 (gcse_expr) ... this; update uses.
4647 (occr): Rename to ...
4648 (gcse_occr): .. this; update uses.
4649 * tree-ssa-copy.c (prop_value_d): Rename to ...
4650 (prop_value_t): ... this.
4651 * predict.c (block_info_def): Rename to ...
4652 (block_info): ... this; update uses.
4653 (edge_info_def): Rename to ...
4654 (edge_info): ... this; update uses.
4655 * profile.c (bb_info): Rename to ...
4656 (bb_profile_info): ... this; update uses.
4657 * alloc-pool.c (output_info): Rename to ...
4658 (pool_output_info): ... this; update uses.
4659 * ipa-cp.c (topo_info): Rename to ..
4660 (ipa_topo_info): ... this; update uses.
4661 * tree-nrv.c (nrv_data): Rename to ...
4662 (nrv_data_t): ... this; update uses.
4663 * ipa-split.c (bb_info): Rename to ...
4664 (split_bb_info): ... this one.
4665 * profile.h (edge_info): Rename to ...
4666 (edge_profile_info): ... this one; update uses.
4667 * dse.c (bb_info): Rename to ...
4668 (dse_bb_info): ... this one; update uses.
4669 * cprop.c (occr): Rename to ...
4670 (cprop_occr): ... this one; update uses.
4671 (expr): Rename to ...
4672 (cprop_expr): ... this one; update uses.
4673
4674 2014-09-22 Jason Merrill <jason@redhat.com>
4675
4676 * Makefile.in (check-parallel-%): Add @.
4677
4678 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
4679
4680 * config/aarch64/geniterators.sh: New.
4681 * config/aarch64/iterators.md (VDQF_DF): New.
4682 * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
4683 * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
4684
4685 2014-09-22 Peter A. Bigot <pab@pabigot.com>
4686
4687 * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
4688 -lnosys when -msim absent.
4689
4690 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
4691
4692 * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
4693
4694 2014-09-22 Richard Biener <rguenther@suse.de>
4695
4696 * gimplify.c (gimplify_init_constructor): Do not leave
4697 non-GIMPLE vector constructors around.
4698 * tree-cfg.c (verify_gimple_assign_single): Verify that
4699 CONSTRUCTORs have gimple elements.
4700
4701 2014-09-22 Jakub Jelinek <jakub@redhat.com>
4702
4703 PR debug/63328
4704 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
4705 insert a debug source bind stmt setting DEBUG_EXPR_DECL
4706 instead of a normal gimple assignment stmt.
4707
4708 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
4709
4710 * config/bfin/bfin.md: Fix use of constraints in define_split.
4711
4712 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4713
4714 * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
4715 GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
4716
4717 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4718
4719 * hard-reg-set.h: Include hash-table.h.
4720 (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
4721 field.
4722 * target-globals.c (target_globals::~target_globals): Call
4723 hard_regs->finalize.
4724 * rtl.h (subreg_shape): New structure.
4725 (shape_of_subreg): New function.
4726 (simplifiable_subregs): Declare.
4727 * reginfo.c (simplifiable_subreg): New structure.
4728 (simplifiable_subregs_hasher): Likewise.
4729 (simplifiable_subregs): New function.
4730 (invalid_mode_changes): Delete.
4731 (alid_mode_changes, valid_mode_changes_obstack): New variables.
4732 (record_subregs_of_mode): Remove subregs_of_mode parameter.
4733 Record valid mode changes in valid_mode_changes.
4734 (find_subregs_of_mode): Remove subregs_of_mode parameter.
4735 Update calls to record_subregs_of_mode.
4736 (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
4737 handling. Initialize new variables. Update call to
4738 find_subregs_of_mode.
4739 (invalid_mode_change_p): Check new variables instead of
4740 invalid_mode_changes.
4741 (finish_subregs_of_mode): Finalize new variables instead of
4742 invalid_mode_changes.
4743 (target_hard_regs::finalize): New function.
4744 * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
4745 even when CLASS_CANNOT_CHANGE_MODE is undefined.
4746
4747 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4748
4749 * combine.c (subst): Use simplify_subreg_regno rather than
4750 REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
4751
4752 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4753
4754 * rtl.h (subreg_info): Expand commentary
4755 * rtlanal.c (subreg_get_info): Likewise.
4756
4757 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4758
4759 * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
4760 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
4761 (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
4762
4763 2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com>
4764
4765 * config/arm/arm.c: #include "tm-constrs.h"
4766 (thumb1_size_rtx_costs): Adjust rtx costs.
4767
4768 2014-09-22 Hans-Peter Nilsson <hp@axis.com>
4769
4770 * configure.ac (target_header_dir): Move block defining
4771 this to before the block setting inhibit_libc.
4772 (inhibit_libc): When considering $with_headers, just
4773 check it it's explicitly "no". If not, also check if
4774 $target_header_dir/stdio.h is present. If not, set
4775 inhibit_libc=true.
4776 * configure: Regenerate.
4777
4778 2014-09-21 Patrick Oppenlander <pattyo.lists@gmail.com>
4779
4780 * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
4781
4782 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4783
4784 * config/rs6000/rs6000.md (div<mode>3): Fix comment. Use a different
4785 insn for divides by integer powers of two.
4786 (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
4787 (mod<mode>3): Fix formatting.
4788 (three anonymous define_insn and two define_split): Delete.
4789
4790 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4791
4792 * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
4793 *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
4794 (floatdisf2_internal2): Ditto.
4795 (ashrdi3_no_power): Ditto. Fix formatting.
4796
4797 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4798
4799 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
4800 popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
4801 Tidy.
4802
4803 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4804
4805 * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
4806 constant, use addsi3 directly.
4807 (three anonymous define_insn, two define_split): Delete.
4808 (sub<mode>3): Move. Do not allow constant second operand.
4809 Generate different insn for constant first operand.
4810 (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
4811 (subf<mode>3_imm): New.
4812 (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
4813 (*plus_ltu<mode>): Only handle registers.
4814 (*plus_ltu<mode>_1): New. Handle integer third operand.
4815 (*plus_gtu<mode>): Only handle registers.
4816 (*plus_gtu<mode>_1): New. Handle integer third operand.
4817
4818 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4819
4820 * config/rs6000/rs6000.md (iorxor): New code_iterator.
4821 (iorxor): New code_attr.
4822 (IORXOR): New code_attr.
4823 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
4824 (ior<mode>3, xor<mode>3): Delete.
4825 (<iorxor><mode>3): New.
4826 (splitter for "big" integer ior, xor): New.
4827 (*bool<mode>3): Move. Also handle AND.
4828 (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
4829 (splitter for "big" integer ior, xor): Delete.
4830
4831 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4832
4833 * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
4834 (two anonymous define_insn and two define_split): Delete.
4835 (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
4836
4837 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4838
4839 * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
4840 (two anonymous define_insn and two define_split): Delete.
4841 (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
4842
4843 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4844
4845 * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
4846
4847 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4848
4849 * config/rs6000/predicates.md (ca_operand): Allow subregs.
4850 (input_operand): Do not allow ca_operand.
4851 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
4852 carry bit, allow SImode and Pmode.
4853 (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
4854
4855 2014-09-21 Uros Bizjak <ubizjak@gmail.com>
4856
4857 * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
4858 clobbered registers using clobber_reg. Remove UNSPEC decoration.
4859 * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
4860 (*call_rex64_ms_sysv): Remove.
4861 (*call_value_rex64_ms_sysv): Ditto.
4862 * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
4863
4864 2014-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
4865
4866 * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
4867 operand 3 to "CnL".
4868
4869 2014-09-20 Andreas Schwab <schwab@suse.de>
4870
4871 * config/ia64/ia64.md: Remove constraints from define_split
4872 patterns.
4873
4874 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4875
4876 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
4877 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
4878 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
4879 (get_dynamic_type): Remove.
4880 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
4881 (clear_speculation): Bring to ipa-deivrt.h
4882 (get_class_context): Rename to ...
4883 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
4884 (contains_type_p): Update.
4885 (get_dynamic_type): Rename to ...
4886 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
4887 (possible_polymorphic_call_targets): UPdate.
4888 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
4889 * ipa-prop.c (ipa_analyze_call_uses): Update.
4890
4891 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4892
4893 * ipa-visibility.c (varpool_node::externally_visible_p): Do not
4894 privatize dynamic TLS variables.
4895
4896 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4897
4898 * diagnostic.c (warning_n): New function.
4899 * diagnostic-core.h (warning_n): Declare.
4900 * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
4901 output dynamic counts when available.
4902
4903 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4904
4905 PR tree-optimization/63255
4906 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
4907 issue in setting body_removed flag.
4908
4909 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4910
4911 PR c++/61825
4912 * c-family/c-common.c (handle_alias_ifunc_attribute): Check
4913 that visibility change is possible
4914 (handle_weakref_attribute): Likewise.
4915 * cgraph.h (symtab_node): Add method get_create and
4916 field refuse_visibility_changes.
4917 (symtab_node::get_create): New method.
4918 * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
4919 * varasm.c (mark_weak): Verify that visibility change is
4920 possible.
4921
4922 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
4923
4924 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
4925 for base_reg_operand to be common between LO_SUM and PLUS.
4926 (fusion_gpr_mem_combo): New predicate to match a fused address
4927 that combines the addis and memory offset address.
4928
4929 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
4930 calling signature.
4931 (emit_fusion_gpr_load): Likewise.
4932
4933 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
4934 signature to pass each argument separately, rather than
4935 using an operands array. Rewrite the insns found by peephole2 to
4936 be a single insn, rather than hoping the insns will still be
4937 together when the peephole pass is done. Drop being called via a
4938 normal peephole.
4939 (emit_fusion_gpr_load): Change calling signature to be called from
4940 the fusion_gpr_load_<mode> insns with a combined memory address
4941 instead of the peephole pass passing the addis and offset
4942 separately.
4943
4944 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
4945 fusion.
4946 (power8 fusion peephole): Drop support for doing power8 via a
4947 normal peephole that was created by the peephole2 pass.
4948 (power8 fusion peephole2): Create a new insn with the fused
4949 address, so that the fused operation is kept together after
4950 register allocation is done.
4951 (fusion_gpr_load_<mode>): Likewise.
4952
4953 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4954
4955 PR lto/63286
4956 * tree.c (need_assembler_name_p): Do not mangle variadic types.
4957
4958 2014-09-19 Segher Boessenkool <segher@kernel.crashing.org>
4959
4960 * recog.c (scratch_operand): Do not simply allow all hard registers:
4961 only allow those that are allocatable.
4962
4963 2014-09-19 Felix Yang <felix.yang@huawei.com>
4964
4965 * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
4966 comments and fix spacing to conform to coding style.
4967
4968 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
4969
4970 * genrecog.c (validate_pattern): Allow empty constraints in
4971 a match_scratch.
4972
4973 2014-09-19 Aldy Hernandez <aldyh@redhat.com>
4974
4975 * dwarf2out.c (decl_ultimate_origin): Update comment.
4976 * tree.c (block_ultimate_origin): Same.
4977
4978 2014-09-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4979
4980 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
4981 Update GCC version name to GCC 5.
4982 (rs6000_function_arg_boundary): Likewise.
4983 (rs6000_function_arg): Likewise.
4984
4985 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
4986
4987 * config/sh/sh.md: Fix use of constraints in define_split.
4988
4989 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de>
4990
4991 PR ipa/61998
4992 * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
4993
4994 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
4995
4996 * doc/md.texi (Modifiers): Consistently use "read/write"
4997 nomenclature rather than "input/output".
4998 * genrecog.c (constraints_supported_in_insn_p): New.
4999 (validate_pattern): If needed, also check constraints on
5000 MATCH_SCRATCH operands.
5001 * genoutput.c (validate_insn_alternatives): Catch earlyclobber
5002 operands with no '=' or '+' modifier.
5003
5004 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
5005
5006 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
5007 scratch register as written.
5008
5009 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5010
5011 * config/s390/s390.c (s390_emit_epilogue): Remove bogus
5012 assignment.
5013
5014 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5015
5016 * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
5017 expanders.
5018
5019 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5020
5021 PR target/62662
5022 * config/s390/s390.c (s390_emit_epilogue): When doing the return
5023 address load optimization force s390_optimize_prologue to leave it
5024 that way. Only do the optimization if we already decided to push
5025 r14 into a stack slot.
5026
5027 2014-09-19 Marat Zakirov <m.zakirov@samsung.com>
5028
5029 * asan.c (build_check_stmt): Alignment arg was added.
5030 (asan_expand_check_ifn): Optimization for alignment >= 8.
5031
5032 2014-09-19 Olivier Hainque <hainque@adacore.com>
5033
5034 * config/i386/vxworksae.h: Remove obsolete definitions.
5035 (STACK_CHECK_PROTECT): Define.
5036 * config/i386/vx-common.h: Remove. Merge contents within
5037 config/i386/vxworks.h.
5038 * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
5039 i386/vx-common.h.
5040
5041 2014-09-19 Olivier Hainque <hainque@adacore.com>
5042
5043 * config.gcc (powerpc-wrs-vxworksmils): New configuration.
5044 * config/rs6000/t-vxworksmils: New file.
5045 * config/rs6000/vxworksmils.h: New file.
5046
5047 2014-09-19 Olivier Hainque <hainque@adacore.com>
5048
5049 * varasm.c (default_section_type_flags): Flag .persistent.bss
5050 sections as SECTION_BSS.
5051
5052 2014-09-19 Nick Clifton <nickc@redhat.com>
5053
5054 * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
5055 pop'ed registers so that DCE does not eliminate them.
5056
5057 2014-09-18 Jan Hubicka <hubicka@ucw.cz>
5058
5059 PR lto/63298
5060 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
5061
5062 2014-09-18 Joseph Myers <joseph@codesourcery.com>
5063
5064 * system.h (LIBGCC2_TF_CEXT): Poison.
5065 * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
5066 * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
5067 * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
5068 * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
5069 * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
5070 * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
5071 * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
5072 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
5073 * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
5074
5075 2014-09-19 Kito Cheng <kito@0xlab.org>
5076
5077 * except.h: Fix header guard.
5078 * addresses.h: Add missing header guard.
5079 * cfghooks.h: Likewise.
5080 * collect-utils.h: Likewise.
5081 * collect2-aix.h: Likewise.
5082 * conditions.h: Likewise.
5083 * cselib.h: Likewise.
5084 * dwarf2asm.h: Likewise.
5085 * graphds.h: Likewise.
5086 * graphite-scop-detection.h: Likewise.
5087 * gsyms.h: Likewise.
5088 * hw-doloop.h: Likewise.
5089 * incpath.h: Likewise.
5090 * ipa-inline.h: Likewise.
5091 * ipa-ref.h: Likewise.
5092 * ira-int.h: Likewise.
5093 * ira.h: Likewise.
5094 * lra-int.h: Likewise.
5095 * lra.h: Likewise.
5096 * lto-section-names.h: Likewise.
5097 * read-md.h: Likewise.
5098 * reload.h: Likewise.
5099 * rtl-error.h: Likewise.
5100 * sdbout.h: Likewise.
5101 * targhooks.h: Likewise.
5102 * tree-affine.h: Likewise.
5103 * xcoff.h: Likewise.
5104 * xcoffout.h: Likewise.
5105
5106 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
5107
5108 PR debug/63285
5109 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
5110 if advance != 0.
5111
5112 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
5113
5114 PR target/61360
5115 * lra.c (lra): Call recog_init.
5116
5117 2014-09-18 Jakub Jelinek <jakub@redhat.com>
5118
5119 PR c++/62017
5120 * asan.c (transform_statements): Don't instrument clobber statements.
5121
5122 2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5123
5124 * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
5125 to neon_load1_1reg<q>.
5126
5127 2014-09-17 Jakub Jelinek <jakub@redhat.com>
5128
5129 PR debug/63284
5130 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
5131 if there are only debug stmts after the noreturn call, instead
5132 remove the debug stmts.
5133
5134 2014-09-17 Jan Hubicka <hubicka@ucw.cz>
5135
5136 * ipa-devirt.c (type_pair, default_hashset_traits): New types.
5137 (odr_types_equivalent_p): Use pair hash.
5138 (odr_subtypes_equivalent_p): Likewise, do structural compare
5139 on ODR types that may be mismatched.
5140 (warn_odr): Support warning when only one field is given.
5141 (odr_types_equivalent_p): Strenghten comparsions made;
5142 support VOIDtype.
5143 (add_type_duplicate): Update VISITED hash set.
5144
5145 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
5146
5147 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
5148 Enable selection of 'posix' or no thread model.
5149
5150 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
5151
5152 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
5153 when architecture is older than ARMv7.
5154
5155 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
5156
5157 PR target/61853
5158 * config/pa/pa.c (pa_function_value): Directly handle aggregates
5159 that fit exactly in a word or double word.
5160
5161 2014-09-16 Ilya Tocar <ilya.tocar@intel.com>
5162
5163 * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
5164 zmm/k regs support.
5165
5166 2014-09-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
5167 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5168 Anna Tikhonova <anna.tikhonova@intel.com>
5169 Ilya Tocar <ilya.tocar@intel.com>
5170 Andrey Turetskiy <andrey.turetskiy@intel.com>
5171 Ilya Verbin <ilya.verbin@intel.com>
5172 Kirill Yukhin <kirill.yukhin@intel.com>
5173 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5174
5175 * config/i386/i386.c
5176 (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
5177 * config/i386/sse.md
5178 (define_mode_iterator VI48F_256): New.
5179 (define_mode_attr extract_type): Ditto.
5180 (define_mode_attr extract_suf): Ditto.
5181 (define_mode_iterator AVX512_VEC): Ditto.
5182 (define_expand
5183 "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
5184 AVX512_VEC.
5185 (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
5186 (define_insn
5187 "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
5188 Ditto.
5189 (define_mode_attr extract_type_2): Ditto.
5190 (define_mode_attr extract_suf_2): Ditto.
5191 (define_mode_iterator AVX512_VEC_2): Ditto.
5192 (define_expand
5193 "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
5194 AVX512_VEC_2 mode iterator.
5195 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
5196 (define_expand "avx512vl_vextractf128<mode>"): Ditto.
5197 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5198 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5199 (define_split for V16FI mode): Ditto.
5200 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5201 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5202 (define_split for VI8F_256 mode): Ditto.
5203 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
5204 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5205 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5206 (define_split for VI4F_256 mode): Ditto.
5207 (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
5208 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
5209 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
5210 (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
5211 (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
5212 (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
5213 (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
5214 Update `type' attribute, remove explicit `memory' attribute calculation.
5215
5216 2014-09-16 Kito Cheng <kito@0xlab.org>
5217
5218 * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
5219 ira_spilled_reg_stack_slots_num if using lra.
5220 (do_reload): Remove release ira_spilled_reg_stack_slots part.
5221 * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
5222 make sure not using lra.
5223 (ira_reuse_stack_slot): Likewise.
5224 (ira_mark_new_stack_slot): Likewise.
5225
5226 2014-09-15 Andi Kleen <ak@linux.intel.com>
5227
5228 * function.c (allocate_struct_function): Force
5229 DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
5230 profiling is disabled.
5231
5232 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
5233
5234 * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
5235 config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
5236 emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
5237 reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
5238 macro with statically checked member functions.
5239 * rtl.h (rtx_insn::deleted): New method.
5240 (rtx_insn::set_deleted): Likewise.
5241 (rtx_insn::set_undeleted): Likewise.
5242 (INSN_DELETED_P): Remove.
5243
5244 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
5245
5246 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
5247 result of emit_jump_insn_before to a new variable.
5248 * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
5249 (mark_jump_label_1): Likewise.
5250 (mark_jump_label_asm): Likewise.
5251 * reload1.c (gen_reload): Change type of tem to rtx_insn *.
5252 * rtl.h (mark_jump_label): Adjust.
5253
5254 2014-09-15 Jakub Jelinek <jakub@redhat.com>
5255
5256 * Makefile.in (dg_target_exps): Remove.
5257 (check_gcc_parallelize): Change to just an upper bound number.
5258 (check-%-subtargets): Always print the non-parallelized goals.
5259 (check_p_vars, check_p_comma, check_p_subwork): Remove.
5260 (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
5261 check_p_numbers3, check_p_numbers4, check_p_numbers5,
5262 check_p_numbers6): New variables.
5263 (check_p_numbers): Set to sequence from 1 to 9999.
5264 (check_p_subdirs): Set to sequence from 1 to minimum of
5265 $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
5266 or 128.
5267 (check-%, check-parallel-%): Rewritten so that for parallelized
5268 testing each job runs all the *.exp files, with
5269 GCC_RUNTEST_PARALLELIZE_DIR set in environment.
5270
5271 2014-09-15 David Malcolm <dmalcolm@redhat.com>
5272
5273 * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
5274 rtx to rtx_insn *.
5275 (arc_sets_cc_p): Likewise.
5276 * config/arc/arc.c (arc_print_operand): Use methods of
5277 "final_sequence" for clarity, and to enable strengthening of
5278 locals "jump" and "delay" from rtx to rtx_insn *.
5279 (arc_adjust_insn_length): Strengthen local "prev" from rtx to
5280 rtx_insn *; use method of rtx_sequence for typesafety.
5281 (arc_get_insn_variants): Use insn method of rtx_sequence for
5282 typesafety.
5283 (arc_pad_return): Likewise.
5284 (arc_attr_type): Strengthen param from rtx to rtx_insn *.
5285 (arc_sets_cc_p): Likewise. Also, convert a GET_CODE check to a
5286 dyn_cast to rtx_sequence *, using insn method for typesafety.
5287 * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
5288 rtx_sequence * and use insn method when invoking get_attr_length.
5289 * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
5290 to rtx_insn *. Replace a GET_CODE check with a dyn_cast to
5291 rtx_sequence *, introducing a local "seq", using its insn method
5292 from typesafety and clarity.
5293 (add_sched_insns_for_speculation): Strengthen local "next" from
5294 rtx to rtx_insn *.
5295 * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
5296 (predicate_insn): Likewise.
5297 * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
5298 second param.
5299 * config/cris/cris.c (cris_notice_update_cc): Likewise.
5300 * config/epiphany/epiphany-protos.h
5301 (extern void epiphany_insert_mode_switch_use): Likewise for param
5302 "insn".
5303 (get_attr_sched_use_fpu): Likewise for param.
5304 * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
5305 Likewise for param "insn".
5306 * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
5307 param "insn" of "target_insert_mode_switch_use" callback.
5308 * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
5309 (frv_issues_to_branch_unit_p): Likewise.
5310 (frv_pack_insn_p): Likewise.
5311 (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
5312 const rtx * (i.e. mutable rtx_def * const *) to
5313 rtx_insn * const *.
5314 * config/i386/i386-protos.h (standard_sse_constant_opcode):
5315 Strengthen first param from rtx to rtx_insn *.
5316 (output_fix_trunc): Likewise.
5317 * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
5318 (output_fix_trunc): Likewise.
5319 (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
5320 local "insn".
5321 (min_insn_size): Likewise for param "insn".
5322 (get_mem_group): Likewise.
5323 (is_cmp): Likewise.
5324 (get_insn_path): Likewise.
5325 (get_insn_group): Likewise.
5326 (count_num_restricted): Likewise.
5327 (fits_dispatch_window): Likewise.
5328 (add_insn_window): Likewise.
5329 (add_to_dispatch_window): Likewise.
5330 (debug_insn_dispatch_info_file): Likewise.
5331 * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
5332 first param.
5333 * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
5334 "cmp" and local "prev".
5335 (m32c_output_compare): Likewise for param "insn".
5336 * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
5337 a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
5338 (define_predicate "large_insn_p"): Likewise.
5339 * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
5340 param from rtx to rtx_insn *.
5341 (attr_op_mem m68k_sched_attr_op_mem): Likewise.
5342 * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
5343 (m68k_sched_attr_size): Likewise.
5344 (sched_get_opxy_mem_type): Likewise for param "insn".
5345 (m68k_sched_attr_op_mem): Likewise.
5346 (sched_mem_operand_p): Likewise.
5347 * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
5348 * config/mep/mep.c (mep_multi_slot): Likewise.
5349 * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
5350 first param.
5351 (mips_sync_loop_insns): Likewise.
5352 * config/mips/mips.c (mips_print_operand_punctuation): Use insn
5353 method of "final_sequence" for typesafety.
5354 (mips_process_sync_loop): Strengthen param "insn" from rtx to
5355 rtx_insn *.
5356 (mips_output_sync_loop): Likewise.
5357 (mips_sync_loop_insns): Likewise.
5358 (mips_74k_agen_init): Likewise.
5359 (mips_sched_init): Use NULL rather than NULL_RTX when working with
5360 insns.
5361 * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
5362 Strengthen param "insn" from rtx to rtx_insn *.
5363 * config/nds32/nds32.c (nds32_target_alignment): Likewise for
5364 local "insn".
5365 * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
5366 param.
5367 * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
5368 "insn". Use method of rtx_sequence for typesafety.
5369 (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
5370 rtx_insn *.
5371 (branch_needs_nop_p): Likewise.
5372 (use_skip_p): Likewise.
5373 (pa_insn_refs_are_delayed): Likewise.
5374 * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
5375 for locals "insn", "ninsn".
5376 * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
5377 "insn".
5378 (is_cracked_insn): Likewise.
5379 (is_branch_slot_insn): Likewise.
5380 (is_nonpipeline_insn): Likewise.
5381 (insn_terminates_group_p): Likewise.
5382 (insn_must_be_first_in_group): Likewise.
5383 (insn_must_be_last_in_group): Likewise.
5384 (force_new_group): Likewise for param "next_insn".
5385 * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
5386 "insn".
5387 (s390_sched_score): Likewise.
5388 * config/sh/sh-protos.h (output_branch): Likewise for param 2.
5389 (rtx sfunc_uses_reg): Likewise for sole param.
5390 * config/sh/sh.c (sh_print_operand): Use insn method of
5391 final_sequence for typesafety.
5392 (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
5393 Use insn method of final_sequence for typesafety.
5394 (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
5395 * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
5396 for param.
5397 (eligible_for_return_delay): Likewise.
5398 (eligible_for_sibcall_delay): Likewise.
5399 * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
5400 (eligible_for_return_delay): Likewise.
5401 (eligible_for_sibcall_delay): Likewise.
5402 * config/stormy16/stormy16-protos.h
5403 (xstormy16_output_cbranch_hi): Likewise for final param.
5404 (xstormy16_output_cbranch_si): Likewise.
5405 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
5406 (xstormy16_output_cbranch_si): Likewise.
5407 * config/v850/v850-protos.h (notice_update_cc): Likewise.
5408 * config/v850/v850.c (notice_update_cc): Likewise.
5409
5410 * final.c (get_attr_length_1): Strengthen param "insn" and param
5411 of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
5412 (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
5413 (get_attr_min_length): Likewise.
5414 (shorten_branches): Likewise for signature of locals "length_fun"
5415 and "inner_length_fun". Introduce local rtx_sequence * "seqn"
5416 from a checked cast and use its methods for clarity and to enable
5417 strengthening local "inner_insn" from rtx to rtx_insn *.
5418 * genattr.c (gen_attr): When writing out the prototypes of the
5419 various generated "get_attr_" functions, strengthen the params of
5420 the non-const functions from rtx to rtx_insn *.
5421 Similarly, strengthen the params of insn_default_length,
5422 insn_min_length, insn_variable_length_p, insn_current_length.
5423 (main): Similarly, strengthen the param of num_delay_slots,
5424 internal_dfa_insn_code, insn_default_latency, bypass_p,
5425 insn_latency, min_issue_delay, print_reservation,
5426 insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
5427 "insn_default_latency" callbacks. Rename hook_int_rtx_unreachable
5428 to hook_int_rtx_insn_unreachable.
5429 * genattrtab.c (write_attr_get): When writing out the generated
5430 "get_attr_" functions, strengthen the param "insn" from rtx to
5431 rtx_insn *, eliminating a checked cast.
5432 (make_automaton_attrs): When writing out prototypes of
5433 "internal_dfa_insn_code_", "insn_default_latency_" functions
5434 and the "internal_dfa_insn_code" and "insn_default_latency"
5435 callbacks, strengthen their params from rtx to rtx_insn *
5436 * genautomata.c (output_internal_insn_code_evaluation): When
5437 writing out code, add a checked cast from rtx to rtx_insn * when
5438 invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
5439 (output_dfa_insn_code_func): Strengthen param of generated
5440 function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
5441 (output_trans_func): Likewise for generated function
5442 "state_transition".
5443 (output_internal_insn_latency_func): When writing out generated
5444 function "internal_insn_latency", rename params from "insn" and
5445 "insn2" to "insn_or_const0" and "insn2_or_const0". Reintroduce
5446 locals "insn" and "insn2" as rtx_insn * with checked casts once
5447 we've proven that we're not dealing with const0_rtx.
5448 (output_insn_latency_func): Strengthen param of generated
5449 function "insn_latency" from rtx to rtx_insn *.
5450 (output_print_reservation_func): Likewise for generated function
5451 "print_reservation".
5452 (output_insn_has_dfa_reservation_p): Likewise for generated
5453 function "insn_has_dfa_reservation_p".
5454 * hooks.c (hook_int_rtx_unreachable): Rename to...
5455 (hook_int_rtx_insn_unreachable): ...this, and strengthen param
5456 from rtx to rtx_insn *.
5457 * hooks.h (hook_int_rtx_unreachable): Likewise.
5458 (extern int hook_int_rtx_insn_unreachable): Likewise.
5459 * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
5460 (get_attr_min_length): Likewise.
5461 * recog.c (get_enabled_alternatives): Likewise.
5462 * recog.h (alternative_mask get_enabled_alternatives): Likewise.
5463 * reorg.c (find_end_label): Introduce local rtx "pat" and
5464 strengthen local "insn" from rtx to rtx_insn *.
5465 (redundant_insn): Use insn method of "seq" rather than element for
5466 typesafety; strengthen local "control" from rtx to rtx_insn *.
5467 * resource.c (mark_referenced_resources): Add checked cast to
5468 rtx_insn * within INSN/JUMP_INSN case.
5469 (mark_set_resources): Likewise.
5470 * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
5471 rtx to rtx_insn *.
5472
5473 2014-09-15 David Malcolm <dmalcolm@redhat.com>
5474
5475 * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
5476 param "label" from rtx to rtx_insn *.
5477 * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
5478 and local "op".
5479 * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
5480 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
5481 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
5482 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
5483 * final.c (default_label_align_after_barrier_max_skip): Strengthen
5484 param from rtx to rtx_insn *.
5485 (default_loop_align_max_skip): Likewise.
5486 (default_label_align_max_skip): Likewise.
5487 (default_jump_align_max_skip): Likewise.
5488 * target.def (label_align_after_barrier_max_skip): Likewise.
5489 (loop_align_max_skip): Likewise.
5490 (label_align_max_skip): Likewise.
5491 (jump_align_max_skip): Likewise.
5492 * targhooks.h (default_label_align_after_barrier_max_skip):
5493 Likewise.
5494 (default_loop_align_max_skip): Likewise.
5495 (default_label_align_max_skip): Likewise.
5496 (default_jump_align_max_skip): Likewise.
5497
5498 2014-09-15 David Malcolm <dmalcolm@redhat.com>
5499
5500 * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
5501 from const_rtx to const rtx_insn *. Update union members from rtx
5502 to rtx_insn *.
5503 * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
5504 * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
5505 (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
5506 strengthen both params from const_rtx to const rtx_insn *.
5507 * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
5508 (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
5509 * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
5510 rtx_insn *.
5511 * target.def (can_follow_jump): Strengthen both params from
5512 const_rtx to const rtx_insn *, and update default implementation
5513 from hook_bool_const_rtx_const_rtx_true to
5514 hook_bool_const_rtx_insn_const_rtx_insn_true.
5515
5516 2014-09-15 David Malcolm <dmalcolm@redhat.com>
5517
5518 * sched-deps.c (deps_start_bb): Strengthen param "head" and local
5519 "insn" from rtx to rtx_insn *.
5520 * sched-int.h (deps_start_bb): Likewise for 2nd param.
5521
5522 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
5523 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5524 Anna Tikhonova <anna.tikhonova@intel.com>
5525 Ilya Tocar <ilya.tocar@intel.com>
5526 Andrey Turetskiy <andrey.turetskiy@intel.com>
5527 Ilya Verbin <ilya.verbin@intel.com>
5528 Kirill Yukhin <kirill.yukhin@intel.com>
5529 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5530
5531 * config/i386/sse.md
5532 (define_insn "vcvtph2ps<mask_name>"): Add masking.
5533 (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
5534 (define_insn "vcvtph2ps256<mask_name>"): Ditto.
5535 (define_expand "vcvtps2ph_mask"): New.
5536 (define_insn "*vcvtps2ph<mask_name>"): Add masking.
5537 (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
5538 (define_insn "vcvtps2ph256<mask_name>"): Ditto.
5539
5540 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
5541 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5542 Anna Tikhonova <anna.tikhonova@intel.com>
5543 Ilya Tocar <ilya.tocar@intel.com>
5544 Andrey Turetskiy <andrey.turetskiy@intel.com>
5545 Ilya Verbin <ilya.verbin@intel.com>
5546 Kirill Yukhin <kirill.yukhin@intel.com>
5547 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5548
5549 * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
5550 New.
5551 (define_mode_iterator VI24_AVX512BW_1): Ditto.
5552 (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
5553 (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
5554 (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
5555 also for TARGET_AVX512VL.
5556 (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
5557
5558 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
5559
5560 * doc/install.texi (Options specification): add
5561 --disable-libsanitizer item.
5562
5563 2014-09-14 James Clarke <jrtc27@jrtc27.com>
5564 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
5565
5566 PR target/61407
5567 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
5568 and above.
5569 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
5570 kernel version check to avoid incrementing it after every major OS X
5571 release.
5572 (darwin_default_min_version): Avoid static memory buffer.
5573
5574 2014-09-13 Jan Hubicka <hubicka@ucw.cz>
5575
5576 * tree.c (need_assembler_name_p): Store C++ type mangling only
5577 for aggregates.
5578
5579 2014-09-13 Marek Polacek <polacek@redhat.com>
5580
5581 * tree.c (protected_set_expr_location): Don't check whether T is
5582 non-null here.
5583
5584 2014-09-12 DJ Delorie <dj@redhat.com>
5585
5586 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
5587 (extend_and_shift1_hipsi2): Likewise.
5588 (extend_and_shift2_hipsi2): Likewise.
5589
5590 2014-09-12 David Malcolm <dmalcolm@redhat.com>
5591
5592 * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
5593 with NULL when dealing with an insn.
5594 * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
5595 from rtx to rtx_insn *.
5596 * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
5597 const_rtx to const rtx_insn *.
5598 * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
5599
5600 2014-09-12 Trevor Saunders <tsaunders@mozilla.com>
5601
5602 * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
5603 assert.
5604
5605 2014-09-12 Joseph Myers <joseph@codesourcery.com>
5606
5607 * target.def (libgcc_floating_mode_supported_p): New hook.
5608 * targhooks.c (default_libgcc_floating_mode_supported_p): New
5609 function.
5610 * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
5611 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
5612 (LIBGCC2_HAS_TF_MODE): Remove.
5613 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
5614 * doc/tm.texi: Regenerate.
5615 * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
5616 machine mode.
5617 * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
5618 (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
5619 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
5620 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
5621 * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5622 * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
5623 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
5624 * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
5625 * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
5626 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
5627 function.
5628 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
5629 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5630 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5631 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5632 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5633 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5634 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5635 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
5636 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
5637 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
5638 * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5639 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
5640 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
5641 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
5642 Remove.
5643 * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
5644 New macro.
5645 (ia64_libgcc_floating_mode_supported_p): New function.
5646 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
5647 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
5648 (IA64_NO_LIBGCC_TFMODE): Define.
5649 * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
5650 * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
5651 macro.
5652 (pdp11_scalar_mode_supported_p): New function.
5653 * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
5654 * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
5655
5656 2014-09-12 Richard Biener <rguenther@suse.de>
5657
5658 PR middle-end/63237
5659 * gimple-fold.c (get_maxval_strlen): Gimplify string length.
5660
5661 2014-09-12 Marc Glisse <marc.glisse@inria.fr>
5662
5663 * tree.c (integer_each_onep): New function.
5664 * tree.h (integer_each_onep): Declare it.
5665 * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
5666 -A - 1 to ~A. Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
5667 (X & 1) == 0 for vector and complex.
5668
5669 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
5670
5671 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
5672 for A57.
5673 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
5674 cost to spilling from integer to FP registers.
5675
5676 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
5677
5678 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
5679 move handling.
5680 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
5681 are now handled correctly.
5682
5683 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
5684
5685 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
5686 handling of CALLER_SAVE_REGS and POINTER_REGS.
5687
5688 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
5689
5690 * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
5691 the number of hard registers.
5692
5693 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
5694 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5695 Anna Tikhonova <anna.tikhonova@intel.com>
5696 Ilya Tocar <ilya.tocar@intel.com>
5697 Andrey Turetskiy <andrey.turetskiy@intel.com>
5698 Ilya Verbin <ilya.verbin@intel.com>
5699 Kirill Yukhin <kirill.yukhin@intel.com>
5700 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5701
5702 * config/i386/sse.md
5703 (define_mode_iterator VI48_AVX512VL): New.
5704 (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
5705 "avx512f_vternlog<mode>_maskz" and update mode iterator.
5706 (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
5707 from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
5708 (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
5709 "avx512f_vternlog<mode>_mask" and update mode iterator.
5710 (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
5711 from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
5712 iterator.
5713 (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
5714 "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
5715 (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
5716 "avx512f_<rotate><mode><mask_name>" and update mode iterator.
5717 (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
5718 (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
5719
5720 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
5721 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5722 Anna Tikhonova <anna.tikhonova@intel.com>
5723 Ilya Tocar <ilya.tocar@intel.com>
5724 Andrey Turetskiy <andrey.turetskiy@intel.com>
5725 Ilya Verbin <ilya.verbin@intel.com>
5726 Kirill Yukhin <kirill.yukhin@intel.com>
5727 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5728
5729 * config/i386/sse.md (VI128_256): Delete.
5730 (define_mode_iterator VI124_256): New.
5731 (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
5732 (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
5733 (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
5734 (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
5735 "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
5736 (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
5737 (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
5738 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
5739 iterator.
5740 (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
5741 in presence of AVX-512.
5742
5743 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
5744 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5745 Anna Tikhonova <anna.tikhonova@intel.com>
5746 Ilya Tocar <ilya.tocar@intel.com>
5747 Andrey Turetskiy <andrey.turetskiy@intel.com>
5748 Ilya Verbin <ilya.verbin@intel.com>
5749 Kirill Yukhin <kirill.yukhin@intel.com>
5750 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5751
5752 * config/i386/sse.md
5753 (define_expand "<avx512>_gathersi<mode>"): Rename from
5754 "avx512f_gathersi<mode>".
5755 (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
5756 (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
5757 (define_expand "<avx512>_gatherdi<mode>"): Rename from
5758 "avx512f_gatherdi<mode>".
5759 (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
5760 (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
5761 wide versions.
5762 (define_expand "<avx512>_scattersi<mode>"): Rename from
5763 "avx512f_scattersi<mode>".
5764 (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
5765 (define_expand "<avx512>_scatterdi<mode>"): Rename from
5766 "avx512f_scatterdi<mode>".
5767 (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
5768
5769 2014-09-12 Richard Sandiford <richard.sandiford@arm.com>
5770
5771 * ira.h (ira_finish_once): Delete.
5772 * ira-int.h (target_ira_int::~target_ira_int): Declare.
5773 (target_ira_int::free_ira_costs): Likewise.
5774 (target_ira_int::free_register_move_costs): Likewise.
5775 (ira_finish_costs_once): Delete.
5776 * ira.c (free_register_move_costs): Replace with...
5777 (target_ira_int::free_register_move_costs): ...this new function.
5778 (target_ira_int::~target_ira_int): Define.
5779 (ira_init): Call free_register_move_costs as a member function rather
5780 than a global function.
5781 (ira_finish_once): Delete.
5782 * ira-costs.c (free_ira_costs): Replace with...
5783 (target_ira_int::free_ira_costs): ...this new function.
5784 (ira_init_costs): Call free_ira_costs as a member function rather
5785 than a global function.
5786 (ira_finish_costs_once): Delete.
5787 * target-globals.c (target_globals::~target_globals): Call the
5788 target_ira_int destructor.
5789 * toplev.c: Include lra.h.
5790 (finalize): Call lra_finish_once rather than ira_finish_once.
5791
5792 2014-09-11 Jan Hubicka <hubicka@ucw.cz>
5793
5794 * common.opt (flto-odr-type-merging): New flag.
5795 * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
5796 (types_same_for_odr): Likewise.
5797 (odr_subtypes_equivalent_p): Likewise.
5798 (add_type_duplicate): Do not walk type variants.
5799 (register_odr_type): New function.
5800 * ipa-utils.h (register_odr_type): Declare.
5801 (odr_type_p): New function.
5802 * langhooks.c (lhd_set_decl_assembler_name): Do not compute
5803 TYPE_DECLs
5804 * doc/invoke.texi (-flto-odr-type-merging): Document.
5805 * tree.c (need_assembler_name_p): Compute ODR names when asked
5806 for it.
5807 * tree.h (DECL_ASSEMBLER_NAME): Update comment.
5808
5809 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
5810
5811 PR target/63228
5812 * config/i386/i386.c (ix86_option_override_internal): Also turn
5813 off OPTION_MASK_ABI_X32 for -m16.
5814
5815 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
5816
5817 * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
5818 GPR instead of P.
5819
5820 2014-09-11 Marc Glisse <marc.glisse@inria.fr>
5821
5822 PR target/58757
5823 * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
5824 Directly forward to __*_DENORM_MIN__.
5825
5826 2014-09-11 David Malcolm <dmalcolm@redhat.com>
5827
5828 * rtl.h (LABEL_REF_LABEL): New macro.
5829
5830 * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
5831 of XEXP (, 0), where we know that we have a LABEL_REF.
5832 * cfgbuild.c (make_edges): Likewise.
5833 (purge_dead_tablejump_edges): Likewise.
5834 * cfgexpand.c (convert_debug_memory_address): Likewise.
5835 * cfgrtl.c (patch_jump_insn): Likewise.
5836 * combine.c (distribute_notes): Likewise.
5837 * cse.c (hash_rtx_cb): Likewise.
5838 (exp_equiv_p): Likewise.
5839 (fold_rtx): Likewise.
5840 (check_for_label_ref): Likewise.
5841 * cselib.c (rtx_equal_for_cselib_1): Likewise.
5842 (cselib_hash_rtx): Likewise.
5843 * emit-rtl.c (mark_label_nuses): Likewise.
5844 * explow.c (convert_memory_address_addr_space): Likewise.
5845 * final.c (output_asm_label): Likewise.
5846 (output_addr_const): Likewise.
5847 * gcse.c (add_label_notes): Likewise.
5848 * genconfig.c (walk_insn_part): Likewise.
5849 * genrecog.c (validate_pattern): Likewise.
5850 * ifcvt.c (cond_exec_get_condition): Likewise.
5851 (noce_emit_store_flag): Likewise.
5852 (noce_get_alt_condition): Likewise.
5853 (noce_get_condition): Likewise.
5854 * jump.c (maybe_propagate_label_ref): Likewise.
5855 (mark_jump_label_1): Likewise.
5856 (redirect_exp_1): Likewise.
5857 (rtx_renumbered_equal_p): Likewise.
5858 * lra-constraints.c (operands_match_p): Likewise.
5859 * reload.c (operands_match_p): Likewise.
5860 (find_reloads): Likewise.
5861 * reload1.c (set_label_offsets): Likewise.
5862 * reorg.c (get_branch_condition): Likewise.
5863 * rtl.c (rtx_equal_p_cb): Likewise.
5864 (rtx_equal_p): Likewise.
5865 * rtlanal.c (reg_mentioned_p): Likewise.
5866 (rtx_referenced_p): Likewise.
5867 (get_condition): Likewise.
5868 * sched-vis.c (print_value): Likewise.
5869 * varasm.c (const_hash_1): Likewise.
5870 (compare_constant): Likewise.
5871 (const_rtx_hash_1): Likewise.
5872 (output_constant_pool_1): Likewise.
5873
5874 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
5875
5876 * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
5877 tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
5878 instead of minus.
5879 * config/rs6000/vector.md (cr6_test_for_zero_reverse,
5880 cr6_test_for_lt_reverse): Ditto.
5881
5882 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
5883
5884 PR c++/61489
5885 * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
5886
5887 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
5888
5889 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
5890 TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
5891 aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
5892 aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
5893 Delete.
5894
5895 (aarch64_fold_builtin): Remove all reinterpret cases.
5896
5897 * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
5898
5899 * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
5900
5901 * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
5902 aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
5903 aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
5904 aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
5905 aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
5906 aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
5907 aarch64_reinterpretv2df<mode>): Delete.
5908
5909 * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
5910
5911 * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
5912 vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
5913 vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
5914 vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
5915 vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
5916 vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
5917 vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
5918 vreinterpret_u32_f64): Use cast.
5919
5920 * config/aarch64/iterators.md (VD_RE): Delete.
5921
5922 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
5923
5924 * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
5925 (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
5926 vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
5927 vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
5928 vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
5929 vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
5930 vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
5931 Replace inline assembler with __aarch64_vset_lane_any.
5932
5933 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
5934
5935 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
5936 types.
5937 (vmull_high_lane_s32): Likewise.
5938 (vmull_high_lane_u16): Likewise.
5939 (vmull_high_lane_u32): Likewise.
5940
5941 2014-09-11 Jason Merrill <jason@redhat.com>
5942
5943 PR c++/58678
5944 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
5945
5946 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
5947
5948 PR target/63223
5949 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
5950 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
5951 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
5952
5953 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5954 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5955 Anna Tikhonova <anna.tikhonova@intel.com>
5956 Ilya Tocar <ilya.tocar@intel.com>
5957 Andrey Turetskiy <andrey.turetskiy@intel.com>
5958 Ilya Verbin <ilya.verbin@intel.com>
5959 Kirill Yukhin <kirill.yukhin@intel.com>
5960 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5961
5962 * config/i386/sse.md
5963 (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
5964 "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
5965 (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
5966 New.
5967 (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
5968 from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
5969 iterator.
5970 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5971 New.
5972 (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
5973 "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
5974 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
5975 (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
5976 "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
5977 (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
5978 (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
5979 from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
5980 iterator.
5981 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5982 New.
5983 (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
5984 "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
5985 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
5986
5987 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
5988
5989 * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
5990 to access removed nodes.
5991
5992 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
5993
5994 PR tree-optimization/63186
5995 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
5996 (mark_nonssa_use): Likewise.
5997 (verify_non_ssa_vars): Verify all header blocks for label
5998 definitions.
5999
6000 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
6001 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6002 Anna Tikhonova <anna.tikhonova@intel.com>
6003 Ilya Tocar <ilya.tocar@intel.com>
6004 Andrey Turetskiy <andrey.turetskiy@intel.com>
6005 Ilya Verbin <ilya.verbin@intel.com>
6006 Kirill Yukhin <kirill.yukhin@intel.com>
6007 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6008
6009 * config/i386/sse.md
6010 (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
6011 (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
6012 (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
6013 "<avx2_avx512f>_permvar<mode><mask_name>".
6014 (define_insn "<avx512>_permvar<mode><mask_name>"): New.
6015 (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
6016 Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
6017 (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
6018 Ditto.
6019 (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
6020 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
6021 (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
6022 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
6023
6024 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
6025
6026 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
6027 V2DF, V4SF, DF, and DI modes.
6028 (vsx_fmav2df2): Likewise.
6029 (vsx_float_fix_<mode>2): Likewise.
6030 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
6031
6032 2014-09-10 Xinliang David Li <davidxl@google.com>
6033
6034 PR target/63209
6035 * config/arm/arm.md (movcond_addsi): Handle case where source
6036 and target operands are the same.
6037
6038 2014-09-10 David Malcolm <dmalcolm@redhat.com>
6039
6040 * final.c (this_is_asm_operands): Strengthen this variable from
6041 rtx to const rtx_insn *.
6042 * output.h (this_is_asm_operands): Likewise.
6043 * rtl-error.c (location_for_asm): Strengthen param "insn" from
6044 const_rtx to const rtx_insn *.
6045 (diagnostic_for_asm): Likewise.
6046 * rtl-error.h (error_for_asm): Likewise.
6047 (warning_for_asm): Likewise.
6048
6049 2014-09-10 David Malcolm <dmalcolm@redhat.com>
6050
6051 * genextract.c (print_header): When writing out insn_extract to
6052 insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
6053 * recog.h (insn_extract): Strengthen the param from rtx to
6054 rtx_insn *.
6055
6056 2014-09-10 Mike Stump <mikestump@comcast.net>
6057
6058 * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
6059 8.6.1.
6060
6061 2014-09-10 Martin Jambor <mjambor@suse.cz>
6062
6063 * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
6064 (analyze): Do not set analyze flag if expand_thunk returns false;.
6065 (create_wrapper): Likewise.
6066 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
6067
6068 2014-09-10 Martin Jambor <mjambor@suse.cz>
6069
6070 PR ipa/61654
6071 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
6072 new decl properly. Analyze the new thunk if it is expanded.
6073
6074 2014-09-10 Andreas Schwab <schwab@suse.de>
6075
6076 * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
6077 [USED_FOR_TARGET]: Define.
6078
6079 2014-09-10 Matthew Fortune <matthew.fortune@imgtec.com>
6080
6081 * config/mips/mips.c (mips_secondary_reload_class): Handle
6082 regno < 0 case.
6083
6084 2014-09-10 Robert Suchanek <robert.suchanek@imgtec.com>
6085
6086 * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
6087 assignment.
6088
6089 2014-09-10 Jakub Jelinek <jakub@redhat.com>
6090
6091 * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
6092 and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
6093 * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
6094 SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
6095 flag_delete_null_pointer_checks for them.
6096 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
6097 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
6098 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
6099 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
6100 * ubsan.c (instrument_bool_enum_load): Set *gsi back to
6101 stmt's iterator.
6102 (instrument_nonnull_arg, instrument_nonnull_return): New functions.
6103 (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
6104 or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
6105 (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
6106 * doc/invoke.texi (-fsanitize=nonnull-attribute,
6107 -fsanitize=returns-nonnull-attribute): Document.
6108
6109 * ubsan.h (struct ubsan_mismatch_data): Removed.
6110 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
6111 * ubsan.c (ubsan_source_location): For unknown locations,
6112 pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
6113 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
6114 Allow more than one location and arbitrary extra arguments passed
6115 in ... instead of through MISMATCH pointer.
6116 (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
6117 ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
6118 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
6119 callers.
6120
6121 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
6122 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6123 Anna Tikhonova <anna.tikhonova@intel.com>
6124 Ilya Tocar <ilya.tocar@intel.com>
6125 Andrey Turetskiy <andrey.turetskiy@intel.com>
6126 Ilya Verbin <ilya.verbin@intel.com>
6127 Kirill Yukhin <kirill.yukhin@intel.com>
6128 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6129
6130 * config/i386/sse.md
6131 (define_mode_iterator VI48F): New.
6132 (define_insn "<avx512>_compress<mode>_mask"): Rename from
6133 "avx512f_compress<mode>_mask" and update mode iterator.
6134 (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
6135 "avx512f_compressstore<mode>_mask" and update mode iterator.
6136 (define_expand "<avx512>_expand<mode>_maskz"): Rename from
6137 "avx512f_expand<mode>_maskz" and update mode iterator.
6138 (define_insn "<avx512>_expand<mode>_mask"): Rename from
6139 "avx512f_expand<mode>_mask" and update mode iterator.
6140
6141 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
6142 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6143 Anna Tikhonova <anna.tikhonova@intel.com>
6144 Ilya Tocar <ilya.tocar@intel.com>
6145 Andrey Turetskiy <andrey.turetskiy@intel.com>
6146 Ilya Verbin <ilya.verbin@intel.com>
6147 Kirill Yukhin <kirill.yukhin@intel.com>
6148 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6149
6150 * config/i386/i386.c
6151 (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
6152 avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
6153 avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
6154 avx512dq_rangepv4sf_mask.
6155 * config/i386/sse.md
6156 (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
6157 UNSPEC_RANGE.
6158 (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
6159 (define_insn "reduces<mode>"): Ditto.
6160 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
6161 Ditto.
6162 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
6163 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
6164 (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
6165
6166 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
6167 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6168 Anna Tikhonova <anna.tikhonova@intel.com>
6169 Ilya Tocar <ilya.tocar@intel.com>
6170 Andrey Turetskiy <andrey.turetskiy@intel.com>
6171 Ilya Verbin <ilya.verbin@intel.com>
6172 Kirill Yukhin <kirill.yukhin@intel.com>
6173 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6174
6175 * config/i386/i386.c
6176 (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
6177 (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
6178 (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
6179 avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
6180 avx512vl_getmantv2df_mask.
6181 (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
6182 avx512f_vgetmantv4sf_round.
6183 * config/i386/sse.md
6184 (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
6185 Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
6186 mode iterator.
6187 (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
6188 (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
6189 (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
6190 from "avx512f_scalef<mode><mask_name><round_name>" and update mode
6191 iterator..
6192 (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
6193 Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
6194 update mode iterator.
6195 (define_expand
6196 "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
6197 "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
6198 mode iterator.
6199 (define_insn
6200 "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
6201 from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
6202 update mode iterator.
6203 (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
6204 from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
6205 iterator..
6206 (define_insn
6207 "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
6208 "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
6209 mode iterator..
6210 (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
6211 Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
6212 update mode iterator.
6213 (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
6214 "avx512f_getmant<mode><round_saeonly_name>".
6215
6216 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
6217
6218 PR ipa/63166
6219 * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
6220
6221 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
6222 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6223 Anna Tikhonova <anna.tikhonova@intel.com>
6224 Ilya Tocar <ilya.tocar@intel.com>
6225 Andrey Turetskiy <andrey.turetskiy@intel.com>
6226 Ilya Verbin <ilya.verbin@intel.com>
6227 Kirill Yukhin <kirill.yukhin@intel.com>
6228 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6229
6230 * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
6231 (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
6232 (define_mode_iterator FMAMODE_AVX512): New.
6233 (define_mode_iterator FMAMODE): Remove conditions.
6234 (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
6235 (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
6236 from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
6237 mode iterator.
6238 (define_mode_iterator FMAMODE_NOVF512): Remove.
6239 (define_insn "*fma_fmadd_<mode>"): Rename from
6240 "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
6241 FMAMODE mode iterator.
6242 (define_mode_iterator VF_SF_AVX512VL): New.
6243 (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
6244 Use VF_SF_AVX512VL mode iterator.
6245 (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
6246 "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6247 iterator.
6248 (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
6249 "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6250 iterator.
6251 (define_insn "*fma_fmsub_<mode>"): Rename from
6252 "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
6253 FMAMODE mode iterator.
6254 (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
6255 Use VF_SF_AVX512VL mode iterator.
6256 (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
6257 "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6258 iterator.
6259 (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
6260 "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6261 iterator.
6262 (define_insn "*fma_fnmadd_<mode>"): Rename from
6263 "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
6264 use FMAMODE mode iterator.
6265 (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
6266 Use VF_SF_AVX512VL mode iterator.
6267 (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
6268 "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6269 iterator.
6270 (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
6271 "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6272 iterator.
6273 (define_insn "*fma_fnmsub_<mode>"): Rename from
6274 "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
6275 FMAMODE mode iterator.
6276 (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
6277 Use VF_SF_AVX512VL mode iterator.
6278 (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
6279 "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6280 iterator.
6281 (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
6282 "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6283 iterator.
6284 (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
6285 Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
6286 use VF_AVX512VL mode iterator.
6287 (define_insn "*fma_fmaddsub_<mode>"): Rename from
6288 "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
6289 remove subst usage.
6290 (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
6291 Use VF_SF_AVX512VL mode iterator.
6292 (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
6293 "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6294 iterator.
6295 (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
6296 "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6297 iterator.
6298 (define_insn "*fma_fmsubadd_<mode>"): Rename from
6299 "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
6300 remove usage of subst.
6301 (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
6302 Use VF_SF_AVX512VL mode iterator.
6303 (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
6304 "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6305 iterator.
6306 (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
6307 "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6308 iterator.
6309
6310 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org>
6311
6312 Revert r213751:
6313 * calls.c (precompute_arguments): Check
6314 promoted_for_signed_and_unsigned_p and set the promoted mode.
6315 (promoted_for_signed_and_unsigned_p): New function.
6316 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
6317 and set the promoted mode.
6318 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
6319 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
6320 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
6321
6322 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
6323
6324 * opth-gen.awk: Generate mapping from cpp message reasons to the
6325 options that enable them.
6326 * doc/options.texi (CppReason): Document.
6327
6328 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
6329
6330 * doc/invoke.texi (Wnormalized=): Update.
6331
6332 2014-09-09 Segher Boessenkool <segher@kernel.crashing.org>
6333
6334 PR target/63195
6335 * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
6336 operands. Split off the constant operand alternative to ...
6337 (*bool<mode>3_imm): New.
6338
6339 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6340
6341 * rtl.h (single_set_2): Strengthen first param from const_rtx to
6342 const rtx_insn *, and move prototype to above...
6343 (single_set): ...this. Convert this from a macro to an inline
6344 function, enforcing the requirement that the param is a const
6345 rtx_insn *.
6346 (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
6347
6348 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
6349 Strengthen both params from rtx to rtx_insn *.
6350 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
6351 Likewise; introduce locals "producer_set", "consumer_set", using
6352 them in place of "producer" and "consumer" when dealing with SET
6353 rather than insn.
6354 * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
6355 when invoking single_set in region guarded by INSN_P.
6356 (avr_out_bitop): Likewise.
6357 (_reg_unused_after): Introduce local rtx_sequence * "seq" in
6358 region guarded by GET_CODE check, using methods to strengthen
6359 local "this_insn" from rtx to rtx_insn *, and for clarity.
6360 * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
6361 Strengthen local "insn" from rtx to rtx_insn *.
6362 (define_insn_and_split "xload<mode>_A"): Likewise.
6363 * config/bfin/bfin.c (trapping_loads_p): Likewise for param
6364 "insn".
6365 (find_load): Likewise for return type.
6366 (workaround_speculation): Likewise for both locals named
6367 "load_insn".
6368 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
6369 local "cc0_user".
6370 * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
6371 for local "prev".
6372 * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
6373 param 2.
6374 * config/h8300/h8300.c (notice_update_cc): Likewise.
6375 * config/i386/i386.c (ix86_flags_dependent): Likewise for params
6376 "insn" and "dep_insn".
6377 (exact_store_load_dependency): Likewise for both params.
6378 (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
6379 since this now clashes with inline function. Instead, delay
6380 calling single_set until the point where its needed, and then
6381 assign the result to "compare_set" and rework the conditional that
6382 follows.
6383 * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
6384 local "last" from rtx to rtx_insn *.
6385 * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
6386 second param.
6387 (mips_store_data_bypass_p): Likewise for both params.
6388 * config/mips/mips.c (mips_load_store_insns): Likewise for second
6389 param.
6390 (mips_store_data_bypass_p): Likewise for both params.
6391 (mips_orphaned_high_part_p): Likewise for param "insn".
6392 * config/mn10300/mn10300.c (extract_bundle): Likewise.
6393 (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
6394 Introduce local rtx "insn2_pat".
6395 * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
6396 "ninsn".
6397 (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
6398 Introduce local rtx "set", using it in place of "insn" for the
6399 result of single_set. This appears to fix a bug, since the call
6400 to find_regno_note on a SET does nothing.
6401 * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
6402 params from rtx to rtx_insn *.
6403 (set_to_load_agen): Likewise.
6404 * config/s390/s390.c (s390_label_align): Likewise for local
6405 "prev_insn". Introduce new rtx locals "set" and "src", using
6406 them in place of "prev_insn" for the results of single_set
6407 and SET_SRC respectively.
6408 (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
6409 Introduce new rtx local "set" using in place of "jump" for the
6410 result of single_set. Use SET_SRC (set) rather than plain
6411 XEXP (set, 1).
6412 * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
6413 rtx to rtx_insn *.
6414 (noncall_uses_reg): Likewise.
6415 (reg_unused_after): Introduce local rtx_sequence * "seq" in region
6416 guarded by GET_CODE check, using its methods for clarity, and to
6417 enable strengthening local "this_insn" from rtx to rtx_insn *.
6418 * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
6419 "insn" from rtx to rtx_insn *.
6420 (define_expand "umulhisi3"): Likewise.
6421 (define_expand "smulsi3_highpart"): Likewise.
6422 (define_expand "umulsi3_highpart"): Likewise.
6423 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
6424 local "after". Replace GET_CODE check with a dyn_cast,
6425 introducing new local rtx_sequence * "seq", using insn method for
6426 typesafety.
6427
6428 * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
6429 from rtx to rtx_insn *. Introduce local rtx "pat", using it in
6430 place of "insn" once we're dealing with patterns rather than the
6431 input insn.
6432 (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
6433 (scan_trace): Likewise for local "elt", updating lookups within
6434 sequence to use insn method rather than element method.
6435 * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
6436 to rtx_insn *.
6437 * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
6438 * ifcvt.c (noce_try_abs): Likewise for local "insn".
6439 * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
6440 invoking single_set.
6441 * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
6442 "insn" from rtx to rtx_insn *.
6443 (skip_usage_debug_insns): Likewise for return type, adding a
6444 checked cast.
6445 (check_secondary_memory_needed_p): Likewise for local "insn".
6446 (inherit_reload_reg): Likewise.
6447 * modulo-sched.c (sms_schedule): Likewise for local "count_init".
6448 * recog.c (peep2_attempt): Likewise for local "old_insn", adding
6449 checked casts.
6450 (store_data_bypass_p): Likewise for both params.
6451 (if_test_bypass_p): Likewise.
6452 * recog.h (store_data_bypass_p): Likewise for both params.
6453 (if_test_bypass_p): Likewise.
6454 * reload.c (find_equiv_reg): Likewise for local "where".
6455 * reorg.c (delete_jump): Likewise for param "insn".
6456 * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
6457 to const rtx_insn *.
6458 * store-motion.c (replace_store_insn): Likewise for param "del".
6459 (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
6460 and use its methods for clarity, and to strengthen local "del"
6461 from rtx to rtx_insn *.
6462 (build_store_vectors): Use insn method of "st" when calling
6463 replace_store_insn for typesafety and clarity.
6464
6465 2014-09-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6466
6467 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
6468 UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
6469 on how to make it legal in future.
6470
6471 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6472
6473 * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
6474 to rtx_insn *.
6475 (restinsn): Likewise.
6476 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
6477 Likewise for param.
6478 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
6479 Likewise.
6480 * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
6481 first param.
6482 (arc_hazard): Likewise for both params.
6483 * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
6484 checked casts to rtx_sequence * and uses of the insn method for
6485 type-safety.
6486 (arc_hazard): Strengthen both params from rtx to rtx_insn *.
6487 (arc_adjust_insn_length): Likewise for param "insn".
6488 (struct insn_length_parameters_s): Likewise for first param of
6489 "get_variants" callback field.
6490 (arc_get_insn_variants): Likewise for first param and local
6491 "inner". Replace a check of GET_CODE with a dyn_cast to
6492 rtx_sequence *, using methods for type-safety and clarity.
6493 * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
6494 rtx_sequence * and uses of the insn method for type-safety when
6495 invoking arc_adjust_insn_length.
6496 * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
6497 for param.
6498 (arm_address_offset_is_imm): Likewise.
6499 (struct tune_params): Likewise for params 1 and 3 of the
6500 "sched_adjust_cost" callback field.
6501 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
6502 params 1 and 3 ("insn" and "dep").
6503 (xscale_sched_adjust_cost): Likewise.
6504 (fa726te_sched_adjust_cost): Likewise.
6505 (cortexa7_older_only): Likewise for param "insn".
6506 (cortexa7_younger): Likewise.
6507 (arm_attr_length_move_neon): Likewise.
6508 (arm_address_offset_is_imm): Likewise.
6509 * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
6510 * config/avr/avr.c (avr_notice_update_cc): Likewise.
6511 * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
6512 (workaround_speculation): Likewise for local "last_condjump".
6513 * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
6514 (shadow_or_blockage_p): Likewise.
6515 (get_unit_reqs): Likewise.
6516 (get_unit_operand_masks): Likewise.
6517 (c6x_registers_update): Likewise.
6518 (returning_call_p): Likewise.
6519 (can_use_callp): Likewise.
6520 (convert_to_callp): Likewise.
6521 (find_last_same_clock): Likwise for local "t".
6522 (reorg_split_calls): Likewise for local "shadow".
6523 (hwloop_pattern_reg): Likewise for param "insn".
6524 * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
6525 * config/frv/frv.c (frv_final_prescan_insn): Likewise.
6526 (frv_extract_membar): Likewise.
6527 (frv_optimize_membar_local): Strengthen param "last_membar" from
6528 rtx * to rtx_insn **.
6529 (frv_optimize_membar_global): Strengthen param "membar" from rtx
6530 to rtx_insn *.
6531 (frv_optimize_membar): Strengthen local "last_membar" from rtx *
6532 to rtx_insn **.
6533 * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
6534 both params from rtx to rtx_insn *.
6535 (ia64_ld_address_bypass_p): Likewise.
6536 * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
6537 "insn".
6538 (ia64_safe_type): Likewise.
6539 (group_barrier_needed): Likewise.
6540 (safe_group_barrier_needed): Likewise.
6541 (ia64_single_set): Likewise.
6542 (is_load_p): Likewise.
6543 (record_memory_reference): Likewise.
6544 (get_mode_no_for_insn): Likewise.
6545 (important_for_bundling_p): Likewise.
6546 (unknown_for_bundling_p): Likewise.
6547 (ia64_st_address_bypass_p): Likewise for both params.
6548 (ia64_ld_address_bypass_p): Likewise.
6549 (expand_vselect): Introduce new local rtx_insn * "insn", using it
6550 in place of rtx "x" after the emit_insn call.
6551 * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
6552 Strengthen param from rtx to rtx_insn *.
6553 (ix86_agi_dependent): Likewise for both params.
6554 (ix86_attr_length_immediate_default): Likewise for param 1.
6555 (ix86_attr_length_address_default): Likewise for param.
6556 (ix86_attr_length_vex_default): Likewise for param 1.
6557 * config/i386/i386.c (ix86_attr_length_immediate_default):
6558 Likewise for param "insn".
6559 (ix86_attr_length_address_default): Likewise.
6560 (ix86_attr_length_vex_default): Likewise.
6561 (ix86_agi_dependent): Likewise for both params.
6562 (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
6563 (vselect_insn): Likewise for this variable.
6564 * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
6565 for param 1.
6566 (m68k_sched_attr_opy_type): Likewise.
6567 * config/m68k/m68k.c (sched_get_operand): Likewise.
6568 (sched_attr_op_type): Likewise.
6569 (m68k_sched_attr_opx_type): Likewise.
6570 (m68k_sched_attr_opy_type): Likewise.
6571 (sched_get_reg_operand): Likewise.
6572 (sched_get_mem_operand): Likewise.
6573 (m68k_sched_address_bypass_p): Likewise for both params.
6574 (sched_get_indexed_address_scale): Likewise.
6575 (m68k_sched_indexed_address_bypass_p): Likewise.
6576 * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
6577 (m68k_sched_indexed_address_bypass_p): Likewise.
6578 * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
6579 "label", "ret" from rtx to rtx_insn *, adding a checked cast and
6580 removing another.
6581 * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
6582 params from rtx to rtx_insn *.
6583 (mips_fmadd_bypass): Likewise.
6584 * config/mips/mips.c (mips_fmadd_bypass): Likewise.
6585 (mips_linked_madd_p): Likewise.
6586 (mips_macc_chains_last_hilo): Likewise for this variable.
6587 (mips_macc_chains_record): Likewise for param.
6588 (vr4130_last_insn): Likewise for this variable.
6589 (vr4130_swap_insns_p): Likewise for both params.
6590 (mips_ls2_variable_issue): Likewise for param.
6591 (mips_need_noat_wrapper_p): Likewise for param "insn".
6592 (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
6593 in place of "x" after the emit_insn.
6594 * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
6595 params from rtx to rtx_insn *.
6596 * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
6597 (pa_combine_instructions): Introduce local "par" for result of
6598 gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
6599 to make_insn_raw.
6600 (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
6601 * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
6602 (rl78_alloc_physical_registers_op1): Likewise.
6603 (rl78_alloc_physical_registers_op2): Likewise.
6604 (rl78_alloc_physical_registers_ro1): Likewise.
6605 (rl78_alloc_physical_registers_cmp): Likewise.
6606 (rl78_alloc_physical_registers_umul): Likewise.
6607 (rl78_alloc_address_registers_macax): Likewise.
6608 (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
6609 * config/s390/predicates.md (execute_operation): Likewise for
6610 local "insn".
6611 * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
6612 params.
6613 * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
6614 (addr_generation_dependency_p): Likewise for param "insn".
6615 (s390_agen_dep_p): Likewise for both params.
6616 (s390_fpload_toreg): Likewise for param "insn".
6617 * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
6618 * config/sh/sh.c (sh_loop_align): Likewise for param and local
6619 "next".
6620 * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
6621 * config/sh/sh_treg_combine.cc
6622 (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
6623 and local "i".
6624 (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
6625 * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
6626 "and_insn", "load", "shift".
6627 * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
6628 "insn".
6629 * final.c (final_scan_insn): Introduce local rtx_insn * "other"
6630 for XEXP (note, 0) of the REG_CC_SETTER note.
6631 (cleanup_subreg_operands): Strengthen param "insn" from rtx to
6632 rtx_insn *, eliminating a checked cast made redundant by this.
6633 * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
6634 to rtx_insn *.
6635 * genattr.c (main): When writing out the prototype to
6636 const_num_delay_slots, strengthen the param from rtx to
6637 rtx_insn *.
6638 * genattrtab.c (write_const_num_delay_slots): Likewise when
6639 writing out the implementation of const_num_delay_slots.
6640 * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
6641 "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
6642 * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
6643 favor of new rtx locals "src" and "set" and new local rtx_insn *
6644 "insn" and "seq".
6645 (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
6646 to rtx_insn *.
6647 (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
6648 locals "cond", "if_then_else", "set" and new rtx_insn * locals
6649 "insn" and "seq".
6650 (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
6651 "last" from rtx to rtx_insn *. Likewise for a local "tmp",
6652 renaming to "tmp_insn". Eliminate the other local rtx "tmp" from
6653 the top-level scope, replacing with new more tightly-scoped rtx
6654 locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
6655 "new_insn", "copy_of_insn_b", and make local rtx "set" more
6656 tightly-scoped.
6657 * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
6658 rtx_insn *.
6659 * ira.c (setup_prohibited_mode_move_regs): Likewise for local
6660 "move_insn".
6661 (ira_setup_alts): Likewise for param "insn".
6662 * lra-constraints.c (emit_inc): Likewise for local "add_insn".
6663 * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
6664 and an rtx_insn *.
6665 (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
6666 new more-tightly scoped rtx locals "add3_insn", "insn",
6667 "add2_insn" and rtx_insn * "move_insn".
6668 * postreload-gcse.c (eliminate_partially_redundant_load): Add
6669 checked cast on result of gen_move_insn when invoking
6670 extract_insn.
6671 * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
6672 rtx_insn *.
6673 (verify_changes): Add a checked cast on "object" when invoking
6674 insn_invalid_p.
6675 (extract_insn_cached): Strengthen param "insn" from rtx to
6676 rtx_insn *.
6677 (extract_constrain_insn_cached): Likewise.
6678 (extract_insn): Likewise.
6679 * recog.h (insn_invalid_p): Likewise for param 1.
6680 (recog_memoized): Likewise for param.
6681 (extract_insn): Likewise.
6682 (extract_constrain_insn_cached): Likewise.
6683 (extract_insn_cached): Likewise.
6684 * reload.c (can_reload_into): Likewise for local "test_insn".
6685 * reload.h (cleanup_subreg_operands): Likewise for param.
6686 * reload1.c (emit_insn_if_valid_for_reload): Rename param from
6687 "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
6688 result of emit_insn. Remove a checked cast made redundant by this
6689 change.
6690 * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
6691 rtx to rtx_insn *.
6692 * sel-sched.c (get_reg_class): Likewise.
6693
6694 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
6695 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6696
6697 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
6698 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
6699 Define.
6700 (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
6701
6702 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6703
6704 * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
6705 const rtx_insn *, and from rtx to rtx_insn * for the other
6706 overloaded variant.
6707 (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
6708 INSN_LOCATION, since we know INSN_P holds.
6709 (insn_line): Strengthen param from const_rtx to const rtx_insn *.
6710 (insn_file): Likewise.
6711 (insn_scope): Likewise.
6712 (insn_location): Likewise.
6713
6714 * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
6715 "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
6716 for the result of gen_load_const_gp.
6717 * config/rs6000/rs6000-protos.h (output_call): Strengthen first
6718 param from rtx to rtx_insn *.
6719 * config/rs6000/rs6000.c (output_call): Likewise.
6720 * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
6721 introducing a checked cast to rtx_sequence * and use of the insn
6722 method.
6723 * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
6724 from rtx to rtx_insn *.
6725 (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
6726 (insn_line): Likewise.
6727 (insn_file): Likewise.
6728 (insn_location): Likewise.
6729 * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
6730 from rtx to rtx_insn *.
6731 * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
6732 cast, using it for calls to INSN_HAS_LOCATION and insn_location.
6733 * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
6734 via a checked cast.
6735 * reorg.c (relax_delay_slots): Strengthen locals named "after"
6736 from rtx to rtx_insn *; use methods of "pat" for type-safety.
6737
6738 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6739
6740 * combine.c (try_combine): Eliminate checked cast on result of
6741 gen_rtx_INSN.
6742 * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
6743 autogenerated one by strengthening the return type and params 2 and 3
6744 from rtx to rtx_insn *, and by naming the params.
6745 * gengenrtl.c (special_rtx): Add INSN to those that are
6746 special-cased.
6747 * rtl.h (gen_rtx_INSN): New prototype.
6748
6749 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6750
6751 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
6752 than NULL_RTX.
6753 (no_equiv): Likewise.
6754 (update_equiv_regs): Likewise.
6755 (setup_reg_equiv): Likewise. Strengthen locals "elem",
6756 "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
6757 from rtx to rtx_insn *. Use methods of "elem" for typesafety and
6758 clarity.
6759 * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
6760 from rtx to rtx_insn_list *.
6761 * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
6762 rtx_insn_list * and use methods for clarity and typesafety.
6763 * lra-constraints.c (contains_deleted_insn_p): Likewise for param
6764 "list".
6765 (init_insn_rhs_dead_pseudo_p): Likewise for local "insns". Remove
6766 redundant check on INSN_P (insns): this cannot hold, as "insns" is
6767 an INSN_LIST, not an insn.
6768 (reverse_equiv_p): Strengthen local "insns" from rtx to
6769 rtx_insn_list * and use methods for clarity and typesafety.
6770 (contains_reloaded_insn_p): Likewise for local "list".
6771
6772 2014-09-09 Jiong Wang <jiong.wang@arm.com>
6773
6774 * config/arm/arm.c (NEON_COPYSIGNF): New enum.
6775 (arm_init_neon_builtins): Support NEON_COPYSIGNF.
6776 (arm_builtin_vectorized_function): Likewise.
6777 * config/arm/arm_neon_builtins.def: New macro for copysignf.
6778 * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
6779
6780 2014-09-09 Richard Sandiford <richard.sandiford@arm.com>
6781
6782 * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
6783 * builtins.h (default_target_builtins): Likewise.
6784 * gcse.h (default_target_gcse): Likewise.
6785 * target-globals.h (target_globals): Add a destructor. Convert
6786 void-pointer fields back to their real type and change from
6787 GTY((atomic)) to GTY((skip)).
6788 (restore_target_globals): Remove casts accordingly.
6789 * target-globals.c (save_target_globals): Use XCNEW rather than
6790 ggc_internal_cleared_alloc to allocate non-GC structures.
6791 Use ggc_cleared_alloc to allocate the target_globals structure
6792 itself.
6793 (target_globals::~target_globals): Define.
6794
6795 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6796
6797 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
6798 mnemonic instead of fldmfdd.
6799 * config/arm/arm.c (vfp_output_fstmd): Rename to...
6800 (vfp_output_vstmd): ... This. Convert output to UAL syntax.
6801 Output vpush when address register is SP.
6802 * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
6803 (vfp_output_vstmd): ... This.
6804 * config/arm/vfp.md (push_multi_vfp): Update call to
6805 vfp_output_vstmd.
6806
6807 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6808
6809 * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
6810
6811 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6812
6813 * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
6814 (*sqrtdf2_vfp): Likewise.
6815 (*cmpsf_vfp): Likewise.
6816 (*cmpsf_trap_vfp): Likewise.
6817 (*cmpdf_vfp): Likewise.
6818 (*cmpdf_trap_vfp): Likewise.
6819
6820 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6821
6822 * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
6823 (*truncdfsf2_vfp): Likewise.
6824 (*truncsisf2_vfp): Likewise.
6825 (*truncsidf2_vfp): Likewise.
6826 (fixuns_truncsfsi2): Likewise.
6827 (fixuns_truncdfsi2): Likewise.
6828 (*floatsisf2_vfp): Likewise.
6829 (*floatsidf2_vfp): Likewise.
6830 (floatunssisf2): Likewise.
6831 (floatunssidf2): Likewise.
6832
6833 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6834
6835 * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
6836 (*muldf3_vfp): Likewise.
6837 (*mulsf3negsf_vfp): Likewise.
6838 (*muldf3negdf_vfp): Likewise.
6839 (*mulsf3addsf_vfp): Likewise.
6840 (*muldf3adddf_vfp): Likewise.
6841 (*mulsf3subsf_vfp): Likewise.
6842 (*muldf3subdf_vfp): Likewise.
6843 (*mulsf3negsfaddsf_vfp): Likewise.
6844 (*fmuldf3negdfadddf_vfp): Likewise.
6845 (*mulsf3negsfsubsf_vfp): Likewise.
6846 (*muldf3negdfsubdf_vfp): Likewise.
6847
6848 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6849
6850 * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
6851 (*absdf2_vfp): Likewise.
6852 (*negsf2_vfp): Likewise.
6853 (*negdf2_vfp): Likewise.
6854 (*addsf3_vfp): Likewise.
6855 (*adddf3_vfp): Likewise.
6856 (*subsf3_vfp): Likewise.
6857 (*subdf3_vfp): Likewise.
6858 (*divsf3_vfp): Likewise.
6859 (*divdf3_vfp): Likewise.
6860
6861 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6862
6863 * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
6864 multiple.
6865 (arm_print_operand): Don't convert real values to decimal
6866 representation in default case.
6867 (fp_immediate_constant): Delete.
6868 * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
6869 * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
6870 syntax.
6871 (*thumb2_movsi_vfp): Likewise.
6872 (*movdi_vfp): Likewise.
6873 (*movdi_vfp_cortexa8): Likewise.
6874 (*movhf_vfp_neon): Likewise.
6875 (*movhf_vfp): Likewise.
6876 (*movsf_vfp): Likewise.
6877 (*thumb2_movsf_vfp): Likewise.
6878 (*movdf_vfp): Likewise.
6879 (*thumb2_movdf_vfp): Likewise.
6880 (*movsfcc_vfp): Likewise.
6881 (*thumb2_movsfcc_vfp): Likewise.
6882 (*movdfcc_vfp): Likewise.
6883 (*thumb2_movdfcc_vfp): Likewise.
6884
6885 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
6886
6887 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
6888 (-mtune): Likewise.
6889 (-mcpu): Likewise.
6890
6891 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6892
6893 PR target/61749
6894 * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
6895 Use qualifier_immediate for last operand. Rename to...
6896 (aarch64_types_ternop_lane_qualifiers): ... This.
6897 (TYPES_QUADOP): Rename to...
6898 (TYPES_TERNOP_LANE): ... This.
6899 (aarch64_simd_expand_args): Return const0_rtx when encountering user
6900 error. Change return of 0 to return of NULL_RTX.
6901 (aarch64_crc32_expand_builtin): Likewise.
6902 (aarch64_expand_builtin): Return NULL_RTX instead of 0.
6903 ICE when expanding unknown builtin.
6904 * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
6905 TERNOP_LANE qualifiers.
6906 (sqdmlsl_lane): Likewise.
6907 (sqdmlal_laneq): Likewise.
6908 (sqdmlsl_laneq): Likewise.
6909 (sqdmlal2_lane): Likewise.
6910 (sqdmlsl2_lane): Likewise.
6911 (sqdmlal2_laneq): Likewise.
6912 (sqdmlsl2_laneq): Likewise.
6913
6914 2014-09-09 Nick Clifton <nickc@redhat.com>
6915
6916 * doc/invoke.texi (Optimization Options): Add missing @gol to the
6917 end of a line.
6918 (S/390 and zSeries Options): Remove superfluous word from the
6919 description of the -mhotpatch option.
6920
6921 2014-09-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
6922
6923 * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
6924 * ira.c: #include "shrink-wrap.h"
6925 (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
6926 * ifcvt.c: #include "shrink-wrap.h"
6927 (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
6928
6929 2014-09-08 Trevor Saunders <tsaunders@mozilla.com>
6930
6931 * common/config/picochip/picochip-common.c: Remove.
6932 * config.gcc: Remove support for picochip.
6933 * config/picochip/constraints.md: Remove.
6934 * config/picochip/dfa_space.md: Remove.
6935 * config/picochip/dfa_speed.md: Remove.
6936 * config/picochip/picochip-protos.h: Remove.
6937 * config/picochip/picochip.c: Remove.
6938 * config/picochip/picochip.h: Remove.
6939 * config/picochip/picochip.md: Remove.
6940 * config/picochip/picochip.opt: Remove.
6941 * config/picochip/predicates.md: Remove.
6942 * config/picochip/t-picochip: Remove.
6943 * doc/md.texi: Don't document picochi.
6944
6945 2014-09-08 David Malcolm <dmalcolm@redhat.com>
6946
6947 * basic-block.h (control_flow_insn_p): Strengthen param from
6948 const_rtx to const rtx_insn *.
6949 * cfgbuild.c (control_flow_insn_p): Likewise.
6950
6951 2014-09-08 David Malcolm <dmalcolm@redhat.com>
6952
6953 * gcse.c (modify_mem_list): Strengthen this variable from
6954 vec<rtx> * to vec<rtx_insn *> *.
6955 (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
6956 vec<rtx_insn *>.
6957 (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
6958 vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
6959 (record_last_mem_set_info): Strengthen param "insn" from rtx to
6960 rtx_insn *.
6961 (record_last_set_info): Likewise for local "last_set_insn".
6962
6963 2014-09-08 DJ Delorie <dj@redhat.com>
6964
6965 * doc/invoke.texi (MSP430 Options): Add -minrt.
6966
6967 2014-09-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6968
6969 * config/rs6000/rs6000.c (special_handling_values): Add SH_SPLAT.
6970 (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
6971 statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
6972 handling SH_SPLAT.
6973 (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
6974 of extracted lane.
6975 (adjust_splat): New function.
6976 (handle_special_swappables): Call adjust_splat for SH_SPLAT.
6977 (dump_swap_insn_table): Add case for SH_SPLAT.
6978
6979 2014-09-08 Richard Biener <rguenther@suse.de>
6980
6981 PR ipa/63196
6982 * tree-inline.c (copy_loops): The source loop header should
6983 always be non-NULL.
6984 (tree_function_versioning): If loops need fixup after removing
6985 unreachable blocks fix them.
6986 * omp-low.c (simd_clone_adjust): Do not add incr block to
6987 loop under construction.
6988
6989 2014-09-08 Alan Lawrence <alan.lawrence@arm.com>
6990
6991 * config/aarch64/aarch64-builtins.c
6992 (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
6993
6994 2014-09-08 Joseph Myers <joseph@codesourcery.com>
6995
6996 * config/i386/cygming.h (TF_SIZE): Remove.
6997 * config/i386/darwin.h (TF_SIZE): Remove.
6998 * config/i386/dragonfly.h (TF_SIZE): Remove.
6999 * config/i386/freebsd.h (TF_SIZE): Remove.
7000 * config/i386/gnu-user-common.h (TF_SIZE): Remove.
7001 * config/i386/openbsdelf.h (TF_SIZE): Remove.
7002 * config/i386/sol2.h (TF_SIZE): Remove.
7003 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
7004 * config/ia64/linux.h (TF_SIZE): Remove.
7005 * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
7006 * doc/tm.texi: Regenerate.
7007 * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
7008
7009 2014-09-08 Joseph Myers <joseph@codesourcery.com>
7010
7011 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
7012 Remove.
7013 * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
7014 Remove.
7015 * doc/tm.texi: Regenerate.
7016 * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
7017 Poison.
7018 * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
7019 * config/cris/cris.h (__make_dp): Remove.
7020
7021 2014-09-08 Richard Biener <rguenther@suse.de>
7022
7023 PR bootstrap/63204
7024 * cfgloop.c (mark_loop_for_removal): Track former header
7025 unconditionally.
7026 * cfgloop.h (struct loop): Add former_header member unconditionally.
7027 * loop-init.c (fix_loop_structure): Enable bogus loop removal
7028 diagnostic unconditionally.
7029
7030 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
7031
7032 PR target/63190
7033 * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
7034 constraint for operand0 and remove write only modifier from operand3.
7035
7036 2014-09-07 Richard Sandiford <richard.sandiford@arm.com>
7037
7038 PR rtl-optimization/62208
7039 * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
7040 rather than const0_rtx in eq/ne-xor simplifications.
7041
7042 2014-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
7043
7044 * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
7045 (arc_output_mi_thunk): Likewise.
7046
7047 * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
7048 arguments to silence bogus warning.
7049
7050 2014-09-06 Richard Sandiford <richard.sandiford@arm.com>
7051
7052 PR middle-end/63171
7053 * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
7054
7055 2014-09-06 Tom de Vries <tom@codesourcery.com>
7056
7057 * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
7058 IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
7059 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7060
7061 2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
7062
7063 PR target/63188
7064 * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
7065 * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
7066
7067 2014-09-05 Easwaran Raman <eraman@google.com>
7068
7069 PR rtl-optimization/62146
7070 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
7071 hoisted instruction unconditional.
7072
7073 2014-09-05 Segher Boessenkool <segher@kernel.crashing.org>
7074
7075 PR target/63187
7076 * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
7077 Do not allow any_mask_operand for operands[2].
7078 (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
7079
7080 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7081
7082 * config/arc/arc.c (arc_print_operand): Use insn method of
7083 final_sequence for type-safety.
7084 * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
7085 "insn" from rtx to rtx_insn *.
7086 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
7087 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
7088 Likewise for locals "branch", "label".
7089 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
7090 locals "i1", "i2". Use NULL rather than NULL_RTX in comparisons.
7091 (same_cmp_following_p): Likewise for locals "i2", "i3".
7092 * config/sh/sh_optimize_sett_clrt.cc
7093 (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
7094 param "cbranch_insn".
7095 * function.c (convert_jumps_to_returns): Likewis for local "jump".
7096 * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
7097 * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
7098 const rtx_insn *.
7099 (condjump_p): Likewise.
7100 (condjump_in_parallel_p): Likewise.
7101 (pc_set): Likewise.
7102 (any_uncondjump_p): Likewise.
7103 (any_condjump_p): Likewise.
7104 (condjump_label): Likewise.
7105 (returnjump_p): Strengthen param "insn" from rtx to
7106 const rtx_insn *.
7107 (onlyjump_p): Strengthen param "insn" from const_rtx to
7108 const rtx_insn *.
7109 (jump_to_label_p): Likewise.
7110 (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
7111 (invert_jump): Likewise.
7112 * reorg.c (simplejump_or_return_p): Add checked cast when calling
7113 simplejump_p.
7114 (get_jump_flags): Strengthen param "insn" from rtx to
7115 const rtx_insn *.
7116 (get_branch_condition): Likewise.
7117 (condition_dominates_p): Likewise.
7118 (make_return_insns): Move declaration of local "pat" earlier, to
7119 after we've handled NONJUMP_INSN_P and non-sequences, using its
7120 methods to simplify the code and for type-safety.
7121 * rtl.h (find_constant_src): Strengthen param from const_rtx to
7122 const rtx_insn *.
7123 (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
7124 (condjump_p): Strengthen param from const_rtx to
7125 const rtx_insn *.
7126 (any_condjump_p): Likewise.
7127 (any_uncondjump_p): Likewise.
7128 (pc_set): Likewise.
7129 (condjump_label): Likewise.
7130 (simplejump_p): Likewise.
7131 (returnjump_p): Likewise.
7132 (onlyjump_p): Likewise.
7133 (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
7134 (invert_jump): Likewise.
7135 (condjump_in_parallel_p): Strengthen param from const_rtx to
7136 const rtx_insn *.
7137 * rtlanal.c (find_constant_src): Strengthen param from const_rtx
7138 to const rtx_insn *.
7139 * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
7140 to const rtx_insn *.
7141 * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
7142
7143 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7144
7145 * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
7146 above the conditional, and convert the check on GET_CODE to a
7147 dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
7148 the conditional. Simplify the conditional by using methods of
7149 "trial_seq".
7150
7151 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7152
7153 * haifa-sched.c (check_clobbered_conditions): Strengthen local
7154 "link" from rtx to rtx_insn_list *, and use its methods for
7155 clarity and type-safety.
7156 (toggle_cancelled_flags): Likewise.
7157 (restore_last_backtrack_point): Likewise.
7158 (queue_to_ready): Use insn method of "link" in one place.
7159 (schedule_block): Strengthen local "link" from rtx to
7160 rtx_insn_list *, and use its methods for clarity and type-safety.
7161
7162 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7163
7164 * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
7165 param "insn" from const_rtx to const rtx_insn *.
7166 (sched_get_reverse_condition_uncached): Likewise.
7167 (sched_get_condition_with_rev): Likewise.
7168 (sched_has_condition_p): Likewise.
7169 (sched_insns_conditions_mutex_p): Likewise for both params.
7170 (sched_insn_is_legitimate_for_speculation_p): Likewise for param
7171 "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
7172 (setup_insn_reg_uses): Move local "list" to be more tightly
7173 scoped, strengthening it from an rtx to an rtx_insn_list *. Use
7174 its methods for clarity and type-safety.
7175 (sched_analyze_1): Strengthen local "pending" from rtx to
7176 rtx_insn_list *, and local "pending_mem" from rtx to
7177 rtx_expr_list *. Use methods of each for clarity and type-safety.
7178 (sched_analyze_2): Likewise.
7179 (sched_analyze_insn): Likewise.
7180
7181 * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
7182 param from const_rtx to const rtx_insn *.
7183 (sched_insns_conditions_mutex_p): Likewise for both params.
7184 (sched_insn_is_legitimate_for_speculation_p): Likewise for first
7185 param.
7186
7187 * system.h (CONST_CAST_RTX_INSN): New macro.
7188
7189 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7190
7191 * recog.c (peep2_attempt): Strengthen return type from rtx to
7192 rtx_insn *.
7193 (peep2_update_life): Likewise for params "last", "prev", removing
7194 a checked cast made redundant by this.
7195 (peephole2_optimize): Likewise for local "last".
7196
7197 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7198
7199 * basic-block.h (set_block_for_insn): Eliminate this macro in
7200 favor of...
7201 * rtl.h (set_block_for_insn): New inline function, imposing the
7202 requirement that the "insn" param is an rtx_insn *.
7203
7204 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7205
7206 * caller-save.c (setup_save_areas): Strengthen local "insn" from
7207 rtx to rtx_insn *.
7208 * final.c (get_call_reg_set_usage): Likewise for first param,
7209 eliminating a checked cast.
7210 * regs.h (get_call_reg_set_usage): Likewise for first param.
7211 * resource.c (mark_set_resources): Introduce local rtx_call_insn *
7212 "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
7213 cast, replacing references to "x" with "call_insn" where
7214 appropriate.
7215 (mark_target_live_regs): Strengthen local "real_insn" from rtx to
7216 rtx_insn *, adding a checked cast.
7217
7218 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7219
7220 * output.h (final_scan_insn): Strengthen first param from rtx to
7221 rtx_insn *.
7222
7223 * final.c (final_scan_insn): Likewise, renaming it back from
7224 "uncast_insn" to "insn", eliminating the checked cast.
7225
7226 * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
7227 "vec" with an rtx_sequence * "seq", taking a copy of
7228 "final_sequence", and using methods of "seq" for clarity, and for
7229 type-safety in the calls to final_scan_insn.
7230 * config/mips/mips.c (mips_output_conditional_branch): Use methods
7231 of "final_sequence" for clarity, and for type-safety in the call to
7232 final_scan_insn.
7233 * config/sh/sh.c (print_slot): Strengthen param from rtx to
7234 rtx_sequence * and rename from "insn" to "seq".
7235
7236 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7237
7238 * jump.c (delete_related_insns): Introduce a new local "table" by
7239 replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
7240 get_labels method of "table" to simplify access to the labels in
7241 the jump table.
7242
7243 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7244
7245 * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
7246 f_minmaxs, f_minmaxd types.
7247
7248 2014-09-05 Richard Biener <rguenther@suse.de>
7249
7250 * cfgloop.c (mark_loop_for_removal): Record former header
7251 when ENABLE_CHECKING.
7252 * cfgloop.h (strut loop): Add former_header member when
7253 ENABLE_CHECKING.
7254 * loop-init.c (fix_loop_structure): Sanity check loops
7255 marked for removal if they re-appeared.
7256
7257 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7258
7259 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
7260 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
7261
7262 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
7263 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
7264 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
7265 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
7266 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
7267 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
7268 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
7269 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
7270 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
7271 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
7272 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
7273 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
7274 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
7275 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
7276 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
7277 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
7278 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
7279 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
7280 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
7281 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
7282 with int{32,16,8}_t.
7283
7284 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7285
7286 * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
7287 (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
7288 vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
7289 vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
7290 Remove temporary __asm__ and reimplement.
7291
7292 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7293
7294 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
7295 handling cmge, cmgt, cmeq, cmtst.
7296
7297 * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
7298 cmlt, cmgeu, cmgtu, cmtst): Remove.
7299
7300 * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
7301 vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
7302 vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
7303 vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
7304
7305 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7306
7307 * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
7308 TYPES_TST): Define.
7309 (aarch64_fold_builtin): Update pattern for cmtst.
7310
7311 * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
7312 Declare.
7313
7314 * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
7315
7316 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
7317 Switch operands, separate out more cases, refactor.
7318
7319 (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
7320
7321 * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
7322 argument; rename old version to...
7323 (aarch64_const_vec_all_same_in_range_p): ...this.
7324 (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
7325
7326 * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
7327
7328 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7329
7330 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
7331 Remove qualifier_const_pointer, update comment.
7332
7333 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7334
7335 * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
7336
7337 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7338
7339 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
7340 varargs with pointer parameter.
7341 (aarch64_simd_expand_builtin): pass pointer into previous.
7342
7343 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7344
7345 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
7346 alus_ext.
7347
7348 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7349
7350 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
7351 * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
7352 * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
7353 Replace temporary asm with call to builtin.
7354 (vrbit_p8, vrbitq_p8): New functions.
7355
7356 2014-09-05 Richard Biener <rguenther@suse.de>
7357
7358 * cfgloop.c (mark_loop_for_removal): New function.
7359 * cfgloop.h (mark_loop_for_removal): Declare.
7360 * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
7361 (merge_blocks): Likewise.
7362 (duplicate_block): Likewise.
7363 * except.c (sjlj_emit_dispatch_table): Likewise.
7364 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
7365 * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
7366 (thread_through_loop_header): Likewise.
7367
7368 2014-09-05 Richard Biener <rguenther@suse.de>
7369
7370 PR middle-end/63148
7371 * fold-const.c (try_move_mult_to_index): Remove.
7372 (fold_binary_loc): Do not call it.
7373 * tree-data-ref.c (dr_analyze_indices): Strip conversions
7374 from the base object again.
7375
7376 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com>
7377
7378 * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
7379 DImode.
7380
7381 2014-09-05 Bin Cheng <bin.cheng@arm.com>
7382
7383 PR target/55701
7384 * config/arm/arm.md (setmem): New pattern.
7385 * config/arm/arm-protos.h (struct tune_params): New fields.
7386 (arm_gen_setmem): New prototype.
7387 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
7388 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
7389 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
7390 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
7391 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
7392 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
7393 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
7394 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
7395 (arm_const_inline_cost): New function.
7396 (arm_block_set_max_insns): New function.
7397 (arm_block_set_non_vect_profit_p): New function.
7398 (arm_block_set_vect_profit_p): New function.
7399 (arm_block_set_unaligned_vect): New function.
7400 (arm_block_set_aligned_vect): New function.
7401 (arm_block_set_unaligned_non_vect): New function.
7402 (arm_block_set_aligned_non_vect): New function.
7403 (arm_block_set_vect, arm_gen_setmem): New functions.
7404
7405 2014-09-05 Bin Cheng <bin.cheng@arm.com>
7406
7407 * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
7408
7409 2014-09-05 Bin Cheng <bin.cheng@arm.com>
7410
7411 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
7412
7413 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
7414
7415 * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
7416 an rtx.
7417 * valtrack.h: Adjust.
7418
7419 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
7420
7421 * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
7422 an rtx.
7423 (emit_jump_insn_before_noloc): Likewise.
7424 (emit_call_insn_before_noloc): Likewise.
7425 (emit_label_before): Likewise.
7426 (emit_label_after): Likewise.
7427 (emit_insn_before_setloc): Likewise.
7428 (emit_jump_insn_before_setloc): Likewise.
7429 (emit_call_insn_before_setloc): Likewise.
7430 (emit_call_insn_before): Likewise.
7431 * rtl.h: Adjust.
7432
7433 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7434
7435 * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
7436 rtx_insn *, eliminating a checked cast.
7437
7438 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7439
7440 * rtl.h (modified_between_p): Strengthen params 2 and 3 from
7441 const_rtx to const rtx_insn *.
7442 * rtlanal.c (modified_between_p): Likewise, eliminating a checked
7443 cast.
7444
7445 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7446
7447 * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
7448 fixup_args_size_notes.
7449 * expr.c (fixup_args_size_notes): Strengthen first two params from
7450 rtx to rtx_insn *, eliminating a checked cast.
7451 * rtl.h (fixup_args_size_notes): Strengthen first two params from
7452 rtx to rtx_insn *.
7453
7454 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7455
7456 * haifa-sched.c (get_ready_element): Strengthen return type from
7457 rtx to rtx_insn *.
7458 * sched-int.h (get_ready_element): Likewise.
7459
7460 2014-09-04 Segher Boessenkool <segher@kernel.crashing.org>
7461
7462 PR target/63165
7463 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
7464 indexed_or_indirect_operand instead of memory_operand.
7465 (floatsi<mode>2_lfiwzx_mem): Ditto.
7466
7467 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
7468
7469 * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
7470 config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
7471 ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
7472
7473 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
7474
7475 * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
7476 rtx.
7477 (get_last_nonnote_insn): Likewise.
7478 (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
7479 * resource.c (find_basic_block): Likewise.
7480 * rtl.h: Adjust.
7481 * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
7482 const_rtx.
7483
7484 2014-09-04 David Malcolm <dmalcolm@redhat.com>
7485
7486 * genattr.c (main): Within the prototype of insn_latency written
7487 out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
7488 * genautomata.c (output_internal_maximal_insn_latency_func):
7489 Within the implementation of insn_latency written out to
7490 insn-automata.c, strengthen both params from rtx to rtx_insn *,
7491 eliminating a pair of checked casts.
7492
7493 2014-09-04 David Malcolm <dmalcolm@redhat.com>
7494
7495 * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
7496 rtx_insn *.
7497
7498 * rtl.h (eh_returnjump_p): Likewise.
7499
7500 2014-09-04 Aldy Hernandez <aldyh@redhat.com>
7501
7502 * Makefile.in (TAGS): Handle constructs in timevar.def.
7503
7504 2014-09-04 Guozhi Wei <carrot@google.com>
7505
7506 PR target/62040
7507 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
7508 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
7509 it into two patterns.
7510 (move_lo_quad_internal_be_<mode>): Likewise.
7511
7512 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
7513
7514 * doc/options.texi: Document that Var and Init are required if CPP
7515 is given.
7516 * optc-gen.awk: Require Var and Init if CPP is given.
7517 * common.opt (Wpedantic): Use Init.
7518
7519 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7520
7521 * config/rs6000/rs6000.c (special_handling_values): Add
7522 SH_EXTRACT.
7523 (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
7524 wrapped in a VEC_DUPLICATE, representing an extract. Mark these
7525 as swappable with special handling SH_EXTRACT. Remove
7526 UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
7527 optimization.
7528 (adjust_extract): New function.
7529 (handle_special_swappables): Add default to case statement; add
7530 case for SH_EXTRACT that calls adjust_extract.
7531 (dump_swap_insn_table): Handle SH_EXTRACT.
7532
7533 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7534
7535 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
7536 selection of 0th memory doubleword, regardless of endianness.
7537
7538 2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7539
7540 * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
7541
7542 2014-09-04 Alan Modra <amodra@gmail.com>
7543
7544 PR debug/60655
7545 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
7546 can't be output.
7547
7548 2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com>
7549
7550 * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
7551 * targhooks.c (default_dwarf_frame_reg_mode): New function.
7552 * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
7553 * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
7554 * doc/tm.texi: Regenerate.
7555 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
7556 selection logic to default_dwarf_frame_reg_mode.
7557
7558 2014-09-03 Marek Polacek <polacek@redhat.com>
7559
7560 * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
7561 by -Wall.
7562
7563 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
7564
7565 * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
7566 the automodified register.
7567
7568 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
7569
7570 * output.h (get_some_local_dynamic_name): Declare.
7571 * final.c (some_local_dynamic_name): New variable.
7572 (get_some_local_dynamic_name): New function.
7573 (final_end_function): Clear some_local_dynamic_name.
7574 * config/alpha/alpha.c (machine_function): Remove some_ld_name.
7575 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7576 (print_operand): Report an error if '%&' is used inappropriately.
7577 * config/i386/i386.c (get_some_local_dynamic_name): Delete.
7578 (get_some_local_dynamic_name_1): Delete.
7579 * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
7580 (rs6000_get_some_local_dynamic_name): Delete.
7581 (rs6000_get_some_local_dynamic_name_1): Delete.
7582 (print_operand): Report an error if '%&' is used inappropriately.
7583 * config/s390/s390.c (machine_function): Remove some_ld_name.
7584 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7585 (print_operand): Assert that get_some_local_dynamic_name is nonnull.
7586 * config/sparc/sparc.c: Include rtl-iter.h.
7587 (machine_function): Remove some_ld_name.
7588 (sparc_print_operand): Report an error if '%&' is used inappropriately.
7589 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7590
7591 2014-09-03 Richard Henderson <rth@redhat.com>
7592
7593 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
7594 (aarch64_popwb_pair_reg): Remove.
7595 (aarch64_set_frame_expr): Remove.
7596 (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
7597 the restore ops performed by the insns generated.
7598 (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
7599 insn. Perform the calls_eh_return addition later; do not attempt to
7600 preserve the CFA in that case. Don't use aarch64_set_frame_expr.
7601 (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
7602 special markup at all. Load cfun->machine->frame.hard_fp_offset
7603 into a local variable.
7604 (aarch64_frame_pointer_required): Don't check calls_alloca.
7605
7606 2014-09-03 Richard Biener <rguenther@suse.de>
7607
7608 * opts.c (default_options_optimization): Adjust
7609 max-combine-insns to 2 for -Og.
7610
7611 2014-09-03 Martin Jambor <mjambor@suse.cz>
7612
7613 PR ipa/62015
7614 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
7615 pass-trough jump functions correctly.
7616
7617 2014-09-03 Martin Jambor <mjambor@suse.cz>
7618
7619 PR ipa/61986
7620 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
7621 created replacements in ascending order of offsets.
7622 (known_aggs_to_agg_replacement_list): Likewise.
7623
7624 2014-09-03 Martin Liska <mliska@suse.cz>
7625
7626 * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
7627 is set to set uninitialized value for vnresult.
7628
7629 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7630
7631 * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
7632 for TARGET_MUST_PASS_IN_STACK.
7633
7634 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7635
7636 * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
7637 for TARGET_ARG_PARTIAL_BYTES.
7638
7639 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7640
7641 * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
7642 instructions for varargs implementation.
7643 (nds32_expand_epilogue): Emit stack adjustment instructions for
7644 varargs implementation.
7645
7646 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7647
7648 * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
7649 optimization detection.
7650
7651 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7652
7653 * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
7654 arguments.
7655 (nds32_function_arg_advance): Deal with nameless arguments.
7656 * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
7657 (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
7658 (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
7659
7660 2014-09-03 Richard Biener <rguenther@suse.de>
7661
7662 * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
7663 (struct bb_bitmap_sets): Remove deferred member.
7664 (BB_DEFERRED): Remove.
7665 (defer_or_phi_translate_block): Remove.
7666 (compute_antic_aux): Remove deferring of blocks, assert
7667 proper iteration order.
7668 (compute_antic): Do not set BB_DEFERRED.
7669 (eliminate): Allocate el_avail of proper size initially.
7670
7671 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7672
7673 * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
7674 according to the value of crtl->args.pretend_args_size.
7675
7676 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7677
7678 * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
7679 varargs information.
7680
7681 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7682
7683 * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
7684 implementation for TARGET_SETUP_INCOMING_VARARGS.
7685 (nds32_strict_argument_naming): Refine comment.
7686 * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
7687 Define for future implementation.
7688
7689 2014-09-03 Ilya Tocar <ilya.tocar@intel.com>
7690
7691 * config/i386/adxintrin.h (_subborrow_u32): New.
7692 (_addcarry_u32): Ditto.
7693 (_subborrow_u64): Ditto.
7694 (_addcarry_u64): Ditto.
7695 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
7696 IX86_BUILTIN_SBB64.
7697 (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
7698 __builtin_ia32_sbb_u64
7699
7700 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7701
7702 * config/nds32/nds32.c (nds32_function_arg): Define and rename some
7703 GPR-specific stuff.
7704 (nds32_function_arg_advance): Likewise.
7705 (nds32_init_cumulative_args): Likewise.
7706 * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
7707 (NDS32_FIRST_GPR_REGNUM): Define.
7708 (NDS32_LAST_GPR_REGNUM): Define.
7709 (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
7710 (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7711 (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7712 (machine_function): Use GRP-specific stuff.
7713
7714 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7715
7716 * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
7717 (nds32_expand_epilogue): Likewise.
7718 (nds32_expand_prologue_v3push): Likewise.
7719 (nds32_expand_epilogue_v3pop): Likewise.
7720
7721 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7722
7723 * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
7724 v3push/v3pop for variadic function.
7725 * config/nds32/nds32.md (prologue, epilogue): Likewise.
7726
7727 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7728
7729 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
7730 Check rtx for varargs implementation.
7731 (nds32_output_stack_pop): Likewise.
7732 * config/nds32/nds32-protos.h: Have a rtx argument for
7733 nds32_output_stack_push and nds32_output_stack_pop.
7734 * config/nds32/nds32.md: Likewise.
7735
7736 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7737
7738 * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
7739 to check if FUNC is an interrupt service routine.
7740 * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
7741
7742 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7743
7744 * config/nds32/nds32.h (machine_function): Add some fields for variadic
7745 arguments implementation.
7746
7747 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7748
7749 * config/nds32/nds32-predicates.c
7750 (nds32_valid_stack_push_pop): Rename to ...
7751 (nds32_valid_stack_push_pop_p): ... this.
7752 * config/nds32/nds32-protos.h: Likewise.
7753 * config/nds32/predicates.md: Likewise.
7754
7755 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7756
7757 * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
7758 (nds32_emit_stack_v3push): ... this.
7759 (nds32_gen_stack_v3pop): Rename to ...
7760 (nds32_emit_stack_v3pop): ... this and consider CFA restore
7761 information.
7762
7763 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7764
7765 * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
7766 (nds32_emit_stack_push_multiple): ... this.
7767 (nds32_gen_stack_pop_multiple): Rename to ...
7768 (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
7769 information.
7770
7771 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7772
7773 PR target/61078
7774 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
7775 and add a second splitter to handle the remaining cases.
7776
7777 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7778
7779 * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
7780
7781 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
7782
7783 * cfgexpand.c (label_rtx_for_bb): Change type to
7784 hash_map<basic_block, rtx_code_label *> *.
7785 (expand_gimple_basic_block): Adjust.
7786 (pass_expand::execute): Likewise.
7787
7788 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
7789
7790 * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
7791 config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
7792 config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
7793 config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
7794 config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
7795 config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
7796 stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
7797 of rtx.
7798
7799 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
7800
7801 * alloc-pool.c: Include coretypes.h.
7802 * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
7803 function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
7804 hash_set instead of htab.
7805 * ggc-page.c (in_gc): New variable.
7806 (ggc_free): Do nothing if a collection is taking place.
7807 (ggc_collect): Set in_gc appropriately.
7808 * ggc.h (gt_ggc_mx(const char *)): New function.
7809 (gt_pch_nx(const char *)): Likewise.
7810 (gt_ggc_mx(int)): Likewise.
7811 (gt_pch_nx(int)): Likewise.
7812 * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
7813 (hash_map::hash_entry::pch_nx): Likewise.
7814 (hash_map::hash_entry::pch_nx_helper): Likewise.
7815 (hash_map::hash_map): Adjust.
7816 (hash_map::create_ggc): New function.
7817 (gt_ggc_mx): Likewise.
7818 (gt_pch_nx): Likewise.
7819 * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
7820 (default_hashset_traits::pch_nx): Likewise.
7821 (hash_set::hash_entry::ggc_mx): Likewise.
7822 (hash_set::hash_entry::pch_nx): Likewise.
7823 (hash_set::hash_entry::pch_nx_helper): Likewise.
7824 (hash_set::hash_set): Adjust.
7825 (hash_set::create_ggc): New function.
7826 (hash_set::elements): Likewise.
7827 (gt_ggc_mx): Likewise.
7828 (gt_pch_nx): Likewise.
7829 * hash-table.h (hash_table::hash_table): Adjust.
7830 (hash_table::m_ggc): New member.
7831 (hash_table::~hash_table): Adjust.
7832 (hash_table::expand): Likewise.
7833 (hash_table::empty): Likewise.
7834 (gt_ggc_mx): New function.
7835 (hashtab_entry_note_pointers): Likewise.
7836 (gt_pch_nx): Likewise.
7837
7838 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7839
7840 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
7841 built-in definition.
7842 (XVCVUXDDP_SCALE): Likewise.
7843 (XVCVDPSXDS_SCALE): Likewise.
7844 (XVCVDPUXDS_SCALE): Likewise.
7845 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7846 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
7847 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
7848 VSX_BUILTIN_XVCVDPUXDS_SCALE.
7849 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
7850 prototype.
7851 * config/rs6000/rs6000.c (real.h): New include.
7852 (rs6000_scale_v2df): New function.
7853 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
7854 (UNSPEC_VSX_XVCVUXDDP): Likewise.
7855 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
7856 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
7857 (vsx_xvcvsxddp_scale): New define_expand.
7858 (vsx_xvcvsxddp): New define_insn.
7859 (vsx_xvcvuxddp_scale): New define_expand.
7860 (vsx_xvcvuxddp): New define_insn.
7861 (vsx_xvcvdpsxds_scale): New define_expand.
7862 (vsx_xvcvdpsxds): New define_insn.
7863 (vsx_xvcvdpuxds_scale): New define_expand.
7864 (vsx_xvcvdpuxds): New define_insn.
7865 * doc/extend.texi (vec_ctf): Add new prototypes.
7866 (vec_cts): Likewise.
7867 (vec_ctu): Likewise.
7868 (vec_splat): Likewise.
7869 (vec_div): Likewise.
7870 (vec_mul): Likewise.
7871
7872 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7873
7874 PR target/62275
7875 * config/arm/neon.md
7876 (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
7877 <v_cmp_result>): New pattern.
7878 * config/arm/iterators.md (NEON_VCVT): New int iterator.
7879 * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
7880 vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
7881 vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
7882 * config/arm/arm.c (arm_builtin_vectorized_function): Handle
7883 BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
7884
7885 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7886
7887 PR target/62275
7888 * config/arm/iterators.md (FIXUORS): New code iterator.
7889 (VCVT): New int iterator.
7890 (su_optab): New code attribute.
7891 (su): Likewise.
7892 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
7893
7894 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7895
7896 * config/aarch64/predicates.md (aarch64_comparison_operation):
7897 New special predicate.
7898 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
7899 aarch64_comparison_operation instead of matching an operator.
7900 Update operand numbers.
7901 (csinc3<mode>_insn): Likewise.
7902 (*csinv3<mode>_insn): Likewise.
7903 (*csneg3<mode>_insn): Likewise.
7904 (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
7905 * config/aarch64/aarch64.c (aarch64_get_condition_code):
7906 Return -1 instead of aborting on invalid condition codes.
7907 (aarch64_print_operand): Update aarch64_get_condition_code callsites
7908 to assert that the returned condition code is valid.
7909 * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
7910
7911 2014-09-02 Aldy Hernandez <aldyh@redhat.com>
7912
7913 * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
7914 tree.def, and gimple.def
7915
7916 2014-09-02 Jakub Jelinek <jakub@redhat.com>
7917 Balaji V. Iyer <balaji.v.iyer@intel.com>
7918 Igor Zamyatin <igor.zamyatin@intel.com>
7919
7920 * cilk-builtins.def (__cilkrts_cilk_for_32): New.
7921 (__cilkrts_cilk_for_64): Likewise.
7922 * cilk-common.c (declare_cilk_for_builtin): New function.
7923 (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
7924 __cilkrts_cilk_for_64 bultins.
7925 * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
7926 CILK_TI_F_LOOP_64.
7927 (cilk_for_32_fndecl): New define.
7928 (cilk_for_64_fndecl): Likewise.
7929 * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
7930 GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
7931 * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
7932 GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
7933 GF_OMP_FOR_COMBINED_INTO.
7934 * gimplify.c (gimplify_scan_omp_clauses): Added
7935 OMP_CLAUSE__CILK_FOR_COUNT_ case.
7936 (gimplify_adjust_omp_clauses): Ditto.
7937 (gimplify_omp_for): Added CILK_FOR case.
7938 (gimplify_expr): Ditto.
7939 * omp-low.c: Include cilk.h.
7940 (extract_omp_for_data): Set appropriate kind for
7941 GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
7942 (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
7943 (create_omp_child_function_name): Added second argument to handle
7944 cilk_for case.
7945 (cilk_for_check_loop_diff_type): New function.
7946 (expand_cilk_for_call): Likewise.
7947 (expand_cilk_for): Likewise.
7948 (create_omp_child_function): Set cilk_for_count; handle the cases when
7949 it is true; call create_omp_child_function_name with second argument.
7950 (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
7951 (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
7952 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
7953 * tree-nested.c (convert_nonlocal_omp_clauses): Added
7954 OMP_CLAUSE__CILK_FOR_COUNT_ case.
7955 (convert_local_omp_clauses): Ditto.
7956 * tree-pretty-print.c (dump_omp_clause): Added
7957 OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
7958 (dump_generic_node): Added CILK_FOR case.
7959 * tree.c (omp_clause_num_ops): New element
7960 OMP_CLAUSE__CILK_FOR_COUNT_ (1).
7961 (omp_clause_code_name): New element _Cilk_for_count_.
7962 (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
7963 * tree.def: Add tree code for CILK_FOR.
7964
7965 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
7966
7967 * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
7968 (ppc403-compare): Add "exts with dot" case.
7969 * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
7970 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
7971 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
7972 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
7973 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
7974 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
7975 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
7976 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
7977 cell-cmp-microcoded): Similarly.
7978 * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
7979 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
7980 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
7981 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
7982 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
7983 * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
7984 * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
7985 * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
7986 (power6-compare): Add "exts with dot" case.
7987 * config/rs6000/power7.md (power7-integer, power7-compare): As before.
7988 * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
7989 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
7990
7991 * config/rs6000/predicates.md (lwa_operand): Don't allow memory
7992 if avoiding Cell microcode.
7993 * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
7994 (is_cracked_insn): Ditto.
7995 (insn_must_be_first_in_group): Ditto.
7996 * config/rs6000/rs6000.md (dot): Adjust comment.
7997 (cell_micro): Handle exts+dot.
7998 (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
7999 *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
8000 extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
8001 (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
8002 extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
8003 *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
8004 *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
8005
8006 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
8007
8008 * config/rs6000/rs6000.md (QHSI): Delete.
8009 (EXTQI, EXTHI, EXTSI): New mode iterators.
8010 (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
8011 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
8012 *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
8013 9 anonymous instructions, and 8 splitters): Delete.
8014 (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
8015 *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
8016 *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
8017 zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
8018 *zero_extendsi<mode>2_dot2): New.
8019
8020 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
8021
8022 * config/rs6000/rs6000.md (any_extend): New code iterator.
8023 (u, su): New code attributes.
8024 (dmode, DMODE): New mode attributes.
8025 (<su>mul<mode>3_highpart): New.
8026 (*<su>mul<mode>3_highpart): New.
8027 (<su>mulsi3_highpart_le): New.
8028 (<su>muldi3_highpart_le): New.
8029 (<su>mulsi3_highpart_64): New.
8030 (<u>mul<mode><dmode>3): New.
8031 (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
8032 splitters): Delete.
8033 (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
8034 splitters): Delete.
8035
8036 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
8037
8038 * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
8039 *mulsi3_internal2, and two splitters): Delete.
8040 (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
8041 Delete.
8042 (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
8043
8044 2014-09-02 Richard Biener <rguenther@suse.de>
8045
8046 PR tree-optimization/62695
8047 * tree-ssa-structalias.c (find_func_clobbers): Add missing
8048 vector truncate.
8049
8050 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
8051
8052 PR target/62312
8053 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
8054
8055 2014-09-01 Andi Kleen <ak@linux.intel.com>
8056
8057 * file-find.c (add_prefix_begin): Add.
8058 (do_add_prefix): Rename from add_prefix with first argument.
8059 (add_prefix): Add new wrapper.
8060 * file-find.h (add_prefix_begin): Add.
8061 * gcc-ar.c (main): Support -B option.
8062
8063 2014-09-01 Segher Boessenkool <segher@kernel.crashing.org>
8064
8065 * genemit.c: Include dumpfile.h.
8066 (gen_split): Print name of splitter function to dump file.
8067
8068 2014-09-01 Richard Biener <rguenther@suse.de>
8069
8070 * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
8071 Use stack auto_vecs for constraint expressions.
8072 (find_func_aliases_for_call): Likewise.
8073 (find_func_aliases): Likewise.
8074 (find_func_clobbers): Likewise.
8075
8076 2014-09-01 Richard Biener <rguenther@suse.de>
8077
8078 * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
8079 operands vector in most cases. Remove redundant code.
8080
8081 2014-09-01 Olivier Hainque <hainque@adacore.com>
8082
8083 * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
8084 $WIND_BASE instead of designating a harcoded arbitrary home dir.
8085 (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
8086
8087 2014-09-01 Richard Biener <rguenther@suse.de>
8088
8089 * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
8090 copy_reference_ops_from_call, vn_nary_op_compute_hash,
8091 vn_reference_compute_hash, vn_reference_insert): Remove.
8092 (vn_reference_lookup_call): New function.
8093 * tree-ssa-sccvn.c (vn_reference_compute_hash,
8094 copy_reference_ops_from_ref, copy_reference_ops_from_call,
8095 vn_reference_insert, vn_nary_op_compute_hash): Make static.
8096 (create_reference_ops_from_call): Remove.
8097 (vn_reference_lookup_3): Properly update shared_lookup_references.
8098 (vn_reference_lookup_pieces): Assert that we updated
8099 shared_lookup_references properly.
8100 (vn_reference_lookup): Likewise.
8101 (vn_reference_lookup_call): New function.
8102 (visit_reference_op_call): Use it. Avoid re-building the
8103 reference ops.
8104 (visit_reference_op_load): Remove redundant lookup.
8105 (visit_reference_op_store): Perform special tail-merging work
8106 only when possibly doing tail-merging.
8107 (visit_use): Likewise.
8108 * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
8109
8110 2014-09-01 Jakub Jelinek <jakub@redhat.com>
8111
8112 PR target/62025
8113 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
8114 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
8115 (find_inc): Revert 2014-08-13 change.
8116
8117 2014-09-01 Marek Polacek <polacek@redhat.com>
8118
8119 PR middle-end/61903
8120 * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
8121 Change the type of V to unsigned HOST_WIDE_INT.
8122
8123 2014-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
8124
8125 * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
8126 the size of byte markers.
8127 (do_shift_rotate): Fix confusion between host, target and marker byte
8128 size.
8129 (verify_symbolic_number_p): Likewise.
8130 (find_bswap_or_nop_1): Likewise.
8131 (find_bswap_or_nop): Likewise.
8132
8133 2014-09-01 Olivier Hainque <hainque@adacore.com>
8134
8135 * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
8136 INSTALL_SCRIPT and INSTALL_PROGRAM as well.
8137
8138 2014-09-01 Jakub Jelinek <jakub@redhat.com>
8139
8140 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
8141 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
8142 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
8143
8144 2014-09-01 Yury Gribov <y.gribov@samsung.com>
8145
8146 PR sanitizer/61897
8147 PR sanitizer/62140
8148 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
8149 (build_check_stmt): Likewise.
8150 (instrument_strlen_call): Likewise.
8151 (asan_expand_check_ifn): Likewise and fix types.
8152 (maybe_cast_to_ptrmode): New function.
8153
8154 2014-09-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8155
8156 * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
8157
8158 2014-08-31 Gerald Pfeifer <gerald@pfeifer.com>
8159
8160 * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
8161
8162 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
8163
8164 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
8165 prefix to function labels when generating fast indirect calls.
8166
8167 2014-08-30 David Malcolm <dmalcolm@redhat.com>
8168
8169 PR bootstrap/62304
8170
8171 * gcc/reorg.c (skip_consecutive_labels): Convert return type and
8172 param back from rtx_insn * to rtx. Rename param from "label" to
8173 "label_or_return", reintroducing "label" as an rtx_insn * after
8174 we've ensured it's not a RETURN.
8175 (first_active_target_insn): Likewise for return type and param;
8176 add a checked cast to rtx_insn * once we've ensured "insn" is not
8177 a RETURN.
8178 (steal_delay_list_from_target): Convert param "pnew_thread" back
8179 from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
8180 with JUMP_LABEL.
8181 (own_thread_p): Convert param "thread" back from an rtx_insn * to
8182 an rtx. Introduce local rtx_insn * "thread_insn" with a checked
8183 cast once we've established we're not dealing with a RETURN,
8184 renaming subsequent uses of "thread" to "thread_insn".
8185 (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
8186 to JUMP_LABEL.
8187 (follow_jumps): Convert return type and param "label" from
8188 rtx_insn * back to rtx. Move initialization of "value" to after
8189 the handling for ANY_RETURN_P, adding a checked cast there to
8190 rtx_insn *. Convert local rtx_insn * "this_label" to an rtx and
8191 rename to "this_label_or_return", reintroducing "this_label" as
8192 an rtx_insn * once we've handled the case where it could be an
8193 ANY_RETURN_P.
8194 (fill_slots_from_thread): Rename param "thread" to
8195 "thread_or_return", converting from an rtx_insn * back to an rtx.
8196 Reintroduce name "thread" as an rtx_insn * local with a checked
8197 cast once we've handled the case of it being an ANY_RETURN_P.
8198 Convert local "new_thread" from an rtx_insn * back to an rtx.
8199 Add a checked cast when assigning to "trial" from "new_thread".
8200 Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL. Add a
8201 checked cast to rtx_insn * from "new_thread" when invoking
8202 get_label_before.
8203 (fill_eager_delay_slots): Convert locals "target_label",
8204 "insn_at_target" from rtx_insn * back to rtx.
8205 Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
8206 (relax_delay_slots): Convert locals "trial", "target_label" from
8207 rtx_insn * back to rtx. Convert uses of JUMP_LABEL_AS_INSN back
8208 to JUMP_LABEL. Add a checked cast to rtx_insn * on "trial" when
8209 invoking update_block.
8210 (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
8211 JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
8212
8213 * resource.h (mark_target_live_regs): Undo erroneous conversion
8214 of second param of r214693, converting it back from rtx_insn * to
8215 rtx, since it could be a RETURN.
8216
8217 * resource.c (find_dead_or_set_registers): Similarly, convert
8218 param "jump_target" back from an rtx_insn ** to an rtx *, as we
8219 could be writing back a RETURN. Rename local rtx_insn * "next" to
8220 "next_insn", and introduce "lab_or_return" as a local rtx,
8221 handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
8222 (mark_target_live_regs): Undo erroneous conversion
8223 of second param of r214693, converting it back from rtx_insn * to
8224 rtx, since it could be a RETURN. Rename it from "target" to
8225 "target_maybe_return", reintroducing the name "target" as a local
8226 rtx_insn * with a checked cast, after we've handled the case of
8227 ANY_RETURN_P.
8228
8229 2014-08-29 DJ Delorie <dj@redhat.com>
8230
8231 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
8232 pointer size up to a power of two.
8233 * defaults.h (DWARF2_ADDR_SIZE): Round up.
8234 (POINTER_SIZE_UNITS): New, rounded up value.
8235 * dwarf2asm.c (size_of_encoded_value): Use it.
8236 (dw2_output_indirect_constant_1): Likewise.
8237 * expmed.c (init_expmed_one_conv): We now know the sizes of
8238 partial int modes.
8239 * loop-iv.c (iv_number_of_iterations): Use precision, not size.
8240 * optabs.c (expand_float): Use precision, not size.
8241 (expand_fix): Likewise.
8242 * simplify-rtx (simplify_unary_operation_1): Likewise.
8243 * tree-dfa.c (get_ref_base_and_extent): Likewise.
8244 * varasm.c (assemble_addr_to_section): Round up pointer sizes.
8245 (default_assemble_integer) Likewise.
8246 (dump_tm_clone_pairs): Likewise.
8247 * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
8248 * var-tracking.c (adjust_mems): Allow partial-int modes also.
8249 (prepare_call_arguments): Likewise.
8250 * stor-layout.c (finalize_type_size): Preserve precision.
8251 (layout_type): Use precision, not size.
8252
8253 * expr.c (convert_move): If the target has an explicit converter,
8254 use it.
8255
8256 2014-08-29 David Malcolm <dmalcolm@redhat.com>
8257
8258 * gdbinit.in: Skip various inline functions in rtl.h when
8259 stepping.
8260
8261 2014-08-29 Richard Sandiford <richard.sandiford@arm.com>
8262
8263 PR bootstrap/62301
8264 * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
8265
8266 2014-08-29 Richard Biener <rguenther@suse.de>
8267
8268 PR tree-optimization/62291
8269 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
8270 exactly the vector size needed and use quick_push.
8271 (phi_translate_1): Adjust comment.
8272 (valid_in_sets): Remove block argument and remove pointless
8273 checking of NAMEs.
8274 (dependent_clean): Adjust for removal of block argument.
8275 (clean): Likewise.
8276 (compute_antic_aux): Likewise.
8277 (compute_partial_antic_aux): Likewise.
8278
8279 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
8280 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8281 Anna Tikhonova <anna.tikhonova@intel.com>
8282 Ilya Tocar <ilya.tocar@intel.com>
8283 Andrey Turetskiy <andrey.turetskiy@intel.com>
8284 Ilya Verbin <ilya.verbin@intel.com>
8285 Kirill Yukhin <kirill.yukhin@intel.com>
8286 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8287
8288 * config/i386/sse.md
8289 (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
8290 (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
8291 (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
8292 (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
8293
8294 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
8295 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8296 Anna Tikhonova <anna.tikhonova@intel.com>
8297 Ilya Tocar <ilya.tocar@intel.com>
8298 Andrey Turetskiy <andrey.turetskiy@intel.com>
8299 Ilya Verbin <ilya.verbin@intel.com>
8300 Kirill Yukhin <kirill.yukhin@intel.com>
8301 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8302
8303 * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
8304 * config/i386/sse.md
8305 (define_mode_iterator VI4_128_8_256): New.
8306 (define_mode_iterator VI2_128_4_256): Ditto.
8307 (define_mode_iterator PMOV_DST_MODE): Rename into
8308 (define_mode_iterator PMOV_DST_MODE_1): this.
8309 (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
8310 Use PMOV_DST_MODE_1 mode iterator.
8311 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
8312 Ditto.
8313 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
8314 Ditto.
8315 (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
8316 (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
8317 (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
8318 (define_mode_iterator PMOV_DST_MODE_2): New.
8319 (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
8320 (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
8321 (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
8322 Ditto.
8323 (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
8324 (define_mode_attr pmov_dst_3): Ditto.
8325 (define_mode_attr pmov_dst_zeroed_3): Ditto.
8326 (define_mode_attr pmov_suff_3): Ditto.
8327 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
8328 (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
8329 (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
8330 (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
8331 (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
8332 (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
8333 (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
8334 (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
8335 (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
8336 (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
8337 (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
8338 (define_mode_attr pmov_dst_4): Ditto.
8339 (define_mode_attr pmov_dst_zeroed_4): Ditto.
8340 (define_mode_attr pmov_suff_4): Ditto.
8341 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
8342 (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
8343 (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
8344 (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
8345 (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
8346 (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
8347 (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
8348 (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
8349 (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
8350 (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
8351 (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
8352
8353 2014-08-29 Richard Biener <rguenther@suse.de>
8354
8355 * tree-cfg.c (verify_gimple_assign_unary): Do not allow
8356 NON_LVALUE_EXPR in gimple.
8357
8358 2014-08-29 Richard Biener <rguenther@suse.de>
8359
8360 PR middle-end/62292
8361 * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
8362 from previous refactoring.
8363 (gimple_fold_builtin_strncpy): Likewise.
8364
8365 2014-08-29 David Malcolm <dmalcolm@redhat.com>
8366
8367 PR bootstrap/62300
8368 * function.c (assign_parm_setup_reg): Remove erroneous checked
8369 cast to rtx_insn * on result of gen_extend_insn in favor of
8370 introducing a new local rtx "pat".
8371
8372 2014-08-29 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8373
8374 * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
8375 to silence warning.
8376 * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
8377
8378 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8379
8380 * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
8381 (next_insn): Likewise.
8382 * emit-rtl.c (next_insn): Likewise.
8383 (previous_insn): Likewise.
8384 * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
8385 "insn" and "next" from rtx to rtx_insn *.
8386 * config/picochip/picochip.c (picochip_reorg): Likewise for locals
8387 "insn", "insn1", "vliw_start", "prologue_end_note",
8388 "last_insn_in_packet".
8389
8390 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8391
8392 * shrink-wrap.h (active_insn_between): Strengthen both params from
8393 rtx to rtx_insn *.
8394 * function.c (active_insn_between): Likewise.
8395
8396 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8397
8398 * genattr.c (main): When writing out insn-attr.h, strengthen param
8399 of dfa_clear_single_insn_cache from rtx to rtx_insn *.
8400 * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
8401 writing out the definition of dfa_clear_single_insn_cache to the
8402 generated insn-automata.c
8403
8404 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8405
8406 * resource.h (clear_hashed_info_for_insn): Strengthen param from
8407 rtx to rtx_insn *.
8408 (incr_ticks_for_insn): Likewise.
8409 (init_resource_info): Likewise.
8410
8411 * resource.c (init_resource_info): Likewise.
8412 (clear_hashed_info_for_insn): Likewise.
8413 (incr_ticks_for_insn): Likewise.
8414
8415 * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
8416 rtx to rtx_insn *.
8417 (steal_delay_list_from_target): Use methods of "seq".
8418 (try_merge_delay_insns): Use methods of "merged_insns".
8419 (update_block): Strengthen param "insn" from rtx to rtx_insn *.
8420 (reorg_redirect_jump): Likewise for param "jump".
8421
8422 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8423
8424 * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
8425 rtx to rtx_insn *.
8426 * config/s390/s390.c (s390_split_branches): Eliminate top-level
8427 local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
8428 "set_insn".
8429 (s390_mainpool_finish): In three places, split out a local rtx
8430 "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
8431 "insn". Strengthen local "pool_end" from rtx to rtx_code_label *
8432 and split another local rtx "insn" out into rtx "pat" and
8433 rtx_insn * "insn".
8434 * config/sh/sh.c (output_branchy_insn): Rather than working
8435 directly on operands[9], introduce local rtx_code_label *
8436 variables named "lab" in two places, working on them, and then
8437 assigning them to operands[9], so that the intervening operations
8438 are known by the type system to be on insns.
8439
8440 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8441
8442 * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
8443 const rtx_insn *.
8444
8445 * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
8446 in invocation of INSN_HAS_LOCATION.
8447
8448 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8449
8450 * config/rs6000/altivec.h (vec_xl): New #define.
8451 (vec_xst): Likewise.
8452 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
8453 (XXSPLTD_V2DI): Likewise.
8454 (DIV_V2DI): Likewise.
8455 (UDIV_V2DI): Likewise.
8456 (MUL_V2DI): Likewise.
8457 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8458 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
8459 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
8460 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
8461 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
8462 (UNSPEC_VSX_DIVSD): Likewise.
8463 (UNSPEC_VSX_DIVUD): Likewise.
8464 (UNSPEC_VSX_MULSD): Likewise.
8465 (vsx_mul_v2di): New insn-and-split.
8466 (vsx_div_v2di): Likewise.
8467 (vsx_udiv_v2di): Likewise.
8468 (vsx_xxspltd_<mode>): New insn.
8469
8470 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8471
8472 * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
8473 NEXT_INSN.
8474 (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
8475 (NEXT_INSN): Likewise.
8476 (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
8477 (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
8478 const rtx_insn *.
8479 (no_labels_between_p): Likewise for both params.
8480
8481 * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
8482 cast when using NEXT_INSN on operands[2].
8483 * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
8484 "insn" from rtx to rtx_insn *, adding a checked cast.
8485 (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
8486 rtx_insn *.
8487 * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
8488 for third param.
8489 (arc_text_label): Likewise for param "insn".
8490 * config/arc/arc.c (arc_expand_epilogue): Likewise for local
8491 "insn".
8492 (arc_ccfsm_record_condition): Likewise for param "jump".
8493 (arc_text_label): Likewise for local "label".
8494 * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
8495 Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
8496 a method for typesafety. Add a checked cast.
8497 * config/arc/constraints.md (Clb): Add a checked cast when getting
8498 the CODE_LABEL from a LABEL_REF.
8499 * config/arm/arm.c (require_pic_register): Strengthen locals
8500 "seq", "insn" from rtx to rtx_insn *.
8501 (create_fix_barrier): Likewise for locals "selected", "next".
8502 (thumb1_reorg): Likewise for locals "prev", "insn".
8503 (arm_expand_prologue): Likewise for local "last".
8504 (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
8505 operands[0].
8506 (thumb2_output_casesi): Likewise for operands[2].
8507 * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
8508 strengthen local "insn" from rtx to rtx_insn *.
8509 * config/bfin/bfin.c (find_next_insn_start): Likewise for return
8510 type and param "insn".
8511 (find_prev_insn_start): Likewise.
8512 (hwloop_optimize): Likewise for locals "insn", "last_insn",
8513 "prev".
8514 (gen_one_bundle): Likewise for loal "t".
8515 (find_load): Likewise for param "insn".
8516 (workaround_speculation): Likewise for locals "insn", "next",
8517 "target", "next_tgt".
8518 * config/c6x/c6x.c (assign_reservations): Likewise for both params
8519 and for locals "insn", "within", "last".
8520 (count_unit_reqs): Likewise for params "head", "tail" and local
8521 "insn".
8522 (try_rename_operands): Likewise for params "head", "tail".
8523 (reshuffle_units): Likewise for locals "head", "tail", "insn".
8524 (struct c6x_sched_context): Likewise for fields
8525 "last_scheduled_insn", "last_scheduled_iter0".
8526 (init_sched_state): Replace NULL_RTX with NULL.
8527 (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
8528 to rtx_insn *.
8529 (undo_split_delayed_nonbranch): Likewise for param and for local
8530 "prev".
8531 (conditionalize_after_sched): Likewise for local "insn".
8532 (bb_earliest_end_cycle): Likewise.
8533 (filter_insns_above): Likewise for locals "insn", "next".
8534 (hwloop_optimize): Remove redundant checked cast.
8535 (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
8536 * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
8537 NULL_RTX with NULL.
8538 (cris_simple_epilogue): Likewise.
8539 (cris_expand_prologue): Likewise.
8540 (cris_expand_epilogue): Likewise.
8541 * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
8542 local "insn" from rtx to rtx_insn *.
8543 (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
8544 (struct frv_packet_group): Likewise for the elements within array
8545 fields "insns", "sorted", and for field "nop".
8546 (frv_packet): Likewise for the elements within array field
8547 "insns".
8548 (frv_add_insn_to_packet): Likewise for param "insn".
8549 (frv_insert_nop_in_packet): Likewise for param "insn" and local
8550 "last".
8551 (frv_for_each_packet): Likewise for locals "insn", "next_insn".
8552 (frv_sort_insn_group_1): Likewise for local "insn".
8553 (frv_optimize_membar_local): Likewise.
8554 (frv_align_label): Likewise for locals "x", "last", "barrier",
8555 "label".
8556 * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
8557 local.
8558 (ia64_sched_init): Likewise for local "insn".
8559 (scheduled_good_insn): Likewise for param "last".
8560 (struct _ia64_sched_context): Likewise for field
8561 "last_scheduled_insn".
8562 (ia64_init_sched_context): Replace NULL_RTX with NULL.
8563 (struct bundle_state): Likewise for field "insn".
8564 (issue_nops_and_insn): Likewise for param "insn".
8565 (get_next_important_insn): Likewise for return type and both
8566 params.
8567 (ia64_add_bundle_selector_before): Likewise for param "insn".
8568 (bundling): Likewise for params "prev_head_insn", "tail" and
8569 locals "insn", "next_insn", "b". Eliminate top-level local rtx
8570 "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
8571 * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
8572 Strengthen final param from rtx to rtx_insn *.
8573 (iq2000_move_1word): Likewise for second param.
8574 * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
8575 param "cur_insn" and local "next_insn".
8576 (iq2000_move_1word): Likewise for param "insn".
8577 * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
8578 casts when using NEXT_INSN on operands[1].
8579 * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
8580 "insn" from rtx to rtx_insn *.
8581 * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
8582 "x", introducing local rtx_insn * "insn" for when working with the
8583 CODE_LABEL of the LABEL_REF.
8584 (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
8585 rtx_insn *.
8586 * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
8587 param.
8588 * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
8589 type.
8590 (conditionalize_block): Likewise for return type and param.
8591 (mcore_is_dead): Likewise for param "first" and local "insn".
8592 (emit_new_cond_insn): Likewise for return type.
8593 (conditionalize_block): Likewise for return type, param, and
8594 locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
8595 "newinsn".
8596 (conditionalize_optimization): Likewise for local "insn".
8597 * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
8598 using NEXT_INSN.
8599 * config/microblaze/microblaze.md: Add checked casts when using
8600 NEXT_INSN.
8601 * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
8602 rtx "insn" in favor of various more tightly-scoped rtx "insn" and
8603 and rtx_insn * "insn".
8604 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
8605 checked cast when using NEXT_INSN on operands[2].
8606 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
8607 local "insn" from rtx to rtx_insn *.
8608 * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
8609 Likewise.
8610 * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
8611 Add a checked cast when using NEXT_INSN on operands[1].
8612 * config/pa/pa-protos.h (pa_following_call): Strengthen param from
8613 rtx to rtx_insn *.
8614 (pa_output_cbranch): Likewise for final param.
8615 (pa_output_lbranch): Likewise for second param.
8616 (pa_output_bb): Likewise for third param.
8617 (pa_output_bvb): Likewise.
8618 (pa_output_dbra): Likewise for second param.
8619 (pa_output_movb): Likewise.
8620 (pa_output_parallel_movb): Likewise.
8621 (pa_output_parallel_addb): Likewise.
8622 (pa_output_millicode_call): Likewise for first param.
8623 (pa_output_mul_insn): Likewise for second param.
8624 (pa_output_div_insn): Likewise for third param.
8625 (pa_output_mod_insn): Likewise for second param.
8626 (pa_jump_in_call_delay): Likewise for param.
8627 * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
8628 (pa_output_div_insn): Likewise.
8629 (pa_output_mod_insn): Likewise.
8630 (pa_output_cbranch): Likewise.
8631 (pa_output_lbranch): Likewise.
8632 (pa_output_bb): Likewise.
8633 (pa_output_bvb): Likewise.
8634 (pa_output_dbra): Likewise.
8635 (pa_output_movb): Likewise.
8636 (pa_output_millicode_call): Likewise; use method of rtx_sequence *
8637 to simplify and for typesafety.
8638 (pa_output_call): Use method of rtx_sequence *.
8639 (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
8640 (pa_jump_in_call_delay): Likewise.
8641 (pa_output_parallel_movb): Likewise.
8642 (pa_output_parallel_addb): Likewise.
8643 (pa_following_call): Likewise.
8644 (pa_combine_instructions): Likewise for locals "anchor",
8645 "floater".
8646 (pa_can_combine_p): Likewise for params "anchor", "floater" and
8647 locals "start", "end".
8648 * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
8649 param "insn" and local "local_insn".
8650 (picochip_final_prescan_insn): Likewise for local "local_insn".
8651 * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
8652 local "insn".
8653 (uses_TOC): Likewise.
8654 * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
8655 (s390_mainpool_finish): Eliminate top-level local rtx "insn",
8656 splitting out to more tightly-scoped locals, 3 as rtx and one as
8657 rtx_insn *.
8658 (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
8659 to rtx_insn *.
8660 (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
8661 where needed.
8662 * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
8663 to rtx_insn *.
8664 (fixup_addr_diff_vecs): Likewise.
8665 (reg_unused_after): Likewise for param 2.
8666 (sh_can_redirect_branch): Likewise for both params.
8667 (check_use_sfunc_addr): Likewise for param 1.
8668 * config/sh/sh.c (fixup_mova): Likewise for local "worker".
8669 (find_barrier): Likewise for local "last_got".
8670 (gen_block_redirect): Likewise for return type, param "jump" and
8671 locals "prev", "scan", "next", "insn".
8672 (struct far_branch): Likewise for fields "near_label",
8673 "insert_place", "far_label".
8674 (gen_far_branch): Likewise for local "jump".
8675 (fixup_addr_diff_vecs): Likewise for param "first" and locals
8676 "insn", "prev".
8677 (barrier_align): Likewise for param and for locals "prev", "x".
8678 Introduce local rtx_sequence * "prev_seq" and use insn method for
8679 typesafety and clarity.
8680 (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
8681 (get_dest_uid): Likewise for local "dest".
8682 (split_branches): Likewise for locals "next", "beyond", "label",
8683 "block", "far_label". Add checked casts when assigning to
8684 bp->far_label and "far_label".
8685 (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
8686 (sequence_insn_p): Likewise.
8687 (mark_constant_pool_use): Likewise for locals "insn", "lab". Add a
8688 more loop-scoped rtx "insn" when walking LABEL_REFS.
8689 (sh_can_redirect_branch): Strengthen both params from rtx to
8690 rtx_insn *.
8691 (check_use_sfunc_addr): Likewise for param "insn". Introduce a
8692 new local rtx_sequence * "seq" via a dyn_cast, and use a method
8693 for clarity and typesafety.
8694 * config/sh/sh.md (define_expand "epilogue"): Strengthen local
8695 "insn" from rtx to rtx_insn *.
8696 (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
8697 when using NEXT_INSN on the CODE_LABEL in operands[2].
8698 (define_insn "casesi_worker_2"): Likewise.
8699 (define_insn "casesi_shift_media"): Likewise.
8700 (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
8701 operands[3].
8702 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
8703 Strengthen field "insn" from rtx to rtx_insn *.
8704 (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
8705 (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
8706 param "start_insn" and local "start_insn".
8707 * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
8708 field "insn".
8709 (find_set_of_reg_bb): Likewise for param "insn".
8710 (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
8711 (trace_reg_uses): Likewise for param "start_insn".
8712 (sh_treg_combine::cbranch_trace): Likewise for field
8713 "cbranch_insn".
8714 (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
8715 param "insn".
8716 (sh_treg_combine::record_set_of_reg): Likewise for param
8717 "start_insn" and local "i".
8718 (sh_treg_combine::can_remove_cstore): Likewise for local
8719 "prev_insn".
8720 (sh_treg_combine::try_optimize_cbranch): Likewise for param
8721 "insn".
8722 (sh_treg_combine::execute): Likewise for local "i".
8723 * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
8724 param.
8725 (sparc_check_64): Likewise for second param.
8726 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
8727 locals "insn", "next". Introduce local rtx_sequence * "seq" via a
8728 dyn_cast, using its insn method for typesafety and clarity.
8729 (empty_delay_slot): Strengthen param "insn" from rtx to
8730 rtx_insn *.
8731 (set_extends): Likewise.
8732 (sparc_check_64): Likewise.
8733 * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
8734 for locals "seq", "last_insn".
8735 (combine_bnp): Likewise for param "insn".
8736 (xstormy16_reorg): Likewise for local "insn".
8737 * config/v850/v850.c (substitute_ep_register): Likewise for params
8738 "first_insn", "last_insn" and local "insn".
8739 (v850_reorg): Likewise for fields "first_insn", "last_insn" within
8740 elements of "regs" array, and local "insn".
8741 * except.c (emit_note_eh_region_end): Likewise for param "insn".
8742 * final.c (final_sequence): Strengthen this global from rtx to
8743 rtx_sequence *.
8744 (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
8745 rtx_insn *.
8746 (final_scan_insn): Update assignment to "final_sequence" to be
8747 from "seq", the cast version of "body", for type-safety.
8748 * function.c (assign_parm_setup_reg): Strengthen locals "insn",
8749 "insns" from rtx to rtx_insn *.
8750 (thread_prologue_and_epilogue_insns): Likewise for local "seq".
8751 * genattr.c (main): When writing out generated insn-attr.h,
8752 strengthen params 1 and 3 of eligible_for_delay,
8753 eligible_for_annul_true, eligible_for_annul_false from rtx to
8754 rtx_insn *.
8755 * genattrtab.c (write_eligible_delay): Likewise when writing out
8756 generated insn-attrtab.c; also local "insn" the generated
8757 functions.
8758 * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
8759 to rtx_insn *.
8760 * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
8761 "start_label" from rtx to rtx_insn *.
8762 * ira.c (decrease_live_ranges_number): Likewise for local "p".
8763 (ira_update_equiv_info_by_shuffle_insn): Likewise for param
8764 "insns" and local "insn".
8765 (validate_equiv_mem): Likewise for param "start" and local "insn".
8766 (memref_used_between_p): Likewise for params "start", "end" and
8767 local "insn".
8768 * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
8769 final param.
8770 * loop-doloop.c (doloop_optimize): Within region guarded by
8771 INSN_P (doloop_pat), introduce a new local rtx_insn *
8772 "doloop_insn" via a checked cast, and use it for typesafety,
8773 eventually writing the value back into doloop_pat.
8774 * output.h (final_sequence): Strengthen this global from rtx to
8775 rtx_sequence *.
8776 * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
8777 reintroducing "insn" as an rtx_insn * via a checked cast.
8778 Strengthen param "attempt" and local "new_insn"from rtx to
8779 rtx_insn *.
8780 (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
8781 to rtx_insn *.
8782 * ree.c (emit_note_eh_region_end): Likewise for local "insn".
8783 * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
8784 "p" in favor of more tightly-scoped replacements, sometimes rtx
8785 and sometimes rtx_insn *, as appropriate.
8786 (delete_output_reload): Eliminate top-level rtx "i1", splitting
8787 into two loop-scoped locals, one an rtx, the other an rtx_insn *.
8788 * reorg.c (delete_scheduled_jump): Add checked cast. Strengthen
8789 local "trial" from rtx to rtx_insn *.
8790 (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
8791 rtx to rtx_insn *. Strenghten local "pat" from rtx to
8792 rtx_sequence * and use methods for clarity and typesafety.
8793 (redirect_with_delay_list_safe_p): Strengthen param "jump" from
8794 rtx to rtx_insn *. Strenghten local "li" from rtx to
8795 rtx_insn_list * and use its methods for clarity and typesafety.
8796 (steal_delay_list_from_target): Strengthen param "insn" from rtx
8797 to rtx_insn *.
8798 (steal_delay_list_from_fallthrough): Likewise.
8799 (try_merge_delay_insns): Likewise for param "thread" and locals
8800 "trial", "next_trial", "delay_insn".
8801 (redundant_insn): Likewise for param "target" and local "trial".
8802 (own_thread_p): Likewise for param "thread" and locals
8803 "active_insn", "insn".
8804 (get_label_before): Likewise for param "insn".
8805 (fill_simple_delay_slots): Likewise for local "new_label"; use
8806 JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
8807 (label_before_next_insn): Strengthen return type and local "insn"
8808 from rtx to rtx_insn *.
8809 (relax_delay_slots): Likewise for locals "other", "tmp".
8810 (make_return_insns): Likewise for param "first" and locals "insn",
8811 "jump_insn", "prev". Move declaration of "pat" to its assignment
8812 and strengthen from rtx to rtx_sequence *. Use its methods for
8813 clarity and typesafety.
8814 * rtlanal.c (no_labels_between_p): Strengthen params from
8815 const_rtx to const rtx_insn *. Strengthen local "p" from rtx to
8816 rtx_insn *.
8817 (reg_used_between_p): Strengthen params "from_insn", "to_insn"
8818 from const_rtx to const rtx_insn *.
8819 (reg_set_between_p): Rename param "from_insn" to
8820 "uncast_from_insn", and reintroduce "from_insn" as a
8821 const rtx_insn * via a checked cast.
8822 (modified_between_p): Likewise for param "start" as "uncast_start".
8823 (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
8824 * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
8825 "tmp", head" from rtx to rtx_insn *.
8826 (recompute_rev_top_order): Likewise for local "insn".
8827 * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
8828 * store-motion.c (build_store_vectors): Likewise for local "insn".
8829 Strengthen local "st" from rtx to rtx_insn_list * and use methods
8830 for clarity and typesafety.
8831 * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
8832 rtx to rtx_insn *.
8833 (computation_cost): Likewise for local "seq".
8834 (get_address_cost): Likewise.
8835
8836 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8837
8838 * rtl.h (tablejump_p): Strengthen first param from const_rtx to
8839 const rtx_insn *.
8840 (label_is_jump_target_p): Likewise for second param.
8841
8842 * rtlanal.c (tablejump_p): Likewise for param "insn".
8843 (label_is_jump_target_p): Likewise for param "jump_insn".
8844
8845 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8846
8847 * rtl.h (find_first_parameter_load): Strengthen return type and
8848 both params from rtx to rtx_insn *.
8849 * rtlanal.c (find_first_parameter_load): Strengthen return type,
8850 both params and locals "before", "first_set" from rtx to
8851 rtx_insn *. Remove now-redundant cast.
8852 * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
8853
8854 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8855
8856 * rtl.h (find_last_value): Delete.
8857 * rtlanal.c (find_last_value): Delete.
8858
8859 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8860
8861 * cfgexpand.c (pass_expand::execute): Strengthen local "after"
8862 from rtx to rtx_insn *.
8863 * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
8864 rtx "note" with new local rtx_insn * "new_head" when calculating
8865 head insn of new basic block.
8866 * combine.c (combine_split_insns): Strengthen return type and local
8867 "ret" from rtx to rtx_insn *.
8868 (likely_spilled_retval_p): Likewise for locals "use" and "p".
8869 (try_combine): Eliminate local "m_split", splitting into new
8870 locals "m_split_insn" and "m_split_pat".
8871 (find_split_point): Strengthen local "seq" from rtx into
8872 rtx_insn *.
8873 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
8874 locals "label", "branch".
8875 * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
8876 for local "insn".
8877 (define_expand "umulsi3_highpart"): Likewise for local "insn".
8878 * dse.c (note_add_store_info): Likewise for fields "first",
8879 "current".
8880 (note_add_store): Likewise for local "insn".
8881 (emit_inc_dec_insn_before): Likewise for locals "insn",
8882 "new_insn", "cur".
8883 (find_shift_sequence): Likewise for locals "shift_seq", "insn".
8884 (replace_read): Likewise for locals "insns", "this_insn".
8885 * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
8886 (notice_eh_throw): Likewise for param "insn".
8887 (before_next_cfi_note): Likewise for return type, param, and local
8888 "prev".
8889 (connect_traces): Likewise for local "note".
8890 * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
8891 (verify_rtl_sharing): Likewise.
8892 (unshare_all_rtl_in_chain): Likewise for param "insn".
8893 (get_first_nonnote_insn): Likewise for local "insn".
8894 (get_last_nonnote_insn): Likewise. Introduce local rtx_sequence *
8895 "seq" and use its methods to clarify things.
8896 (next_insn): Strengthen return type from rtx to rtx_insn *.
8897 Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
8898 local rtx_insn * using a checked cast, dropping a checked cast
8899 made redundant by this change. Use a cast to and method of
8900 rtx_sequence to clarify the code.
8901 (previous_insn): Rename param "insn" to "uncast_insn" and
8902 reintroduce "insn" as a local rtx_insn * using a checked cast,
8903 dropping a checked cast made redundant by this change. Use a cast
8904 to and method of rtx_sequence to clarify the code.
8905 (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
8906 reintroduce "insn" as a local rtx_insn * using a checked cast,
8907 dropping a checked cast made redundant by this change.
8908 (next_nonnote_insn_bb): Likewise.
8909 (prev_nonnote_insn): Likewise.
8910 (prev_nonnote_insn_bb): Likewise.
8911 (next_nondebug_insn): Likewise.
8912 (prev_nondebug_insn): Likewise.
8913 (next_nonnote_nondebug_insn): Likewise.
8914 (prev_nonnote_nondebug_insn): Likewise.
8915 (next_real_insn): Likewise.
8916 (prev_real_insn): Likewise.
8917 (next_active_insn): Likewise.
8918 (prev_active_insn): Likewise.
8919 (next_cc0_user): Likewise. Use rtx_sequence and a method for
8920 clarity.
8921 (prev_cc0_setter): Likewise.
8922 (try_split): Rename param "trial" to "uncast_trial" and
8923 reintroduce "insn" as a local rtx_insn * using a checked cast,
8924 dropping checked casts made redundant by this change.
8925 Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
8926 rtx to rtx_insn *.
8927 (remove_insn): Rename param "insn" to "uncast_insn" and
8928 reintroduce "insn" as a local rtx_insn * using a checked cast.
8929 (emit_pattern_after_setloc): Likewise for param "after", as
8930 "uncast_after".
8931 (emit_pattern_after): Likewise. Strengthen local "prev" from
8932 rtx to rtx_insn *.
8933 (emit_pattern_before_setloc): Rename param "before" to
8934 "uncast_before" and reintroduce "before" as a local rtx_insn *
8935 using a checked cast. Strengthen locals "first", "last" from
8936 rtx to rtx_insn *.
8937 (emit_pattern_before): Likewise rename/cast param "before" to
8938 "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
8939 * except.c (copy_reg_eh_region_note_forward): Strengthen param
8940 "first" and local "insn" from rtx to rtx_insn *.
8941 (copy_reg_eh_region_note_backward): Likewise for param "last"
8942 and local "insn".
8943 * expr.c (fixup_args_size_notes): Rename param "last" to
8944 "uncast_last" and reintroduce "last" as a local rtx_insn *
8945 using a checked cast. Strengthen local "insn" from rtx to
8946 rtx_insn *.
8947 * function.c (set_insn_locations): Strengthen param "insn" from
8948 rtx to rtx_insn *.
8949 (record_insns): Likewise for param "insns" and local "tmp".
8950 (active_insn_between): Rename param "tail" to
8951 "uncast_tail" and reintroduce "tail" as a local rtx_insn *
8952 using a checked cast.
8953 (thread_prologue_and_epilogue_insns): Split out top-level local
8954 rtx "seq" into three different rtx_insn * locals. Strengthen
8955 local "prologue_seq" from rtx to rtx_insn *.
8956 * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
8957 from rtx to rtx_insn *.
8958 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
8959 (priority): Likewise for locals "prev_first", "twin".
8960 (setup_insn_max_reg_pressure): Likewise for param "after".
8961 (sched_setup_bb_reg_pressure_info): Likewise.
8962 (no_real_insns_p): Strengthen params from const_rtx to
8963 const rtx_insn *.
8964 (schedule_block): Strengthen local "next_tail" from rtx to
8965 rtx_insn *.
8966 * ifcvt.c (find_active_insn_before): Strengthen return type and
8967 param "insn" from rtx to rtx_insn *.
8968 (find_active_insn_after): Likewise.
8969 (cond_exec_process_insns): Likewise for param "start" and local "insn".
8970 (cond_exec_process_if_block): Likewise for locals "then_start",
8971 "then_end", "else_start", "else_end", "insn", "start", "end", "from".
8972 (noce_process_if_block): Likewise for local "jump".
8973 (merge_if_block): Likewise for two locals named "end".
8974 (cond_exec_find_if_block): Likewise for local "last_insn".
8975 * jump.c (delete_related_insns): Rename param "insn" to
8976 "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
8977 checked cast. Strengthen local "p" from rtx to rtx_insn *.
8978 * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
8979 NULL.
8980 (split_reg): Likewise.
8981 * lra.c (lra_process_new_insns): Likewise.
8982 * modulo-sched.c (permute_partial_schedule): Strengthen param
8983 "last" from rtx to rtx_insn *.
8984 * optabs.c (add_equal_note): Likewise for param "insns" and local
8985 "last_insn".
8986 (expand_binop_directly): Add checked casts to rtx_insn * within
8987 NEXT_INSN (pat) uses.
8988 (expand_unop_direct): Likewise.
8989 (maybe_emit_unop_insn): Likewise.
8990 * recog.c (peep2_attempt): Strengthen locals "last",
8991 "before_try", "x" from rtx to rtx_insn *.
8992 * reorg.c (optimize_skip): Strengthen return type and local
8993 "delay_list" from rtx to rtx_insn_list *. Strengthen param "insn"
8994 and locals "trial", "next_trial" from rtx to rtx_insn *.
8995 * resource.c (next_insn_no_annul): Strengthen return type and
8996 param "insn" from rtx to rtx_insn *. Use a cast to and method of
8997 rtx_sequence to clarify the code.
8998 (mark_referenced_resources): Add a checked cast to rtx_insn *
8999 within PREV_INSN (x).
9000 (find_dead_or_set_registers): Strengthen return type, param
9001 "target", locals "insn", "next", "jump_insn", "this_jump_insn"
9002 from rtx to rtx_insn *. Strengthen param "jump_target" from rtx *
9003 to rtx_insn **.
9004 (mark_target_live_regs): Strengthen params "insns" and "target",
9005 locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
9006 to rtx_insn *. Use cast to and method of rtx_sequence to clarify
9007 the code.
9008 * resource.h (mark_target_live_regs): Strengthen params 1 and 2
9009 from rtx to rtx_insn *.
9010 * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
9011 from rtx to rtx_insn *.
9012 (copy_reg_eh_region_note_backward): Likewise.
9013 (unshare_all_rtl_in_chain): Likewise for sole param.
9014 (dump_rtl_slim): Strengthen second and third params from const_rtx
9015 to const rtx_insn *.
9016 * sched-deps.c (sched_free_deps): Strengthen params "head" and
9017 "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
9018 * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
9019 "next_tail" from rtx to rtx_insn *.
9020 (begin_move_insn): Likewise for local "next".
9021 * sched-int.h (sched_free_deps): Likewise for first and second
9022 params.
9023 (no_real_insns_p): Strengthen both params from const_rtx to
9024 const rtx_insn *.
9025 (sched_setup_bb_reg_pressure_info): Strengthen second params from
9026 rtx to rtx_insn *.
9027 * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
9028 "next_tail".
9029 * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
9030 and locals "insn", "tail" from const_rtx to const rtx_insn *.
9031 (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
9032 rtx_insn *.
9033 (debug_rtl_slim): Strengthen params "first" and "last" from
9034 const_rtx to const rtx_insn *.
9035 * shrink-wrap.c (try_shrink_wrapping): Strengthen param
9036 "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
9037 (convert_to_simple_return): Likewise for param "returnjump".
9038 * shrink-wrap.h (try_shrink_wrapping): Likewise for param
9039 "prologue_seq".
9040 (convert_to_simple_return): Likewise for param "returnjump".
9041 * valtrack.c (propagate_for_debug): Likewise for params
9042 "insn", "last".
9043 * valtrack.h (propagate_for_debug): Likewise for second param.
9044
9045 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9046
9047 * output.h (insn_current_reference_address): Strengthen param
9048 from rtx to rtx_insn *.
9049 * final.c (insn_current_reference_address): Likewise.
9050
9051 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9052
9053 * basic-block.h (inside_basic_block_p): Strengthen param from
9054 const_rtx to const rtx_insn *.
9055 * cfgbuild.c (inside_basic_block_p): Likewise.
9056
9057 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9058
9059 * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
9060 rtx_insn *.
9061 (get_trace_info): Likewise for param "insn".
9062 (save_point_p): Likewise.
9063 (maybe_record_trace_start): Likewise for both params.
9064 (maybe_record_trace_start_abnormal): Likewise.
9065 (create_trace_edges): Likewise for sole param and for three of the
9066 locals named "lab".
9067 (scan_trace): Strengthen local "prev", "insn", "control" from rtx
9068 to rtx_insn *, and update a call to pat->element to pat->insn.
9069
9070 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9071
9072 * function.h (struct expr_status): Convert field "x_forced_labels"
9073 from rtx_expr_list * to rtx_insn_list *.
9074
9075 * cfgbuild.c (make_edges): Convert local "x" from an
9076 rtx_expr_list * to an rtx_insn_list *, replacing use of
9077 "element" method with "insn" method.
9078 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9079 * except.c (sjlj_emit_dispatch_table): Replace use of
9080 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
9081 forced_labels.
9082 * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
9083 rtx_expr_list * to an rtx_insn_list *, replacing use of
9084 "element" method with "insn" method.
9085 * reload1.c (set_initial_label_offsets): Likewise for local "x".
9086 * stmt.c (label_rtx): Strengthen local "ref" from rtx to
9087 rtx_insn *, adding a checked cast. Replace use of
9088 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
9089 forced_labels.
9090 (expand_label): Likewise for local "label_r".
9091
9092 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9093
9094 * function.h (struct rtl_data): Convert field
9095 "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
9096 rtx_insn_list *.
9097 * rtl.h (remove_node_from_insn_list): New prototype.
9098
9099 * builtins.c (expand_builtin): When prepending to
9100 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
9101 gen_rtx_EXPR_LIST.
9102 * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
9103 to rtx_insn_list *, and use its "insn" method rather than
9104 "element" method.
9105 * cfgrtl.c (delete_insn): Use new function
9106 remove_node_from_insn_list rather than
9107 remove_node_from_expr_list.
9108 (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
9109 to rtx_insn_list *, and use its "insn" method rather than
9110 "element" method.
9111 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9112 * reload1.c (set_initial_label_offsets): Likewise for local "x".
9113 * rtlanal.c (remove_node_from_insn_list): New function, adapted
9114 from remove_node_from_expr_list.
9115 * stmt.c (expand_label): When prepending to
9116 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
9117 gen_rtx_EXPR_LIST.
9118
9119 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9120
9121 * function.h (struct rtl_data): Strengthen fields "x_return_label"
9122 and "x_naked_return_label" from rtx to rtx_code_label *.
9123
9124 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9125
9126 * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
9127 (SET_NEXT_INSN): Likewise.
9128 (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
9129
9130 * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
9131 rtx * to rtx_insn **. Introduce a new local rtx "seq", using it
9132 to split out the SEQUENCE from local "bundle", strengthening the
9133 latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
9134 Strengthen locals "t" and "insn" from rtx to rtx_insn *.
9135 (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
9136 and the type of the elements of the "slot" array from rtx to
9137 rtx_insn *.
9138 (reorg_split_calls): Likewise for locals "insn" and "next", and
9139 the type of the elements of the "slot" array.
9140
9141 * config/frv/frv.c (frv_nops): Likewise for the elements of this
9142 array.
9143 (frv_function_prologue): Likewise for locals "insn", "next",
9144 "last_call".
9145 (frv_register_nop): Introduce a local "nop_insn" to be the
9146 rtx_insn * containing rtx "nop".
9147
9148 * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
9149 used as an insn and sometimes as a pattern, so rename it to
9150 "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
9151 using it where dealing with the core insn.
9152
9153 * config/picochip/picochip.c (reorder_var_tracking_notes):
9154 Strengthen locals "insn", "next", "last_insn", "queue",
9155 "next_queue", "prev" from rtx to rtx_insn *.
9156
9157 * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
9158 the second param is an rtx_insn ** rather than an rtx **.
9159 (link_insn_into_chain): Strengthen locals "seq" and "sequence"
9160 from rtx to rtx_sequence *, and introduce local named "sequence",
9161 using methods of rtx_sequence to clarify the code.
9162 (remove_insn): Introduce local rtx_sequence * named "sequence" and
9163 use its methods.
9164 (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
9165 Rename param "after" to "uncast_after", reintroducing "after" as a
9166 local rtx_insn * with a checked cast.
9167 (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
9168 reintroducing "after" as a local rtx_insn * with a checked cast.
9169 Strengthen local "last" from rtx to rtx_insn * and remove the
9170 now-redundant checked casts.
9171 (copy_delay_slot_insn): Strengthen return type and param from rtx
9172 to rtx_insn *.
9173
9174 * haifa-sched.c (reemit_notes): Strengthen params "insn" and
9175 "last" from rtx to rtx_insn *.
9176
9177 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9178
9179 * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
9180 param from rtx to rtx_insn *.
9181
9182 * emit-rtl.c (copy_delay_slot_insn): Likewise.
9183
9184 * reorg.c (skip_consecutive_labels): Strengthen return type, param
9185 and local "insn" from rtx to rtx_insn *.
9186 (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
9187 (unfilled_slots_next): Likewise.
9188 (function_return_label): Strengthen from rtx to rtx_code_label *.
9189 (function_simple_return_label): Likewise.
9190 (first_active_target_insn): Strengthen return type and param from
9191 rtx to rtx_insn *.
9192 (find_end_label): Strengthen return type from rtx to
9193 rtx_code_label *; strengthen locals as appropriate.
9194 (emit_delay_sequence): Strengthen return type, param "insn" and
9195 local "seq_insn" from rtx to rtx_insn *. Strengthen param "list"
9196 and local "li" from rtx to rtx_insn_list *, using methods of
9197 rtx_insn_list for clarity and typesafety.
9198 (add_to_delay_list): Strengthen return type and param "insn" from
9199 rtx to rtx_insn *. Strengthen param "delay_list" from rtx to
9200 rtx_insn_list * and use methods of rtx_insn_list.
9201 (delete_from_delay_slot): Strengthen return type, param "insn",
9202 locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
9203 Strengthen local "seq" from rtx to rtx_sequence *, and local
9204 "delay_list" from rtx to rtx_insn_list *, using methods of
9205 rtx_sequence for clarity and type-safety.
9206 (delete_scheduled_jump): Add checked cast when invoking
9207 delete_from_delay_slot. Strengthen local "trial" from rtx to
9208 rtx_insn *.
9209 (optimize_skip): Strengthen return type and local "delay_list"
9210 from rtx to rtx_insn_list *. Strengthen local "trial" from rtx to
9211 rtx_insn *.
9212 (steal_delay_list_from_target): Strengthen return type, param
9213 "delay_list" and local "new_delay_list" from rtx to
9214 rtx_insn_list *. Strengthen param "seq" from rtx to
9215 rtx_sequence *. Strengthen param "pnew_thread" from rtx * to
9216 rtx_insn **.
9217 Split out local "temp" into multiple more-tightly scoped locals:
9218 sometimes an rtx_insn_list *, and once a rtx_insn *. Use methods
9219 of rtx_insn_list and rtx_sequence for clarity and typesafety.
9220 Strengthen locals named "trial" from rtx to rtx_insn *.
9221 (steal_delay_list_from_fallthrough): Strengthen return type and
9222 param "delay_list" from rtx to rtx_insn_list *. Strengthen param
9223 "seq" from rtx to rtx_sequence *. Use methods of rtx_sequence.
9224 Strengthen local "trial" from rtx to rtx_insn *.
9225 (try_merge_delay_insns): Strength local "merged_insns" from rtx
9226 to rtx_insn_list * and use its methods. Strengthen local "pat"
9227 from rtx to rtx_sequence * and use its methods. Strengthen locals
9228 "dtrial" and "new_rtx" from rtx to rtx_insn *.
9229 (get_label_before): Strengthen return type and local "label" from
9230 rtx to rtx_insn *.
9231 (fill_simple_delay_slots): Likewise for locals "insn", "trial",
9232 "next_trial", "next", prev". Strengthen local "delay_list" from
9233 rtx to rtx_insn_list * Strengthen local "tmp" from rtx * to
9234 rtx_insn **.
9235 (follow_jumps): Strengthen return type, param "label" and locals
9236 "insn", "next", "value", "this_label" from rtx to rtx_insn *.
9237 (fill_slots_from_thread): Strengthen return type, param
9238 "delay_list" from rtx to rtx_insn_list *. Strengthen params
9239 "insn", "thread", "opposite_thread" and locals "new_thread",
9240 "trial", "temp", "ninsn" from rtx to rtx_insn *. Introduce local
9241 "sequence" from a checked cast to rtx_sequence so that we can call
9242 steal_delay_list_from_target and steal_delay_list_from_fallthrough
9243 with an rtx_sequence *.
9244 (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
9245 "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
9246 Strengthen local "delay_list" from rtx to rtx_insn_list *.
9247 (relax_delay_slots): Strengthen param "first" and locals "insn",
9248 "next", "trial", "delay_insn", "target_label" from rtx to
9249 rtx_insn *. Strengthen local "pat" from rtx to rtx_sequence *.
9250 Introduce a local "trial_seq" for PATTERN (trial) of type
9251 rtx_sequence *, in both cases using methods of rtx_sequence.
9252 (dbr_schedule): Strengthen param "first" and locals "insn",
9253 "next", "epilogue_insn" from rtx to rtx_insn *.
9254
9255 2014-08-28 Richard Biener <rguenther@suse.de>
9256
9257 PR tree-optimization/62283
9258 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9259 Do not peel loops for alignment where the vector loop likely
9260 doesn't run at least VF times.
9261
9262 2014-08-28 Bin Cheng <bin.cheng@arm.com>
9263
9264 * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
9265 important_candidates. Consider all important candidates if
9266 IVS doesn't give any result. Remove check on ivs->upto.
9267 (try_add_cand_for): Call iv_ca_add_use only once.
9268
9269 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9270 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9271 Anna Tikhonova <anna.tikhonova@intel.com>
9272 Ilya Tocar <ilya.tocar@intel.com>
9273 Andrey Turetskiy <andrey.turetskiy@intel.com>
9274 Ilya Verbin <ilya.verbin@intel.com>
9275 Kirill Yukhin <kirill.yukhin@intel.com>
9276 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9277
9278 (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
9279 (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
9280 masking.
9281 (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
9282 (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
9283 (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
9284 (define_insn "*mul<mode>3"): Add EVEX version.
9285
9286 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9287 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9288 Anna Tikhonova <anna.tikhonova@intel.com>
9289 Ilya Tocar <ilya.tocar@intel.com>
9290 Andrey Turetskiy <andrey.turetskiy@intel.com>
9291 Ilya Verbin <ilya.verbin@intel.com>
9292 Kirill Yukhin <kirill.yukhin@intel.com>
9293 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9294
9295 * config/i386/sse.md
9296 (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
9297 (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
9298 (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
9299 (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
9300 (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
9301 (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
9302 (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
9303 (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
9304 (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
9305 (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
9306 (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
9307 (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
9308 (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
9309 (define_insn "vec_interleave_highv16qi<mask_name>"): New.
9310 (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
9311 (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
9312
9313 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9314 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9315 Anna Tikhonova <anna.tikhonova@intel.com>
9316 Ilya Tocar <ilya.tocar@intel.com>
9317 Andrey Turetskiy <andrey.turetskiy@intel.com>
9318 Ilya Verbin <ilya.verbin@intel.com>
9319 Kirill Yukhin <kirill.yukhin@intel.com>
9320 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9321
9322 * config/i386/sse.md
9323 (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
9324 (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
9325 (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
9326
9327 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9328 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9329 Anna Tikhonova <anna.tikhonova@intel.com>
9330 Ilya Tocar <ilya.tocar@intel.com>
9331 Andrey Turetskiy <andrey.turetskiy@intel.com>
9332 Ilya Verbin <ilya.verbin@intel.com>
9333 Kirill Yukhin <kirill.yukhin@intel.com>
9334 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9335
9336 * config/i386/sse.md
9337 (define_mode_iterator VI128_256): New.
9338 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
9339
9340 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9341 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9342 Anna Tikhonova <anna.tikhonova@intel.com>
9343 Ilya Tocar <ilya.tocar@intel.com>
9344 Andrey Turetskiy <andrey.turetskiy@intel.com>
9345 Ilya Verbin <ilya.verbin@intel.com>
9346 Kirill Yukhin <kirill.yukhin@intel.com>
9347 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9348
9349 * config/i386/sse.md
9350 (define_mode_iterator VI8_256_512): New.
9351 (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
9352 Ditto.
9353 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
9354 (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
9355 Ditto.
9356 (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
9357
9358 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9359
9360 * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx. Remove the
9361 pointer to the cumulative reloc value and return the value for
9362 this reloc instead.
9363 (compute_reloc_for_rtx): Take a const_rtx. Call
9364 compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
9365 avoiding any recursion. Use FOR_EACH_SUBRTX rather than
9366 for_each_rtx for the CONST case.
9367
9368 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9369
9370 * varasm.c (mark_constant): Replace this for_each_rtx callback with...
9371 (mark_constants_in_pattern): ...this new function to iterate over
9372 all the subrtxes.
9373 (mark_constants): Update accordingly.
9374
9375 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9376
9377 * varasm.c: Include rtl-iter.h.
9378 (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
9379 Remove the pointer to the cumulative hashval_t and just return
9380 the hash for this rtx instead. Remove recursive CONST_VECTOR case.
9381 (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9382 Accumulate the hashval_ts here instead of const_rtx_hash_1.
9383
9384 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9385
9386 * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
9387 Give real type of data parameter. Remove return value.
9388 (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
9389 to iterate over subrtxes.
9390
9391 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9392
9393 * var-tracking.c (use_narrower_mode_test): Turn from being a
9394 for_each_rtx callback to being a function that examines each
9395 subrtx itself.
9396 (adjust_mems): Update accordingly.
9397
9398 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9399
9400 * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
9401 callback to being a function that examines each subrtx itself.
9402 Remove handling of null rtxes.
9403 (add_uses): Update accordingly.
9404
9405 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9406
9407 * var-tracking.c: Include rtl-iter.h.
9408 (rtx_debug_expr_p): Turn from being a for_each_rtx callback
9409 to being a function that examines each subrtx itself.
9410 (use_type): Update accordingly.
9411
9412 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9413
9414 * store-motion.c: Include rtl-iter.h.
9415 (extract_mentioned_regs_1): Delete.
9416 (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
9417 for_each_rtx to iterate over subrtxes.
9418
9419 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9420
9421 * sel-sched.c: Include rtl-iter.h
9422 (count_occurrences_1): Delete.
9423 (count_occurrences_equiv): Turn rtxes into const_rtxes.
9424 Use FOR_EACH_SUBRTX rather than for_each_rtx.
9425
9426 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9427
9428 * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
9429 * rtlanal.c (tls_referenced_p_1): Delete.
9430 (tls_referenced_p): Take a const_rtx rather than an rtx.
9431 Use FOR_EACH_SUBRTX rather than for_each_rtx.
9432
9433 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9434
9435 * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
9436 (for_each_inc_dec): Take an rtx rather than an rtx *.
9437 * cselib.c (cselib_record_autoinc_cb): Update accordingly.
9438 (cselib_record_sets): Likewise.
9439 * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
9440 (check_for_inc_dec): Likewise.
9441 * rtlanal.c (for_each_inc_dec_ops): Delete.
9442 (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
9443 rather than a pointer to the memory address. Replace
9444 for_each_inc_dec_ops argument with separate function and data
9445 arguments. Abort on non-autoinc addresses.
9446 (for_each_inc_dec_find_mem): Delete.
9447 (for_each_inc_dec): Take an rtx rather than an rtx *. Use
9448 FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
9449
9450 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9451
9452 * rtl.h (find_all_hard_regs): Declare.
9453 * rtlanal.c (find_all_hard_regs): New function.
9454 (record_hard_reg_uses_1): Delete.
9455 (record_hard_reg_uses): Use find_all_hard_regs.
9456
9457 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9458
9459 * rtl.h (replace_label_data): Delete.
9460 (replace_label): Take the old label, new label and update-nuses flag
9461 as direct arguments. Return void.
9462 * cfgcleanup.c (outgoing_edges_match): Update accordingly.
9463 * rtlanal.c (replace_label): Update interface as above. Handle
9464 JUMP_TABLE_DATA as a special case. Handle JUMPs outside the
9465 iterator. Use FOR_EACH_SUBRTX_PTR.
9466
9467 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9468
9469 * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
9470 with const_rtx parameters.
9471 * varasm.c (get_pool_constant): Likewise.
9472 * rtlanal.c (rtx_referenced_p_1): Delete.
9473 (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9474 Assert that the rtx we're looking for is nonnull. Allow searches
9475 for constant pool SYMBOL_REFs.
9476
9477 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9478
9479 * reload1.c: Include rtl-iter.h.
9480 (note_reg_elim_costly): Turn from being a for_each_rtx callback
9481 to being a function that examines each subrtx itself.
9482 (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
9483
9484 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9485
9486 * regcprop.c (cprop_find_used_regs_1): Delete.
9487 (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9488
9489 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9490
9491 * regcprop.c: Include rtl-iter.h.
9492 (kill_value): Take a const_rtx.
9493 (kill_autoinc_value): Turn from being a for_each_rtx callback
9494 to being a function that examines each subrtx itself.
9495 (copyprop_hardreg_forward_1): Update accordingly.
9496
9497 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9498
9499 * reg-stack.c: Include rtl-iter.h.
9500 (subst_stack_regs_in_debug_insn): Delete.
9501 (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
9502 instead of for_each_rtx.
9503
9504 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9505
9506 * lower-subreg.c (find_decomposable_subregs): Turn from being
9507 a for_each_rtx callback to being a function that examines each
9508 subrtx itself. Remove handling of null rtxes.
9509 (decompose_multiword_subregs): Update accordingly.
9510
9511 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9512
9513 * lower-subreg.c (adjust_decomposed_uses): Delete.
9514 (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
9515 Remove handling of null rtxes.
9516
9517 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9518
9519 * lower-subreg.c: Include rtl-iter.h.
9520 (resolve_subreg_use): Turn from being a for_each_rtx callback
9521 to being a function that examines each subrtx itself. Remove
9522 handling of null rtxes.
9523 (resolve_reg_notes, resolve_simple_move): Update accordingly.
9524 (decompose_multiword_subregs): Likewise.
9525
9526 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9527
9528 * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
9529 to being a function that examines each subrtx itself.
9530 (simplify_using_condition, simplify_using_initial_values): Update
9531 accordingly.
9532
9533 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9534
9535 * loop-iv.c: Include rtl-iter.h.
9536 (find_single_def_src): New function.
9537 (replace_single_def_regs): Turn from being a for_each_rtx callback
9538 to being a function that examines each subrtx itself.
9539 (replace_in_expr, simplify_using_initial_values): Update accordingly.
9540
9541 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9542
9543 * jump.c (eh_returnjump_p_1): Delete.
9544 (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9545 Remove handling of null rtxes.
9546
9547 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9548
9549 * jump.c: Include rtl-iter.h.
9550 (returnjump_p_1): Delete.
9551 (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9552 Remove handling of null rtxes.
9553
9554 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9555
9556 * ira.c: Include rtl-iter.h.
9557 (set_paradoxical_subreg): Turn from being a for_each_rtx callback
9558 to being a function that examines each subrtx itself. Remove
9559 handling of null rtxes.
9560 (update_equiv_regs): Update call accordingly.
9561
9562 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9563
9564 * fwprop.c: Include rtl-iter.h.
9565 (varying_mem_p): Turn from being a for_each_rtx callback to being
9566 a function that examines each subrtx itself.
9567 (propagate_rtx): Update accordingly.
9568
9569 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9570
9571 * function.c: Include rtl-iter.h
9572 (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
9573 callback to being a function that examines each subrtx itself.
9574 Return the changed flag.
9575 (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
9576 (instantiate_virtual_regs): Update calls accordingly.
9577
9578 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9579
9580 * final.c: Include rtl-iter.h.
9581 (mark_symbol_ref_as_used): Delete.
9582 (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
9583 for_each_rtx.
9584
9585 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9586
9587 * emit-rtl.c: Include rtl-iter.h.
9588 (find_auto_inc): Turn from being a for_each_rtx callback to being
9589 a function that examines each subrtx itself. Assume the first operand
9590 to an RTX_AUTOINC is the automodified register.
9591 (try_split): Update call accordingly.
9592
9593 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9594
9595 * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
9596 Return a bool, inverting the result so that 0/false means "not ok".
9597 Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
9598 subrtxes of a CONST.
9599 (mem_loc_descriptor, add_const_value_attribute)
9600 (resolve_addr_in_expr): Update calls accordingly.
9601
9602 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9603
9604 * dwarf2out.c: Include rtl-iter.h.
9605 (const_ok_for_output_1): Take the rtx instead of a pointer to it.
9606 Remove unused data parameter. Return a bool, inverting the result
9607 so that 0/false means "not ok".
9608 (const_ok_for_output): Update accordingly. Use FOR_EACH_SUBRTX_VAR
9609 instead of for_each_rtx.
9610
9611 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9612
9613 * dse.c: Include rtl-iter.h.
9614 (check_mem_read_rtx): Change void * parameter to real type.
9615 Remove return value.
9616 (check_mem_read_use): Fix comment. Use FOR_EACH_SUBRTX_PTR instead of
9617 for_each_rtx. Don't handle null rtxes.
9618
9619 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9620
9621 * df-problems.c: Include rtl-iter.h.
9622 (find_memory): Turn from being a for_each_rtx callback to being
9623 a function that examines each subrtx itself. Continue to look for
9624 volatile references even after a nonvolatile one has been found.
9625 (can_move_insns_across): Update calls accordingly.
9626
9627 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9628
9629 * ddg.c (walk_mems_2, walk_mems_1): Delete.
9630 (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
9631 to iterate over subrtxes. Return a bool rather than an int.
9632
9633 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9634
9635 * ddg.c: Include rtl-iter.h.
9636 (mark_mem_use_1): Rename to...
9637 (mark_mem_use): ...deleting old mark_mem_use. Use FOR_EACH_SUBRTX
9638 instead of for_each_rtx.
9639 (mem_read_insn_p): Update accordingly.
9640
9641 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9642
9643 * cse.c (change_cc_mode_args): Delete.
9644 (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
9645 a function that examines each subrtx itself. Take the fields of
9646 change_cc_mode_args as argument and return void.
9647 (cse_change_cc_mode_insn): Update calls accordingly.
9648
9649 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9650
9651 * cse.c (is_dead_reg): Change argument to const_rtx.
9652 (dead_debug_insn_data): Delete.
9653 (is_dead_debug_insn): Expand commentary. Turn from being a
9654 for_each_rtx callback to being a function that examines
9655 each subrtx itself. Take the fields of dead_debug_insn_data
9656 as argument.
9657 (delete_trivially_dead_insns): Update call accordingly.
9658
9659 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9660
9661 * cse.c (check_for_label_ref): Move earlier in file. Turn from
9662 being a for_each_rtx callback to being a function that examines
9663 each subrtx itself.
9664 (cse_extended_basic_block): Update call accordingly.
9665
9666 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9667
9668 * cse.c (check_dependence_data): Delete.
9669 (check_dependence): Change from being a for_each_rtx callback to being
9670 a function that examines all subrtxes itself. Don't handle null rtxes.
9671 (invalidate): Update call accordingly.
9672
9673 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9674
9675 * cse.c: Include rtl-iter.h.
9676 (approx_reg_cost_1): Delete.
9677 (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9678 Don't handle null rtxes.
9679
9680 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9681
9682 * cfgcleanup.c: Include rtl-iter.h.
9683 (mentions_nonequal_regs): Turn from being a for_each_rtx callback
9684 to being a function that examines each subrtx itself.
9685 (thread_jump): Update accordingly.
9686
9687 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9688
9689 * combine-stack-adj.c: Include rtl-iter.h.
9690 (record_stack_refs_data): Delete.
9691 (record_stack_refs): Turn from being a for_each_rtx callback
9692 to being a function that examines each subrtx itself.
9693 Take a pointer to the reflist. Invert sense of return value
9694 so that true means success and false means failure. Don't
9695 handle null rtxes.
9696 (combine_stack_adjustments_for_block): Update accordingly.
9697
9698 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9699
9700 * combine.c (record_truncated_value): Turn from being a for_each_rtx
9701 callback to a function that takes an rtx and returns a bool
9702 (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
9703 for_each_rtx.
9704
9705 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9706
9707 * combine.c: Include rtl-iter.h.
9708 (unmentioned_reg_p_1): Delete.
9709 (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9710 Don't handle null rtxes.
9711
9712 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9713
9714 * calls.c: Include rtl-iter.h.
9715 (internal_arg_pointer_based_exp_1): Delete.
9716 (internal_arg_pointer_based_exp): Take a const_rtx.
9717 Use FOR_EACH_SUBRTX to iterate over subrtxes.
9718
9719 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9720
9721 * caller-save.c: Include rtl-iter.h.
9722 (add_used_regs_1): Delete.
9723 (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
9724 to iterate over subrtxes. Assert that any remaining pseudos
9725 have been spilled.
9726
9727 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9728
9729 * bt-load.c: Include rtl-iter.h.
9730 (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
9731 (find_btr_use): Move further up file. Use FOR_EACH_SUBRTX_PTR
9732 to iterate over subrtxes.
9733 (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
9734 find_btr_use rather than btr_referenced_p.
9735
9736 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9737
9738 * alias.c: Include rtl-iter.h.
9739 (refs_newer_value_cb): Delete.
9740 (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9741
9742 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9743
9744 * rtl-iter.h: New file.
9745 * rtlanal.c: Include it.
9746 (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
9747 (generic_subrtx_iterator <T>::add_single_to_queue)
9748 (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
9749 (generic_subrtx_iterator <T>::free_array): New functions.
9750 (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
9751 (generic_subrtx_iterator <const_rtx_accessor>)
9752 (generic_subrtx_iterator <rtx_var_accessor>
9753 (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
9754 (setup_reg_subrtx_bounds): New function.
9755 (init_rtlanal): Call it.
9756
9757 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
9758
9759 PR target/62261
9760 * config/sh/sh.md (ashlsi3): Handle negative shift count for
9761 TARGET_SHMEDIA.
9762 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
9763
9764 2014-08-27 Richard Sandiford <rdsandiford@googlemail.com>
9765
9766 * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
9767
9768 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9769
9770 * rtl.h (JUMP_LABEL_AS_INSN): New.
9771
9772 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9773
9774 * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
9775 rtx_expr_list **.
9776 (alloc_EXPR_LIST): Strengthen return type from rtx to
9777 rtx_expr_list *.
9778 (remove_free_EXPR_LIST_node): Likewise for param.
9779 * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
9780 from rtx to rtx_expr_list *.
9781 * sched-int.h (struct deps_desc): Strengthen fields
9782 "pending_read_mems" and "pending_write_mems" from rtx to
9783 rtx_expr_list *.
9784
9785 * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
9786 rtx to rtx_expr_list *.
9787 * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
9788 (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
9789 rtx_expr_list **.
9790 (remove_free_EXPR_LIST_node): Likewise. Strengthen local "node"
9791 from rtx to rtx_expr_list *.
9792 * loop-iv.c (simplify_using_initial_values): Strengthen local
9793 "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
9794 "pnote_next" from rtx * to rtx_expr_list **.
9795 * sched-deps.c (remove_from_both_dependence_lists): Strengthen
9796 param "exprp" from rtx * to rtx_expr_list **.
9797 (add_insn_mem_dependence): Strengthen local "mem_list" from
9798 rtx * to rtx_expr_list **. Strengthen local "mem_node" from rtx
9799 to rtx_expr_list *.
9800 * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
9801 and local "new_mems" from rtx to rtx_expr_list *. Strengthen
9802 param "old_mems_p" from rtx * to rtx_expr_list **.
9803 * var-tracking.c (struct adjust_mem_data): Strengthen field
9804 "side_effects" from rtx to rtx_expr_list *.
9805 (adjust_insn): Replace NULL_RTX with NULL when assigning to
9806 rtx_expr_list *.
9807 (prepare_call_arguments): Likewise.
9808
9809 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9810
9811 * function.h (struct rtl_data): Strengthen field
9812 "x_stack_slot_list" from rtx to rtx_expr_list *.
9813
9814 * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
9815 when assigning to stack_slot_list.
9816
9817 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9818
9819 * function.h (struct rtl_data): Strengthen field
9820 x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
9821 * rtl.h (remove_node_from_expr_list): Strengthen second param from
9822 rtx * to rtx_expr_list **.
9823
9824 * cfgbuild.c (make_edges): In loop over
9825 nonlocal_goto_handler_labels, strengthen local "x" from rtx to
9826 rtx_expr_list *, and use methods of the latter class to clarify
9827 the code.
9828 * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
9829 rtx_expr_list *, and use methods of the latter class to clarify
9830 the code.
9831 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9832 * reload1.c (set_initial_label_offsets): Likewise for local "x".
9833 * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
9834 from rtx * to rtx_expr_list **. Strengthen local "temp" from rtx
9835 to rtx_expr_list *. Use methods of the latter class to clarify
9836 the code.
9837
9838 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9839
9840 * function.h (struct expr_status): Strengthen field
9841 "x_forced_labels" from rtx to rtx_expr_list *.
9842
9843 * cfgbuild.c (make_edges): Split local "x" into two locals,
9844 strengthening one from rtx to rtx_expr_list *, and using methods
9845 of said class.
9846 * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
9847 loop over forced_labels, introduce strengthen it from rtx to
9848 rtx_expr_list *, using methods to clarify the code.
9849 * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
9850 to rtx_expr_list *, using methods of said class to clarify the
9851 code.
9852 * reload1.c (set_initial_label_offsets): Split local "x" into two
9853 per-loop variables, strengthening the first from rtx to
9854 rtx_expr_list * and using methods.
9855
9856 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9857
9858 * coretypes.h (class rtx_expr_list): Add forward declaration.
9859 * emit-rtl.c (gen_rtx_EXPR_LIST): New.
9860 * gengenrtl.c (special_rtx): Add EXPR_LIST.
9861 * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
9862 invariant: GET_CODE (X) == EXPR_LIST.
9863 (is_a_helper <rtx_expr_list *>::test): New.
9864 (rtx_expr_list::next): New.
9865 (rtx_expr_list::element): New.
9866 (gen_rtx_EXPR_LIST): New.
9867
9868 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9869
9870 * varasm.c (mark_constants): Convert a GET_CODE check into a
9871 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9872 Use methods of rtx_sequence to clarify the code.
9873
9874 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9875
9876 * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
9877 local "seq" via a checked cast, and use methods of rtx_sequence
9878 to simplify the code.
9879
9880 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9881
9882 * resource.c (mark_referenced_resources): Strengthen local
9883 "sequence" from rtx to rtx_sequence *, adding a checked cast, and
9884 using methods of rtx_sequence to clarify the code.
9885 (find_dead_or_set_registers): Within the switch statement, convert
9886 a GET_CODE check to a dyn_cast, introducing local "seq". Within
9887 the JUMP_P handling, introduce another local "seq", adding a
9888 checked cast to rtx_sequence *. In both cases, use methods of
9889 rtx_sequence to clarify the code.
9890 (mark_set_resources): Within SEQUENCE case, introduce local "seq"
9891 via a checked cast, and use methods of rtx_sequence to simplify
9892 the code.
9893
9894 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9895
9896 * reorg.c (redundant_insn): In two places in the function, replace
9897 a check of GET_CODE with a dyn_cast, introducing local "seq", and
9898 usings methods of rtx_sequence to clarify the code.
9899
9900 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9901
9902 * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
9903 local "seq" with a checked cast, and use methods of rtx_sequence
9904 to clarify the code.
9905
9906 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9907
9908 * function.c (contains): Introduce local "seq" for PATTERN (insn),
9909 with a checked cast, in the region for where we know it's a
9910 SEQUENCE. Use methods of rtx_sequence.
9911
9912 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9913
9914 * final.c (get_attr_length_1): Replace GET_CODE check with a
9915 dyn_cast, introducing local "seq" and the use of methods of
9916 rtx_sequence.
9917 (shorten_branches): Likewise, introducing local "body_seq".
9918 Strengthen local "inner_insn" from rtx to rtx_insn *.
9919 (reemit_insn_block_notes): Replace GET_CODE check with a
9920 dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
9921 Use methods of rtx_sequence.
9922 (final_scan_insn): Likewise, introducing local "seq" for when
9923 "body" is known to be a SEQUENCE, using its methods.
9924
9925 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9926
9927 * except.c (can_throw_external): Strengthen local "seq" from rtx
9928 to rtx_sequence *. Use methods of rtx_sequence.
9929 (insn_nothrow_p): Likewise.
9930
9931 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9932
9933 * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
9934 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9935 Use methods of rtx_sequence.
9936 (scan_trace): Likewise for local "pat".
9937
9938 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9939
9940 * coretypes.h (class rtx_sequence): Add forward declaration.
9941 * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
9942 invariant: GET_CODE (X) == SEQUENCE.
9943 (is_a_helper <rtx_sequence *>::test): New.
9944 (is_a_helper <const rtx_sequence *>::test): New.
9945 (rtx_sequence::len): New.
9946 (rtx_sequence::element): New.
9947 (rtx_sequence::insn): New.
9948
9949 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9950
9951 * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
9952 rtx_insn_list **.
9953 (alloc_INSN_LIST): Strengthen return type from rtx to
9954 rtx_insn_list *.
9955 (copy_INSN_LIST): Likewise for return type and param.
9956 (concat_INSN_LIST): Likewise for both params and return type.
9957 (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
9958 rtx_insn *. Strengthen second param from rtx * to rtx_insn_list **.
9959 (remove_free_INSN_LIST_node): Strenghten return type from rtx to
9960 rtx_insn *. Strengthen param from rtx * to rtx_insn_list **.
9961
9962 * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
9963 "implicit_sets", "control_uses", "clobbers" from rtx to
9964 rtx_insn_list *.
9965 (struct deps_desc): Likewise for fields "pending_read_insns",
9966 "pending_write_insns", "pending_jump_insns",
9967 "last_pending_memory_flush", "last_function_call",
9968 "last_function_call_may_noreturn", "sched_before_next_call",
9969 "sched_before_next_jump".
9970 (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
9971 (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
9972
9973 * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
9974 from rtx to rtx_insn_list *.
9975 (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
9976 rtx_insn_list *.
9977
9978 * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
9979 to rtx_insn_list **.
9980 (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
9981 rtx_insn_list *.
9982 (queue_insn): Likewise for local "link".
9983 (struct haifa_saved_data): Strengthen field "insn_queue" from
9984 rtx * to rtx_insn_list **.
9985 (save_backtrack_point): Update allocation of save->insn_queue to
9986 reflect the strengthening of elements from rtx to rtx_insn_list *.
9987 (queue_to_ready): Strengthen local "link" from rtx to
9988 rtx_insn_list *; use methods "next" and "insn" when traversing the
9989 list.
9990 (early_queue_to_ready): Likewise for locals "link", "next_link",
9991 "prev_link".
9992 (schedule_block): Update allocation of insn_queue to reflect the
9993 strengthening of elements from rtx to rtx_insn_list *. Strengthen
9994 local "link" from rtx to rtx_insn_list *, and use methods when
9995 working it.
9996 (add_to_speculative_block): Strengthen locals "twins" and
9997 "next_node" from rtx to rtx_insn_list *, and use methods when
9998 working with them. Strengthen local "twin" from rtx to
9999 rtx_insn *, eliminating a checked cast.
10000 (fix_recovery_deps): Strengthen locals "ready_list" and "link"
10001 from rtx to rtx_insn_list *, and use methods when working with
10002 them.
10003
10004 * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
10005 from rtx to rtx_insn_list *, adding a checked cast.
10006 (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
10007 rtx_insn_list **.
10008 (copy_INSN_LIST): Strengthen return type and locals "new_queue",
10009 "newlink" from rtx to rtx_insn_list *. Strengthen local
10010 "pqueue" from rtx * to rtx_insn_list **. Strengthen local "x"
10011 from rtx to rtx_insn *.
10012 (concat_INSN_LIST): Strengthen return type and local "new_rtx",
10013 from rtx to rtx_insn_list *. Use methods of the latter class.
10014 (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
10015 rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
10016 (remove_free_INSN_LIST_node): Strengthen return type and local
10017 "elem" from rtx to rtx_insn *. Strenghten param "listp" from
10018 rtx * to rtx_insn_list **. Strengthen local "node" from rtx to
10019 rtx_insn_list *, using "insn" method.
10020
10021 * sched-deps.c (add_dependence_list): Strengthen param "list"
10022 from rtx to rtx_insn_list *, and use methods when working with it.
10023 (add_dependence_list_and_free): Strengthen param "listp" from
10024 rtx * to rtx_insn_list **.
10025 (remove_from_dependence_list): Strenghten param "listp" from rtx *
10026 to rtx_insn_list **, and use methods when working with *listp.
10027 (remove_from_both_dependence_lists): Strengthen param "listp" from
10028 rtx * to rtx_insn_list **
10029 (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
10030 to rtx_insn_list **. Eliminate local "link", in favor of two new
10031 locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
10032 respectively.
10033 (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
10034 by introducing local "cond_deps".
10035 (remove_from_deps): Strengthen param "insn" from rtx to
10036 rtx_insn *.
10037
10038 * sched-rgn.c (concat_insn_mem_list): Strengthen param
10039 "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
10040 Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
10041 Use methods of rtx_insn_list.
10042
10043 * store-motion.c (struct st_expr): Strengthen fields
10044 "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
10045 (st_expr_entry): Replace NULL_RTX with NULL when dealing with
10046 rtx_insn_list *.
10047 (find_moveable_store): Split out "tmp" into multiple more-tightly
10048 scoped locals. Use methods of rtx_insn_list *.
10049 (compute_store_table): Strengthen local "tmp" from rtx to
10050 rtx_insn *. Use methods of rtx_insn_list *.
10051
10052 2014-08-27 David Malcolm <dmalcolm@redhat.com>
10053
10054 * coretypes.h (class rtx_insn_list): Add forward declaration.
10055 * rtl.h (class rtx_insn_list): New subclass of rtx_def
10056 (is_a_helper <rtx_insn_list *>::test): New.
10057 (rtx_insn_list::next): New.
10058 (rtx_insn_list::insn): New.
10059 (gen_rtx_INSN_LIST): Add prototype.
10060 * emit-rtl.c (gen_rtx_INSN_LIST): New.
10061 * gengenrtl.c (special_rtx): Add INSN_LIST.
10062
10063 2014-08-27 David Malcolm <dmalcolm@redhat.com>
10064
10065 * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
10066 "prev" from rtx to rtx_insn *.
10067
10068 2014-08-27 David Malcolm <dmalcolm@redhat.com>
10069
10070 * rtl.h (INSN_UID): Convert from a macro to a pair of inline
10071 functions. Require merely an rtx for now, not an rtx_insn *.
10072 (BLOCK_FOR_INSN): Likewise.
10073 (INSN_LOCATION): Likewise.
10074 (INSN_HAS_LOCATION): Convert from a macro to an inline function.
10075
10076 2014-08-27 David Malcolm <dmalcolm@redhat.com>
10077
10078 * rtl.h (PATTERN): Convert this macro into a pair of inline
10079 functions, for now, requiring const_rtx and rtx.
10080
10081 2014-08-27 David Malcolm <dmalcolm@redhat.com>
10082
10083 * target.def (unwind_emit): Strengthen param "insn" from rtx to
10084 rtx_insn *.
10085 (final_postscan_insn): Likewise.
10086 (adjust_cost): Likewise.
10087 (adjust_priority): Likewise.
10088 (variable_issue): Likewise.
10089 (macro_fusion_pair_p): Likewise.
10090 (dfa_post_cycle_insn): Likewise.
10091 (first_cycle_multipass_dfa_lookahead_guard): Likewise.
10092 (first_cycle_multipass_issue): Likewise.
10093 (dfa_new_cycle): Likewise.
10094 (adjust_cost_2): Likewise for params "insn" and "dep_insn".
10095 (speculate_insn): Likewise for param "insn".
10096 (gen_spec_check): Likewise for params "insn" and "label".
10097 (get_insn_spec_ds): Likewise for param "insn".
10098 (get_insn_checked_ds): Likewise.
10099 (dispatch_do): Likewise.
10100 (dispatch): Likewise.
10101 (cannot_copy_insn_p): Likewise.
10102 (invalid_within_doloop): Likewise.
10103 (legitimate_combined_insn): Likewise.
10104 (needed): Likewise.
10105 (after): Likewise.
10106
10107 * doc/tm.texi: Automatically updated to reflect changes to
10108 target.def.
10109
10110 * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
10111 working with insn.
10112 (schedule_block): Likewise.
10113 (sched_init): Likewise.
10114 (sched_speculate_insn): Strengthen param "insn" from rtx to
10115 rtx_insn *.
10116 (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
10117 working with insn.
10118 * hooks.c (hook_bool_rtx_true): Rename to...
10119 hook_bool_rtx_insn_true): ...this, and strengthen first param from
10120 rtx to rtx_insn *.
10121 (hook_constcharptr_const_rtx_null): Rename to...
10122 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
10123 first param from const_rtx to const rtx_insn *.
10124 (hook_bool_rtx_int_false): Rename to...
10125 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
10126 param from rtx to rtx_insn *.
10127 (hook_void_rtx_int): Rename to...
10128 (hook_void_rtx_insn_int): ...this, and strengthen first param from
10129 rtx to rtx_insn *.
10130
10131 * hooks.h (hook_bool_rtx_true): Rename to...
10132 (hook_bool_rtx_insn_true): ...this, and strengthen first param from
10133 rtx to rtx_insn *.
10134 (hook_bool_rtx_int_false): Rename to...
10135 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
10136 param from rtx to rtx_insn *.
10137 (hook_void_rtx_int): Rename to...
10138 (hook_void_rtx_insn_int): ...this, and strengthen first param from
10139 rtx to rtx_insn *.
10140 (hook_constcharptr_const_rtx_null): Rename to...
10141 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
10142 first param from const_rtx to const rtx_insn *.
10143
10144 * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
10145 and local "prev" from rtx to rtx_insn *.
10146
10147 * sched-int.h (sched_speculate_insn): Strengthen first param from
10148 rtx to rtx_insn *.
10149
10150 * sel-sched.c (create_speculation_check): Likewise for local "label".
10151 * targhooks.c (default_invalid_within_doloop): Strengthen param
10152 "insn" from const_rtx to const rtx_insn *.
10153 * targhooks.h (default_invalid_within_doloop): Strengthen param
10154 from const_rtx to const rtx_insn *.
10155
10156 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
10157 (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
10158
10159 * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
10160 "insn".
10161 (arc_invalid_within_doloop): Likewise, with const.
10162
10163 * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
10164 (arm_cannot_copy_insn_p): Likewise for param "insn".
10165 (arm_unwind_emit): Likewise.
10166
10167 * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
10168 "dep_insn".
10169
10170 * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
10171 (c6x_variable_issue): Likewise. Removed now-redundant checked
10172 cast.
10173 (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
10174
10175 * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
10176 Likewise for param "insn".
10177 (epiphany_mode_after): Likewise.
10178 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
10179 params "insn", "dep_insn".
10180 (epiphany_mode_needed): Likewise for param "insn".
10181 (epiphany_mode_after): Likewise.
10182
10183 * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
10184 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
10185 (ix86_avx_u128_mode_needed): Likewise.
10186 (ix86_i387_mode_needed): Likewise.
10187 (ix86_mode_needed): Likewise.
10188 (ix86_avx_u128_mode_after): Likewise.
10189 (ix86_mode_after): Likewise.
10190 (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
10191 (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
10192 (ix86_adjust_priority): Likewise for param "insn".
10193 (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
10194 (do_dispatch): Likewise.
10195 (has_dispatch): Likewise.
10196 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
10197
10198 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
10199 reflect renaming of default hook implementation from
10200 hook_constcharptr_const_rtx_null to
10201 hook_constcharptr_const_rtx_insn_null.
10202 (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
10203 rtx to rtx_insn *.
10204 (ia64_variable_issue): Likewise for param "insn".
10205 (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
10206 (ia64_dfa_new_cycle): Likewise.
10207 (ia64_get_insn_spec_ds): Likewise.
10208 (ia64_get_insn_checked_ds): Likewise.
10209 (ia64_speculate_insn): Likewise.
10210 (ia64_gen_spec_check): Likewise for params "insn", "label".
10211 (ia64_asm_unwind_emit): Likewise for param "insn".
10212
10213 * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
10214
10215 * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
10216 "insn", "def_insn".
10217 (m68k_sched_variable_issue): Likewise for param "insn".
10218
10219 * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
10220 "def_insn".
10221
10222 * config/microblaze/microblaze.c (microblaze_adjust_cost):
10223 Likewise for params "insn", "dep".
10224
10225 * config/mips/mips.c (mips_adjust_cost): Likewise.
10226 (mips_variable_issue): Likewise for param "insn".
10227 (mips_final_postscan_insn): Likewise.
10228
10229 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
10230 for params "insn", "dep".
10231
10232 * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
10233 "dep_insn".
10234 (pa_adjust_priority): Likewise for param "insn".
10235
10236 * config/picochip/picochip.c (picochip_sched_adjust_cost):
10237 Likewise for params "insn", "dep_insn".
10238
10239 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
10240 param "insn".
10241 (rs6000_variable_issue): Likewise.
10242 (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
10243 (rs6000_debug_adjust_cost): Likewise.
10244 (rs6000_adjust_priority): Likewise for param "insn".
10245 (rs6000_use_sched_lookahead_guard): Likewise.
10246 (get_next_active_insn): Likewise for return type and both params.
10247 (redefine_groups): Likewise for params "prev_head_insn", "tail"
10248 and locals "insn", "next_insn".
10249 (pad_groups): Likewise.
10250
10251 * config/s390/s390.c (s390_adjust_priority): Likewise for param
10252 "insn".
10253 (s390_cannot_copy_insn_p): Likewise.
10254 (s390_sched_variable_issue): Likewise for third param, eliminating
10255 checked cast.
10256 (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
10257 default hook implementation from hook_constcharptr_const_rtx_null
10258 to hook_constcharptr_const_rtx_insn_null.
10259
10260 * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
10261 from rtx to rtx_insn *.
10262 (sh_adjust_cost): Likewise for params "insn", "dep_insn".
10263 (sh_variable_issue): Likewise for param "insn".
10264 (sh_dfa_new_cycle): Likewise.
10265 (sh_mode_needed): Likewise.
10266 (sh_mode_after): Likewise.
10267
10268 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
10269 params "insn", "dep_insn".
10270 (hypersparc_adjust_cost): Likewise.
10271 (sparc_adjust_cost): Likewise.
10272
10273 * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
10274 param, eliminated checked cast.
10275 (spu_sched_adjust_cost): Likewise for first and third params.
10276
10277 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
10278 params "insn" and "dep_insn" from rtx to rtx_insn *.
10279
10280 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
10281
10282 2014-08-27 David Malcolm <dmalcolm@redhat.com>
10283
10284 * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
10285 (set_is_load_p): ...this, updating to work on a SET pattern rather
10286 than an insn.
10287 (is_store_insn): Rename to...
10288 (set_is_store_p): ...this, updating to work on a SET pattern
10289 rather than an insn.
10290 (mn10300_adjust_sched_cost): Move call to get_attr_timings from
10291 top of function to where it is needed. Rewrite the bogus
10292 condition that checks for "insn" and "dep" being PARALLEL to
10293 instead use single_set, introducing locals "insn_set" and
10294 "dep_set". Given that we only ever returned "cost" for a non-pair
10295 of SETs, bail out early if we don't have a pair of SET.
10296 Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
10297 use the new locals "insn_set" and "dep_set", and update calls to
10298 is_load_insn and is_store_insn to be calls to set_is_load_p and
10299 set_is_store_p.
10300
10301 2014-08-27 Guozhi Wei <carrot@google.com>
10302
10303 PR target/62262
10304 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
10305 amount before using it.
10306
10307 2014-08-27 Richard Biener <rguenther@suse.de>
10308
10309 * gimple-fold.c (get_maxval_strlen): Add overload wrapping
10310 get_maxval_strlen inside a more useful API.
10311 (gimple_fold_builtin_with_strlen): Remove and fold into ...
10312 (gimple_fold_builtin): ... caller.
10313 (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
10314 gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
10315 gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
10316 gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
10317 gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
10318 gimple_fold_builtin_sprintf): Adjust to compute maxval
10319 themselves.
10320
10321 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
10322
10323 PR other/62248
10324 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
10325
10326 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
10327 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10328 Anna Tikhonova <anna.tikhonova@intel.com>
10329 Ilya Tocar <ilya.tocar@intel.com>
10330 Andrey Turetskiy <andrey.turetskiy@intel.com>
10331 Ilya Verbin <ilya.verbin@intel.com>
10332 Kirill Yukhin <kirill.yukhin@intel.com>
10333 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10334
10335 * config/i386/sse.md
10336 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
10337 Use `concat_tg_mode' attribute to determine asm register size.
10338
10339 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
10340 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10341 Anna Tikhonova <anna.tikhonova@intel.com>
10342 Ilya Tocar <ilya.tocar@intel.com>
10343 Andrey Turetskiy <andrey.turetskiy@intel.com>
10344 Ilya Verbin <ilya.verbin@intel.com>
10345 Kirill Yukhin <kirill.yukhin@intel.com>
10346 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10347
10348 * config/i386/sse.md
10349 (define_mode_iterator VI48_AVX512VL): New.
10350 (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
10351 (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
10352 (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
10353 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10354 with VI1): Change mode iterator.
10355 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10356 with VI_ULOADSTORE_BW_AVX512VL): New.
10357 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10358 with VI_ULOADSTORE_F_AVX512VL): Ditto.
10359 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10360 with VI1): Change mode iterator.
10361 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10362 with VI_ULOADSTORE_BW_AVX512VL): New.
10363 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10364 with VI_ULOADSTORE_F_AVX512VL): Ditto.
10365 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10366 with VI1): Change mode iterator.
10367 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10368 with VI_ULOADSTORE_BW_AVX512VL): New.
10369 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10370 with VI_ULOADSTORE_BW_AVX512VL): Ditto.
10371 (define_insn "avx512f_storedqu<mode>_mask"): Delete.
10372 (define_insn "<avx512>_storedqu<mode>_mask" with
10373 VI48_AVX512VL): New.
10374 (define_insn "<avx512>_storedqu<mode>_mask" with
10375 VI12_AVX512VL): Ditto.
10376
10377 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
10378 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10379 Anna Tikhonova <anna.tikhonova@intel.com>
10380 Ilya Tocar <ilya.tocar@intel.com>
10381 Andrey Turetskiy <andrey.turetskiy@intel.com>
10382 Ilya Verbin <ilya.verbin@intel.com>
10383 Kirill Yukhin <kirill.yukhin@intel.com>
10384 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10385
10386 * config/i386/sse.md
10387 (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
10388 (define_mode_iterator VI48_AVX512BW): New.
10389 (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
10390 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
10391 with VI48_AVX2_48_AVX512F): New.
10392 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
10393 with VI2_AVX512VL): Ditto.
10394
10395 2014-08-27 Richard Biener <rguenther@suse.de>
10396
10397 PR middle-end/62239
10398 * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
10399 (fold_builtin_3): Do not fold strcat_chk here.
10400 * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
10401 from builtins.c.
10402 (gimple_fold_builtin): Fold strcat_chk here.
10403
10404 2014-08-26 Aldy Hernandez <aldyh@redhat.com>
10405
10406 * dwarf2out.h (dwarf2out_decl): Remove prototype.
10407 * dwarf2out.c (dwarf2out_decl): Make static.
10408
10409 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
10410
10411 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
10412
10413 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10414
10415 * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
10416 from rtx to rtx_insn *.
10417 (cselib_lookup_from_insn): Likewise for final param.
10418 (cselib_subst_to_values_from_insn): Likewise.
10419 (cselib_add_permanent_equiv): Likewise.
10420
10421 * cselib.c (cselib_current_insn): Likewise for this variable.
10422 (cselib_subst_to_values_from_insn): Likewise for param "insn".
10423 (cselib_lookup_from_insn): Likewise.
10424 (cselib_add_permanent_equiv): Likewise for param "insn" and local
10425 "save_cselib_current_insn".
10426 (cselib_process_insn): Replace use of NULL_RTX with NULL.
10427
10428 * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
10429 from rtx to rtx_insn *.
10430
10431 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10432
10433 * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
10434 rtx_insn *.
10435
10436 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10437
10438 * df.h (df_dump_insn_problem_function): Strengthen first param of
10439 this callback from const_rtx to const rtx_insn *.
10440 (struct df_insn_info): Strengthen field "insn" from rtx to
10441 rtx_insn *.
10442 (DF_REF_INSN): Eliminate this function, reinstating the older
10443 macro definition.
10444 (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
10445 (df_reg_defined): Likewise.
10446 (df_find_use): Likewise.
10447 (df_reg_used): Likewise.
10448 (df_dump_insn_top): Strengthen param 1 from const_rtx to
10449 const rtx_insn *.
10450 (df_dump_insn_bottom): Likewise.
10451 (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
10452 (df_insn_debug_regno): Likewise.
10453 (debug_df_insn): Likewise.
10454 (df_rd_simulate_one_insn): Likewise for param 2.
10455 (df_word_lr_simulate_defs): Likewise for param 1.
10456 (df_word_lr_simulate_uses): Likewise.
10457 (df_md_simulate_one_insn): Likewise for param 2.
10458 (df_simulate_find_noclobber_defs): Likewise for param 1.
10459 (df_simulate_find_defs): Likewise.
10460 (df_simulate_defs): Likewise.
10461 (df_simulate_uses): Likewise.
10462 (df_simulate_one_insn_backwards): Likewise for param 2.
10463 (df_simulate_one_insn_forwards): Likewise.
10464 (df_uses_create): Likewise for param 2.
10465 (df_insn_create_insn_record): Likewise for param 1.
10466 (df_insn_delete): Likewise.
10467 (df_insn_rescan): Likewise.
10468 (df_insn_rescan_debug_internal): Likewise.
10469 (df_insn_change_bb): Likewise.
10470 (df_notes_rescan): Likewise.
10471 * rtl.h (remove_death): Likewise for param 2.
10472 (print_rtl_with_bb): Strengthen param 2 from const_rtx to
10473 const rtx_insn *.
10474 * sched-int.h (reemit_notes): Strengthen param from rtx to
10475 rtx_insn *.
10476 * valtrack.h (propagate_for_debug): Likewise for param 1.
10477
10478 * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
10479 local "tmp_rtx" from const_rtx to const rtx_insn *.
10480 * combine.c (remove_death): Strengthen param "insn" from rtx to
10481 rtx_insn *.
10482 (move_deaths): Likewise for local "where_dead".
10483 * cse.c (delete_trivially_dead_insns): Introduce local
10484 "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
10485 * df-core.c (df_find_def): Strengthen param "insn" from rtx to
10486 rtx_insn *.
10487 (df_reg_defined): Likewise.
10488 (df_find_use): Likewise.
10489 (df_reg_used): Likewise.
10490 (df_dump_insn_problem_data): Strengthen param "insn" from
10491 const_rtx to const rtx_insn *.
10492 (df_dump_insn_top): Likewise.
10493 (df_dump_insn_bottom): Likewise.
10494 (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
10495 (df_insn_debug_regno): Likewise.
10496 (debug_df_insn): Likewise.
10497 (DF_REF_INSN): Delete.
10498 * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
10499 from rtx to rtx_insn *.
10500 (df_chain_insn_top_dump): Strengthen param "insn" from
10501 const_rtx to const rtx_insn *.
10502 (df_chain_insn_bottom_dump): Likewise.
10503 (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
10504 rtx_insn *.
10505 (df_word_lr_simulate_uses): Likewise.
10506 (df_print_note): Likewise.
10507 (df_remove_dead_and_unused_notes): Likewise.
10508 (df_set_unused_notes_for_mw): Likewise.
10509 (df_set_dead_notes_for_mw): Likewise.
10510 (df_create_unused_note): Likewise.
10511 (df_simulate_find_defs): Likewise.
10512 (df_simulate_find_uses): Likewise.
10513 (df_simulate_find_noclobber_defs): Likewise.
10514 (df_simulate_defs): Likewise.
10515 (df_simulate_uses): Likewise.
10516 (df_simulate_one_insn_backwards): Likewise.
10517 (df_simulate_one_insn_forwards): Likewise.
10518 (df_md_simulate_one_insn): Likewise.
10519 * df-scan.c (df_uses_create): Likewise.
10520 (df_insn_create_insn_record): Likewise.
10521 (df_insn_delete): Likewise.
10522 (df_insn_rescan): Likewise.
10523 (df_insn_rescan_debug_internal): Likewise.
10524 (df_insn_change_bb): Likewise.
10525 (df_notes_rescan): Likewise.
10526 (df_refs_add_to_chains): Likewise.
10527 (df_insn_refs_verify): Likewise.
10528 * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
10529 when invoking df_insn_delete.
10530 (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
10531 (set_unique_reg_note): Add checked cast.
10532 * final.c (cleanup_subreg_operands): Likewise.
10533 * gcse.c (update_ld_motion_stores): Likewise, strengthening local
10534 "insn" from rtx to rtx_insn *.
10535 * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
10536 "last" from rtx to rtx_insn *.
10537 * ira-emit.c (change_regs_in_insn): New function.
10538 (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
10539 Invoke change_regs_in_insn rather than change_regs.
10540 * ira.c (update_equiv_regs): Strengthen locals "insn",
10541 "init_insn", "new_insn" from rtx to rtx_insn *. Invoke
10542 for_each_rtx_in_insn rather than for_each_rtx.
10543 * recog.c (confirm_change_group): Add checked casts.
10544 (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
10545 Add checked cast.
10546 (peep2_fill_buffer): Add checked cast.
10547 * rtlanal.c (remove_note): Likewise.
10548 * valtrack.c (propagate_for_debug): Strengthen param "insn" and
10549 locals "next" "end" from rtx to rtx_insn *.
10550
10551 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10552
10553 * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
10554 to rtx_insn *.
10555 (struct reg_use_data): Likewise for field "insn".
10556 (insn_cost): Likewise for param.
10557 (real_insn_for_shadow): Likewise for return type and param.
10558 (increase_insn_priority): Likewise for param 1.
10559 (debug_dependencies): Likewise for both params.
10560
10561 * haifa-sched.c (insn_delay): Likewise for param "insn".
10562 (real_insn_for_shadow): Likewise for return type and param "insn".
10563 (update_insn_after_change): Likewise for param "insn".
10564 (recompute_todo_spec): Likewise for param "next" and locals "pro",
10565 "other".
10566 (insn_cost): Likewise for param "insn".
10567 (increase_insn_priority): Likewise.
10568 (calculate_reg_deaths): Likewise.
10569 (setup_insn_reg_pressure_info): Likewise.
10570 (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
10571 (model_index): Strengthen param "insn" from rtx to rtx_insn *.
10572 (model_recompute): Likewise.
10573 (must_restore_pattern_p): Likewise for param "next".
10574 (model_excess_cost): Likewise for param "insn".
10575 (queue_remove): Likewise.
10576 (adjust_priority): Likewise for param "prev".
10577 (update_register_pressure): Likewise for param "insn".
10578 (setup_insn_max_reg_pressure): Likewise for local "insn".
10579 (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
10580 (model_add_to_schedule): Likewise.
10581 (model_reset_queue_indices): Likewise for local "insn".
10582 (unschedule_insns_until): Strengthen local "recompute_vec" from
10583 auto_vec<rtx> to auto_vec<rtx_insn *>. Strengthen locals "last",
10584 "con" from rtx to rtx_insn *.
10585 (restore_last_backtrack_point): Likewise for both locals "x". Add
10586 checked casts.
10587 (estimate_insn_tick): Likewise for param "insn".
10588 (commit_schedule): Likewise for params "prev_head", "tail" and
10589 local "x".
10590 (verify_shadows): Likewise for locals "i1", "i2".
10591 (dump_insn_stream): Likewise for params "head", "tail" and locals
10592 "next_tail", "insn".
10593 (schedule_block): Likewise for locals "insn", "x". Add a checked
10594 cast.
10595 (fix_inter_tick): Likewise for params "head", "tail".
10596 (create_check_block_twin): Likewise for local "jump".
10597 (haifa_change_pattern): Likewise for param "insn".
10598 (haifa_speculate_insn): Likewise.
10599 (dump_new_block_header): Likewise for params "head", "tail".
10600 (fix_jump_move): Likewise for param "jump".
10601 (move_block_after_check): Likewise.
10602 (sched_init_insn_luid): Likewise for param "insn".
10603 (sched_init_luids): Likewise for local "insn".
10604 (insn_luid): Likewise for param "insn".
10605 (init_h_i_d): Likewise.
10606 (haifa_init_h_i_d): Likewise for local "insn".
10607 (haifa_init_insn): Likewise for param "insn".
10608 * sched-deps.c (add_dependence): Likewise for local "real_pro",
10609 "other".
10610 (create_insn_reg_use): Likewise for param "insn".
10611 (setup_insn_reg_uses): Likewise. Add a checked cast.
10612 * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
10613 "tail" from rtx to rtx_insn *.
10614 * sched-rgn.c (void debug_dependencies): Likewise, also for locals
10615 "insn", "next_tail".
10616
10617 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10618
10619 * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
10620 from rtx to rtx_insn *.
10621 (model_add_to_schedule): Likewise for locals "start", "end",
10622 "iter".
10623
10624 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10625
10626 * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
10627 rtx_insn *.
10628 * cfgrtl.c (duplicate_insn_chain): Likewise for params "from",
10629 "to" and locals "insn", "next", "copy". Remove now-redundant
10630 checked cast.
10631
10632 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10633
10634 * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
10635 rtx_insn * and param 4 from rtx * to rtx_insn **.
10636 (get_condition): Strengthen param 1 from rtx to rtx_insn * and
10637 param 2 from rtx * to rtx_insn **.
10638
10639 * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
10640 rtx_insn * and final param from rtx * to rtx_insn **.
10641
10642 * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
10643 from rtx to rtx_insn *.
10644 (try_head_merge_bb): Likewise for both locals named "move_upto".
10645 * df-problems.c (can_move_insns_across): Likewise for params
10646 "from", "to", "across_from", "across_to" and locals "insn",
10647 "next", "max_to". Strengthen param "pmove_upto" from rtx * to
10648 rtx_insn **.
10649 * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
10650 from rtx to rtx_insn *.
10651 (noce_get_alt_condition): Strengthen param "earliest" from rtx *
10652 to rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
10653 (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
10654 rtx_insn *.
10655 (noce_try_abs): Likewise.
10656 (noce_get_condition): Likewise for param "jump". Strengthen param
10657 "earliest" from rtx * to rtx_insn **.
10658 (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
10659 rtx_insn *.
10660 (find_cond_trap): Likewise.
10661 (dead_or_predicable): Likewise for local "earliest".
10662 * loop-iv.c (check_simple_exit): Likewise for local "at". Add
10663 checked cast.
10664 * rtlanal.c (canonicalize_condition): Likewise for param "insn"
10665 and local "prev". Strengthen param "earliest" from rtx * to
10666 rtx_insn **.
10667 (get_condition): Strengthen param "jump" from rtx to rtx_insn *
10668 Strengthen param "earliest" from rtx * to rtx_insn **.
10669
10670 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10671
10672 * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
10673 "to" and local "insn" from rtx to rtx_insn *.
10674
10675 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10676
10677 * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
10678 from rtx to rtx_insn *.
10679 (need_nop_to_preserve_insn_bb): Likewise for param "insn".
10680 (code_motion_path_driver): Likewise for local "last_insn".
10681 (simplify_changed_insns): Likewise for local "insn".
10682
10683 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10684
10685 * rtl.h (push_to_sequence): Strengthen param from rtx to
10686 rtx_insn *.
10687 (push_to_sequence2): Likewise for both params.
10688 (delete_insns_since): Likewise for param.
10689 (reorder_insns_nobb): Likewise for all three params.
10690 (set_new_first_and_last_insn): Likewise for both params.
10691
10692 * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
10693 rtx_insn *. Remove now-redundant cast.
10694 (set_last_insn): Likewise.
10695
10696 * builtins.c (expand_builtin_return): Strengthen local
10697 "call_fusage" from rtx to rtx_insn *.
10698 * cfgrtl.c (create_basic_block_structure): Likewise for local
10699 "after".
10700 * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
10701 "first", "last" and local "insn".
10702 (delete_insns_since): Likewise for param "from".
10703 (reorder_insns_nobb): Likewise for params "from", "to", "after"
10704 and local "x".
10705 (push_to_sequence): Likewise for param "first" and local "last".
10706 (push_to_sequence2): Likewise for params "first" and "last".
10707 * lra.c (emit_add3_insn): Likewise for local "last".
10708 (lra_emit_add): Likewise.
10709 * lra-constraints.c (base_to_reg): Likewise for locals "insn",
10710 "last_insn".
10711 (process_address_1): Likewise for locals "insn", last".
10712 * modulo-sched.c (ps_first_note): Likewise for return type.
10713 * optabs.c (expand_binop_directly): Likewise for param "last".
10714
10715 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10716
10717 * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
10718 to rtx_insn*.
10719 * emit-rtl.c (get_last_insn_anywhere): Likewise.
10720
10721 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10722
10723 * function.h (struct sequence_stack): Strengthen fields "first"
10724 and "last" from rtx to rtx_insn *.
10725 (struct emit_status): Likewise for fields "x_first_insn" and
10726 "x_last_insn".
10727
10728 * emit-rtl.h (get_insns): Remove now-redundant checked cast.
10729 (set_first_insn): Add checked cast.
10730 (get_last_insn): Remove now-redundant checked cast.
10731 (set_last_insn): Add checked cast.
10732
10733 * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
10734 "saved_first" and "saved_last" from rtx to rtx_insn *.
10735
10736 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10737
10738 * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
10739 (unlink_insn_chain): Strengthen both params from rtx to
10740 rtx_insn *.
10741
10742 * cfgrtl.c (cfg_layout_function_header): Likewise for this
10743 variable.
10744 (unlink_insn_chain): Likewise for params "first" and "last".
10745 Remove now-redundant checked cast.
10746 (record_effective_endpoints): Replace use of NULL_RTX with NULL.
10747 (fixup_reorder_chain): Strengthen local "insn" from rtx to
10748 rtx_insn *.
10749 * emit-rtl.c (link_insn_into_chain): Likewise for all three
10750 params.
10751 (add_insn): Likewise for param "insn" and local "prev".
10752 (add_insn_after_nobb): Likewise for both params and local "next".
10753 (add_insn_before_nobb): Likewise for both params and local "prev".
10754 (add_insn_after): Rename param "after" to "uncast_after",
10755 introducing local "after" with another checked cast.
10756 (add_insn_before): Rename params "insn" and "before", giving them
10757 "uncast_" prefixes, adding the old names back using checked casts.
10758 (emit_note_after): Likewise for param "after".
10759 (emit_note_before): Likewise for param "before".
10760 (emit_label): Add a checked cast.
10761
10762 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10763
10764 * cselib.h (cselib_record_sets_hook): Strengthen initial param
10765 "insn" from rtx to rtx_insn *.
10766
10767 * cselib.c (cselib_record_sets_hook): Likewise.
10768
10769 * var-tracking.c (add_with_sets): Likewise, renaming back from
10770 "uncast_insn" to "insn" and eliminating the checked cast from rtx
10771 to rtx_insn *.
10772
10773 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10774
10775 * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
10776 and "header_" from rtx to rtx_insn *.
10777 (struct basic_block_d): Likewise for field "head_" within "x"
10778 field of union basic_block_il_dependent.
10779 (BB_HEAD): Drop function...
10780 (SET_BB_HEAD): ...and this function in favor of...
10781 (BB_HEAD): ...reinstate macro.
10782 (BB_END): Drop function...
10783 (SET_BB_END): ...and this function in favor of...
10784 (BB_END): ...reinstate macro.
10785 (BB_HEADER): Drop function...
10786 (SET_BB_HEADER): ...and this function in favor of...
10787 (BB_HEADER): ...reinstate macro.
10788
10789 * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
10790 (fix_crossing_unconditional_branches): Likewise.
10791 * caller-save.c (save_call_clobbered_regs): Likewise.
10792 (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
10793 * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
10794 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10795 (merge_blocks_move_successor_nojumps): Likewise.
10796 (outgoing_edges_match): Update use of for_each_rtx to
10797 for_each_rtx_in_insn.
10798 * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
10799 (expand_gimple_cond): Likewise.
10800 (expand_gimple_tailcall): Likewise.
10801 (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
10802 SET_BB_END.
10803 (construct_exit_block): Drop use of SET_BB_END.
10804 * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
10805 rtx_insn *.
10806 (delete_insn): Rename param "insn" to "uncast_insn", introducing
10807 a new local "insn" with a checked cast to rtx_insn *. Drop use of
10808 SET_BB_HEAD and SET_BB_END.
10809 (create_basic_block_structure): Drop use of SET_BB_HEAD and
10810 SET_BB_END.
10811 (rtl_delete_block): Drop use of SET_BB_HEAD.
10812 (rtl_split_block): Drop use of SET_BB_END.
10813 (emit_nop_for_unique_locus_between): Likewise.
10814 (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
10815 (block_label): Drop use of SET_BB_HEAD.
10816 (fixup_abnormal_edges): Drop use of SET_BB_END.
10817 (record_effective_endpoints): Drop use of SET_BB_HEADER.
10818 (relink_block_chain): Likewise.
10819 (fixup_reorder_chain): Drop use of SET_BB_END.
10820 (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
10821 (cfg_layout_delete_block): Strengthen local "to" from rtx * to
10822 rtx_insn **. Drop use of SET_BB_HEADER.
10823 (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
10824 SET_BB_HEAD.
10825 (BB_HEAD): Delete this function.
10826 (SET_BB_HEAD): Likewise.
10827 (BB_END): Likewise.
10828 (SET_BB_END): Likewise.
10829 (BB_HEADER): Likewise.
10830 (SET_BB_HEADER): Likewise.
10831 * emit-rtl.c (add_insn_after): Rename param "insn" to
10832 "uncast_insn", adding a new local "insn" and a checked cast to
10833 rtx_insn *. Drop use of SET_BB_END.
10834 (remove_insn): Strengthen locals "next" and "prev" from rtx to
10835 rtx_insn *. Drop use of SET_BB_HEAD and SET_BB_END.
10836 (reorder_insns): Drop use of SET_BB_END.
10837 (emit_insn_after_1): Strengthen param "first" and locals "last",
10838 "after_after" from rtx to rtx_insn *. Drop use of SET_BB_END.
10839 (emit_pattern_after_noloc): Add checked cast.
10840 * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
10841 (restore_other_notes): Likewise.
10842 (move_insn): Likewise.
10843 (sched_extend_bb): Likewise.
10844 (fix_jump_move): Likewise.
10845 * ifcvt.c (noce_process_if_block): Likewise.
10846 (dead_or_predicable): Likewise.
10847 * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
10848 * reg-stack.c (change_stack): Drop use of SET_BB_END.
10849 * sel-sched-ir.c (sel_move_insn): Likewise.
10850 * sel-sched.c (move_nop_to_previous_block): Likewise.
10851
10852 * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
10853 SET_BB_END.
10854 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10855
10856 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10857
10858 * basic-block.h (create_basic_block_structure): Strengthen params
10859 1 "head" and 2 "end" from rtx to rtx_insn *.
10860 * cfgrtl.c (create_basic_block_structure): Likewise.
10861 (rtl_create_basic_block): Update casts from void * to rtx to
10862 rtx_insn *, so that we can pass them as rtx_insn * to
10863 create_basic_block_structure.
10864 * sel-sched-ir.c (sel_create_basic_block): Likewise.
10865
10866 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10867
10868 * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
10869 rtx_insn **.
10870 (check_for_inc_dec): Strengthen param "insn" from rtx to
10871 rtx_insn *.
10872
10873 * cselib.h (cselib_process_insn): Likewise.
10874
10875 * cselib.c (cselib_record_sets): Likewise.
10876 (cselib_process_insn): Likewise.
10877
10878 * dse.c (struct insn_info): Likewise for field "insn".
10879 (check_for_inc_dec_1): Likewise for local "insn".
10880 (check_for_inc_dec): Likewise for param "insn".
10881 (scan_insn): Likewise.
10882 (dse_step1): Likewise for local "insn".
10883
10884 * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
10885 rtx_insn **. Use for_each_rtx_in_insn rather than for_each_rtx.
10886
10887 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10888
10889 * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
10890 from rtx to rtx_insn *.
10891 (DEP_PRO): Delete this function and...
10892 (SET_DEP_PRO): ...this function in favor of...
10893 (DEP_PRO): ...reinstate this macro.
10894 (DEP_CON): Delete this function and...
10895 (SET_DEP_CON): ...this function in favor of...
10896 (DEP_CON): ...reinstate this old macro.
10897 (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
10898 (init_dep): Likewise.
10899 (set_priorities): Likewise for both params.
10900 (sd_copy_back_deps): Likewise for params 1 and 2.
10901
10902 * haifa-sched.c (priority): Likewise for param "insn" and local
10903 "next".
10904 (set_priorities): Likewise for params "head" and "tail" and local
10905 "insn".
10906 (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
10907 local "consumer".
10908 (add_to_speculative_block): Add a checked cast.
10909 (create_check_block_twin): Drop use of SET_DEP_CON.
10910 (add_jump_dependencies): Strengthen params "insn" and "jump" from
10911 rtx to rtx_insn *.
10912
10913 * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
10914 Drop use of SET_DEP_PRO
10915 (init_dep): Strengthen params "pro" and "con" from rtx to
10916 rtx_insn *.
10917 (sd_copy_back_deps): Likewise for params "to" and "from". Drop
10918 use of SET_DEP_CON.
10919 (DEP_PRO): Delete.
10920 (DEP_CON): Delete.
10921 (SET_DEP_PRO): Delete.
10922 (SET_DEP_CON): Delete.
10923
10924 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10925
10926 * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
10927 from rtx to rtx_insn *.
10928 (VINSN_INSN_RTX): Eliminate rvalue function and...
10929 (SET_VINSN_INSN): ...lvalue function in favor of...
10930 (VINSN_INSN_RTX): reinstate this old macro.
10931
10932 * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
10933 in favor of VINSN_INSN_RTX.
10934 (VINSN_INSN_RTX): Delete this function.
10935 (SET_VINSN_INSN_RTX): Likewise.
10936
10937 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10938
10939 * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
10940 (BND_TO): Delete this function and...
10941 (SET_BND_TO): ...this functions in favor of...
10942 (BND_TO): ...reinstating this macro.
10943 (struct _fence): Strengthen field "executing_insns" from
10944 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *. Strengthen fields
10945 "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
10946 (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
10947 and param "insn" from rtx to insn_t.
10948 (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
10949 rtx_insn *.
10950
10951 * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
10952 vec<rtx_insn *> .
10953 (rtx_vec_t): Likewise.
10954 (struct sched_deps_info_def): Strengthen param of "start_insn"
10955 callback from rtx to rtx_insn *. Likewise for param "insn2" of
10956 "note_mem_dep" callback and first param of "note_dep" callback.
10957
10958 * haifa-sched.c (add_to_speculative_block): Strengthen param
10959 "insn" from rtx to rtx_insn *.
10960 (clear_priorities): Likewise.
10961 (calc_priorities): Likewise for local "insn".
10962
10963 * sched-deps.c (haifa_start_insn): Likewise for param "insn".
10964 Remove redundant checked cast.
10965 (haifa_note_mem_dep): Likewise for param "pending_insn".
10966 (haifa_note_dep): Likewise for param "elem".
10967 (note_mem_dep): Likewise for param "e".
10968 (sched_analyze_1): Add checked casts.
10969 (sched_analyze_2): Likewise.
10970
10971 * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
10972 from rtx to rtx_insn *.
10973 (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
10974 from vec<rtx> * to vec<rtx_insn *> *.
10975
10976 * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
10977 scaffolding.
10978 (flist_add): Strengthen param "executing_insns" from
10979 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10980 (advance_deps_context): Remove now-redundant checked cast.
10981 (init_fences): Replace uses of NULL_RTX with NULL.
10982 (merge_fences): Strengthen params "last_scheduled_insn" and
10983 "sched_next" from rtx to rtx_insn * and "executing_insns" from
10984 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10985 (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
10986 (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
10987 an instruction, rather than doing double-duty as a pattern.
10988 (return_nop_to_pool): Update for change of insn_t.
10989 (deps_init_id): Remove now-redundant checked cast.
10990 (struct sched_scan_info_def): Strengthen param of "init_insn"
10991 callback from rtx to insn_t.
10992 (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
10993 (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
10994 NULL.
10995 (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
10996 "end" from rtx to rtx_insn *.
10997 (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
10998 (rtx insn_rtx, bool force_unique_p)
10999 (BND_TO): Delete function.
11000 (SET_BND_TO): Delete function.
11001
11002 * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
11003 rtx to rtx_insn *.
11004 (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
11005 (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
11006 rtx to rtx_insn *.
11007 (undo_transformations): Likewise for param "insn".
11008 (update_liveness_on_insn): Likewise.
11009 (compute_live_below_insn): Likewise for param "insn" and local
11010 "succ".
11011 (update_data_sets): Likewise for param "insn".
11012 (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
11013 (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
11014 (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
11015 rtx_insn *.
11016 (move_cond_jump): Likewise for param "insn".
11017 (move_cond_jump): Drop use of SET_BND_TO.
11018 (compute_av_set_on_boundaries): Likewise.
11019 (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
11020 (update_and_record_unavailable_insns): Strengthen local "bb_end"
11021 from rtx to rtx_insn *.
11022 (maybe_emit_renaming_copy): Likewise for param "insn".
11023 (maybe_emit_speculative_check): Likewise.
11024 (handle_emitting_transformations): Likewise.
11025 (remove_insn_from_stream): Likewise.
11026 (code_motion_process_successors): Strengthen local "succ" from rtx
11027 to insn_t.
11028
11029 2014-08-26 David Malcolm <dmalcolm@redhat.com>
11030
11031 * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
11032 ilist_t, not _xlist_t;
11033 (ILIST_INSN): Define in terms of new union field "insn".
11034 (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
11035 _XLIST_NEXT.
11036 (struct _list_node): Add new field "insn" to the union, of type
11037 insn_t.
11038 (ilist_add): Replace macro with an inline function, requiring an
11039 insn_t.
11040 (ilist_remove): Define this macro directly in terms of
11041 _list_remove, rather than indirectly via _xlist_remove.
11042 (ilist_clear): Likewise, in terms of _list_clear rather than
11043 _xlist_clear.
11044 (ilist_is_in_p): Replace macro with an inline function, requiring
11045 an insn_t.
11046 (_list_iter_cond_insn): New function.
11047 (ilist_iter_remove): Define this macro directly in terms of
11048 _list_iter_remove, rather than indirectly via _xlist_iter_remove.
11049 (ilist_iterator): Define directly in terms of _list_iterator
11050 rather than indirectly through _xlist_iterator.
11051 (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
11052 than in terms of _FOR_EACH_X.
11053 (FOR_EACH_INSN_1): Likewise.
11054
11055 2014-08-26 Joseph Myers <joseph@codesourcery.com>
11056
11057 PR target/60606
11058 PR target/61330
11059 * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
11060 DECL_HARD_REGISTER and return for invalid register specifications.
11061 * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
11062 DECL_HARD_REGISTER, call expand_one_error_var.
11063 * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
11064 CC_REGNUM with non-MODE_CC modes.
11065 (arm_regno_class): Return NO_REGS for PC_REGNUM.
11066
11067 2014-08-26 Marek Polacek <polacek@redhat.com>
11068
11069 PR c/61271
11070 * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
11071
11072 2014-08-26 Evandro Menezes <e.menezes@samsung.com>
11073
11074 * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
11075 qi cost; add di cost.
11076 (cortexa57_addrcost_table): Likewise.
11077
11078 2014-08-26 Marek Polacek <polacek@redhat.com>
11079
11080 PR c/61271
11081 * expr.c (is_aligning_offset): Remove logical not.
11082
11083 2014-08-26 Marek Polacek <polacek@redhat.com>
11084
11085 PR c/61271
11086 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
11087 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
11088
11089 2014-08-26 Richard Biener <rguenther@suse.de>
11090
11091 PR tree-optimization/62175
11092 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
11093 expand possibly trapping operations.
11094
11095 2014-08-26 David Malcolm <dmalcolm@redhat.com>
11096
11097 * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
11098 "insn" from rtx to rtx_insn *.
11099 (permute_load): Likewise for param "insn".
11100 (permute_store): Likewise.
11101 (handle_special_swappables): Likewise for local "insn".
11102 (replace_swap_with_copy): Likewise for locals "insn" and
11103 "new_insn".
11104 (rs6000_analyze_swaps): Likewise for local "insn".
11105
11106 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11107
11108 * regrename.h (struct du_chain): Strengthen field "insn" from rtx
11109 to rtx_insn *.
11110
11111 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11112
11113 * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
11114 "note_list" from rtx to rtx_insn *.
11115 (BB_NOTE_LIST): Replace this function and...
11116 (SET_BB_NOTE_LIST): ...this function with...
11117 (BB_NOTE_LIST): ...the former macro implementation.
11118
11119 * sched-int.h (concat_note_lists): Strengthen param "from_end" and
11120 local "from_start" from rtx to rtx_insn *. Strengthen param
11121 "to_endp" from rtx * to rtx_insn **.
11122
11123 * haifa-sched.c (concat_note_lists): Likewise.
11124 * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
11125 BB_NOTE_LIST.
11126 (sel_restore_notes): Likewise.
11127 (move_bb_info): Likewise.
11128 (BB_NOTE_LIST): Delete this function.
11129 (SET_BB_NOTE_LIST): Delete this function.
11130 * sel-sched.c (create_block_for_bookkeeping): Eliminate
11131 SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
11132
11133 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11134
11135 * target.def (reorder): Strengthen param "ready" of this DEFHOOK
11136 from rtx * to rtx_insn **.
11137 (reorder2): Likewise.
11138 (dependencies_evaluation_hook): Strengthen params "head", "tail"
11139 from rtx to rtx_insn *.
11140
11141 * doc/tm.texi: Update mechanically for above change to target.def.
11142
11143 * sched-int.h (note_list): Strengthen this variable from rtx to
11144 rtx_insn *.
11145 (remove_notes): Likewise for both params.
11146 (restore_other_notes): Likewise for return type and first param.
11147 (struct ready_list): Strengthen field "vec" from rtx * to
11148 rtx_insn **.
11149 (struct dep_replacement): Strenghten field "insn" from rtx to
11150 rtx_insn *.
11151 (struct deps_desc): Likewise for fields "last_debug_insn",
11152 "last_args_size".
11153 (struct haifa_sched_info): Likewise for callback field
11154 "can_schedule_ready_p"'s param, for first param of "new_ready"
11155 callback field, for both params of "rank" callback field, for
11156 first field of "print_insn" callback field (with a const), for
11157 both params of "contributes_to_priority" callback, for param
11158 of "insn_finishes_block_p" callback, for fields "prev_head",
11159 "next_tail", "head", "tail", for first param of "add_remove_insn"
11160 callback, for first param of "begin_schedule_ready" callback, for
11161 both params of "begin_move_insn" callback, and for second param
11162 of "advance_target_bb" callback.
11163 (add_dependence): Likewise for params 1 and 2.
11164 (sched_analyze): Likewise for params 2 and 3.
11165 (deps_analyze_insn): Likewise for param 2.
11166 (ready_element): Likewise for return type.
11167 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
11168 (try_ready): Strenghten param from rtx to rtx_insn *.
11169 (sched_emit_insn): Likewise for return type.
11170 (record_delay_slot_pair): Likewise for params 1 and 2.
11171 (add_delay_dependencies): Likewise for param.
11172 (contributes_to_priority): Likewise for both params.
11173 (find_modifiable_mems): Likewise.
11174
11175 * config/arm/arm.c (cortexa7_sched_reorder): Strengthen param
11176 "ready" from rtx * to rtx_insn **. Strengthen locals "insn",
11177 "first_older_only_insn" from rtx to rtx_insn *.
11178 (arm_sched_reorder): Strengthen param "ready" from rtx * to
11179 rtx_insn **.
11180
11181 * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
11182 "last_scheduled_iter0" from rtx to rtx_insn *.
11183 (init_sched_state): Replace use of NULL_RTX with NULL for insn.
11184 (c6x_sched_reorder_1): Strengthen param "ready" and locals
11185 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
11186 "insn" from rtx to rtx_insn *.
11187 (c6x_sched_reorder): Strengthen param "ready" from rtx * to
11188 rtx_insn **.
11189 (c6x_sched_reorder2): Strengthen param "ready" and locals
11190 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
11191 "insn" from rtx to rtx_insn *.
11192 (c6x_variable_issue): Add a checked cast when assigning from insn
11193 to ss.last_scheduled_iter0.
11194 (split_delayed_branch): Strengthen param "insn" and local "i1"
11195 from rtx to rtx_insn *.
11196 (split_delayed_nonbranch): Likewise.
11197 (undo_split_delayed_nonbranch): Likewise for local "insn".
11198 (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
11199 "entry_after", "end_packet", "head_insn", "tail_insn",
11200 "new_insns", "last_insn", "this_iter", "prev_stage_insn".
11201 Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
11202 to rtx_insn **. Remove now-redundant checked cast on last_insn,
11203 but add a checked cast on loop->start_label. Consolidate calls to
11204 avoid assigning result of gen_spkernel to "insn", now an
11205 rtx_insn *.
11206
11207 * config/i386/i386.c (do_reorder_for_imul): Strengthen param
11208 "ready" from rtx * to rtx_insn **. Strengthen local "insn" from
11209 rtx to rtx_insn *.
11210 (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
11211 rtx_insn **. Strengthen locals "top", "next" from rtx to
11212 rtx_insn *.
11213 (ix86_sched_reorder): Strengthen param "ready" from rtx * to
11214 rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
11215 (add_parameter_dependencies): Strengthen params "call", "head" and
11216 locals "insn", "last", "first_arg" from rtx to rtx_insn *.
11217 (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
11218 (add_dependee_for_func_arg): Likewise for param "arg" and local
11219 "insn".
11220 (ix86_dependencies_evaluation_hook): Likewise for params "head",
11221 "tail" and locals "insn", "first_arg".
11222
11223 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
11224 for params "head", "tail" and locals "insn", "next", "next_tail".
11225 (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
11226 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
11227 "insn", "lowest", "highest" from rtx to rtx_insn *.
11228 (ia64_sched_reorder): Strengthen param "ready" from rtx * to
11229 rtx_insn **.
11230 (ia64_sched_reorder2): Likewise.
11231
11232 * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
11233 and local "insn" from rtx to rtx_insn *. Strengthen param "ready"
11234 from rtx * to rtx_insn **.
11235 (mep_move_ready_insn): Strengthen param "ready" from rtx * to
11236 rtx_insn **.
11237 (mep_print_sched_insn): Strengthen param "insn" from rtx to
11238 rtx_insn *.
11239 (mep_sched_reorder): Strengthen param "ready" from rtx * to
11240 rtx_insn **. Strengthen locals "core_insn", "cop_insn" from rtx
11241 to rtx_insn *.
11242
11243 * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
11244 from rtx * to rtx_insn **. Strengthen local "new_head" from rtx
11245 to rtx_insn *.
11246 (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
11247 rtx_insn **. Strengthen local "temp" from rtx to rtx_insn *.
11248 (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
11249 rtx_insn **.
11250 (vr4130_reorder): Likewise.
11251 (mips_74k_agen_reorder): Likewise. Strengthen local "insn" from
11252 rtx to rtx_insn *.
11253 (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
11254 rtx_insn **.
11255 (mips_sched_reorder): Likewise.
11256 (mips_sched_reorder2): Likewise.
11257
11258 * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
11259
11260 * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
11261 Strengthen local "tmp" from rtx to rtx_insn *.
11262 (rs6000_sched_reorder2): Likewise.
11263
11264 * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
11265 Likewise. Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
11266 (s390_sched_reorder): Strengthen param "ready" from rtx * to
11267 rtx_insn **. Strengthen local "tmp" from rtx to rtx_insn *.
11268
11269 * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
11270 "tmp2" from rtx to rtx_insn *.
11271 (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
11272 Strengthen local "insn" from rtx to rtx_insn *.
11273 (ready_reorder): Strengthen param "ready" from rtx * to
11274 rtx_insn **. Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
11275 (sh_reorder): Strengthen param "ready" from rtx * to rtx_insn **.
11276 (sh_reorder2): Likewise.
11277
11278 * config/spu/spu.c (spu_sched_reorder): Likewise. Strengthen
11279 local "insn" from rtx to rtx_insn *.
11280
11281 * haifa-sched.c (note_list): Strengthen this variable from rtx to
11282 rtx_insn *.
11283 (scheduled_insns): Strengthen this variable from vec<rtx> to
11284 vec<rtx_insn *>.
11285 (set_modulo_params): Likewise for locals "i1", "i2".
11286 (record_delay_slot_pair): Likewise for params "i1", "i2".
11287 (add_delay_dependencies): Likewise for param "insn".
11288 (cond_clobbered_p): Likewise.
11289 (recompute_todo_spec): Likewise for local "prev".
11290 (last_scheduled_insn): Likewise for this variable.
11291 (nonscheduled_insns_begin): Likewise.
11292 (model_set_excess_costs): Strengthen param "insns" from rtx * to
11293 rtx_insn **.
11294 (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
11295 rtx_insn *.
11296 (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
11297 Strengthen local "insn" from rtx to rtx_insn *.
11298 (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
11299 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
11300 (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
11301 (ready_remove_first): Likewise for return type and local "t".
11302 (ready_element): Likewise for return type.
11303 (ready_remove): Likewise for return type and local "t".
11304 (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
11305 (check_clobbered_conditions): Strengthen local "x" from rtx to
11306 rtx_insn *, adding a checked cast.
11307 (schedule_insn): Likewise for param "insn".
11308 (remove_notes): Likewise for params "head", "tail" and locals
11309 "next_tail", "insn", "next".
11310 (struct haifa_saved_data): Likewise for fields
11311 "last_scheduled_insn", "nonscheduled_insns_begin".
11312 (save_backtrack_point): Update for change to field "vec" of
11313 struct ready_list.
11314 (toggle_cancelled_flags): Strengthen local "first" from rtx * to
11315 rtx_insn **.
11316 (restore_last_backtrack_point): Likewise. Strengthen local "insn"
11317 from rtx to rtx_insn *
11318 (resolve_dependencies): Strengthen param "insn" from rtx to
11319 rtx_insn *
11320 (restore_other_notes): Likewise for return type, for param "head"
11321 and local "note_head".
11322 (undo_all_replacements): Likewise for local "insn".
11323 (first_nonscheduled_insn): Likewise for return type and local "insn".
11324 (queue_to_ready): Likewise for local "insn", adding checked casts.
11325 (early_queue_to_ready): Likewise for local "insn".
11326 (debug_ready_list_1): Strengthen local "p" from rtx * to
11327 rtx_insn **.
11328 (move_insn): Strengthen param "insn" and local "note" from rtx to
11329 rtx_insn *
11330 (insn_finishes_cycle_p): Likewise for param "insn".
11331 (max_issue): Likewise for local "insn".
11332 (choose_ready): Likewise. Strengthen param "insn_ptr" from rtx *
11333 to rtx_insn **.
11334 (commit_schedule): Strengthen param "prev_head" and local "insn"
11335 from rtx to rtx_insn *
11336 (prune_ready_list): Likewise for local "insn".
11337 (schedule_block): Likewise for locals "prev_head", "head", "tail",
11338 "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
11339 (set_priorities): Likewise for local "prev_head".
11340 (try_ready): Likewise for param "next".
11341 (fix_tick_ready): Likewise.
11342 (change_queue_index): Likewise.
11343 (sched_extend_ready_list): Update for change to field "vec" of
11344 struct ready_list.
11345 (generate_recovery_code): Strengthen param "insn" from rtx to
11346 rtx_insn *.
11347 (begin_speculative_block): Likewise.
11348 (create_check_block_twin): Likewise for param "insn" and locals
11349 "label", "check", "twin". Introduce local "check_pat" to avoid
11350 "check" being used as a plain rtx before being used as an insn.
11351 (fix_recovery_deps): Add a checked cast to rtx_insn * when
11352 extracting elements from ready_list.
11353 (sched_remove_insn): Strengthen param "insn" from rtx to
11354 rtx_insn *.
11355 (sched_emit_insn): Likewise for return type.
11356 (ready_remove_first_dispatch): Likewise for return type and local
11357 "insn".
11358
11359 * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
11360
11361 * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
11362 const rtx_insn *.
11363
11364 * sched-deps.c (add_dependence): Strengthen params "con", "pro"
11365 from rtx to rtx_insn *.
11366 (add_dependence_list): Likewise for param "insn". Add a checked
11367 cast.
11368 (add_dependence_list_and_free): Strengthen param "insn" from rtx
11369 to rtx_insn *. Strengthen param "list_p" from rtx * to
11370 rtx_insn **.
11371 (chain_to_prev_insn): Strengthen param "insn" and locals
11372 "prec_nonnote", "i" from rtx to rtx_insn *.
11373 (flush_pending_lists): Likewise for param "insn".
11374 (cur_insn): Likewise for this variable.
11375 (haifa_start_insn): Add a checked cast.
11376 (note_dep): Strengthen param "e" from rtx to rtx_insn *.
11377 (sched_analyze_reg): Likewise for param "insn".
11378 (sched_analyze_1): Likewise.
11379 (sched_analyze_2): Likewise. Add checked casts.
11380 (sched_analyze_insn): Likewise. Also for local "prev".
11381 (deps_analyze_insn): Likewise for param "insn".
11382 (sched_analyze): Likewise for params "head", "tail" and local "insn".
11383 (add_dependence_1): Likewise for params "insn", "elem".
11384 (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
11385 (parse_add_or_inc): Likewise for param "insn".
11386 (find_inc): Likewise for local "inc_cand".
11387 (find_modifiable_mems): Likewise for params "head", "tail" and
11388 locals "insn", "next_tail".
11389
11390 * sched-ebb.c (init_ready_list): Likewise for local "insn".
11391 (begin_schedule_ready): Likewise for param "insn".
11392 (begin_move_insn): Likewise for params "insn" and "last".
11393 (ebb_print_insn): Strengthen param "insn" from const_rtx to
11394 const rtx_insn *.
11395 (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
11396 (ebb_contributes_to_priority): Likewise for params "next", "insn".
11397 (ebb_add_remove_insn): Likewise for param "insn".
11398 (advance_target_bb): Likewise.
11399
11400 * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
11401 "insn".
11402 (check_live): Likewise for param "insn".
11403 (init_ready_list): Likewise for local "insn".
11404 (can_schedule_ready_p): Likewise for param "insn".
11405 (begin_schedule_ready): Likewise.
11406 (new_ready): Likewise for param "next".
11407 (rgn_print_insn): Likewise for param "insn".
11408 (rgn_rank): Likewise for params "insn1", "insn2".
11409 (contributes_to_priority): Likewise for params "next", "insn".
11410 (rgn_insn_finishes_block_p): Likewise for param "insn".
11411 (add_branch_dependences): Likewise for params "head", "tail" and
11412 locals "insn", "last".
11413 (rgn_add_remove_insn): Likewise for param "insn".
11414 (advance_target_bb): Likewise.
11415
11416 * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
11417 const_rtx to const rtx_insn *.
11418
11419 * sel-sched-dump.h (sel_print_insn): Likewise.
11420
11421 * sel-sched-ir.c (advance_deps_context): Add a checked cast.
11422 (deps_init_id): Likewise.
11423
11424 * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
11425 (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
11426 rtx_insn **.
11427
11428 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11429
11430 * output.h (final_start_function): Strengthen param 1 from rtx to
11431 rtx_insn *.
11432
11433 * final.c (final_start_function): Likewise, renaming back from
11434 "uncast_first" to "first", and dropping the checked cast from rtx
11435 to rtx_insn *.
11436
11437 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11438
11439 * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
11440 * final.c (final): Likewise. Rename param back from
11441 "uncast_first" to "first" and eliminate the checked cast from rtx
11442 to rtx_insn *.
11443
11444 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11445
11446 * output.h (shorten_branches): Strengthen param from rtx to
11447 rtx_insn *.
11448
11449 * final.c (shorten_branches): Likewise, renaming param back from
11450 "uncast_first" to "first", and dropping the checked cast from rtx
11451 to rtx_insn *.
11452
11453 * genattr.c (gen_attr): Likewise when writing out the prototype of
11454 shorten_branches.
11455
11456 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11457
11458 * sched-int.h (struct haifa_sched_info): Strengthen fields
11459 "prev_head" and "next_tail" from rtx to rtx_insn *.
11460
11461 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11462
11463 * rtl.h (rtx_jump_table_data::get_labels): New method.
11464 * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
11465 with use of the new rtx_jump_table_data::get_labels method.
11466 (purge_dead_tablejump_edges): Strengthen param "table" from rtx
11467 to rtx_jump_table_data *. Simplify by using get_labels method.
11468 * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
11469 a dyn_cast, introducing local "table", using it to replace
11470 label-lookup logic with a get_labels method call.
11471 (patch_jump_insn): Simplify using get_labels method.
11472 * dwarf2cfi.c (create_trace_edges): Likewise.
11473 * rtlanal.c (label_is_jump_target_p): Likewise.
11474
11475 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11476
11477 * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
11478 to rtx_insn *.
11479
11480 * emit-rtl.c (unshare_all_rtl_1): Likewise.
11481 (unshare_all_rtl_again): Likewise, also for local "p".
11482
11483 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11484
11485 * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
11486 to rtx_insn *.
11487 * cfgrtl.c (delete_insn_and_edges): Likewise.
11488
11489 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11490
11491 * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
11492 from rtx to rtx_insn *.
11493
11494 * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
11495
11496 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11497
11498 * function.c (thread_prologue_and_epilogue_insns): Likewise for
11499 locals "returnjump", "epilogue_end", "insn", "next".
11500
11501 * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
11502 "returnjump" from rtx * to rtx_insn **.
11503 * shrink-wrap.c (get_unconverted_simple_return): Likewise.
11504
11505 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11506
11507 * basic-block.h (struct edge_def). Strengthen "r" within
11508 union edge_def_insns from rtx to rtx_insn *.
11509
11510 * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
11511 from rtx to rtx_insn *. Strengthen local "insns" from rtx to
11512 rtx_insn *.
11513 * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
11514 from rtx to rtx_insn *.
11515 * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
11516 rtx_insn *.
11517 * postreload-gcse.c (reg_killed_on_edge): Likewise.
11518 (reg_used_on_edge): Likewise.
11519 * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
11520 (gt_pch_nx): New overload for rtx_insn *&.
11521 * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
11522 from rtx to rtx_insn *.
11523
11524 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11525
11526 * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
11527 from rtx to rtx_insn *.
11528 (BB_FOOTER): Replace function with access macro.
11529 (SET_BB_FOOTER): Delete.
11530
11531 * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
11532 with BB_FOOTER.
11533 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
11534 (emit_barrier_after_bb): Likewise.
11535 (record_effective_endpoints): Likewise.
11536 (relink_block_chain): Likewise.
11537 (fixup_fallthru_exit_predecessor): Likewise.
11538 (cfg_layout_duplicate_bb): Likewise.
11539 (cfg_layout_split_block): Likewise.
11540 (cfg_layout_delete_block): Likewise.
11541 (cfg_layout_merge_blocks): Likewise.
11542 (BB_FOOTER): Delete function.
11543 (SET_BB_FOOTER): Delete function.
11544 * combine.c (update_cfg_for_uncondjump): Replace uses of
11545 SET_BB_FOOTER with BB_FOOTER.
11546
11547 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11548
11549 * except.h (struct eh_landing_pad_d): Strengthen field
11550 "landing_pad" from rtx to rtx_code_label *.
11551
11552 * except.c (sjlj_emit_dispatch_table): Likewise for param
11553 "dispatch_label"
11554 (sjlj_build_landing_pads): Likewise for local "dispatch_label".
11555
11556 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11557
11558 * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
11559 first param from rtx to rtx_insn *.
11560 * config/xtensa/xtensa.c (struct machine_function): Likewise for
11561 field "set_frame_ptr_insn".
11562 (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
11563 "csend" from rtx to rtx_code_label *.
11564 (xtensa_expand_atomic): Likewise for local "csloop".
11565 (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
11566 rtx_insn *.
11567 (xtensa_call_tls_desc): Likewise for return type and locals
11568 "call_insn", "insns".
11569 (xtensa_legitimize_tls_address): Likewise for local "insns".
11570 (xtensa_expand_prologue): Likewise for locals "insn", "first".
11571
11572 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11573
11574 * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
11575 first param from rtx to rtx_insn *.
11576 * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
11577 "insn".
11578
11579 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11580
11581 * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
11582 Strengthen param 1 from rtx to rtx_insn *.
11583 (tilepro_output_cbranch): Likewise.
11584 (tilepro_adjust_insn_length): Likewise.
11585 (tilepro_final_prescan_insn): Likewise for sole param.
11586
11587 * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
11588 Likewise for local "last".
11589 (cbranch_predicted_p): Likewise for param "insn".
11590 (tilepro_output_simple_cbranch_with_opcode): Likewise.
11591 (tilepro_output_cbranch_with_opcode): Likewise.
11592 (tilepro_output_cbranch): Likewise.
11593 (frame_emit_load): Likewise for return type and locals "seq",
11594 "insn".
11595 (emit_sp_adjust): Likewise for return type and local "insn".
11596 (tilepro_expand_epilogue): Likewise for locals "last_insn",
11597 "insn".
11598 (tilepro_adjust_insn_length): Likewise for param "insn".
11599 (next_insn_to_bundle): Likewise for return type and params
11600 "r", "end".
11601 (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
11602 (replace_pc_relative_symbol_ref): Likewise for param "insn" and
11603 local "new_insns".
11604 (match_addli_pcrel): Likewise for param "insn".
11605 (replace_addli_pcrel): Likewise.
11606 (match_auli_pcrel): Likewise.
11607 (replace_auli_pcrel): Likewise.
11608 (tilepro_fixup_pcrel_references): Likewise for locals "insn",
11609 "next_insn".
11610 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11611 "queue", "next_queue", "prev".
11612 (tilepro_asm_output_mi_thunk): Likewise for local "insn".
11613 (tilepro_final_prescan_insn): Likewise for param "insn".
11614
11615 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11616
11617 * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
11618 Strengthen param 1 from rtx to rtx_insn *.
11619 (tilegx_output_cbranch): Likewise.
11620 (tilegx_adjust_insn_length): Likewise.
11621 (tilegx_final_prescan_insn): Likewise for sole param.
11622
11623 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
11624 or local "last".
11625 (cbranch_predicted_p): Likewise for param "insn".
11626 (tilegx_output_simple_cbranch_with_opcode): Likewise.
11627 (tilegx_output_cbranch_with_opcode): Likewise.
11628 (tilegx_output_cbranch): Likewise.
11629 (frame_emit_load): Likewise for return type.
11630 (set_frame_related_p): Likewise for locals "seq", "insn".
11631 (emit_sp_adjust): Likewise for return type, and for local "insn".
11632 Introduce local "pat" for use in place of "insn" where the latter
11633 isn't an instruction.
11634 (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
11635 from rtx to rtx_insn *.
11636 (tilegx_adjust_insn_length): Likewise for param "insn".
11637 (next_insn_to_bundle): Likewise for return type and params "r" and
11638 "end".
11639 (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
11640 "end".
11641 (replace_insns): Likewise for params "old_insn", "new_insns".
11642 (replace_mov_pcrel_step1): Likewise for param "insn" and local
11643 "new_insns".
11644 (replace_mov_pcrel_step2): Likewise.
11645 (replace_mov_pcrel_step3): Likewise.
11646 (tilegx_fixup_pcrel_references): Likewise for locals "insn",
11647 "next_insn".
11648 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11649 "queue", "next_queue", "prev".
11650 (tilegx_output_mi_thunk): Likewise for local "insn".
11651 (tilegx_final_prescan_insn): Likewise for param "insn".
11652
11653 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11654
11655 * config/spu/spu.c (frame_emit_store): Strengthen return type from
11656 rtx to rtx_insn *.
11657 (frame_emit_load): Likewise.
11658 (frame_emit_add_imm): Likewise, also for local "insn".
11659 (spu_expand_prologue): Likewise for local "insn".
11660 (struct spu_bb_info): Likewise for field "prop_jump".
11661 (emit_nop_for_insn): Likewise for param "insn" and local
11662 "new_insn".
11663 (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
11664 "hbr_insn".
11665 (spu_emit_branch_hint): Likewise for params "before", "branch" and
11666 locals "hint", "insn".
11667 (get_branch_target): Likewise for param "branch".
11668 (insn_clobbers_hbr): Likewise for param "insn".
11669 (insert_hbrp_for_ilb_runout): Likewise for param "first" and
11670 locals "insn", "before_4", "before_16".
11671 (insert_hbrp): Likewise for local "insn".
11672 (spu_machine_dependent_reorg): Likewise for locals "branch",
11673 "insn", "next", "bbend".
11674 (uses_ls_unit): Likewise for param "insn".
11675 (get_pipe): Likewise.
11676 (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
11677 introducing a checked cast.
11678 (spu_sched_adjust_cost): Likewise for params "insn" and
11679 "dep_insn".
11680 (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
11681 (spu_sms_res_mii): Likewise.
11682
11683 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11684
11685 * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
11686 from rtx to rtx_insn *.
11687 (output_cbranch): Likewise for param 6.
11688 (output_return): Likewise for param 1.
11689 (output_sibcall): Likewise.
11690 (output_v8plus_shift): Likewise.
11691 (output_v8plus_mult): Likewise.
11692 (output_v9branch): Likewise for param 7.
11693 (output_cbcond): Likewise for param 3.
11694
11695 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
11696 for local "insn".
11697 (sparc_legitimize_pic_address): Likewise.
11698 (sparc_emit_call_insn): Likewise.
11699 (emit_save_or_restore_regs): Likewise.
11700 (emit_window_save): Likewise for return type and local "insn".
11701 (sparc_expand_prologue): Likewise for local "insn".
11702 (sparc_flat_expand_prologue): Likewise.
11703 (output_return): Likewise for param "insn".
11704 (output_sibcall): Likewise for param "insn" and local "delay".
11705 (output_ubranch): Likewise for param "insn".
11706 (output_cbranch): Likewise.
11707 (output_cbcond): Likewise.
11708 (output_v9branch): Likewise.
11709 (output_v8plus_shift): Likewise.
11710 (sparc_output_mi_thunk): Likewise for local "insn".
11711 (get_some_local_dynamic_name): Likewise.
11712 (output_v8plus_mult): Likewise for param "insn".
11713
11714 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11715
11716 * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
11717 from rtx to rtx_insn *.
11718 (output_branchy_insn): Likewise for param 3.
11719 (output_far_jump): Likewise for param 1.
11720 (final_prescan_insn): Likewise.
11721 (sh_insn_length_adjustment): Likewise for sole param.
11722
11723 * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
11724 (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
11725 rtx_code_label *.
11726 (sh_emit_compare_and_set): Likewise for local "lab".
11727 (output_far_jump): Strengthen param "insn" and local "prev" from
11728 rtx to rtx_insn *.
11729 (output_branchy_insn): Likewise for param "insn" and local
11730 "next_insn".
11731 (output_ieee_ccmpeq): Likewise for param "insn".
11732 (struct label_ref_list_d): Strengthen field "label" from rtx to
11733 rtx_code_label *.
11734 (pool_node): Likewise.
11735 (pool_window_label): Likewise for this global.
11736 (add_constant): Likewise for return type and locals "lab", "new_rtx".
11737 (dump_table): Strengthen params "start", "barrier" and local
11738 "scan" from rtx to rtx_insn *.
11739 (broken_move): Likewise for param "insn".
11740 (untangle_mova): Likewise for params "first_mova" and "new_mova".
11741 Strengthen param "first_mova" from rtx * to rtx_insn **.
11742 (mova_p): Likewise for param "insn".
11743 (fixup_mova): Likewise for param "mova".
11744 (find_barrier): Likewise for return type, params "mova" and
11745 "from", and locals "barrier_before_mova", "found_barrier",
11746 "good_barrier", "orig", "last_symoff", "next". Strengthen local
11747 "label" from rtx to rtx_code_label *.
11748 (sh_loop_align): Strengthen locals "first", "insn", "mova" from
11749 rtx to rtx_insn *.
11750 (sh_reorg): Likewise for locals "link", "scan", "barrier".
11751 (split_branches): Likewise for param "first" and local "insn".
11752 (final_prescan_insn): Likewise for param "insn".
11753 (sequence_insn_p): Likewise for locals "prev", "next".
11754 (sh_insn_length_adjustment): Likewise for param "insn".
11755 (sh_can_redirect_branch): Likewise for local "insn".
11756 (find_r0_life_regions): Likewise for locals "end", "insn".
11757 (sh_output_mi_thunk): Likewise for local "insns".
11758
11759 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11760
11761 * config/score/score.c (score_output_mi_thunk): Strengthen local
11762 "insn" from rtx to rtx_insn *.
11763 (score_prologue): Likewise.
11764
11765 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11766
11767 * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
11768 1 from rtx to rtx_insn *.
11769 (s390_emit_jump): Likewise for return type.
11770 (s390_emit_call): Likewise.
11771 (s390_load_got): Likewise.
11772
11773 * config/s390/s390.c (last_scheduled_insn): Likewise for this
11774 variable.
11775 (s390_match_ccmode): Likewise for param "insn".
11776 (s390_emit_jump): Likewise for return type.
11777 (s390_split_branches): Likewise for local "label".
11778 (struct constant): Strengthen field "label" from rtx to
11779 rtx_code_label *.
11780 (struct constant_pool): Likewise for field "label". Strengthen
11781 fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
11782 rtx_insn *.
11783 (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
11784 insns.
11785 (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
11786 (s390_end_pool): Likewise.
11787 (s390_dump_pool): Likewise for local "insn".
11788 (s390_mainpool_start): Likewise.
11789 (s390_chunkify_start): Likewise.
11790 (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
11791 with insns. Strengthen locals "label", "jump", "barrier", "next",
11792 "prev", "vec_insn", "insn" from rtx to rtx_insn *.
11793 (s390_chunkify_finish): Strengthen local "insn" from rtx to
11794 rtx_insn *.
11795 (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
11796 "jump", "label", "next_insn".
11797 (s390_regs_ever_clobbered): Likewise for local "cur_insn".
11798 (s390_optimize_nonescaping_tx): Likewise for locals "insn",
11799 "tbegin_insn".
11800 (s390_load_got): Likewise for return type and local "insns".
11801 (s390_save_gprs_to_fprs): Likewise for local "insn".
11802 (s390_restore_gprs_from_fprs): Likewise.
11803 (pass_s390_early_mach::execute): Likewise.
11804 (s390_emit_prologue): Likewise for local "insns".
11805 (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
11806 rtx_code_label *.
11807 (s390_emit_call): Strengthen return type and local "insn" from
11808 rtx to rtx_insn *.
11809 (s390_emit_tpf_eh_return): Likewise for local "insn".
11810 (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
11811 "next_insn", introducing locals "s_pat", "rpat" to allow this.
11812 (s390_fix_long_loop_prediction): Likewise for param "insn" and
11813 local "cur_insn".
11814 (s390_non_addr_reg_read_p): Likewise for param "insn".
11815 (find_cond_jump): Likewise for return type and param "insn".
11816 (s390_swap_cmp): Likewise for param "insn".
11817 (s390_z10_optimize_cmp): Likewise for param "insn" and locals
11818 "prev_insn", "next_insn".
11819 (s390_reorg): Likewise for locals "insn", "target".
11820 (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
11821 (s390_sched_variable_issue): For now, rename param "insn" to
11822 "uncast_insn", introducing a checked cast.
11823 (s390_sched_init): Replace NULL_RTX with NULL when dealing with
11824 insn.
11825 (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
11826 rtx_insn *. Use for_each_rtx_in_insn rather than for_each_rtx.
11827
11828 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11829
11830 * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
11831 param from rtx to rtx_insn *.
11832 * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
11833
11834 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11835
11836 * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
11837 4 from rtx to rtx_insn *.
11838 (rs6000_final_prescan_insn): Likewise for first param.
11839 * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
11840 local "insn".
11841 (rs6000_get_some_local_dynamic_name): Likewise.
11842 (output_cbranch): Likewise for param "insn".
11843 (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
11844 (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
11845 (rs6000_emit_allocate_stack): Likewise for local "insn".
11846 (load_cr_save): Likewise.
11847 (restore_saved_cr): Likewise.
11848 (restore_saved_lr): Likewise.
11849 (emit_cfa_restores): Likewise.
11850 (rs6000_output_function_epilogue): Likewise for locals "insn" and
11851 "deleted_debug_label".
11852 (rs6000_output_mi_thunk): Likewise for local "insn".
11853 (rs6000_final_prescan_insn): Likewise for param "insn".
11854
11855 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11856
11857 * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
11858 Strengthen param "insn" from rtx to rtx_insn *.
11859 * config/picochip/picochip.c (picochip_current_prescan_insn):
11860 Likewise for this variable.
11861 (picochip_final_prescan_insn): Likewise for param "insn".
11862
11863 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11864
11865 * config/pa/pa-protos.h (pa_output_call): Strengthen first param
11866 from rtx to rtx_insn *.
11867 (pa_output_indirect_call): Likewise.
11868 (pa_adjust_insn_length): Likewise.
11869 (pa_attr_length_millicode_call): Likewise.
11870 (pa_attr_length_call): Likewise.
11871 (pa_attr_length_indirect_call): Likewise.
11872
11873 * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
11874 "insn".
11875 (pa_attr_length_millicode_call): Likewise.
11876 (pa_attr_length_call): Likewise.
11877 (pa_output_call): Likewise.
11878 (pa_attr_length_indirect_call): Likewise.
11879 (pa_output_indirect_call): Likewise.
11880
11881 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11882
11883 * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
11884 Strengthen first param from rtx to rtx_insn *.
11885 * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
11886 param "insn".
11887
11888 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11889
11890 * config/mips/mips-protos.h (mips_emit_move): Strengthen return
11891 type from rtx to rtx_insn *.
11892 (mips_expand_call): Likewise.
11893 (mips_adjust_insn_length): Likewise for first param.
11894 (mips_output_conditional_branch): Likewise.
11895 (mips_output_order_conditional_branch): Likewise.
11896 (mips_final_prescan_insn): Likewise.
11897
11898 * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
11899 rtx_insn * for the SEQUENCE case.
11900 (SEQ_END): Likewise.
11901 (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
11902 (mips_emit_call_insn): Likewise, also for local "insn".
11903 (mips16_gp_pseudo_reg): Likewise for local "scan".
11904 (mips16_build_call_stub): Likewise for return type and for local
11905 "insn". Introduce a new local "pattern" so that "insn" can indeed
11906 be an insn.
11907 (mips_expand_call): Strengthen return type and local "insn" from
11908 rtx to rtx_insn *.
11909 (mips_block_move_loop): Strengthen local "label" from rtx to
11910 rtx_code_label *.
11911 (mips_expand_synci_loop): Likewise for locals "label",
11912 "end_label".
11913 (mips_set_frame_expr): Strengthen local "insn" from rtx to
11914 rtx_insn *.
11915 (mips16e_collect_argument_saves): Likewise for locals "insn",
11916 "next".
11917 (mips_find_gp_ref): Likewise for param of callback for "pred"
11918 param, and for local "insn".
11919 (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
11920 (mips_insn_has_flexible_gp_ref_p): Likewise.
11921 (mips_epilogue_emit_cfa_restores): Likewise for return type and
11922 local "insn".
11923 (mips_epilogue_set_cfa): Likewise for local "insn".
11924 (mips_expand_epilogue): Likewise.
11925 (mips_adjust_insn_length): Likewise for param "insn".
11926 (mips_output_conditional_branch): Likewise.
11927 (mips_output_order_conditional_branch): Likewise.
11928 (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
11929 "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
11930 "falu2_turn_enabled_insn".
11931 (mips_builtin_branch_and_move): Strengthen locals "true_label",
11932 "done_label" from rtx to rtx_code_label *.
11933 (struct mips16_constant): Likewise for field "label".
11934 (mips16_add_constant): Likewise for return type.
11935 (mips16_emit_constants_1): Strengthen return type and param "insn"
11936 from rtx to rtx_insn *.
11937 (mips16_emit_constants): Likewise for param "insn".
11938 (mips16_insn_length): Likewise.
11939 (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
11940 to rtx_code_label *.
11941 (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
11942 from rtx to rtx_insn *.
11943 (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
11944 "jump". Strengthen local "label" from rtx to rtx_code_label *.
11945 (r10k_simplify_address): Strengthen param "insn" and local
11946 "def_insn" from rtx to rtx_insn *.
11947 (r10k_safe_address_p): Strengthen param "insn" from rtx to
11948 rtx_insn *.
11949 (r10k_needs_protection_p_1): Update target type of cast of data
11950 from to rtx to rtx_insn *.
11951 (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
11952 rtx * to rtx_insn **.
11953 (r10k_needs_protection_p): Strengthen param "insn" from rtx to
11954 rtx_insn *.
11955 (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
11956 (mips_call_expr_from_insn): Likewise for param "insn".
11957 (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
11958 (mips_find_pic_call_symbol): Likewise for param "insn".
11959 (mips_annotate_pic_calls): Likewise for local "insn".
11960 (mips_sim_insn): Likewise for this variable.
11961 (struct mips_sim): Likewise for field "insn" within elements of
11962 last_set array.
11963 (mips_sim_wait_reg): Likewise for param "insn".
11964 (mips_sim_wait_regs): Likewise.
11965 (mips_sim_wait_units): Likewise.
11966 (mips_sim_wait_insn): Likewise.
11967 (mips_sim_issue_insn): Likewise.
11968 (mips_sim_finish_insn): Likewise.
11969 (mips_seq_time): Likewise for param "seq" and local "insn".
11970 (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
11971 locals "first", "second".
11972 (vr4130_align_insns): Likewise for locals "insn", "subinsn",
11973 "last", "last2", "next".
11974 (mips_avoid_hazard): Likewise for params "after", "insn".
11975 (mips_reorg_process_insns): Likewise for locals "insn",
11976 "last_insn", "subinsn", "next_insn".
11977 (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
11978 (mips16_split_long_branches): Likewise for locals "insn" "jump",
11979 "jump_sequence".
11980 (mips_output_mi_thunk): Likewise for local "insn".
11981 (mips_final_prescan_insn): Likewise for param "insn".
11982
11983 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11984
11985 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
11986 Strengthen return type and local "insns" from rtx to rtx_insn *.
11987 (microblaze_legitimize_tls_address): Likewise for local "insns".
11988 (microblaze_block_move_loop): Strengthen local "label" from rtx
11989 to rtx_code_label *.
11990 (microblaze_expand_prologue): Strengthen two locals named "insn"
11991 from rtx to rtx_insn *.
11992 (microblaze_asm_output_mi_thunk): Likewise for local "insn".
11993 (microblaze_expand_divide): Likewise for locals "jump", "cjump",
11994 "insn". Strengthen locals "div_label", "div_end_label" from rtx
11995 to rtx_code_label *.
11996
11997 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11998
11999 * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
12000 param from rtx to rtx_insn *.
12001 (mep_reuse_lo): Likewise for third param.
12002 (mep_use_post_modify_p): Likewise for first param.
12003 (mep_core_address_length): Likewise.
12004 (mep_cop_address_length): Likewise.
12005 (mep_final_prescan_insn): Likewise.
12006 (mep_store_data_bypass_p): Likewise for both params.
12007 (mep_mul_hilo_bypass_p): Likewise.
12008 (mep_ipipe_ldc_p): Likewise for param.
12009
12010 * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
12011 (mep_rewrite_mult): Likewise.
12012 (mep_rewrite_mulsi3): Likewise.
12013 (mep_rewrite_maddsi3): Likewise.
12014 (mep_reuse_lo_p_1): Likewise.
12015 (mep_reuse_lo_p): Likewise.
12016 (mep_frame_expr): Likewise.
12017 (mep_make_parallel): Likewise for both params.
12018 (mep_use_post_modify_p_1): Likewise for param "set_insn" and
12019 local "insn".
12020 (mep_use_post_modify_p): Likewise for param "insn".
12021 (mep_core_address_length): Likewise.
12022 (mep_cop_address_length): Likewise.
12023 (mep_reg_set_in_function): Likewise for local "insn".
12024 (mep_asm_without_operands_p): Likewise.
12025 (F): Likewise for return type and param "x".
12026 (add_constant): Likewise for local "insn".
12027 (maybe_dead_move): Likewise for return type and local "insn".
12028 (mep_expand_prologue): Likewise for local "insn".
12029 (mep_final_prescan_insn): Likewise for param "insn".
12030 (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
12031 "next", "follow", "x".
12032 (mep_insert_repeat_label_last): Likewise for return type, param
12033 "last_insn", and locals "next", "prev". Strengthen param "label"
12034 from rtx to rtx_code_label *.
12035 (struct mep_doloop_begin): Strengthen field "insn" from rtx to
12036 rtx_insn *.
12037 (struct mep_doloop_end): Likewise for fields "insn" and
12038 "fallthrough".
12039 (mep_reorg_repeat): Likewise for param "insns" and local "insn".
12040 Strengthen local "repeat_label" from rtx to rtx_code_label *.
12041 (mep_invertable_branch_p): Strengthen param "insn" from rtx to
12042 rtx_insn *.
12043 (mep_invert_branch): Likewise for params "insn" and "after".
12044 (mep_reorg_erepeat): Likewise for param "insns" and locals
12045 "insn", "prev", "new_last", "barrier", "user". Strengthen local
12046 "l" from rtx to rtx_code_label *.
12047 (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
12048 from rtx to rtx_insn *.
12049 (mep_reorg_addcombine): Likewise for param "insns" and locals
12050 "i", "n".
12051 (add_sp_insn_p): Likewise for param "insn".
12052 (mep_reorg_noframe): Likewise for param "insns" and locals
12053 "start_frame_insn", "end_frame_insn", "next".
12054 (mep_reorg): Likewise for local "insns".
12055 (mep_store_data_bypass_1): Likewise for param "prev". Add checked
12056 cast.
12057 (mep_store_data_bypass_p): Likewise for params "prev", "insn".
12058 (mep_mul_hilo_bypass_p): Likewise.
12059 (mep_ipipe_ldc_p): Likewise for param "insn".
12060 (mep_make_bundle): Likewise for return type, param "cop" and local
12061 "insn", splitting out the latter into a new local "seq" for when it
12062 is a SEQUENCE rather than an insn.
12063 (core_insn_p): Likewise for param "insn".
12064 (mep_bundle_insns): Likewise for param "insns" and locals "insn",
12065 "last", "first", "note", "prev", "core_insn".
12066
12067 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12068
12069 * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
12070 rtx to rtx_insn *.
12071 (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
12072 (m68k_final_prescan_insn): Likewise for first param.
12073
12074 * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
12075 (m68k_set_frame_related): Likewise for param "insn".
12076 (output_btst): Likewise for param "insn".
12077 (m68k_final_prescan_insn): Likewise.
12078 (m68k_move_to_reg): Likewise for local "insn".
12079 (m68k_call_tls_get_addr): Likewise for local "insns".
12080 (m68k_call_m68k_read_tp): Likewise.
12081 (strict_low_part_peephole_ok): Likewise for param "first_insn".
12082 (m68k_output_mi_thunk): Likewise for local "insn".
12083
12084 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12085
12086 * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
12087 first param from rtx to rtx_insn *.
12088 (iq2000_adjust_insn_length): Likewise.
12089 (iq2000_output_conditional_branch): Likewise.
12090 * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
12091 "insn" and local "nop_insn".
12092 (iq2000_annotate_frame_insn): Likewise for param "insn".
12093 (iq2000_expand_prologue): Likewise for both locals "insn".
12094 (iq2000_adjust_insn_length): Likewise for param "insn".
12095 (iq2000_output_conditional_branch): Likewise.
12096
12097 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12098
12099 * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
12100 "insns" from rtx to rtx_insn *.
12101 (ia64_emit_cond_move): Likewise for locals "insn", "first".
12102 (struct spill_fill_data): Likewise for field "init_after" and for
12103 elements of array field "prev_insn".
12104 (spill_restore_mem): Likewise for locals "insn", "first".
12105 (do_spill): Likewise for local "insn".
12106 (do_restore): Likewise.
12107 (ia64_expand_prologue): Likewise.
12108 (ia64_expand_epilogue): Likewise.
12109 (emit_insn_group_barriers): Likewise for locals "insn",
12110 "last_label".
12111 (emit_all_insn_group_barriers): Likewise for locals "insn",
12112 "last".
12113 (dfa_stop_insn): Likewise for this global.
12114 (dfa_pre_cycle_insn): Likewise.
12115 (ia64_nop): Likewise.
12116 (final_emit_insn_group_barriers): Likewise for locals "insn",
12117 "last".
12118 (emit_predicate_relation_info): Likewise for locals "head", "n",
12119 "insn", "b", "a".
12120 (ia64_reorg): Likewise for local "insn".
12121 (ia64_output_mi_thunk): Likewise.
12122 (expand_vec_perm_interleave_2): Likewise for local "seq".
12123
12124 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12125
12126 * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
12127 param 1 "insn" from rtx to rtx_insn *.
12128 (ix86_use_lea_for_mov): Likewise.
12129 (ix86_avoid_lea_for_addr): Likewise.
12130 (ix86_split_lea_for_addr): Likewise.
12131 (ix86_lea_for_add_ok): Likewise.
12132 (ix86_output_call_insn): Likewise.
12133
12134 * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
12135 (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
12136 (ix86_output_function_epilogue): Likewise for locals "insn",
12137 "deleted_debug_label".
12138 (legitimize_tls_address): Likewise for local "insn".
12139 (get_some_local_dynamic_name): Likewise.
12140 (increase_distance): Likewise for params "prev", "next".
12141 (distance_non_agu_define_in_bb): Likewise for params "insn",
12142 "start" and locals "prev", "next".
12143 (distance_non_agu_define): Likewise for param "insn".
12144 (distance_agu_use_in_bb): Likewise for params "insn", "start" and
12145 locals "next", "prev".
12146 (distance_agu_use): Likewise for param "insn".
12147 (ix86_lea_outperforms): Likewise.
12148 (ix86_ok_to_clobber_flags): Likewise.
12149 (ix86_avoid_lea_for_add): Likewise.
12150 (ix86_use_lea_for_mov): Likewise.
12151 (ix86_avoid_lea_for_addr): Likewise.
12152 (find_nearest_reg_def): Likewise, also for locals "prev", "start".
12153 (ix86_split_lea_for_addr): Likewise for param "insn".
12154 (ix86_lea_for_add_ok): Likewise for param "insn".
12155 (ix86_expand_carry_flag_compare): Likewise for local
12156 "compare_seq".
12157 (ix86_expand_int_movcc): Likewise.
12158 (ix86_output_call_insn): Likewise for param "insn".
12159 (ix86_output_call_insn): Likewise for local "i".
12160 (x86_output_mi_thunk): Introduce local "insn", using it in place
12161 of "tmp" when dealing with insns.
12162 (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
12163 "start".
12164 (ix86_pad_returns): Likewise for locals "ret", "prev".
12165 (ix86_count_insn_bb): Likewise for local "insn".
12166 (ix86_pad_short_function): Likewise for locals "ret", "insn".
12167 (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
12168 (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
12169 (expand_vec_perm_interleave2): Likewise for local "seq".
12170 (expand_vec_perm_vperm2f128_vblend): Likewise.
12171 (ix86_loop_unroll_adjust): Likewise for local "insn". Convert
12172 call to for_each_rtx with for_each_rtx_in_insn.
12173
12174 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12175
12176 * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
12177 "label" from rtx to rtx_code_label *.
12178 (ix86_expand_prologue): Likewise.
12179 (ix86_expand_split_stack_prologue): Likewise for locals "label",
12180 "varargs_label".
12181 (ix86_split_idivmod): Likewise for locals "end_label" and
12182 "qimode_label".
12183 (ix86_expand_branch): Likewise for local "label2".
12184 (ix86_expand_aligntest): Likewise for return type and local "label".
12185 (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
12186 "top_label".
12187 (expand_movmem_epilogue): Likewise for the various locals named
12188 "label".
12189 (expand_setmem_epilogue): Likewise.
12190 (expand_small_movmem_or_setmem): Likewise for local "label".
12191 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
12192 Strengthen param "done_label" from rtx * to rtx_code_label **.
12193 Strengthen locals "loop_label" and "label" from rtx to
12194 rtx_code_label *.
12195 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
12196 Likewise for locals "loop_label", "label".
12197 (ix86_expand_set_or_movmem): Likewise for locals "label",
12198 "jump_around_label", "hot_label".
12199 (ix86_expand_strlensi_unroll_1): Likewise for locals
12200 "align_2_label", align_3_label", "align_4_label", "end_0_label",
12201 "end_2_label".
12202 (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
12203 (void ix86_emit_i387_log1p): Likewise for locals "label1",
12204 "label2", "jump_label".
12205 (ix86_expand_sse_compare_and_jump): Likewise for return type and
12206 local "label".
12207 (ix86_expand_lfloorceil): Likewise for local "label".
12208 (ix86_expand_rint): Likewise.
12209 (ix86_expand_floorceildf_32): Likewise.
12210 (ix86_expand_floorceil): Likewise.
12211 (ix86_expand_rounddf_32): Likewise.
12212 (ix86_expand_trunc): Likewise.
12213 (ix86_expand_truncdf_32): Likewise.
12214 (ix86_expand_round): Likewise.
12215
12216 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12217
12218 * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
12219 first param from rtx to rtx_insn *.
12220 (h8300_insn_length_from_table): Likewise.
12221 * config/h8300/h8300.c (F): Likewise for return type and param
12222 "x".
12223 (Fpa): Add a checked cast to rtx_insn *.
12224 (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
12225 rtx_insn *.
12226 (final_prescan_insn): Likewise for param "insn".
12227 (h8300_binary_length): Likewise.
12228 (h8300_insn_length_from_table): Likewise.
12229
12230 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12231
12232 * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
12233 Strengthen first param "insn" from rtx to rtx_insn *.
12234
12235 * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
12236 Likewise.
12237 (frame_insn): Likewise for return type. Introduce local "insn"
12238 for use in place of local "x" for use as an rtx_insn *.
12239 (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
12240 (epiphany_expand_prologue): Likewise for local "insn".
12241 * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
12242 * config/epiphany/resolve-sw-modes.c
12243 (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
12244 "seq".
12245
12246 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12247
12248 * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
12249 param from rtx to rtx_insn *.
12250 (c6x_final_prescan_insn): Likewise for first param.
12251
12252 * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
12253 (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
12254 (c6x_expand_compare): Strengthen local "insns" from rtx to
12255 rtx_insn *.
12256 (c6x_get_unit_specifier): Likewise for param "insn".
12257 (c6x_print_unit_specifier_field): Likewise.
12258 (c6x_final_prescan_insn): Likewise.
12259 (emit_add_sp_const): Likewise for local "insn".
12260 (c6x_expand_prologue): Likewise.
12261
12262 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12263
12264 * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
12265 param 1 from rtx to rtx_insn *.
12266 * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
12267 the various locals named "insn".
12268 (expand_epilogue_reg_restore): Likewise.
12269 (frame_related_constant_load): Likewise.
12270 (add_to_reg): Likewise.
12271 (emit_link_insn): Likewise.
12272 (do_link): Likewise.
12273 (expand_interrupt_handler_prologue): Likewise.
12274 (branch_dest): Likewise for param "branch".
12275 (asm_conditional_branch): Likewise for param "insn".
12276 (gen_one_bundle): Likewise for elements of param "slot" and local
12277 "t".
12278 (bfin_gen_bundles): Likewise for locals "insn", "next" and
12279 elements of local "slot".
12280 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
12281 "queue", "next_queue", "prev".
12282 (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
12283 (add_sched_insns_for_speculation): Likewise for local "insn".
12284
12285 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12286
12287 * config/avr/avr-protos.h (output_movqi): Strengthen first param
12288 from rtx to rtx_insn *.
12289 (output_movhi): Likewise.
12290 (output_movsisf): Likewise.
12291 (avr_out_tstsi): Likewise.
12292 (avr_out_tsthi): Likewise.
12293 (avr_out_tstpsi): Likewise.
12294 (avr_out_compare): Likewise.
12295 (avr_out_compare64): Likewise.
12296 (avr_out_movpsi): Likewise.
12297 (ashlqi3_out): Likewise.
12298 (ashlhi3_out): Likewise.
12299 (ashlsi3_out): Likewise.
12300 (ashrqi3_out): Likewise.
12301 (ashrhi3_out): Likewise.
12302 (ashrsi3_out): Likewise.
12303 (lshrqi3_out): Likewise.
12304 (lshrhi3_out): Likewise.
12305 (lshrsi3_out): Likewise.
12306 (avr_out_ashlpsi3): Likewise.
12307 (avr_out_ashrpsi3): Likewise.
12308 (avr_out_lshrpsi3): Likewise.
12309 (avr_out_fract): Likewise.
12310 (avr_out_sbxx_branch): Likewise.
12311 (avr_out_round): Likewise.
12312 (avr_out_xload): Likewise.
12313 (avr_out_movmem): Likewise.
12314 (adjust_insn_length): Likewise.
12315 (avr_out_lpm): Likewise.
12316 (reg_unused_after): Likewise.
12317 (_reg_unused_after): Likewise.
12318 (avr_jump_mode): Likewise for second param.
12319 (jump_over_one_insn): Likewise for first param.
12320 (avr_final_prescan_insn): Likewise.
12321 (out_shift_with_cnt): Likewise for second param.
12322
12323 * config/avr/avr.c (get_sequence_length): Likewise for param
12324 "insns" and local "insn".
12325 (emit_push_byte): Likewise for local "insn".
12326 (emit_push_sfr): Likewise.
12327 (avr_prologue_setup_frame): Likewise for locals "insn",
12328 "fp_plus_insns", "sp_plus_insns".
12329 (avr_expand_epilogue): Likewise for local "fp_plus_insns",
12330 "sp_plus_insns".
12331 (avr_jump_mode): Likewise for param "insn".
12332 (avr_final_prescan_insn): Likewise.
12333 (avr_find_unused_d_reg): Likewise.
12334 (avr_out_lpm_no_lpmx): Likewise.
12335 (avr_out_lpm): Likewise.
12336 (avr_out_xload): Likewise.
12337 (output_movqi): Likewise.
12338 (output_movhi): Likewise.
12339 (out_movqi_r_mr): Likewise.
12340 (out_movhi_r_mr): Likewise.
12341 (out_movsi_r_mr): Likewise.
12342 (out_movsi_mr_r): Likewise.
12343 (output_movsisf): Likewise.
12344 (avr_out_load_psi): Likewise.
12345 (avr_out_store_psi): Likewise.
12346 (avr_out_movpsi): Likewise.
12347 (out_movqi_mr_r): Likewise.
12348 (avr_out_movhi_mr_r_xmega): Likewise.
12349 (out_movhi_mr_r): Likewise.
12350 (compare_condition): Likewise for param "insn" and local "next".
12351 (compare_sign_p): Likewise for param "insn".
12352 (compare_diff_p): Likewise.
12353 (compare_eq_p): Likewise.
12354 (avr_out_compare): Likewise.
12355 (avr_out_compare64): Likewise.
12356 (avr_out_tsthi): Likewise.
12357 (avr_out_tstpsi): Likewise.
12358 (avr_out_tstsi): Likewise.
12359 (out_shift_with_cnt): Likewise.
12360 (ashlqi3_out): Likewise.
12361 (ashlhi3_out): Likewise.
12362 (avr_out_ashlpsi3): Likewise.
12363 (ashlsi3_out): Likewise.
12364 (ashrqi3_out): Likewise.
12365 (ashrhi3_out): Likewise.
12366 (avr_out_ashrpsi3): Likewise.
12367 (ashrsi3_out): Likewise.
12368 (lshrqi3_out): Likewise.
12369 (lshrhi3_out): Likewise.
12370 (avr_out_lshrpsi3): Likewise.
12371 (lshrsi3_out): Likewise.
12372 (avr_out_fract): Likewise.
12373 (avr_out_round): Likewise.
12374 (avr_adjust_insn_length): Likewise.
12375 (reg_unused_after): Likewise.
12376 (_reg_unused_after): Likewise.
12377 (avr_compare_pattern): Likewise.
12378 (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
12379 and locals "branch1", "branch2", "insn2", "jump".
12380 (avr_reorg): Likewise for local "insn".
12381 (avr_2word_insn_p): Likewise for param "insn".
12382 (jump_over_one_insn_p): Likewise.
12383 (avr_out_sbxx_branch): Likewise.
12384 (avr_out_movmem): Likewise.
12385
12386 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12387
12388 * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
12389 param from rtx to rtx_insn *.
12390 (thumb1_final_prescan_insn): Likewise.
12391 (thumb2_final_prescan_insn): Likewise.
12392
12393 * config/arm/arm.c (emit_set_insn): Strengthen return type from
12394 rtx to rtx_insn *.
12395 (struct minipool_node): Likewise for field "insn".
12396 (dump_minipool): Likewise for param "scan".
12397 (create_fix_barrier): Likewise for local "from". Strengthen local
12398 "label" from rtx to rtx_code_label *.
12399 (push_minipool_barrier): Strengthen param "insn" from rtx to
12400 rtx_insn *.
12401 (push_minipool_fix): Likewise.
12402 (note_invalid_constants): Likewise.
12403 (thumb2_reorg): Likewise for local "insn".
12404 (arm_reorg): Likewise.
12405 (thumb2_final_prescan_insn): Likewise for param
12406 "insn" and local "first_insn".
12407 (arm_final_prescan_insn): Likewise for param "insn" and locals
12408 "start_insn", "this_insn".
12409 (arm_debugger_arg_offset): Likewise for param "insn".
12410 (thumb1_emit_multi_reg_push): Likewise for return type and local
12411 "insn".
12412 (thumb1_final_prescan_insn): Likewise for param "insn".
12413 (thumb_far_jump_used_p): Likewise for local "insn".
12414 (thumb1_expand_prologue): Likewise.
12415 (arm_expand_epilogue_apcs_frame): Likewise.
12416 (arm_expand_epilogue): Likewise for locals "insn", "tmp".
12417 (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
12418 from rtx to rtx_code_label *.
12419 (arm_split_atomic_op): Likewise for local "label".
12420 (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
12421
12422 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12423
12424 * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
12425 first param from rtx to rtx_insn *.
12426 (arc_verify_short): Likewise.
12427 (arc_short_long): Likewise.
12428 (arc_need_delay): Likewise.
12429
12430 * config/arc/arc.c (struct arc_ccfsm): Likewise for field
12431 "target_insn".
12432 (arc_ccfsm_advance): Likewise for param "insn" and locals
12433 "start_insn", "this_insn".
12434 (arc_ccfsm_record_condition): Likewise for local "seq_insn".
12435 (arc_ccfsm_post_advance): Likewise for param "insn".
12436 (arc_next_active_insn): Likewise for return type and param "insn".
12437 Convert NULL_RTX to NULL as appropriate. Add a checked cast.
12438 (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
12439 (output_short_suffix): Likewise for local "insn".
12440 (arc_final_prescan_insn): Likewise for param "insn". Remove
12441 now-redundant checked cast.
12442 (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
12443 "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
12444 rtx_insn *. Add a checked cast. Introduce local "lc_set_insn"
12445 for use where lc_set became an insn.
12446 (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
12447 rtx to rtx_insn *.
12448 (arc_get_insn_variants): Likewise for local "prev".
12449 (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
12450 "next".
12451 (arc_predicate_delay_insns): Likewise for local "insn".
12452 (arc_pad_return): Likewise for local "prev". For now, add a
12453 checked cast when extracting the insn from "final_sequence".
12454 (arc_short_long): Likewise for param "insn".
12455 (arc_need_delay): Likewise for param "insn" and local "next".
12456 (arc_label_align): Likewise for locals "prev", "next".
12457
12458 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12459
12460 * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
12461 "insn" from rtx to rtx_insn *.
12462 (alpha_gp_save_rtx): Likewise for local "seq".
12463 (alpha_instantiate_decls): Likewise for local "top".
12464 (get_some_local_dynamic_name): Likewise for local "insn".
12465 (alpha_does_function_need_gp): Likewise.
12466 (set_frame_related_p): Likewise for return type and for locals
12467 "seq" and "insn".
12468 (emit_frame_store_1): Likewise for local "insn".
12469 (alpha_expand_prologue): Likewise for locals "insn", "seq".
12470 (alpha_end_function): Likewise for local "insn".
12471 (alpha_output_mi_thunk_osf): Likewise.
12472 (alphaev4_insn_pipe): Likewise for param "insn".
12473 (alphaev5_insn_pipe): Likewise.
12474 (alphaev4_next_group): Likewise for return type and param 1
12475 "insn".
12476 (alphaev5_next_group): Likewise.
12477 (alpha_align_insns_1): Likewise for return type and param 1 of
12478 callback param "next_group", and for locals "i", "next", "prev",
12479 "where", "where2", "insn".
12480
12481 2014-08-25 Bernd Schmidt <bernds@codesourcery.com>
12482
12483 * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
12484 rather than modifying the stmt.
12485
12486 2014-08-25 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12487
12488 * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
12489 cgraph_state conversion.
12490
12491 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12492
12493 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
12494 Strengthen local "insns" from rtx to rtx_insn *.
12495 (aarch64_set_frame_expr): Likewise for local "insn".
12496 (aarch64_save_or_restore_fprs): Likewise.
12497 (aarch64_save_or_restore_callee_save_registers): Likewise.
12498 (aarch64_expand_prologue): Likewise.
12499 (aarch64_expand_epilogue): Likewise.
12500 (aarch64_output_mi_thunk): Likewise.
12501 (aarch64_split_compare_and_swap): Strengthen locals "label1" and
12502 "label2" from rtx to rtx_code_label *.
12503 (aarch64_split_atomic_op): Likewise for local "label".
12504
12505 2014-08-25 Martin Liska <mliska@suse.cz>
12506
12507 * cgraph.h (symtab_node):
12508 (bool needed_p (void)): created from decide_is_symbol_needed
12509 (bool referred_to_p (void)): created from referred_to_p
12510 (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
12511 * cgraph.h (cgraph_node):
12512 (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
12513 (void expand (void)): created from expand_function
12514 (static void finalize_function (tree, bool)): created from cgraph_finalize_function
12515 (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
12516 (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
12517 (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
12518 * cgraph.h (varpool_node):
12519 (static void add (tree decl): created from varpool_add_new_variable
12520 * cgraph.h (cgraph_edge):
12521 void remove (void);
12522 (void remove_caller (void)): created from cgraph_edge_remove_caller
12523 (void remove_callee (void)): created from cgraph_edge_remove_callee
12524 (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
12525 created from cgraph_set_call_stmt
12526 (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
12527 (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
12528 (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
12529 gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
12530 (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
12531 created from cgraph_speculative_call_info
12532 (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
12533 int freq_scale, bool update_original)): created from cgraph_clone_edge
12534 (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
12535 (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
12536 (bool recursive_p (void)): created from cgraph_edge_recursive_p
12537 (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
12538 (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
12539 (static void rebuild_references (void)): created from cgraph_rebuild_references
12540 * cgraph.h (symbol_table):
12541 (create_reference): renamed from add_reference
12542 (maybe_create_reference): renamed from maybe_add_reference
12543 (void register_symbol (symtab_node *node)): new function
12544 (void clear_asm_symbols (void)): new function
12545 (void unregister (symtab_node *node)): new function
12546 (void release_symbol (cgraph_node *node, int uid)): new function
12547 (cgraph_node * allocate_cgraph_symbol (void)): new function
12548 (void initialize (void)): created from cgraph_init
12549 (symtab_node *first_symbol (void)):new function
12550 (asm_node *first_asm_symbol (void)):new function
12551 (symtab_node *first_defined_symbol (void)):new function
12552 (varpool_node *first_variable (void)):new function
12553 (varpool_node *next_variable (varpool_node *node)):new function
12554 (varpool_node *first_static_initializer (void)):new function
12555 (varpool_node *next_static_initializer (varpool_node *node)):new function
12556 (varpool_node *first_defined_variable (void)):new function
12557 (varpool_node *next_defined_variable (varpool_node *node)):new function
12558 (cgraph_node *first_defined_function (void)):new function
12559 (cgraph_node *next_defined_function (cgraph_node *node)):new function
12560 (cgraph_node *first_function (void)):new function
12561 (cgraph_node *next_function (cgraph_node *node)):new function
12562 (cgraph_node *first_function_with_gimple_body (void)):new function
12563 (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
12564 (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
12565 created from symtab_remove_unreachable_nodes
12566 (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
12567 (void process_new_functions (void)): created from cgraph_process_new_functions
12568 (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
12569 (bool output_variables (void)): created from varpool_node::output_variables
12570 (void output_asm_statements (void)): created from output_asm_statements
12571 (void finalize_compilation_unit (void)): created from finalize_compilation_unit
12572 (void compile (void)): created from compile
12573 (void output_weakrefs (void)): created from output_weakrefs
12574 (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
12575 (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
12576 gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
12577 (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
12578 (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
12579 created from cgraph_next_function_with_gimple_body
12580 (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
12581 created from cgraph_remove_edge_removal_hook
12582 (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
12583 created from cgraph_add_node_removal_hook
12584 (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
12585 created from cgraph_remove_node_removal_hook
12586 (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
12587 created from varpool_add_node_removal_hook
12588 (void remove_varpool_removal_hook (varpool_node_hook_list *)):
12589 created from varpool_remove_node_removal_hook
12590 (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
12591 created from cgraph_add_function_insertion_hook
12592 (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
12593 created from cgraph_remove_function_insertion_hook
12594 (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
12595 created from varpool_add_variable_insertion_hook
12596 (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
12597 created from varpool_remove_variable_insertion_hook
12598 (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
12599 created from cgraph_add_edge_duplication_hook
12600 (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
12601 created from cgraph_remove_edge_duplication_hook
12602 (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
12603 created from cgraph_add_node_duplication_hook
12604 (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
12605 created from cgraph_remove_node_duplication_hook
12606 (void call_edge_removal_hooks (cgraph_edge *e)):
12607 created from cgraph_call_edge_removal_hooks
12608 (void call_cgraph_insertion_hooks (cgraph_node *node)):
12609 created from call_function_insertion_hooks
12610 (void call_cgraph_removal_hooks (cgraph_node *node)):
12611 created from cgraph_call_node_removal_hooks
12612 (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
12613 created from cgraph_node::call_duplication_hooks
12614 (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
12615 created from cgraph_call_edge_duplication_hooks
12616 (void call_varpool_removal_hooks (varpool_node *node)):
12617 created from varpool_call_node_removal_hooks
12618 (void call_varpool_insertion_hooks (varpool_node *node)):
12619 created from varpool_call_variable_insertion_hooks
12620 (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
12621 created from insert_to_assembler_name_hash
12622 (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
12623 created from unlink_from_assembler_name_hash
12624 (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
12625 created from symtab_prevail_in_asm_name_hash
12626 (void symtab_initialize_asm_name_hash (void)):
12627 created from symtab_initialize_asm_name_hash
12628 (void change_decl_assembler_name (tree decl, tree name)):
12629 created from change_decl_assembler_name
12630 (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
12631 (static hashval_t decl_assembler_name_hash (const_tree asmname)):
12632 created from decl_assembler_name_hash
12633 (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
12634 created from decl_assembler_name_equal
12635 (static hashval_t hash_node_by_assembler_name (const void *p)):
12636 created from hash_node_by_assembler_name
12637 (static int eq_assembler_name (const void *p1, const void *p2)):
12638 created from eq_assembler_name
12639
12640 2014-08-25 Marek Polacek <polacek@redhat.com>
12641
12642 * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
12643
12644 2014-08-25 Petr Murzin <petr.murzin@intel.com>
12645
12646 * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
12647 (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
12648 SWI1248_AVX512BW mode iterator.
12649
12650 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
12651
12652 PR target/62111
12653 * config/sh/predicates.md (general_extend_operand): Disable
12654 TRUNCATE before reload completes.
12655
12656 2014-08-24 Gerald Pfeifer <gerald@pfeifer.com>
12657
12658 * doc/invoke.texi (Optimize Options): Fix markup in two cases.
12659
12660 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
12661
12662 PR target/61996
12663 * config/sh/sh.opt (musermode): Allow negative form.
12664 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
12665 targets that don't support it.
12666 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
12667 Document -mno-usermode option.
12668
12669 2014-08-24 Kito Cheng <kito@0xlab.org>
12670
12671 * system.h (CALLER_SAVE_PROFITABLE): Poison.
12672 * regs.h (CALLER_SAVE_PROFITABLE): Remove.
12673 * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
12674 * doc/tm.texi: Regenerate.
12675
12676 2014-08-24 Kito Cheng <kito@0xlab.org>
12677
12678 * ira.c: Fix typo in comment.
12679
12680 2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
12681
12682 * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
12683 Deprecate c++1y. Change language to reflect greater confidence in C++14.
12684
12685 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
12686
12687 PR target/62038
12688 * config/pa/pa.c (pa_output_function_epilogue): Don't set
12689 last_address when the current function is a thunk.
12690 (pa_asm_output_mi_thunk): When we don't have named sections or they
12691 are not being used, check that thunk can reach the stub table with a
12692 short branch.
12693
12694 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12695
12696 * web.c (union_match_dups): Strengthen param "insn" from rtx to
12697 rtx_insn *.
12698 (pass_web::execute): Likewise for local "insn".
12699
12700 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12701
12702 * var-tracking.c (struct micro_operation_def): Strengthen field
12703 "insn" from rtx to rtx_insn *.
12704 (struct emit_note_data_def): Likewise.
12705 (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
12706 (vt_stack_adjustments): Likewise for local "insn".
12707 (adjust_insn): Likewise for param "insn".
12708 (val_store): Likewise.
12709 (val_resolve): Likewise.
12710 (struct count_use_info): Likewise for field "insn".
12711 (log_op_type): Likewise for param "insn".
12712 (reverse_op): Likewise.
12713 (prepare_call_arguments): Likewise.
12714 (add_with_sets): The initial param takes an insn, but we can't
12715 yet strengthen it from rtx to rtx_insn * since it's used as a
12716 cselib_record_sets_hook callback. For now rename initial param
12717 from "insn" to "uncast_insn", and introduce a local "insn" of
12718 the stronger rtx_insn * type, with a checked cast.
12719 (compute_bb_dataflow): Strengthen local "insn" from rtx to
12720 rtx_insn *.
12721 (emit_note_insn_var_location): Likewise.
12722 (emit_notes_for_changes): Likewise.
12723 (emit_notes_for_differences): Likewise.
12724 (next_non_note_insn_var_location): Likewise for return type and
12725 for param "insn".
12726 (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
12727 (vt_initialize): Likewise for local "insn".
12728 (delete_debug_insns): Likewise for locals "insn" and "next".
12729
12730 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12731
12732 * varasm.c (mark_constants): Strengthen param "insn" from rtx to
12733 rtx_insn *.
12734 (mark_constant_pool): Likewise for local "insn".
12735
12736 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12737
12738 * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
12739 rtx to rtx_insn *.
12740 (dead_debug_promote_uses): Likewise.
12741 (dead_debug_insert_temp): Likewise.
12742
12743 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12744
12745 * store-motion.c (store_killed_in_insn): Strengthen param "insn"
12746 from const_rtx to const rtx_insn *.
12747 (store_killed_after): Likewise. Strengthen locals "last", "act"
12748 from rtx to rtx_insn *.
12749 (store_killed_before): Strengthen param "insn" from const_rtx to
12750 const rtx_insn *. Strengthen local "first" from rtx to rtx_insn *.
12751 (find_moveable_store): Strengthen param "insn" from rtx to
12752 rtx_insn *.
12753 (compute_store_table): Likewise for local "insn".
12754 (insert_insn_start_basic_block): Likewise for param "insn" and
12755 locals "prev", "before", "insn".
12756 (insert_store): For now, add a checked cast to rtx_insn * on the
12757 result of gen_move_insn.
12758 (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
12759 to rtx_insn *.
12760 (replace_store_insn): Likewise. For now, add a checked cast to
12761 rtx_insn * on the result of gen_move_insn.
12762
12763 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12764
12765 * stmt.c (expand_case): Strengthen local "before_case" from rtx to
12766 rtx_insn *.
12767 (expand_sjlj_dispatch_table): Likewise.
12768
12769 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12770
12771 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
12772 "insn" from rtx to rtx_insn *.
12773
12774 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12775
12776 * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
12777 "insn" from rtx to rtx_insn *.
12778 (dup_block_and_redirect): Likewise for param 3 "before".
12779
12780 * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
12781 from rtx to rtx_insn *.
12782 (move_insn_for_shrink_wrap): Likewise.
12783 (prepare_shrink_wrap): Likewise for locals "insn", "curr".
12784 (dup_block_and_redirect): Likewise for param "before" and local
12785 "insn".
12786 (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
12787 "end".
12788 (convert_to_simple_return): Likewise for local "start".
12789
12790 * config/i386/i386.c (ix86_finalize_stack_realign_flags):
12791 Strengthen local "insn" from rtx to rtx_insn *, for use when
12792 invoking requires_stack_frame_p.
12793
12794 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12795
12796 * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
12797 rtx_insn *.
12798 (speculate_expr): Likewise for locals "orig_insn_rtx",
12799 "spec_insn_rtx".
12800 (eq_transformed_insns): Likewise for locals "i1", "i2".
12801 (check_for_new_jump): Likewise for return type and local "end".
12802 (find_new_jump): Likewise for return type and local "jump".
12803 (sel_split_edge): Likewise for local "jump".
12804 (sel_create_recovery_block): Likewise.
12805 (sel_redirect_edge_and_branch_force): Likewise.
12806 (sel_redirect_edge_and_branch): Likewise.
12807
12808 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12809
12810 * sel-sched.c (substitute_reg_in_expr): Strengthen local
12811 "new_insn" from rtx to rtx_insn *.
12812 (create_insn_rtx_with_rhs): Likewise for return type and for local
12813 "insn_rtx".
12814 (create_insn_rtx_with_lhs): Likewise.
12815 (create_speculation_check): Likewise for local "insn_rtx".
12816 (implicit_clobber_conflict_p): Likewise for local "insn".
12817 (get_expr_cost): Likewise.
12818 (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
12819 (move_cond_jump): Likewise for locals "next", "prev", "link",
12820 "head", "from", "to".
12821
12822 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12823
12824 * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
12825 "next" from rtx to rtx_insn *.
12826 (find_conditional_protection): Likewise for local "next".
12827 (is_conditionally_protected): Likewise for local "insn1".
12828 (is_pfree): Likewise for locals "insn1", "insn2".
12829
12830 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12831
12832 * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
12833 from rtx to rtx_insn *.
12834
12835 * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
12836 locals "insn1", "insn2" from rtx to rtx_insn *.
12837 (add_deps_for_risky_insns): Likewise for params "head", "tail" and
12838 locals "insn", "prev", "last_jump", "next_tail".
12839 (schedule_ebb): Likewise for params "head", "tail".
12840 (schedule_ebbs): Likewise for locals "tail", "head".
12841
12842 * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
12843 to rtx_insn on "last_insn" in one of the invocations of
12844 schedule_ebb.
12845
12846 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12847
12848 * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
12849 "elem", "insn" from rtx to rtx_insn *.
12850 (change_spec_dep_to_hard): Likewise.
12851 (get_back_and_forw_lists): Likewise for local "con".
12852 (sd_add_dep): Likewise for locals "elem", "insn".
12853 (sd_resolve_dep): Likewise for locals "pro", "con".
12854 (sd_unresolve_dep): Likewise.
12855 (sd_delete_dep): Likewise.
12856 (chain_to_prev_insn): Likewise for local "pro".
12857 (find_inc): Likewise for locals "pro", "con".
12858
12859 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12860
12861 * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
12862 to rtx_insn *.
12863 (reg_set_between_p): Strengthen local "insn" from const_rtx to
12864 const rtx_insn *.
12865 (modified_between_p): Strengthen local "insn" from rtx to
12866 rtx_insn *.
12867 (remove_reg_equal_equiv_notes_for_regno): Likewise.
12868 (keep_with_call_p): Strengthen local "i2" from const_rtx to
12869 const rtx_insn *.
12870
12871 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12872
12873 * resource.c (next_insn_no_annul): Strengthen local "next" from
12874 rtx to rtx_insn *.
12875 (mark_referenced_resources): Likewise for local "insn".
12876
12877 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12878
12879 * reload.h (struct insn_chain): Strengthen field "insn" from rtx
12880 to rtx_insn *.
12881 (find_reloads): Likewise for param 1.
12882 (subst_reloads): Likewise for sole param.
12883 (find_equiv_reg): Likwise for param 2.
12884 (regno_clobbered_p): Likwise for param 2.
12885 (reload): Likewise for param 1.
12886
12887 * caller-save.c (save_call_clobbered_regs): Strengthen local
12888 "insn" from rtx to rtx_insn *.
12889 (insert_one_insn): Likewise for local "insn".
12890
12891 * reload.c (this_insn): Likewise for this global.
12892 (find_reloads): Likewise for param "insn".
12893 (find_reloads_toplev): Likewise.
12894 (find_reloads_address): Likewise.
12895 (subst_reg_equivs): Likewise.
12896 (update_auto_inc_notes): Likewise.
12897 (find_reloads_address_1): Likewise.
12898 (find_reloads_subreg_address): Likewise.
12899 (subst_reloads): Likewise.
12900 (find_equiv_reg): Likewise, also for local "p".
12901 (regno_clobbered_p): Likewise for param "insn".
12902
12903 * reload1.c (reg_reloaded_insn): Likewise for the elements of this
12904 array.
12905 (spill_reg_store): Likewise for the elements of this array.
12906 (remove_init_insns): Likewise for local "equiv_insn".
12907 (will_delete_init_insn_p): Likewise for param "insn".
12908 (reload): Likewise for param ""first" and local "insn".
12909 (calculate_needs_all_insns): Strengthen local "insn" from rtx to
12910 rtx_insn *.
12911 (calculate_elim_costs_all_insns): Likewise.
12912 (delete_caller_save_insns): Likewise.
12913 (spill_failure): Likewise for param "insn".
12914 (delete_dead_insn): Likewise.
12915 (set_label_offsets): Likewise.
12916 (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
12917 "prev_insn".
12918 (elimination_costs_in_insn): Likewise for param "insn".
12919 (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
12920 when referring to an insn.
12921 (set_initial_label_offsets): Likewise.
12922 (set_offsets_for_label): Strengthen param "insn" from rtx to
12923 rtx_insn *.
12924 (init_eliminable_invariants): Likewise for param "first" and local
12925 "insn".
12926 (fixup_eh_region_note): Likewise for param "insn".
12927 (reload_as_needed): Likewise for locals "prev", "insn",
12928 "old_next", "old_prev", "next".
12929 (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
12930 "last".
12931 (reload_inheritance_insn): Strengthen elements of this array from
12932 rtx to rtx_insn *.
12933 (failed_reload): Likewise for param "insn".
12934 (choose_reload_regs): Likewise for local "insn". Replace use of
12935 NULL_RTX with NULL when referring to an insn.
12936 (input_reload_insns): Strengthen elements of this array from rtx
12937 to rtx_insn *.
12938 (other_input_address_reload_insns): Likewise for this global.
12939 (other_input_reload_insns): Likewise for this global.
12940 (input_address_reload_insns): Likwise for the elements of this
12941 array.
12942 (inpaddr_address_reload_insns): Likwise for the elements of this
12943 array.
12944 (output_reload_insns): Likewise for the elements of this array.
12945 (output_address_reload_insns): Likewise for the elements of this
12946 array.
12947 (outaddr_address_reload_insns): Likewise for the elements of this
12948 array.
12949 (operand_reload_insns): Likewise for this global.
12950 (other_operand_reload_insns): Likewise for this global.
12951 (other_output_reload_insns): Likewise for the elements of this
12952 array.
12953 (new_spill_reg_store): Likewise for the elements of this
12954 array.
12955 (emit_input_reload_insns): Likewise for locals "insn", "temp".
12956 Strengthen local "where" from rtx * to rtx_insn **.
12957 (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
12958 from rtx to rtx_insn *.
12959 (do_input_reload): Likewise for local "insn".
12960 (do_output_reload): Likewise for local "insn".
12961 (emit_reload_insns): Likewise for locals "insn" and "store_insn".
12962 (emit_insn_if_valid_for_reload): Likewise for return type and local
12963 "last". Add checked cast to rtx_insn when returning "insn" since
12964 this has been through emit_insn.
12965 (gen_reload): Strengthen return type and locals "last", "insn", "set"
12966 from rtx to rtx_insn *. Add checked cast to rtx_insn when
12967 returning "insn" since it's been through
12968 emit_insn_if_valid_for_reload at this point.
12969 (delete_output_reload): Strengthen param "insn" and locals
12970 "output_reload_insn", "i2" from rtx to rtx_insn *.
12971 (delete_address_reloads): Likewise for params "dead_insn",
12972 "current_insn" and locals "prev", "next".
12973 (delete_address_reloads_1): Likewise for params "dead_insn",
12974 "current_insn" and locals "prev", "i2".
12975 (inc_for_reload): Likewise for locals "last", "add_insn".
12976 (add_auto_inc_notes): Strengthen param "insn" from rtx to
12977 rtx_insn *.
12978
12979 * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
12980 param of this duplicate of the prototype from reload.h
12981
12982 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12983
12984 * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
12985 rtx to rtx_insn *.
12986 (regstat_bb_compute_calls_crossed): Likewise.
12987
12988 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12989
12990 * regrename.c (create_new_chain): Strengthen param "insn" from rtx
12991 to rtx_insn *.
12992 (init_rename_info): Replace use of NULL_RTX with NULL when dealing
12993 with an insn.
12994 (regrename_analyze): Strengthen local "insn" from rtx to
12995 rtx_insn *.
12996 (scan_rtx_reg): Likewise for param "insn".
12997 (scan_rtx_address): Likewise.
12998 (scan_rtx): Likewise.
12999 (restore_operands): Likewise.
13000 (record_out_operands): Likewise.
13001 (build_def_use): Likewise for local "insn". Replace use of
13002 NULL_RTX with NULL when dealing with an insn.
13003
13004 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13005
13006 * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
13007 * reginfo.c (reg_scan): Likewise, also for local "insn".
13008 (reg_scan_mark_refs): Likewise for param "insn".
13009 (init_subregs_of_mode): Likewise for local "insn".
13010
13011 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13012
13013 * regcprop.c (struct queued_debug_insn_change): Strengthen field
13014 "insn" from rtx to rtx_insn *.
13015 (replace_oldest_value_reg): Likewise for param "insn".
13016 (replace_oldest_value_addr): Likewise.
13017 (replace_oldest_value_mem): Likewise.
13018 (apply_debug_insn_changes): Likewise for local "last_insn".
13019 (copyprop_hardreg_forward_1): Likewise for local "insn".
13020
13021 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13022
13023 * reg-stack.c (next_flags_user): Strengthen return type and param
13024 "insn" from rtx to rtx_insn *.
13025 (straighten_stack): Likewise for param "insn".
13026 (check_asm_stack_operands): Likewise.
13027 (remove_regno_note): Likewise.
13028 (emit_pop_insn): Likewise for return type, param "insn", local
13029 "pop_insn".
13030 (emit_swap_insn): Strengthen param "insn" and locals "i1", "tmp",
13031 "limit" from rtx to rtx_insn *.
13032 (swap_to_top): Likewise for param "insn".
13033 (move_for_stack_reg): Likewise.
13034 (move_nan_for_stack_reg): Likewise.
13035 (swap_rtx_condition): Likewise.
13036 (compare_for_stack_reg): Likewise.
13037 (subst_all_stack_regs_in_debug_insn): Likewise.
13038 (subst_stack_regs_pat): Likewise, and local "insn2".
13039 (subst_asm_stack_regs): Strengthen param "insn" from rtx to
13040 rtx_insn *.
13041 (subst_stack_regs): Likewise.
13042 (change_stack): Likewise.
13043 (convert_regs_1): Likewise for locals "insn", "next".
13044
13045 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13046
13047 * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
13048 rtx_insn *.
13049 (combine_set_extension): Likewise for param "curr_insn".
13050 (transform_ifelse): Likewise for param "def_insn".
13051 (get_defs): Likewise for param "def_insn". Strengthen param "dest"
13052 from vec<rtx> * to vec<rtx_insn *> *.
13053 (is_cond_copy_insn): Likewise for param "insn".
13054 (struct ext_state): Strengthen the four vec fields from vec<rtx>
13055 to vec<rtx_insn *>.
13056 (make_defs_and_copies_lists): Strengthen param "extend_insn" and
13057 local "def_insn" from rtx to rtx_insn *.
13058 (get_sub_rtx): Likewise for param "def_insn".
13059 (merge_def_and_ext): Likewise.
13060 (combine_reaching_defs): Likewise.
13061 (add_removable_extension): Likewise for param "insn".
13062 (find_removable_extensions): Likewise for local "insn".
13063 (find_and_remove_re): Likewise for locals "curr_insn" and
13064 "def_insn". Strengthen locals "reinsn_del_list" and
13065 "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
13066
13067 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13068
13069 * recog.c (split_insn): Strengthen param "insn" and locals
13070 "first", "last" from rtx to rtx_insn *.
13071 (split_all_insns): Likewise for locals "insn", "next".
13072 (split_all_insns_noflow): Likewise.
13073
13074 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13075
13076 * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
13077 const rtx_insn *.
13078 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
13079 (debug_rtx_find): Likewise for param 1 "x".
13080
13081 * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
13082 const_rtx to const rtx_insn *. Likewise for local "insn".
13083 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
13084 (debug_rtx_find): Likewise for param 1 "x".
13085 (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
13086 from const_rtx to const rtx_insn * within the appropriate cases of
13087 the switch statement.
13088
13089 * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
13090 Strengthen local "insns" from rtx to rtx_insn * since this is
13091 passed to a call to debug_rtx_list.
13092
13093 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13094
13095 * predict.h (predict_insn_def): Strengthen param "insn" from rtx
13096 to rtx_insn *.
13097
13098 * function.c (stack_protect_epilogue): Add checked cast to
13099 rtx_insn for now when invoking predict_insn_def.
13100
13101 * predict.c (predict_insn): Strengthen param "insn" from rtx to
13102 rtx_insn *.
13103 (predict_insn_def): Likewise.
13104 (rtl_predict_edge): Likewise for local "last_insn".
13105 (can_predict_insn_p): Strengthen param "insn" from const_rtx to
13106 const rtx_insn *.
13107 (combine_predictions_for_insn): Strengthen param "insn" from rtx
13108 to rtx_insn *.
13109 (bb_estimate_probability_locally): Likewise for local "last_insn".
13110 (expensive_function_p): Likewise for local "insn".
13111
13112 * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
13113 local "jmp", since this is used when invoking predict_insn_def.
13114
13115 2014-08-22 Marek Polacek <polacek@redhat.com>
13116
13117 PR c++/62199
13118 * doc/invoke.texi: Update -Wlogical-not-parentheses description.
13119
13120 2014-08-22 Marek Polacek <polacek@redhat.com>
13121
13122 PR c/61271
13123 * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
13124 a comparison in parens.
13125 * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
13126 in parens.
13127
13128 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13129
13130 * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
13131 rtx_insn *.
13132
13133 * cprop.c (fis_get_condition): Likewise.
13134
13135 * postreload.c (reload_cse_regs): Likewise for param "first".
13136 (reload_cse_simplify): Likewise for param "insn".
13137 (reload_cse_regs_1): Likewise for local "insn".
13138 (reload_cse_simplify_set): Likewise for param "insn".
13139 (reload_cse_simplify_operands): Likewise.
13140 (struct reg_use): Likewise for field "insn".
13141 (reload_combine_purge_insn_uses): Likewise for param "insn".
13142 (fixup_debug_insns): Likewise for params "from", "to" and local
13143 "insn".
13144 (try_replace_in_use): Likewise for local "use_insn".
13145 (reload_combine_recognize_const_pattern): Likewise for param
13146 "insn" and locals "add_moved_after_insn", "use_insn".
13147 (reload_combine_recognize_pattern): Likewise for param "insn" and
13148 local "prev".
13149 (reload_combine): Likewise for locals "insn", "prev".
13150 (reload_combine_note_use): Likewise for param "insn".
13151 (move2add_use_add2_insn): Likewise.
13152 (move2add_use_add3_insn): Likewise.
13153 (reload_cse_move2add): Likewise, also for local "next".
13154 (move2add_note_store): Likewise for local "insn".
13155
13156 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13157
13158 * postreload-gcse.c (struct occr): Strengthen field "insn" from
13159 rtx to rtx_insn *.
13160 (struct unoccr): Likewise.
13161 (struct modifies_mem): Likewise.
13162 (alloc_mem): Likewise for local "insn".
13163 (insert_expr_in_table): Likewise for param "insn".
13164 (dump_expr_hash_table_entry): Likewise for local "insn".
13165 (oprs_unchanged_p): Likewise for param "insn".
13166 (load_killed_in_block_p): Likewise for local "setter".
13167 (record_last_reg_set_info): Likewise for param "insn".
13168 (record_last_reg_set_info_regno): Likewise.
13169 (record_last_mem_set_info): Likewise.
13170 (record_last_set_info): Likewise for local "last_set_insn".
13171 (record_opr_changes): Likewise for param "insn".
13172 (hash_scan_set): Likewise.
13173 (compute_hash_table): Likewise for local "insn".
13174 (get_avail_load_store_reg): Likewise for param "insn".
13175 (eliminate_partially_redundant_load): Likewise, also for locals
13176 "avail_insn", "next_pred_bb_end". Replace use of NULL_RTX with
13177 RTX for insns.
13178 (eliminate_partially_redundant_loads): Likewise for local "insn".
13179
13180 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13181
13182 * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
13183 rtx to rtx_insn *.
13184 (expand_binop): Likewise for locals "entry_last", "last", "insns"
13185 (expand_twoval_unop): Likewise for locals entry_last", "last".
13186 (expand_twoval_binop): Likewise.
13187 (expand_twoval_binop_libfunc): Likewise for local "insns".
13188 (widen_leading): Likewise for local "last".
13189 (expand_doubleword_clz): Likewise for local "seq". Strengthen
13190 locals "hi0_label", "after_label" from rtx to rtx_code_label *.
13191 (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
13192 (expand_parity): Likewise for locals "last" and "seq".
13193 (expand_ffs): Likewise for local "seq". Strengthen local
13194 "nonzero_label" from rtx to rtx_code_label *.
13195 (expand_absneg_bit): Strengthen local "insns" from rtx to
13196 rtx_insn *.
13197 (expand_unop_direct): Likewise for local "last".
13198 (expand_unop): Likewise for locals "last", "insns".
13199 (expand_abs_nojump): Likewise for local "last".
13200 (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
13201 (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
13202 rtx_insn *.
13203 (expand_copysign_absneg): Strengthen local "label" from rtx to
13204 rtx_code_label *.
13205 (expand_copysign_bit): Strengthen local "insns" from rtx to
13206 rtx_insn *.
13207 (struct no_conflict_data): Likewise for fields "first", "insn".
13208 (emit_libcall_block_1): Likewise for param "insns" and locals
13209 "next", "last", "insn".
13210 (emit_libcall_block): For now, add a checked cast to rtx_insn *
13211 on "insns" when invoking emit_libcall_block_1. Ultimately we
13212 want to strengthen insns itself.
13213 (prepare_cmp_insn): Strengthen local "last" from rtx to
13214 rtx_insn *.
13215 (emit_cmp_and_jump_insn_1): Likewise for local "insn".
13216 (prepare_float_lib_cmp): Likewise for local "insns".
13217 (emit_conditional_move): Likewise for local "last".
13218 (emit_conditional_add): Likewise.
13219 (have_sub2_insn): Likewise for local "seq".
13220 (expand_float): Likewise for local "insns". Strengthen locals
13221 "label", "neglabel" from rtx to rtx_code_label *.
13222 (expand_fix): Likewise for locals "last", "insn", "insns" (to
13223 rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
13224 (expand_fixed_convert): Likewise for local "insns" (to
13225 rtx_insn *).
13226 (expand_sfix_optab): Likewise for local "last".
13227 (expand_compare_and_swap_loop): Strengthen local "label" from rtx
13228 to rtx_code_label *.
13229 (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
13230 from rtx to rtx_insn *.
13231 (expand_atomic_fetch_op): Likewise for local "insn".
13232 (maybe_legitimize_operand_same_code): Likewise for local "last".
13233 (maybe_legitimize_operands): Likewise.
13234
13235 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13236
13237 * modulo-sched.c (struct ps_reg_move_info): Strengthen field
13238 "insn" from rtx to rtx_insn *.
13239 (ps_rtl_insn): Likewise for return type.
13240 (doloop_register_get): Likewise for params "head", "tail" and
13241 locals "insn", "first_insn_not_to_check".
13242 (schedule_reg_move): Likewise for local "this_insn".
13243 (schedule_reg_moves): Add a checked cast to rtx_insn * to result
13244 of gen_move_insn for now.
13245 (reset_sched_times): Strengthen local "insn" from rtx to
13246 rtx_insn *.
13247 (permute_partial_schedule): Likewise.
13248 (duplicate_insns_of_cycles): Likewise for local "u_insn".
13249 (dump_insn_location): Likewise for param "insn".
13250 (loop_canon_p): Likewise for local "insn".
13251 (sms_schedule): Likewise.
13252 (print_partial_schedule): Likewise.
13253 (ps_has_conflicts): Likewise.
13254
13255 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13256
13257 * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
13258 "tailp" from rtx * to rtx_insn **.
13259
13260 * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
13261 from rtx to rtx_insn *.
13262 * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
13263 "tailp" from rtx * to rtx_insn **. Strengthen locals "beg_head",
13264 "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
13265 rtx to rtx_insn *.
13266 * modulo-sched.c (const_iteration_count): Strengthen return type
13267 and locals "insn", "head", "tail" from rtx to rtx_insn *. Replace
13268 use of NULL_RTX with NULL when working with insns.
13269 (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
13270 to rtx_insn *.
13271 (sms_schedule): Likewise.
13272 * sched-rgn.c (init_ready_list): Likewise, also for locals
13273 "src_head" and "src_next_tail".
13274 (compute_block_dependences): Likewise.
13275 (free_block_dependencies): Likewise.
13276 (debug_rgn_dependencies): Likewise.
13277 (free_rgn_deps): Likewise.
13278 (compute_priorities): Likewise.
13279 (schedule_region): Likewise.
13280 * sel-sched.c (find_ebb_boundaries): Likewise.
13281
13282 * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
13283 "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
13284
13285 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13286
13287 * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
13288 from rtx to rtx_insn *.
13289 (new_seginfo): Likewise for param "insn".
13290 (create_pre_exit): Likewise for locals "last_insn",
13291 "before_return_copy", "return_copy".
13292 (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
13293 "mode_set".
13294
13295 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13296
13297 * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
13298 from rtx to rtx_insn *.
13299 (lra_push_insn): Likewise for 1st param.
13300 (lra_push_insn_and_update_insn_regno_info): Likewise.
13301 (lra_pop_insn): Likewise for return type.
13302 (lra_invalidate_insn_data): Likewise for 1st param.
13303 (lra_set_insn_deleted): Likewise.
13304 (lra_delete_dead_insn): Likewise.
13305 (lra_process_new_insns): Likewise for first 3 params.
13306 (lra_set_insn_recog_data): Likewise for 1st param.
13307 (lra_update_insn_recog_data): Likewise.
13308 (lra_set_used_insn_alternative): Likewise.
13309 (lra_invalidate_insn_regno_info): Likewise.
13310 (lra_update_insn_regno_info): Likewise.
13311 (lra_former_scratch_operand_p): Likewise.
13312 (lra_eliminate_regs_1): Likewise.
13313 (lra_get_insn_recog_data): Likewise.
13314
13315 * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
13316 rtx to rtx_insn *.
13317
13318 * lra-coalesce.c (move_freq_compare_func): Likewise for locals
13319 "mv1" and "mv2".
13320 (substitute_within_insn): New.
13321 (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
13322 rtx_insn *. Strengthen sorted_moves from rtx * to rxt_insn **.
13323 Replace call to "substitute" with call to substitute_within_insn.
13324
13325 * lra-constraints.c (curr_insn): Strengthen from rtx to
13326 rtx_insn *.
13327 (get_equiv_with_elimination): Likewise for param "insn".
13328 (match_reload): Strengthen params "before" and "after" from rtx *
13329 to rtx_insn **.
13330 (emit_spill_move): Likewise for return type. Add a checked cast
13331 to rtx_insn * on result of gen_move_insn for now.
13332 (check_and_process_move): Likewise for local "before". Replace
13333 NULL_RTX with NULL when referring to insns.
13334 (process_addr_reg): Strengthen params "before" and "after" from
13335 rtx * to rtx_insn **.
13336 (insert_move_for_subreg): Likewise.
13337 (simplify_operand_subreg): Strengthen locals "before" and "after"
13338 from rtx to rtx_insn *.
13339 (process_address_1): Strengthen params "before" and "after" from
13340 rtx * to rtx_insn **. Strengthen locals "insns", "last_insn" from
13341 rtx to rtx_insn *.
13342 (process_address): Strengthen params "before" and "after" from
13343 rtx * to rtx_insn **.
13344 (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
13345 (curr_insn_transform): Strengthen locals "before" and "after"
13346 from rtx to rtx_insn *. Replace NULL_RTX with NULL when referring
13347 to insns.
13348 (loc_equivalence_callback): Update cast of "data", changing
13349 resulting type from rtx to rtx_insn *.
13350 (substitute_pseudo_within_insn): New.
13351 (inherit_reload_reg): Strengthen param "insn" from rtx to
13352 rtx_insn *; likewise for local "new_insns". Replace NULL_RTX with
13353 NULL when referring to insns. Add a checked cast to rtx_insn *
13354 when using usage_insn to invoke lra_update_insn_regno_info.
13355 (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
13356 likewise for locals "restore", "save". Add checked casts to
13357 rtx_insn * when using usage_insn to invoke
13358 lra_update_insn_regno_info and lra_process_new_insns. Replace
13359 NULL_RTX with NULL when referring to insns.
13360 (split_if_necessary): Strengthen param "insn" from rtx to
13361 rtx_insn *.
13362 (update_ebb_live_info): Likewise for params "head", "tail" and local
13363 "prev_insn".
13364 (get_last_insertion_point): Likewise for return type and local "insn".
13365 (get_live_on_other_edges): Likewise for local "last".
13366 (inherit_in_ebb): Likewise for params "head", "tail" and locals
13367 "prev_insn", "next_insn", "restore".
13368 (remove_inheritance_pseudos): Likewise for local "prev_insn".
13369 (undo_optional_reloads): Likewise for local "insn".
13370
13371 * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
13372 "insn".
13373 (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
13374 insns.
13375 (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
13376 rtx_insn *.
13377 (spill_pseudos): Likewise for local "insn".
13378 (init_elimination): Likewise.
13379 (process_insn_for_elimination): Likewise for param "insn".
13380
13381 * lra-lives.c (curr_insn): Likewise.;
13382
13383 * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
13384 (remove_pseudos): Likewise for param "insn".
13385 (spill_pseudos): Likewise for local "insn".
13386 (lra_final_code_change): Likewise for locals "insn", "curr".
13387
13388 * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
13389 (lra_set_insn_deleted): Likewise.
13390 (lra_delete_dead_insn): Likewise, and for local "prev".
13391 (new_insn_reg): Likewise for param "insn".
13392 (lra_set_insn_recog_data): Likewise.
13393 (lra_update_insn_recog_data): Likewise.
13394 (lra_set_used_insn_alternative): Likewise.
13395 (get_insn_freq): Likewise.
13396 (invalidate_insn_data_regno_info): Likewise.
13397 (lra_invalidate_insn_regno_info): Likewise.
13398 (lra_update_insn_regno_info): Likewise.
13399 (lra_constraint_insn_stack): Strengthen from vec<rtx> to
13400 vec<rtx_insn *>.
13401 (lra_push_insn_1): Strengthen param "insn" from rtx to
13402 rtx_insn *.
13403 (lra_push_insn): Likewise.
13404 (lra_push_insn_and_update_insn_regno_info): Likewise.
13405 (lra_pop_insn): Likewise for return type and local "insn".
13406 (push_insns): Likewise for params "from", "to", and local "insn".
13407 (setup_sp_offset): Likewise for params "from", "last" and locals
13408 "before", "insn".
13409 (lra_process_new_insns): Likewise for params "insn", "before",
13410 "after" and local "last".
13411 (struct sloc): Likewise for field "insn".
13412 (lra_former_scratch_operand_p): Likewise for param "insn".
13413 (remove_scratches): Likewise for locals "insn", "last".
13414 (check_rtl): Likewise for local "insn".
13415 (add_auto_inc_notes): Likewise for param "insn".
13416 (update_inc_notes): Likewise for local "insn".
13417 (lra): Replace NULL_RTX with NULL when referring to insn.
13418
13419 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13420
13421 * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
13422 to rtx_insn *.
13423 (resolve_reg_notes): Likewise.
13424 (resolve_simple_move): Likewise for return type, param "insn", and
13425 locals "insns", "minsn".
13426 (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
13427 (resolve_use): Likewise.
13428 (resolve_debug): Likewise.
13429 (find_decomposable_shift_zext): Likewise.
13430 (resolve_shift_zext): Likewise for return type, param "insn", and
13431 locals "insns", "in". Eliminate use of NULL_RTX in favor of NULL.
13432 (decompose_multiword_subregs): Likewise for local "insn",
13433 "orig_insn", "decomposed_shift", "end".
13434
13435 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13436
13437 * basic-block.h (basic_block split_edge_and_insert): Strengthen
13438 param "insns" from rtx to rtx_insn *.
13439
13440 * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
13441 rtx to rtx_insn *.
13442 (struct iv_to_split): Likewise.
13443 (loop_exit_at_end_p): Likewise for local "insn".
13444 (split_edge_and_insert): Likewise for param "insns".
13445 (compare_and_jump_seq): Likewise for return type, param "cinsn",
13446 and locals "seq", "jump".
13447 (unroll_loop_runtime_iterations): Likewise for locals "init_code",
13448 "branch_code"; update invocations of compare_and_jump_seq to
13449 eliminate NULL_RTX in favor of NULL.
13450 (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
13451 rtx to rtx_insn *.
13452 (reset_debug_uses_in_loop): Likewise.
13453 (analyze_insn_to_expand_var): Likewise for param "insn".
13454 (analyze_iv_to_split_insn): Likewise.
13455 (analyze_insns_in_loop): Likewise for local "insn".
13456 (insert_base_initialization): Likewise for param
13457 "insn" and local "seq".
13458 (split_iv): Likewise for param "insn" and local "seq".
13459 (expand_var_during_unrolling): Likewise for param "insn".
13460 (insert_var_expansion_initialization): Likewise for local "seq".
13461 (combine_var_copies_in_loop_exit): Likewise.
13462 (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
13463 "insn".
13464 (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
13465 (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
13466 "next".
13467
13468 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13469
13470 * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
13471 rtx_insn *.
13472 (iv_analyze_result): Likewise.
13473 (iv_analyze_expr): Likewise.
13474 (biv_p): Likewise.
13475
13476 * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
13477 local "def_insn" from rtx to rtx_insn *.
13478 (get_biv_step_1): Likewise for local "insn".
13479 (iv_analyze_expr): Likewise for param "insn".
13480 (iv_analyze_def): Likewise for local "insn".
13481 (iv_analyze_op): Likewise for param "insn".
13482 (iv_analyze): Likewise.
13483 (iv_analyze_result): Likewise.
13484 (biv_p): Likewise.
13485 (suitable_set_for_replacement): Likewise.
13486 (simplify_using_initial_values): Likewise for local "insn".
13487 (iv_number_of_iterations): Likewise for param "insn".
13488 (check_simple_exit): Add checked cast to rtx_insn when invoking
13489 iv_number_of_iterations for now (until get_condition is
13490 strengthened).
13491
13492 * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
13493 "insn" from rtx to rtx_insn *.
13494 (analyze_insns_in_loop): Likewise for local "insn".
13495
13496 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13497
13498 * loop-invariant.c (struct use): Strengthen field "insn" from rtx
13499 to rtx_insn *.
13500 (struct invariant): Likewise.
13501 (hash_invariant_expr_1): Likewise for param "insn".
13502 (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
13503 (find_exits): Likewise for local "insn".
13504 (create_new_invariant): Likewise for param "insn".
13505 (check_dependencies): Likewise.
13506 (find_invariant_insn): Likewise.
13507 (record_uses): Likewise.
13508 (find_invariants_insn): Likewise.
13509 (find_invariants_bb): Likewise for local "insn".
13510 (get_pressure_class_and_nregs): Likewise for param "insn".
13511 (calculate_loop_reg_pressure): Likewise for local "insn".
13512
13513 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13514
13515 * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
13516 to rtx_insn *.
13517 (add_test): Likewise for locals "seq", "jump".
13518 (doloop_modify): Likewise for locals "sequence", "jump_insn".
13519
13520 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13521
13522 * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
13523 rtx_insn *.
13524 (rebuild_jump_labels_chain): Likewise for param "chain".
13525
13526 * cfgexpand.c (pass_expand::execute): Add checked cast to
13527 rtx_insn * when calling rebuild_jump_labels_chain in region where
13528 we know e->insns.r is non-NULL.
13529
13530 * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
13531 rtx_insn *.
13532 (rebuild_jump_labels): Likewise.
13533 (rebuild_jump_labels_chain): Likewise for param "chain".
13534 (cleanup_barriers): Likewise for locals "insn", "next", "prev".
13535 (init_label_info): Likewise for param "f".
13536 (maybe_propagate_label_ref): Likewise for params "jump_insn",
13537 "prev_nonjump_insn".
13538 (mark_all_labels): Likewise for param "f" and locals "insn",
13539 "prev_nonjump_insn".
13540
13541 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13542
13543 * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
13544 from rtx to rtx_insn *insn.
13545 (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
13546 (ira_add_allocno_copy): Likewise.
13547 * ira-build.c (find_allocno_copy): Strengthen param "insn" from
13548 rtx to rtx_insn *.
13549 (ira_create_copy): Likewise.
13550 (ira_add_allocno_copy): Likewise.
13551 (create_bb_allocnos): Likewise for local "insn".
13552 * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
13553 (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
13554 process_regs_for_copy for rtx_insn * param.
13555 (add_insn_allocno_copies): Strengthen param "insn" from rtx to
13556 rtx_insn *insn. Update NULL_RTX to NULL in invocation of
13557 process_regs_for_copy for rtx_insn * param.
13558 (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
13559 * ira-costs.c (record_reg_classes): Likewise for param "insn".
13560 (record_operand_costs): Likewise.
13561 (scan_one_insn): Likewise for return type, and for param "insn".
13562 (process_bb_for_costs): Likewise for local "insn".
13563 (process_bb_node_for_hard_reg_moves): Likewise.
13564 * ira-emit.c (struct move): Likewise for field "insn".
13565 (create_move): Eliminate use of NULL_RTX when dealing with an
13566 rtx_insn *.
13567 (emit_move_list): Strengthen return type and locals "result",
13568 "insn" from rtx to rtx_insn *insn.
13569 (emit_moves): Likewise for locals "insns", "tmp".
13570 (ira_emit): Likewise for local "insn".
13571 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
13572 "insn".
13573 (find_call_crossed_cheap_reg): Likewise.
13574 (process_bb_node_lives): Likewise for local "insn".
13575 * ira.c (decrease_live_ranges_number): Likewise.
13576 (compute_regs_asm_clobbered): Likewise.
13577 (build_insn_chain): Likewise.
13578 (find_moveable_pseudos): Likewise, also locals "def_insn",
13579 "use_insn", "x". Also strengthen local "closest_uses" from rtx *
13580 to rtx_insn **. Add a checked cast when assigning from
13581 "closest_use" into closest_uses array in a region where we know
13582 it's a non-NULL insn.
13583 (interesting_dest_for_shprep): Strengthen param "insn" from rtx
13584 to rtx_insn *.
13585 (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
13586 "last_interesting_insn", "uin".
13587 (move_unallocated_pseudos): Likewise for locals "def_insn",
13588 "move_insn", "newinsn".
13589
13590 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13591
13592 * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
13593 Strengthen locals "done_label", "do_error" from rtx to
13594 rtx_code_label *.
13595 (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
13596 from rtx to rtx_insn *. Strengthen local "sub_check from rtx to
13597 rtx_code_label *.
13598 (ubsan_expand_si_overflow_neg_check): Likewise for locals
13599 "done_label", "do_error" to rtx_code_label * and local "last" to
13600 rtx_insn *.
13601 (ubsan_expand_si_overflow_mul_check): Likewise for locals
13602 "done_label", "do_error", "large_op0", "small_op0_large_op1",
13603 "one_small_one_large", "both_ops_large", "after_hipart_neg",
13604 "after_lopart_neg", "do_overflow", "hipart_different" to
13605 rtx_code_label * and local "last" to rtx_insn *.
13606
13607 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13608
13609 * init-regs.c (initialize_uninitialized_regs): Strengthen locals
13610 "insn" and "move_insn" from rtx to rtx_insn *.
13611
13612 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13613
13614 * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
13615 rtx_insn *.
13616 (cheap_bb_rtx_cost_p): Likewise.
13617 (first_active_insn): Likewise for return type and local "insn".
13618 (last_active_insn): Likewise for return type and locals "insn",
13619 "head".
13620 (struct noce_if_info): Likewise for fields "jump", "insn_a",
13621 "insn_b".
13622 (end_ifcvt_sequence): Likewise for return type and locals "insn",
13623 "seq".
13624 (noce_try_move): Likewise for local "seq".
13625 (noce_try_store_flag): Likewise.
13626 (noce_try_store_flag_constants): Likewise.
13627 (noce_try_addcc): Likewise.
13628 (noce_try_store_flag_mask): Likewise.
13629 (noce_try_cmove): Likewise.
13630 (noce_try_minmax): Likewise.
13631 (noce_try_abs): Likewise.
13632 (noce_try_sign_mask): Likewise.
13633 (noce_try_bitop): Likewise.
13634 (noce_can_store_speculate_p): Likewise for local "insn".
13635 (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
13636 seq".
13637 (check_cond_move_block): Likewise for local "insn".
13638 (cond_move_convert_if_block): Likewise.
13639 (cond_move_process_if_block): Likewise for locals "seq",
13640 "loc_insn".
13641 (noce_find_if_block): Likewise for local "jump".
13642 (merge_if_block): Likewise for local "last".
13643 (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
13644 (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
13645 (block_has_only_trap): Likewise for return type and local "trap".
13646 (find_if_case_1): Likewise for local "jump".
13647 (dead_or_predicable): Likewise for locals "head", "end", "jump",
13648 "insn".
13649
13650 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13651
13652 * hw-doloop.h (struct hwloop_info_d): Strengthen fields
13653 "last_insn", "loop_end" from rtx to rtx_insn *.
13654
13655 * hw-doloop.c (scan_loop): Likewise for local "insn".
13656 (discover_loop): Likewise for param "tail_insn".
13657 (discover_loops): Likewise for local "tail".
13658
13659 * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
13660 cast to rtx_insn * when assigning from an rtx local to a
13661 hwloop_info's "last_insn" field.
13662
13663 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13664
13665 * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
13666 (add_delay_dependencies): Strengthen local "pro" from rtx to
13667 rtx_insn *.
13668 (recompute_todo_spec): Likewise.
13669 (dep_cost_1): Likewise for locals "insn", "used".
13670 (schedule_insn): Likewise for local "dbg".
13671 (schedule_insn): Likewise for locals "pro", "next".
13672 (unschedule_insns_until): Likewise for local "con".
13673 (restore_pattern): Likewise for local "next".
13674 (estimate_insn_tick): Likewise for local "pro".
13675 (resolve_dependencies): Likewise for local "next".
13676 (fix_inter_tick): Likewise.
13677 (fix_tick_ready): Likewise for local "pro".
13678 (add_to_speculative_block): Likewise for locals "check", "twin",
13679 "pro".
13680 (sched_extend_bb): Likewise for locals "end", "insn".
13681 (init_before_recovery): Likewise for local "x".
13682 (sched_create_recovery_block): Likewise for local "barrier".
13683 (create_check_block_twin): Likewise for local "pro".
13684 (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
13685 "consumer".
13686 (unlink_bb_notes): Update for change to type of bb_header.
13687 Strengthen locals "prev", "label", "note", "next" from rtx to
13688 rtx_insn *.
13689 (clear_priorities): Likewise for local "pro".
13690
13691 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13692
13693 * gcse.c (struct occr): Strengthen field "insn" from rtx to
13694 rtx_insn *.
13695 (test_insn): Likewise for this global.
13696 (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
13697 const rtx_insn *.
13698 (oprs_anticipatable_p): Likewise.
13699 (oprs_available_p): Likewise.
13700 (insert_expr_in_table): Strengthen param "insn" from rtx to
13701 rtx_insn *.
13702 (hash_scan_set): Likewise.
13703 (hash_scan_clobber): Likewise.
13704 (hash_scan_call): Likewise.
13705 (hash_scan_insn): Likewise.
13706 (compute_hash_table_work): Likewise for local "insn".
13707 (process_insert_insn): Likewise for return type and local "pat".
13708 (insert_insn_end_basic_block): Likewise for locals "new_insn",
13709 "pat", "pat_end", "maybe_cc0_setter".
13710 (pre_edge_insert): Likewise for local "insn".
13711 (pre_insert_copy_insn): Likewise for param "insn".
13712 (pre_insert_copies): Likewise for local "insn".
13713 (struct set_data): Likewise for field "insn".
13714 (single_set_gcse): Likewise for param "insn".
13715 (gcse_emit_move_after): Likewise.
13716 (pre_delete): Likewise for local "insn".
13717 (update_bb_reg_pressure): Likewise for param "from" and local
13718 "insn".
13719 (should_hoist_expr_to_dom): Likewise for param "from".
13720 (hoist_code): Likewise for local "insn".
13721 (get_pressure_class_and_nregs): Likewise for param "insn".
13722 (calculate_bb_reg_pressure): Likewise for local "insn".
13723 (compute_ld_motion_mems): Likewise.
13724
13725 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13726
13727 * genpeep.c (main): Rename param back from "uncast_ins1" to
13728 "ins1", strengthening from rtx to rtx_insn *. Drop now-redundant
13729 checked cast.
13730
13731 * output.h (peephole): Strengthen param from rtx to rtx_insn *.
13732
13733 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
13734
13735 PR target/62195
13736 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
13737 documentation to state it is only for VSX operations.
13738
13739 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
13740 constraint only active if VSX.
13741
13742 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
13743 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
13744 (lfiwzx): Likewise.
13745
13746 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13747
13748 * fwprop.c (single_def_use_dom_walker::before_dom_children):
13749 Strengthen local "insn" from rtx to rtx_insn *.
13750 (use_killed_between): Likewise for param "target_insn".
13751 (all_uses_available_at): Likewise for param "target_insn" and
13752 local "next".
13753 (update_df_init): Likewise for params "def_insn", "insn".
13754 (update_df): Likewise for param "insn".
13755 (try_fwprop_subst): Likewise for param "def_insn" and local
13756 "insn".
13757 (free_load_extend): Likewise for param "insn".
13758 (forward_propagate_subreg): Likewise for param "def_insn" and
13759 local "use_insn".
13760 (forward_propagate_asm): Likewise for param "def_insn" and local
13761 "use_insn".
13762 (forward_propagate_and_simplify): Likewise for param "def_insn"
13763 and local "use_insn".
13764 (forward_propagate_into): Likewise for locals "def_insn" and
13765 "use_insn".
13766
13767 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13768
13769 * function.c (emit_initial_value_sets): Strengthen local "seq"
13770 from rtx to rtx_insn *.
13771 (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
13772 local "seq".
13773 (instantiate_virtual_regs): Likewise for local "insn".
13774 (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
13775 (reorder_blocks_1): Likewise for param "insns" and local "insn".
13776 (expand_function_end): Likewise for locals "insn" and "seq".
13777 (epilogue_done): Likewise for local "insn".
13778 (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
13779 "last", "trial".
13780 (reposition_prologue_and_epilogue_notes): Likewise for locals
13781 "insn", "last", "note", "first".
13782 (match_asm_constraints_1): Likewise for param "insn" and local "insns".
13783 (pass_match_asm_constraints::execute): Likewise for local "insn".
13784
13785 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13786
13787 * output.h (final_scan_insn): Strengthen return type from rtx to
13788 rtx_insn *.
13789 (final_forward_branch_p): Likewise for param.
13790 (current_output_insn): Likewise for this global.
13791
13792 * final.c (rtx debug_insn): Likewise for this variable.
13793 (current_output_insn): Likewise.
13794 (get_attr_length_1): Rename param "insn" to "uncast_insn",
13795 adding "insn" back in as an rtx_insn * with a checked cast, so
13796 that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
13797 first param.
13798 (compute_alignments): Strengthen local "label" from rtx to
13799 rtx_insn *.
13800 (shorten_branches): Rename param from "first" to "uncast_first",
13801 introducing a new local rtx_insn * "first" using a checked cast to
13802 effectively strengthen "first" from rtx to rtx_insn * without
13803 affecting the type signature. Strengthen locals "insn", "seq",
13804 "next", "label" from rtx to rtx_insn *.
13805 (change_scope): Strengthen param "orig_insn" and local "insn" from
13806 rtx to rtx_insn *.
13807 (final_start_function): Rename param from "first" to "uncast_first",
13808 introducing a new local rtx_insn * "first" using a checked cast to
13809 effectively strengthen "first" from rtx to rtx_insn * without
13810 affecting the type signature. Strengthen local "insn" from rtx to
13811 rtx_insn *.
13812 (dump_basic_block_info): Strengthen param "insn" from rtx to
13813 rtx_insn *.
13814 (final): Rename param from "first" to "uncast_first",
13815 introducing a new local rtx_insn * "first" using a checked cast to
13816 effectively strengthen "first" from rtx to rtx_insn * without
13817 affecting the type signature. Strengthen locals "insn", "next"
13818 from rtx to rtx_insn *.
13819 (output_alternate_entry_point): Strengthen param "insn" from rtx to
13820 rtx_insn *.
13821 (call_from_call_insn): Strengthen param "insn" from rtx to
13822 rtx_call_insn *.
13823 (final_scan_insn): Rename param from "insn" to "uncast_insn",
13824 introducing a new local rtx_insn * "insn" using a checked cast to
13825 effectively strengthen "insn" from rtx to rtx_insn * without
13826 affecting the type signature. Strengthen return type and locals
13827 "next", "note", "prev", "new_rtx" from rtx to rtx_insn *. Remove
13828 now-redundant checked cast to rtx_insn * from both invocations of
13829 debug_hooks->var_location. Convert CALL_P into a dyn_cast,
13830 introducing a local "call_insn" for use when invoking
13831 call_from_call_insn.
13832 (notice_source_line): Strengthen param "insn" from rtx to
13833 rtx_insn *.
13834 (leaf_function_p): Likewise for local "insn".
13835 (final_forward_branch_p): Likewise.
13836 (leaf_renumber_regs): Likewise for param "first".
13837 (rest_of_clean_state): Likewise for locals "insn" and "next".
13838 (self_recursive_call_p): Likewise for param "insn".
13839 (collect_fn_hard_reg_usage): Likewise for local "insn".
13840 (get_call_fndecl): Likewise for param "insn".
13841 (get_call_cgraph_rtl_info): Likewise.
13842 (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
13843 introducing a new local rtx_insn * "insn" using a checked cast to
13844 effectively strengthen "insn" from rtx to rtx_insn * without
13845 affecting the type signature.
13846
13847 * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
13848 cast when assigning from param "insn" to current_output_insn.
13849 (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
13850 so that we can assign it back to current_output_insn.
13851
13852 2014-08-20 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13853
13854 * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
13855 atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
13856 atmxt540s and atmxt540sreva devices.
13857 * config/avr/avr-tables.opt: Regenerate.
13858 * config/avr/t-multilib: Regenerate.
13859 * doc/avr-mmcu.texi: Regenerate.
13860
13861 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13862
13863 * expr.c (convert_move): Strengthen local "insns" from rtx to
13864 rtx_insn *.
13865 (emit_block_move_via_loop): Strengthen locals "cmp_label" and
13866 "top_label" from rtx to rtx_code_label *.
13867 (move_block_to_reg): Strengthen local "insn", "last" from rtx to
13868 rtx_insn *.
13869 (emit_single_push_insn): Likewise for locals "prev", "last".
13870 (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
13871 to rtx_code_label *.
13872 (store_constructor): Likewise for locals "loop_start", "loop_end".
13873 (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
13874 rtx_insn *.
13875 (expand_expr_real_2): Likewise.
13876 (expand_expr_real_1): Strengthen local "label" from rtx to
13877 rtx_code_label *.
13878
13879 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13880
13881 * expmed.c (store_bit_field_using_insv): Strengthen local "last"
13882 from rtx to rtx_insn *.
13883 (store_bit_field_1): Likewise.
13884 (extract_bit_field_1): Likewise.
13885 (expand_mult_const): Likewise for local "insns".
13886 (expmed_mult_highpart): Strengthen local "label" from rtx to
13887 rtx_code_label *.
13888 (expand_smod_pow2): Likewise.
13889 (expand_sdiv_pow2): Likewise.
13890 (expand_divmod): Strengthen locals "last", "insn" from rtx to
13891 rtx_insn *. Strengthen locals "label", "label1", "label2",
13892 "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
13893 (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
13894 (emit_store_flag): Likewise.
13895 (emit_store_flag_force): Strengthen local "label" from rtx to
13896 rtx_code_label *.
13897 (do_cmp_and_jump): Likewise for param "label".
13898
13899 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13900
13901 * explow.c (force_reg): Strengthen local "insn" from rtx to
13902 rtx_insn *.
13903 (adjust_stack_1): Likewise.
13904 (allocate_dynamic_stack_space): Likewise. Strengthen locals
13905 "final_label", "available_label", "space_available" from rtx to
13906 rtx_code_label *.
13907 (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
13908 (anti_adjust_stack_and_probe): Likewise.
13909
13910 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13911
13912 * except.h (sjlj_emit_function_exit_after): Strengthen param
13913 "after" from rtx to rtx_insn *. This is only called with
13914 result of get_last_insn (in function.c) so type-change should be
13915 self-contained.
13916
13917 * function.h (struct rtl_eh): Strengthen field "ehr_label" from
13918 rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
13919 to rtx_insn *. These fields are only used from except.c so this
13920 type-change should be self-contained to this patch.
13921
13922 * except.c (emit_to_new_bb_before): Strengthen param "seq" and
13923 local "last" from rtx to rtx_insn *.
13924 (dw2_build_landing_pads): Likewise for local "seq".
13925 (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
13926 (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
13927 rtx to rtx_code_label *. Strengthen locals "fn_begin", "seq" from
13928 rtx to rtx_insn *.
13929 (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
13930 to rtx_insn *.
13931 (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
13932 (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
13933 (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
13934 referring to an insn. Strengthen local "dispatch_label" from
13935 rtx to rtx_code_label *.
13936 (set_nothrow_function_flags): Strengthen local "insn" from rtx to
13937 rtx_insn *.
13938 (expand_eh_return): Strengthen local "around_label" from
13939 rtx to rtx_code_label *.
13940 (convert_to_eh_region_ranges): Strengthen locals "iter",
13941 "last_action_insn", "first_no_action_insn",
13942 "first_no_action_insn_before_switch",
13943 "last_no_action_insn_before_switch", from rtx to rtx_insn *.
13944
13945 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13946
13947 * dwarf2out.c (last_var_location_insn): Strengthen this variable
13948 from rtx to rtx_insn *.
13949 (cached_next_real_insn): Likewise.
13950 (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
13951 working with insns.
13952 (dwarf2out_var_location): Strengthen locals "next_real",
13953 "next_note", "expected_next_loc_note", "last_start", "insn" from
13954 rtx to rtx_insn *.
13955
13956 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13957
13958 * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
13959 from rtx to rtx_insn *.
13960 (create_pseudo_cfg): Likewise for local "insn".
13961
13962 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13963
13964 * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
13965 from rtx to rtx_insn *.
13966 (df_bb_regno_last_def_find): Likewise.
13967
13968 * df-problems.c (df_rd_bb_local_compute): Likewise.
13969 (df_lr_bb_local_compute): Likewise.
13970 (df_live_bb_local_compute): Likewise.
13971 (df_chain_remove_problem): Likewise.
13972 (df_chain_create_bb): Likewise.
13973 (df_word_lr_bb_local_compute): Likewise.
13974 (df_remove_dead_eq_notes): Likewise for param "insn".
13975 (df_note_bb_compute): Likewise for local "insn".
13976 (simulate_backwards_to_point): Likewise.
13977 (df_md_bb_local_compute): Likewise.
13978
13979 * df-scan.c (df_scan_free_bb_info): Likewise.
13980 (df_scan_start_dump): Likewise.
13981 (df_scan_start_block): Likewise.
13982 (df_install_ref_incremental): Likewise for local "insn".
13983 (df_insn_rescan_all): Likewise.
13984 (df_reorganize_refs_by_reg_by_insn): Likewise.
13985 (df_reorganize_refs_by_insn_bb): Likewise.
13986 (df_recompute_luids): Likewise.
13987 (df_bb_refs_record): Likewise.
13988 (df_update_entry_exit_and_calls): Likewise.
13989 (df_bb_verify): Likewise.
13990
13991 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13992
13993 * ddg.h (struct ddg_node): Strengthen fields "insn" and
13994 "first_note" from rtx to rtx_insn *.
13995 (get_node_of_insn): Likewise for param 2 "insn".
13996 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13997
13998 * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
13999 rtx_insn *.
14000 (mem_write_insn_p): Likewise.
14001 (mem_access_insn_p): Likewise.
14002 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
14003 (def_has_ccmode_p): Likewise for param "insn".
14004 (add_cross_iteration_register_deps): Likewise for locals
14005 "def_insn" and "use_insn".
14006 (insns_may_alias_p): Likewise for params "insn1" and "insn2".
14007 (build_intra_loop_deps): Likewise for local "src_insn".
14008 (create_ddg): Strengthen locals "insn" and "first_note" from rtx
14009 to rtx_insn *.
14010 (get_node_of_insn): Likewise for param "insn".
14011
14012 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14013
14014 * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
14015 (deletable_insn_p): Strengthen param "insn" from rtx to
14016 rtx_insn *. Add checked cast to rtx_call_insn when invoking
14017 find_call_stack_args, since this is guarded by CALL_P (insn).
14018 (marked_insn_p): Strengthen param "insn" from rtx to
14019 rtx_insn *.
14020 (mark_insn): Likewise. Add checked cast to rtx_call_insn when
14021 invoking find_call_stack_args, since this is guarded by
14022 CALL_P (insn).
14023 (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
14024 rtx_insn *; we know this is an insn since this was called by
14025 mark_nonreg_stores.
14026 (mark_nonreg_stores_2): Likewise.
14027 (mark_nonreg_stores): Strengthen param "insn" from rtx to
14028 rtx_insn *.
14029 (find_call_stack_args): Strengthen param "call_insn" from rtx to
14030 rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
14031 to rtx_insn *.
14032 (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
14033 from rtx to rtx_insn *.
14034 (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
14035 "next", "ref_insn".
14036 (delete_unmarked_insns): Likewise for locals "insn", "next".
14037 (prescan_insns_for_dce): Likewise for locals "insn", "prev".
14038 (mark_reg_dependencies): Likewise for param "insn".
14039 (rest_of_handle_ud_dce): Likewise for local "insn".
14040 (word_dce_process_block): Likewise.
14041 (dce_process_block): Likewise.
14042
14043 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14044
14045 * cse.c (struct qty_table_elem): Strengthen field "const_insn"
14046 from rtx to rtx_insn *.
14047 (struct change_cc_mode_args): Likewise for field "insn".
14048 (this_insn): Strengthen from rtx to rtx_insn *.
14049 (make_new_qty): Replace use of NULL_RTX with NULL when dealing
14050 with insn.
14051 (validate_canon_reg): Strengthen param "insn" from rtx to
14052 rtx_insn *.
14053 (canon_reg): Likewise.
14054 (fold_rtx): Likewise. Replace use of NULL_RTX with NULL when
14055 dealing with insn.
14056 (record_jump_equiv): Strengthen param "insn" from rtx to
14057 rtx_insn *.
14058 (try_back_substitute_reg): Likewise, also for locals "prev",
14059 "bb_head".
14060 (find_sets_in_insn): Likewise for param "insn".
14061 (canonicalize_insn): Likewise.
14062 (cse_insn): Likewise. Add a checked cast.
14063 (invalidate_from_clobbers): Likewise for param "insn".
14064 (invalidate_from_sets_and_clobbers): Likewise.
14065 (cse_process_notes_1): Replace use of NULL_RTX with NULL when
14066 dealing with insn.
14067 (cse_prescan_path): Strengthen local "insn" from rtx to
14068 rtx_insn *.
14069 (cse_extended_basic_block): Likewise for locals "insn" and
14070 "prev_insn".
14071 (cse_main): Likewise for param "f".
14072 (check_for_label_ref): Likewise for local "insn".
14073 (set_live_p): Likewise for second param ("insn").
14074 (insn_live_p): Likewise for first param ("insn") and for local
14075 "next".
14076 (cse_change_cc_mode_insn): Likewise for first param "insn".
14077 (cse_change_cc_mode_insns): Likewise for first and second params
14078 "start" and "end".
14079 (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
14080 and "end".
14081 (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
14082 "cc_src_insn".
14083
14084 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
14085 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14086 Anna Tikhonova <anna.tikhonova@intel.com>
14087 Ilya Tocar <ilya.tocar@intel.com>
14088 Andrey Turetskiy <andrey.turetskiy@intel.com>
14089 Ilya Verbin <ilya.verbin@intel.com>
14090 Kirill Yukhin <kirill.yukhin@intel.com>
14091 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14092
14093 * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
14094 New.
14095 * config/i386/sse.md
14096 (define_mode_iterator VI248_AVX2): Delete.
14097 (define_mode_iterator VI2_AVX2_AVX512BW): New.
14098 (define_mode_iterator VI48_AVX2): Ditto.
14099 (define_insn <shift_insn><mode>3): Delete.
14100 (define_insn "<shift_insn><mode>3<mask_name>" with
14101 VI2_AVX2_AVX512BW): New.
14102 (define_insn "<shift_insn><mode>3<mask_name>" with
14103 VI48_AVX2): Ditto.
14104
14105 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
14106 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14107 Anna Tikhonova <anna.tikhonova@intel.com>
14108 Ilya Tocar <ilya.tocar@intel.com>
14109 Andrey Turetskiy <andrey.turetskiy@intel.com>
14110 Ilya Verbin <ilya.verbin@intel.com>
14111 Kirill Yukhin <kirill.yukhin@intel.com>
14112 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14113
14114 * config/i386/sse.md
14115 (define_mode_iterator VI4F_BRCST32x2): New.
14116 (define_mode_attr 64x2_mode): Ditto.
14117 (define_mode_attr 32x2mode): Ditto.
14118 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
14119 with VI4F_BRCST32x2): Ditto.
14120 (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
14121 with V16FI mode iterator): Ditto.
14122 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
14123 with V16FI): Ditto.
14124 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
14125 with VI8F_BRCST64x2): Ditto.
14126
14127 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
14128 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14129 Anna Tikhonova <anna.tikhonova@intel.com>
14130 Ilya Tocar <ilya.tocar@intel.com>
14131 Andrey Turetskiy <andrey.turetskiy@intel.com>
14132 Ilya Verbin <ilya.verbin@intel.com>
14133 Kirill Yukhin <kirill.yukhin@intel.com>
14134 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14135
14136 * config/i386/sse.md
14137 (define_mode_iterator VI8_AVX512VL): New.
14138 (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
14139
14140 2014-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
14141
14142 * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
14143 (define_mode_iterator V48_AVX512VL): New.
14144 (define_mode_iterator V12_AVX512VL): Ditto.
14145 (define_insn <avx512>_load<mode>_mask): Split into two similar
14146 patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
14147 Refactor output template.
14148 (define_insn "<avx512>_store<mode>_mask"): Ditto.
14149
14150 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14151
14152 * cprop.c (struct occr): Strengthen field "insn" from rtx to
14153 rtx_insn *.
14154 (reg_available_p): Likewise for param "insn".
14155 (insert_set_in_table): Likewise.
14156 (hash_scan_set): Likewise.
14157 (hash_scan_insn): Likewise.
14158 (make_set_regs_unavailable): Likewise.
14159 (compute_hash_table_work): Likewise for local "insn".
14160 (reg_not_set_p): Strengthen param "insn" from const_rtx to
14161 const rtx_insn *.
14162 (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
14163 (try_replace_reg): Likewise.
14164 (find_avail_set): Likewise.
14165 (cprop_jump): Likewise for params "setcc", "jump".
14166 (constprop_register): Likewise for param "insn".
14167 (cprop_insn): Likewise.
14168 (do_local_cprop): Likewise.
14169 (local_cprop_pass): Likewise for local "insn".
14170 (bypass_block): Likewise for params "setcc" and "jump".
14171 (bypass_conditional_jumps): Likewise for locals "setcc" and
14172 "insn".
14173 (one_cprop_pass): Likewise for local "insn".
14174
14175 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14176
14177 * compare-elim.c (struct comparison_use): Strengthen field "insn"
14178 from rtx to rtx_insn *.
14179 (struct comparison): Likewise, also for field "prev_clobber".
14180 (conforming_compare): Likewise for param "insn".
14181 (arithmetic_flags_clobber_p): Likewise.
14182 (find_flags_uses_in_insn): Likewise.
14183 (find_comparison_dom_walker::before_dom_children): Likewise for
14184 locals "insn", "next", "last_clobber".
14185 (try_eliminate_compare): Likewise for locals "insn", "bb_head".
14186
14187 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14188
14189 * combine-stack-adj.c (struct csa_reflist): Strengthen field
14190 "insn" from rtx to rtx_insn *.
14191 (single_set_for_csa): Likewise for param "insn".
14192 (record_one_stack_ref): Likewise.
14193 (try_apply_stack_adjustment): Likewise.
14194 (struct record_stack_refs_data): Likewise for field "insn".
14195 (maybe_move_args_size_note): Likewise for params "last" and "insn".
14196 (prev_active_insn_bb): Likewise for return type and param "insn".
14197 (next_active_insn_bb): Likewise.
14198 (force_move_args_size_note): Likewise for params "prev" and "last"
14199 and locals "test", "next_candidate", "prev_candidate".
14200 (combine_stack_adjustments_for_block): Strengthen locals
14201 "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
14202 rtx_insn *.
14203
14204 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14205
14206 * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
14207 (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
14208 (subst_insn): Likewise for this variable.
14209 (added_links_insn): Likewise.
14210 (struct insn_link): Likewise for field "insn".
14211 (alloc_insn_link): Likewise for param "insn".
14212 (struct undobuf): Likewise for field "other_insn".
14213 (find_single_use): Likewise for param "insn" and local "next".
14214 (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
14215 (delete_noop_moves): Likewise for locals "insn", "next".
14216 (create_log_links): Likewise for locals "insn", "use_insn".
14217 Strengthen local "next_use" from rtx * to rtx_insn **.
14218 (insn_a_feeds_b): Likewise for params "a", "b".
14219 (combine_instructions): Likewise for param "f" and locals "insn",
14220 "next", "prev", "first", "last_combined_insn", "link", "link1",
14221 "temp". Replace use of NULL_RTX with NULL when referring to
14222 insns.
14223 (setup_incoming_promotions): Likewise for param "first"
14224 (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
14225 (can_combine_p): Likewise for params "insn", "i3", "pred",
14226 "pred2", "succ", "succ2" and for local "p".
14227 (combinable_i3pat): Likewise for param "i3".
14228 (cant_combine_insn_p): Likewise for param "insn".
14229 (likely_spilled_retval_p): Likewise.
14230 (adjust_for_new_dest): Likewise.
14231 (update_cfg_for_uncondjump): Likewise, also for local "insn".
14232 (try_combine): Likewise for return type and for params "i3", "i2",
14233 "i1", "i0", "last_combined_insn", and for locals "insn",
14234 "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
14235 "i0_insn". Eliminate local "tem" in favor of new locals
14236 "tem_note" and "tem_insn", the latter being an rtx_insn *. Add a
14237 checked cast for now to rtx_insn * on the return type of
14238 gen_rtx_INSN. Replace use of NULL_RTX with NULL when referring to
14239 insns.
14240 (find_split_point): Strengthen param "insn" from rtx to
14241 rtx_insn *.
14242 (simplify_set): Likewise for local "other_insn".
14243 (recog_for_combine): Likewise for param "insn".
14244 (record_value_for_reg): Likewise.
14245 (record_dead_and_set_regs_1): Likewise for local
14246 "record_dead_insn".
14247 (record_dead_and_set_regs): Likewise for param "insn".
14248 (record_promoted_value): Likewise.
14249 (check_promoted_subreg): Likewise.
14250 (get_last_value_validate): Likewise.
14251 (reg_dead_at_p): Likewise.
14252 (move_deaths): Likewise for param "to_insn".
14253 (distribute_notes): Likewise for params "from_insn", "i3", "i2"
14254 and locals "place", "place2", "cc0_setter". Eliminate local "tem
14255 in favor of new locals "tem_note" and "tem_insn", the latter being
14256 an rtx_insn *.
14257 (distribute_links): Strengthen locals "place", "insn" from rtx to
14258 rtx_insn *.
14259
14260 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14261
14262 * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
14263 than a const_rtx.
14264 (can_delete_label_p): Require a const rtx_code_label * rather than
14265 a const_rtx.
14266 (delete_insn): Add checked cast to rtx_code_label * when we know
14267 we're dealing with LABEL_P (insn). Strengthen local "bb_note" from
14268 rtx to rtx_insn *.
14269 (delete_insn_chain): Strengthen locals "prev" and "current" from
14270 rtx to rtx_insn *. Add a checked cast when assigning from
14271 "finish" (strengthening the params will come later). Add a
14272 checked cast to rtx_note * in region where we know
14273 NOTE_P (current).
14274 (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
14275 rtx_insn *.
14276 (compute_bb_for_insn): Likewise.
14277 (free_bb_for_insn): Likewise for local "insn".
14278 (compute_bb_for_insn): Likewise.
14279 (update_bb_for_insn_chain): Strengthen params "begin", "end" and
14280 local "insn" from rtx to rtx_insn *
14281 (flow_active_insn_p): Require a const rtx_insn * rather than a
14282 const_rtx.
14283 (contains_no_active_insn_p): Strengthen local "insn" from rtx to
14284 rtx_insn *.
14285 (can_fallthru): Likewise for locals "insn" and "insn2".
14286 (bb_note): Likewise for local "note".
14287 (first_insn_after_basic_block_note): Likewise for local "note" and
14288 for return type.
14289 (rtl_split_block): Likewise for locals "insn" and "next".
14290 (unique_locus_on_edge_between_p): Likewise for locals "insn" and
14291 "end".
14292 (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
14293 "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
14294 "prev", "tmp".
14295 (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
14296 them), "kill_from", "barrier", "new_insn".
14297 (patch_jump_insn): Likewise for params "insn", "old_label".
14298 (redirect_branch_edge): Likewise for locals "old_label", "insn".
14299 (force_nonfallthru_and_redirect): Likewise for locals "insn",
14300 "old_label", "new_label".
14301 (rtl_tidy_fallthru_edge): Likewise for local "q".
14302 (rtl_split_edge): Likewise for locals "before", "last".
14303 (commit_one_edge_insertion): Likewise for locals "before",
14304 "after", "insns", "tmp", "last", adding a checked cast where
14305 currently necessary.
14306 (commit_edge_insertions): Likewise.
14307 (rtl_dump_bb): Likewise for locals "insn", "last".
14308 (print_rtl_with_bb): Likewise for local "x".
14309 (rtl_verify_bb_insns): Likewise for local "x".
14310 (rtl_verify_bb_pointers): Likewise for local "insn".
14311 (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
14312 "head", "end".
14313 (rtl_verify_fallthru): Likewise for local "insn".
14314 (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
14315 (purge_dead_edges): Likewise for local "insn".
14316 (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
14317 (skip_insns_after_block): Likewise for return type and for locals
14318 "insn", "last_insn", "next_head", "prev".
14319 (record_effective_endpoints): Likewise for locals "next_insn",
14320 "insn", "end".
14321 (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
14322 (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
14323 (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
14324 (duplicate_insn_chain): For now, add checked cast from rtx to
14325 rtx_insn * when returning insn.
14326 (cfg_layout_duplicate_bb): Likewise for local "insn".
14327 (cfg_layout_delete_block): Likewise for locals "insn", "next",
14328 "prev", "remaints".
14329 (cfg_layout_merge_blocks): Likewise for local "insn", "last".
14330 (rtl_block_empty_p): Likewise.
14331 (rtl_split_block_before_cond_jump): Likewise for locals "insn",
14332 "split_point", "last".
14333 (rtl_block_ends_with_call_p): Likewise for local "insn".
14334 (need_fake_edge_p): Strengthen param "insn" from const_rtx to
14335 const rtx_insn *.
14336 (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
14337 "split_at_insn" from rtx to rtx_insn *.
14338 (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
14339 (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
14340 to const rtx_insn *.
14341 (rtl_account_profile_record): Likewise.
14342
14343 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14344
14345 * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
14346 rtx to rtx_insn *.
14347 (average_num_loop_insns): Likewise.
14348 (init_set_costs): Likewise for local "seq".
14349 (seq_cost): Likewise for param "seq", from const_rtx to const
14350 rtx_insn *.
14351
14352 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14353
14354 * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
14355 rtx to rtx_insn *.
14356
14357 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14358
14359 * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
14360 "f1" and "f2" from rtx * to rtx_insn **.
14361 (flow_find_head_matching_sequence): Likewise.
14362
14363 * cfgcleanup.c (try_simplify_condjump): Strengthen local
14364 "cbranch_insn" from rtx to rtx_insn *.
14365 (thread_jump): Likewise for local "insn".
14366 (try_forward_edges): Likewise for local "last".
14367 (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
14368 (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
14369 "real_b_end".
14370 (can_replace_by): Likewise for params "i1", "i2".
14371 (old_insns_match_p): Likewise.
14372 (merge_notes): Likewise.
14373 (walk_to_nondebug_insn): Likewise for param "i1".
14374 (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
14375 to rtx_insn **. Strengthen locals "i1", "i2", "last1", "last2",
14376 "afterlast1", "afterlast2" from rtx to rtx_insn *.
14377 (flow_find_head_matching_sequence): Strengthen params "f1" and
14378 "f2" from rtx * to rtx_insn **. Strengthen locals "i1", "i2",
14379 "last1", "last2", "beforelast1", "beforelast2" from rtx to
14380 rtx_insn *.
14381 (outgoing_edges_match): Likewise for locals "last1", "last2".
14382 (try_crossjump_to_edge): Likewise for local "insn".
14383 Replace call to for_each_rtx with for_each_rtx_in_insn.
14384
14385 (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
14386 (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
14387 "e0_last", "e_last", "head", "curr", "insn". Strengthen locals
14388 "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
14389 (try_optimize_cfg): Strengthen local "last" from rtx to
14390 rtx_insn *.
14391 (delete_dead_jumptables): Likewise for locals "insn", "next",
14392 "label".
14393
14394 * ifcvt.c (cond_exec_process_if_block): Likewise for locals
14395 "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
14396 "rtx else_first_tail", to reflect the basic-block.h changes above.
14397
14398 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14399
14400 * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
14401 rtx_insn *.
14402 (purge_dead_tablejump_edges): Likewise.
14403 (find_bb_boundaries): Likewise for locals "insn", "end",
14404 "flow_transfer_insn".
14405
14406 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14407
14408 * caller-save.c (save_call_clobbered_regs): Strengthen locals
14409 "ins" and "prev" from rtx to rtx_insn *.
14410
14411 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14412
14413 * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
14414 rtx_insn *.
14415 (internal_arg_pointer_exp_state): Likewise for field "scan_start".
14416 (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
14417 "scan_start".
14418 (load_register_parameters): Likewise for local "before_arg".
14419 (check_sibcall_argument_overlap): Likewise for param "insn".
14420 (expand_call): Likewise for locals "normal_call_insns",
14421 "tail_call_insns", "insns", "before_call", "after_args",
14422 "before_arg", "last", "prev". Strengthen one of the "last" from
14423 rtx to rtx_call_insn *.
14424 (fixup_tail_calls): Strengthen local "insn" from rtx to
14425 rtx_insn *.
14426 (emit_library_call_value_1): Likewise for locals "before_call" and
14427 "last".
14428
14429 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14430
14431 * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
14432 and "last" from rtx to rtx_insn *.
14433 (expand_builtin_nonlocal_goto): Likewise for local "insn".
14434 (expand_builtin_apply): Strengthen local "call_insn" from rtx to
14435 rtx_call_insn *.
14436 (expand_errno_check): Strengthen local "lab" from rtx to
14437 rtx_code_label *.
14438 (expand_builtin_mathfn): Strengthen local "insns" from rtx to
14439 rtx_insn *.
14440 (expand_builtin_mathfn_2): Likewise.
14441 (expand_builtin_mathfn_ternary): Likewise.
14442 (expand_builtin_mathfn_3): Likewise.
14443 (expand_builtin_interclass_mathfn): Likewise for local "last".
14444 (expand_builtin_int_roundingfn): Likewise for local "insns".
14445 (expand_builtin_int_roundingfn_2): Likewise.
14446 (expand_builtin_strlen): Likewise for local "before_strlen".
14447 (expand_builtin_strncmp): Likewise for local "seq".
14448 (expand_builtin_signbit): Likewise for local "last".
14449 (expand_builtin_atomic_compare_exchange): Strengthen local "label"
14450 from rtx to rtx_code_label *.
14451 (expand_stack_restore): Strengthen local "prev" from rtx to
14452 rtx_insn *.
14453
14454 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14455
14456 * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
14457 to rtx_insn *.
14458 (struct btr_def_s): Likewise.
14459 (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
14460 const rtx_insn *.
14461 (add_btr_def): Likewise.
14462 (new_btr_user): Likewise.
14463 (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
14464 rtx to rtx_insn *.
14465 (link_btr_uses): Likewise.
14466 (move_btr_def): Likewise for locals "insp", "old_insn",
14467 "new_insn". Add checked cast to rtx_insn * for now on result of
14468 gen_move_insn.
14469 (can_move_up): Strengthen param "insn" from const_rtx to
14470 const rtx_insn *.
14471
14472 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14473
14474 * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
14475 rtx_insn *.
14476 (get_uncond_jump_length): Likewise for locals "label", "jump".
14477 (fix_up_crossing_landing_pad): Likewise for locals "new_label",
14478 "jump", "insn".
14479 (add_labels_and_missing_jumps): Likewise for local "new_jump".
14480 (fix_up_fall_thru_edges): Likewise for local "old_jump".
14481 (find_jump_block): Likewise for local "insn".
14482 (fix_crossing_conditional_branches): Likewise for locals
14483 "old_jump", "new_jump".
14484 (fix_crossing_unconditional_branches): Likewise for locals
14485 "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
14486 (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
14487
14488 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14489
14490 * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
14491 rtx to rtx_insn *.
14492 (struct mem_insn): Likewise for field "insn".
14493 (reg_next_use): Strengthen from rtx * to rtx_insn **.
14494 (reg_next_inc_use): Likewise.
14495 (reg_next_def): Likewise.
14496 (move_dead_notes): Strengthen params "to_insn" and "from_insn"
14497 from rtx to rtx_insn *.
14498 (move_insn_before): Likewise for param "next_insn" and local "insns".
14499 (attempt_change): Likewise for local "mov_insn".
14500 (try_merge): Likewise for param "last_insn".
14501 (get_next_ref): Likewise for return type and local "insn".
14502 Strengthen param "next_array" from rtx * to rtx_insn **.
14503 (parse_add_or_inc): Strengthen param "insn" from rtx to
14504 rtx_insn *.
14505 (find_inc): Likewise for locals "insn" and "other_insn" (three of
14506 the latter).
14507 (merge_in_block): Likewise for locals "insn", "curr",
14508 "other_insn".
14509 (pass_inc_dec::execute): Update allocations of the arrays to
14510 reflect the stronger types.
14511
14512 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14513
14514 * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
14515 and "jump" from rtx to rtx_insn *. Strengthen local "top_label"
14516 from rtx to rtx_code_label *.
14517
14518 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14519
14520 * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
14521 to rtx_insn *.
14522
14523 2014-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
14524
14525 * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
14526 generated a warning and prevented bootstrapping the compiler.
14527
14528 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14529
14530 * rtl.h (delete_related_insns): Strengthen return type from rtx to
14531 rtx_insn *.
14532
14533 * jump.c (delete_related_insns): Likewise, also for locals "next"
14534 and "prev".
14535
14536 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14537
14538 * genautomata.c (output_internal_insn_latency_func): When writing
14539 the function "internal_insn_latency" to insn-automata.c,
14540 strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
14541 allowing the optional guard function of (define_bypass) clauses to
14542 expect a pair of rtx_insn *, rather than a pair of rtx.
14543 (output_insn_latency_func): When writing the function
14544 "insn_latency", add an "uncast_" prefix to params "insn" and
14545 "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
14546 using checked casts from the params, thus enabling the above
14547 change to the generated "internal_insn_latency" function.
14548
14549 2014-08-21 Jan Hubicka <hubicka@ucw.cz>
14550
14551 PR tree-optimization/62091
14552 * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
14553 handle correctly arrays.
14554 (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
14555 inheritance binfos.
14556 (record_known_type): Walk into inner type.
14557 (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
14558 condition on no type changes.
14559
14560 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14561
14562 * genattrtab.c (write_attr_get): Within the generated get_attr_
14563 functions, rename param "insn" to "uncast_insn" and reintroduce
14564 "insn" as an local rtx_insn * using a checked cast, so that "insn"
14565 is an rtx_insn * within insn-attrtab.c
14566
14567 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14568
14569 * output.h (peephole): Strengthen return type from rtx to
14570 rtx_insn *.
14571 * rtl.h (delete_for_peephole): Likewise for both params.
14572 * genpeep.c (main): In generated "peephole" function, strengthen
14573 return type and local "insn" from rtx to rtx_insn *. For now,
14574 rename param "ins1" to "uncast_ins1", adding "ins1" back as an
14575 rtx_insn *, with a checked cast.
14576 * jump.c (delete_for_peephole): Strengthen params "from", "to" and
14577 locals "insn", "next", "prev" from rtx to rtx_insn *.
14578
14579 2014-08-21 Marc Glisse <marc.glisse@inria.fr>
14580
14581 PR tree-optimization/62112
14582 * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
14583 * gimple-iterator.h (gsi_replace): Return bool.
14584 * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
14585 moved from ref_may_alias_global_p.
14586 (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
14587 New overloads.
14588 (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
14589 (stmt_kills_ref_p_1): Rename...
14590 (stmt_kills_ref_p): ... to this.
14591 * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
14592 stmt_kills_ref_p): Declare.
14593 * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
14594 Move the self-assignment case...
14595 (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
14596
14597 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14598
14599 * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
14600
14601 * emit-rtl.c (try_split): Likewise, also for locals "before" and
14602 "after". For now, don't strengthen param "trial", which requires
14603 adding checked casts when returning it.
14604
14605 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14606
14607 * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
14608 "label" from rtx to rtx_code_label *. Strengthen param 1 of
14609 "var_location" hook from rtx to rtx_insn *.
14610 (debug_nothing_rtx): Delete in favor of...
14611 (debug_nothing_rtx_code_label): New prototype.
14612 (debug_nothing_rtx_rtx): Delete unused prototype.
14613 (debug_nothing_rtx_insn): New prototype.
14614
14615 * final.c (final_scan_insn): Add checked cast to rtx_insn * when
14616 invoking debug_hooks->var_location (in two places, one in a NOTE
14617 case of a switch statement, the other guarded by a CALL_P
14618 conditional. Add checked cast to rtx_code_label * when invoking
14619 debug_hooks->label (within CODE_LABEL case of switch statement).
14620
14621 * dbxout.c (dbx_debug_hooks): Update "label" hook from
14622 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
14623 "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
14624 (xcoff_debug_hooks): Likewise.
14625 * debug.c (do_nothing_debug_hooks): Likewise.
14626 (debug_nothing_rtx): Delete in favor of...
14627 (debug_nothing_rtx_insn): New function.
14628 (debug_nothing_rtx_rtx): Delete unused function.
14629 (debug_nothing_rtx_code_label): New function.
14630 * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
14631 debug_nothing_rtx to debug_nothing_rtx_code_label.
14632 (dwarf2out_var_location): Strengthen param "loc_note" from rtx
14633 to rtx_insn *.
14634 * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
14635 debug_nothing_rtx to debug_nothing_rtx_insn.
14636 (sdbout_label): Strengthen param "insn" from rtx to
14637 rtx_code_label *.
14638 * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
14639 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
14640 "var_location" hook from debug_nothing_rtx to
14641 debug_nothing_rtx_insn.
14642
14643 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14644
14645 * recog.h (insn_output_fn): Update this function typedef to match
14646 the changes below to the generated output functions, strengthening
14647 the 2nd param from rtx to rtx_insn *.
14648
14649 * final.c (get_insn_template): Add a checked cast to rtx_insn * on
14650 insn when invoking an output function, to match the new signature
14651 of insn_output_fn with a stronger second param.
14652
14653 * genconditions.c (write_header): In the generated code for
14654 gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
14655 to match the other changes in this patch.
14656
14657 * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
14658 the generated "gen_" functions from rtx to rtx_insn * within their
14659 implementations.
14660
14661 * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
14662 the subfunctions within the generated "recog_", "split", "peephole2"
14663 function trees from rtx to rtx_insn *. For now, the top-level
14664 generated functions ("recog", "split", "peephole2") continue to
14665 take a plain rtx for "insn", to avoid introducing dependencies on
14666 other patches. Rename this 2nd param from "insn" to
14667 "uncast_insn", and reintroduce "insn" as a local variable of type
14668 rtx_insn *, initialized at the top of the generated function with
14669 a checked cast on "uncast_insn".
14670 (make_insn_sequence): Strengthen the 1st param "curr_insn" of
14671 the generated "gen_" functions from rtx to rtx_insn * within their
14672 prototypes.
14673
14674 * genoutput.c (process_template): Strengthen the 2nd param within
14675 the generated "output_" functions "insn" from rtx to rtx_insn *.
14676
14677 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
14678
14679 * tree-profile.c (tree_profiling): Skip external functions
14680 when doing coverage instrumentation.
14681 * cgraphunit.c (compile): Do not assert that all nodes are reachable.
14682
14683 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14684
14685 * config/rs6000/altivec.h (vec_cpsgn): New #define.
14686 (vec_mergee): Likewise.
14687 (vec_mergeo): Likewise.
14688 (vec_cntlz): Likewise.
14689 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
14690 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
14691 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
14692 VMRGEW, and VMRGOW.
14693 * doc/extend.texi: Document various forms of vec_cpsgn,
14694 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
14695 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
14696 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
14697 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
14698 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
14699
14700 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14701
14702 * config/rs6000/rs6000.c (context.h): New include.
14703 (tree-pass.h): Likewise.
14704 (make_pass_analyze_swaps): New decl.
14705 (rs6000_option_override): Register pass_analyze_swaps.
14706 (swap_web_entry): New subsclass of web_entry_base (df.h).
14707 (special_handling_values): New enum.
14708 (union_defs): New function.
14709 (union_uses): Likewise.
14710 (insn_is_load_p): Likewise.
14711 (insn_is_store_p): Likewise.
14712 (insn_is_swap_p): Likewise.
14713 (rtx_is_swappable_p): Likewise.
14714 (insn_is_swappable_p): Likewise.
14715 (chain_purpose): New enum.
14716 (chain_contains_only_swaps): New function.
14717 (mark_swaps_for_removal): Likewise.
14718 (swap_const_vector_halves): Likewise.
14719 (adjust_subreg_index): Likewise.
14720 (permute_load): Likewise.
14721 (permute_store): Likewise.
14722 (handle_special_swappables): Likewise.
14723 (replace_swap_with_copy): Likewise.
14724 (dump_swap_insn_table): Likewise.
14725 (rs6000_analyze_swaps): Likewise.
14726 (pass_data_analyze_swaps): New pass_data.
14727 (pass_analyze_swaps): New rtl_opt_pass.
14728 (make_pass_analyze_swaps): New function.
14729 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
14730
14731 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14732
14733 * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
14734 type from rtx to rtx_insn *.
14735 (create_copy_of_insn_rtx): Likewise.
14736 * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
14737 (create_copy_of_insn_rtx): Likewise, also for local "res".
14738
14739 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14740
14741 * rtl.h (find_first_parameter_load): Strengthen return type from
14742 rtx to rtx_insn *.
14743 * rtlanal.c (find_first_parameter_load): Strengthen return type
14744 from rtx to rtx_insn *. Add checked cast for now, to postpone
14745 strengthening the params.
14746
14747 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
14748
14749 PR fortran/44054
14750 * diagnostic.c: Set default caret.
14751 (diagnostic_show_locus): Use it. Tell pretty-printer that a new
14752 line is needed.
14753 * diagnostic.h (struct diagnostic_context):
14754
14755 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14756
14757 * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
14758 (sel_bb_head): Strengthen return type insn_t (currently just an
14759 rtx) to rtx_insn *.
14760 (sel_bb_end): Likewise.
14761
14762 * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
14763 (sel_bb_head): Strengthen return type and local "head" from
14764 insn_t (currently just an rtx) to rtx_insn *.
14765 (sel_bb_end): Likewise for return type.
14766 (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
14767 working with insn.
14768
14769 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14770
14771 * basic-block.h (get_last_bb_insn): Strengthen return type from
14772 rtx to rtx_insn *.
14773 * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
14774 end".
14775
14776 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
14777
14778 PR fortran/44054
14779 * diagnostic.c (default_diagnostic_finalizer): Move caret printing
14780 to here ...
14781 (diagnostic_report_diagnostic): ... from here.
14782 * toplev.c (general_init): Move code to c-family.
14783
14784 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14785
14786 * df.h (web_entry_base): Replace existing struct web_entry with a
14787 new class web_entry_base with only the predecessor member.
14788 (unionfind_root): Remove declaration and move to class member.
14789 (unionfind_union): Remove declaration and move to friend
14790 function.
14791 (union_defs): Remove declaration.
14792 * web.c (web_entry_base::unionfind_root): Modify to be member
14793 function and adjust accessors.
14794 (unionfind_union): Modify to be friend function and adjust
14795 accessors.
14796 (web_entry): New subclass of web_entry_base containing the reg
14797 member.
14798 (union_match_dups): Modify for struct -> class changes.
14799 (union_defs): Likewise.
14800 (entry_register): Likewise.
14801 (pass_web::execute): Likewise.
14802
14803 2014-08-20 Bill Schmidt <wschmidt@vnet.ibm.com>
14804
14805 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
14806 builtin define __VEC_ELEMENT_REG_ORDER__.
14807
14808 2014-08-20 Martin Jambor <mjambor@suse.cz>
14809 Wei Mi <wmi@google.com>
14810
14811 PR ipa/60449
14812 PR middle-end/61776
14813 * tree-ssa-operands.c (update_stmt_operands): Remove
14814 MODIFIED_NORETURN_CALLS.
14815 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
14816 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
14817 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
14818 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
14819 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
14820 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
14821 (gimple_call_set_ctrl_altering): New func.
14822 (gimple_call_ctrl_altering_p): Ditto.
14823 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
14824 (make_blocks): Use gimple_call_initialize_ctrl_altering.
14825 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
14826 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
14827 remove MODIFIED_NORETURN_CALLS.
14828
14829 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
14830
14831 * coverage.c (coverage_compute_profile_id): Return non-0;
14832 also handle symbols with unique name.
14833 (coverage_end_function): Do not skip DECL_EXTERNAL functions.
14834
14835 2014-08-20 Steve Ellcey <sellcey@mips.com>
14836
14837 PR middle-end/49191
14838 * doc/sourcebuild.texi (non_strict_align): New.
14839
14840 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
14841
14842 * cgraphunit.c (ipa_passes, compile): Reshedule
14843 symtab_remove_unreachable_nodes passes; update comments.
14844 * ipa-inline.c (pass_data_ipa_inline): Do not schedule
14845 TODO_remove_functions before the pass; the functions ought to be
14846 already removed.
14847 * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
14848 TODO_remove_functions.
14849 * passes.c (pass_data_early_local_passes): Do not schedule function
14850 removal.
14851 (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
14852
14853 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
14854
14855 PR c/59304
14856 * opts-common.c (set_option): Call diagnostic_classify_diagnostic
14857 before setting the option.
14858 * diagnostic.c (diagnostic_classify_diagnostic): Record
14859 command-line status.
14860
14861 2014-08-20 Richard Biener <rguenther@suse.de>
14862
14863 PR lto/62190
14864 * tree.c (build_common_tree_nodes): Use make_or_reuse_type
14865 to build uint{16,32,64}_type_node.
14866
14867 2014-08-20 Terry Guo <terry.guo@arm.com>
14868
14869 * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
14870 with immediate_operand.
14871
14872 2014-08-20 David Malcolm <dmalcolm@redhat.com>
14873
14874 * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
14875 "insn" from an as_a to a safe_as_a, for the case when "insn" is
14876 NULL.
14877
14878 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
14879
14880 PR preprocessor/51303
14881 * incpath.c (remove_duplicates): Use cpp_warning.
14882
14883 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
14884
14885 PR c/60975
14886 PR c/53063
14887 * doc/options.texi (CPP): Document it.
14888 * doc/invoke.texi (Wvariadic-macros): Fix documentation.
14889 * optc-gen.awk: Handle CPP.
14890 * opth-gen.awk: Likewise.
14891
14892 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14893
14894 * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
14895 rtx_insn *.
14896 (duplicate_insn_chain): Likewise.
14897 * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
14898 rtx_insn *, also for locals "prevfirst" and "nextlast". Add a
14899 checked cast for now (until we can strengthen the params in the
14900 same way).
14901 (duplicate_insn_chain): Likewise.
14902
14903 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14904
14905 * rtl.h (next_cc0_user): Strengthen return type from rtx to
14906 rtx_insn *.
14907 (prev_cc0_setter): Likewise.
14908
14909 * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
14910 rtx_insn *, adding checked casts for now as necessary.
14911 (prev_cc0_setter): Likewise.
14912
14913 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14914
14915 * expr.h (emit_move_insn): Strengthen return type from rtx to
14916 rtx_insn *.
14917 (emit_move_insn_1): Likewise.
14918 (emit_move_complex_push): Likewise.
14919 (emit_move_complex_parts): Likewise.
14920
14921 * expr.c (emit_move_via_integer): Strengthen return type from rtx
14922 to rtx_insn *. Replace use of NULL_RTX with NULL when working
14923 with insns.
14924 (emit_move_complex_push): Strengthen return type from rtx to
14925 rtx_insn *.
14926 (emit_move_complex): Likewise, also for local "ret".
14927 (emit_move_ccmode): Likewise.
14928 (emit_move_multi_word): Likewise for return type and locals
14929 "last_insn", "seq".
14930 (emit_move_insn_1): Likewise for return type and locals "result",
14931 "ret".
14932 (emit_move_insn): Likewise for return type and local "last_insn".
14933 (compress_float_constant): Likewise.
14934
14935 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14936
14937 * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
14938 from rtx to rtx_insn *.
14939
14940 * rtl.h (emit_insn_before): Likewise.
14941 (emit_insn_before_noloc): Likewise.
14942 (emit_insn_before_setloc): Likewise.
14943 (emit_jump_insn_before): Likewise.
14944 (emit_jump_insn_before_noloc): Likewise.
14945 (emit_jump_insn_before_setloc): Likewise.
14946 (emit_call_insn_before): Likewise.
14947 (emit_call_insn_before_noloc): Likewise.
14948 (emit_call_insn_before_setloc): Likewise.
14949 (emit_debug_insn_before): Likewise.
14950 (emit_debug_insn_before_noloc): Likewise.
14951 (emit_debug_insn_before_setloc): Likewise.
14952 (emit_label_before): Likewise.
14953 (emit_insn_after): Likewise.
14954 (emit_insn_after_noloc): Likewise.
14955 (emit_insn_after_setloc): Likewise.
14956 (emit_jump_insn_after): Likewise.
14957 (emit_jump_insn_after_noloc): Likewise.
14958 (emit_jump_insn_after_setloc): Likewise.
14959 (emit_call_insn_after): Likewise.
14960 (emit_call_insn_after_noloc): Likewise.
14961 (emit_call_insn_after_setloc): Likewise.
14962 (emit_debug_insn_after): Likewise.
14963 (emit_debug_insn_after_noloc): Likewise.
14964 (emit_debug_insn_after_setloc): Likewise.
14965 (emit_label_after): Likewise.
14966 (emit_insn): Likewise.
14967 (emit_debug_insn): Likewise.
14968 (emit_jump_insn): Likewise.
14969 (emit_call_insn): Likewise.
14970 (emit_label): Likewise.
14971 (gen_clobber): Likewise.
14972 (emit_clobber): Likewise.
14973 (gen_use): Likewise.
14974 (emit_use): Likewise.
14975 (emit): Likewise.
14976
14977 (emit_barrier_before): Strengthen return type from rtx to
14978 rtx_barrier *.
14979 (emit_barrier_after): Likewise.
14980 (emit_barrier): Likewise.
14981
14982 * emit-rtl.c (emit_pattern_before_noloc): Strengthen return type
14983 from rtx to rtx_insn *. Add checked casts for now when converting
14984 "last" from rtx to rtx_insn *.
14985 (emit_insn_before_noloc): Likewise for return type.
14986 (emit_jump_insn_before_noloc): Likewise.
14987 (emit_call_insn_before_noloc): Likewise.
14988 (emit_debug_insn_before_noloc): Likewise.
14989 (emit_barrier_before): Strengthen return type and local "insn"
14990 from rtx to rtx_barrier *.
14991 (emit_label_before): Strengthen return type from rtx to
14992 rtx_insn *. Add checked cast for now when returning param
14993 (emit_pattern_after_noloc): Strengthen return type from rtx to
14994 rtx_insn *. Add checked casts for now when converting "last" from
14995 rtx to rtx_insn *.
14996 (emit_insn_after_noloc): Strengthen return type from rtx to
14997 rtx_insn *.
14998 (emit_jump_insn_after_noloc): Likewise.
14999 (emit_call_insn_after_noloc): Likewise.
15000 (emit_debug_insn_after_noloc): Likewise.
15001 (emit_barrier_after): Strengthen return type from rtx to
15002 rtx_barrier *.
15003 (emit_label_after): Strengthen return type from rtx to rtx_insn *.
15004 Add checked cast for now when converting "label" from rtx to
15005 rtx_insn *.
15006 (emit_pattern_after_setloc): Strengthen return type from rtx to
15007 rtx_insn *. Add checked casts for now when converting "last" from
15008 rtx to rtx_insn *.
15009 (emit_pattern_after): Strengthen return type from rtx to
15010 rtx_insn *.
15011 (emit_insn_after_setloc): Likewise.
15012 (emit_insn_after): Likewise.
15013 (emit_jump_insn_after_setloc): Likewise.
15014 (emit_jump_insn_after): Likewise.
15015 (emit_call_insn_after_setloc): Likewise.
15016 (emit_call_insn_after): Likewise.
15017 (emit_debug_insn_after_setloc): Likewise.
15018 (emit_debug_insn_after): Likewise.
15019 (emit_pattern_before_setloc): Likewise. Add checked casts for now
15020 when converting "last" from rtx to rtx_insn *.
15021 (emit_pattern_before): Strengthen return type from rtx to
15022 rtx_insn *.
15023 (emit_insn_before_setloc): Likewise.
15024 (emit_insn_before): Likewise.
15025 (emit_jump_insn_before_setloc): Likewise.
15026 (emit_jump_insn_before): Likewise.
15027 (emit_call_insn_before_setloc): Likewise.
15028 (emit_call_insn_before): Likewise.
15029 (emit_debug_insn_before_setloc): Likewise.
15030 (emit_debug_insn_before): Likewise.
15031 (emit_insn): Strengthen return type and locals "last", "insn",
15032 "next" from rtx to rtx_insn *. Add checked cast to rtx_insn
15033 within cases where we know we have an insn.
15034 (emit_debug_insn): Likewise.
15035 (emit_jump_insn): Likewise.
15036 (emit_call_insn): Strengthen return type and local "insn" from rtx
15037 to rtx_insn *.
15038 (emit_label): Strengthen return type from rtx to rtx_insn *. Add
15039 a checked cast to rtx_insn * for now on "label".
15040 (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
15041 (emit_clobber): Strengthen return type from rtx to rtx_insn *.
15042 (emit_use): Likewise.
15043 (gen_use): Likewise, also for local "seq".
15044 (emit): Likewise for return type and local "insn".
15045 (rtx_insn): Likewise for return type and local "new_rtx".
15046
15047 * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
15048 from rtx to rtx_barrier *.
15049
15050 * config/sh/sh.c (output_stack_adjust): Since emit_insn has
15051 changed return type from rtx to rtx_insn *, we must update
15052 "emit_fn" type, and this in turn means updating...
15053 (frame_insn): ...this. Strengthen return type from rtx to
15054 rtx_insn *. Introduce a new local "insn" of the appropriate type.
15055
15056 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15057
15058 * emit-rtl.c (emit_jump_table_data): Strengthen return type from
15059 rtx to rtx_jump_table_data *. Also for local.
15060 * rtl.h (emit_jump_table_data): Likewise.
15061
15062 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15063
15064 * basic-block.h (create_basic_block_structure): Strengthen third
15065 param "bb_note" from rtx to rtx_note *.
15066 * rtl.h (emit_note_before): Strengthen return type from rtx to
15067 rtx_note *.
15068 (emit_note_after): Likewise.
15069 (emit_note): Likewise.
15070 (emit_note_copy): Likewise. Also, strengthen param similarly.
15071 * function.h (struct rtl_data): Strengthen field
15072 "x_stack_check_probe_note" from rtx to rtx_note *.
15073
15074 * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
15075 from rtx to rtx_note *.
15076 * cfgrtl.c (create_basic_block_structure): Strengthen third param
15077 "bb_note" from rtx to rtx_note *.
15078 (duplicate_insn_chain): Likewise for local "last". Add a checked cast
15079 when calling emit_note_copy.
15080 * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
15081 rtx_note *.
15082 (emit_note_after): Likewise.
15083 (emit_note_before): Likewise.
15084 (emit_note_copy): Likewise. Also, strengthen param similarly.
15085 (emit_note): Likewise.
15086 * except.c (emit_note_eh_region_end): Likewise for return type.
15087 Strengthen local "next" from rtx to rtx_insn *.
15088 (convert_to_eh_region_ranges): Strengthen local "note"
15089 from rtx to rtx_note *.
15090 * final.c (change_scope): Likewise.
15091 (reemit_insn_block_notes): Likewise, for both locals named "note".
15092 Also, strengthen local "insn" from rtx to rtx_insn *.
15093 * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
15094 rtx to rtx_note *.
15095 * reg-stack.c (compensate_edge): Likewise for local "after". Also,
15096 strengthen local "seq" from rtx to rtx_insn *.
15097 * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
15098 to rtx_note *.
15099 * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
15100 vec<rtx_note *>.
15101 (get_bb_note_from_pool): Strengthen return type from rtx to
15102 rtx_note *.
15103 (sel_create_basic_block): Strengthen local "new_bb_note" from
15104 insn_t to rtx_note *.
15105 * var-tracking.c (emit_note_insn_var_location): Strengthen local
15106 "note" from rtx to rtx_note *.
15107 (emit_notes_in_bb): Likewise.
15108
15109 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15110
15111 * function.h (struct rtl_data): Strengthen field
15112 "x_parm_birth_insn" from rtx to rtx_insn *.
15113 * function.c (struct assign_parm_data_all): Strengthen fields
15114 "first_conversion_insn" and "last_conversion_insn" from rtx to
15115 rtx_insn *.
15116
15117 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15118
15119 * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
15120 to rtx_insn *; also for local "var_end_seq".
15121 (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
15122 (maybe_cleanup_end_of_block): Likewise for param "last" and local
15123 "insn".
15124 (expand_gimple_cond): Likewise for locals "last2" and "last".
15125 (mark_transaction_restart_calls): Likewise for local "insn".
15126 (expand_gimple_stmt): Likewise for return type and locals "last"
15127 and "insn".
15128 (expand_gimple_tailcall): Likewise for locals "last2" and "last".
15129 (avoid_complex_debug_insns): Likewise for param "insn".
15130 (expand_debug_locations): Likewise for locals "insn", "last",
15131 "prev_insn" and "insn2".
15132 (expand_gimple_basic_block): Likewise for local "last".
15133 (construct_exit_block): Likewise for locals "head", "end",
15134 "orig_end".
15135 (pass_expand::execute): Likewise for locals "var_seq",
15136 "var_ret_seq", "next".
15137
15138 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15139
15140 * asan.h (asan_emit_stack_protection): Strengthen return type from
15141 rtx to rtx_insn *.
15142 * asan.c (asan_emit_stack_protection): Likewise. Add local
15143 "insns" to hold the return value.
15144
15145 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15146
15147 * basic-block.h (bb_note): Strengthen return type from rtx to
15148 rtx_note *.
15149 * sched-int.h (bb_note): Likewise.
15150 * cfgrtl.c (bb_note): Likewise. Add a checked cast to rtx_note *.
15151
15152 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15153
15154 * rtl.h (make_insn_raw): Strengthen return type from rtx to
15155 rtx_insn *.
15156
15157 * emit-rtl.c (make_insn_raw): Strengthen return type and local
15158 "insn" from rtx to rtx_insn *.
15159 (make_debug_insn_raw): Strengthen return type from rtx to
15160 rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
15161 (make_jump_insn_raw): Strengthen return type from rtx to
15162 rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
15163 (make_call_insn_raw): Strengthen return type from rtx to
15164 rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
15165 (emit_pattern_before_noloc): Strengthen return type of "make_raw"
15166 callback from rtx to rtx_insn *; likewise for local "insn" and
15167 "next", adding a checked cast to rtx_insn in the relevant cases of
15168 the switch statement.
15169 (emit_pattern_after_noloc): Strengthen return type of "make_raw"
15170 callback from rtx to rtx_insn *.
15171 (emit_pattern_after_setloc): Likewise.
15172 (emit_pattern_after): Likewise.
15173 (emit_pattern_before_setloc): Likewise.
15174 (emit_pattern_before): Likewise.
15175
15176 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15177
15178 * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
15179 rtx_call_insn *.
15180 * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
15181 accepting an rtx_insn *.
15182 (last_call_insn): Strengthen return type from rtx to
15183 rtx_call_insn *.
15184
15185 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15186
15187 * rtl.h (delete_trivially_dead_insns): Strengthen initial param
15188 "insns" from rtx to rtx_insn *.
15189 * cse.c (delete_trivially_dead_insns): Likewise, also do it for
15190 locals "insn" and "prev".
15191
15192 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15193
15194 * rtl.h (tablejump_p): Strengthen third param from rtx * to
15195 rtx_jump_table_data **.
15196
15197 * cfgbuild.c (make_edges): Introduce local "table", using it in
15198 place of "tmp" for jump table data.
15199 (find_bb_boundaries): Strengthen local "table" from rtx to
15200 rtx_jump_table_data *.
15201 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
15202 (outgoing_edges_match): Likewise for locals "table1" and "table2".
15203 (try_crossjump_to_edge): Likewise.
15204 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
15205 "table".
15206 (patch_jump_insn): Introduce local "table", using it in place of
15207 "tmp" for jump table data.
15208 (force_nonfallthru_and_redirect): Introduce local "table", so that
15209 call to tablejump_p can receive an rtx_jump_table_data **. Update
15210 logic around the call to overwrite "note" appropriately if
15211 tablejump_p returns non-zero.
15212 (get_last_bb_insn): Introduce local "table", using it in place of
15213 "tmp" for jump table data.
15214 * dwarf2cfi.c (create_trace_edges): Likewise.
15215
15216 * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
15217 from rtx to rtx_jump_table_data *.
15218 (create_fix_barrier): Strengthen local "tmp" from rtx to
15219 rtx_jump_table_data *.
15220 (arm_reorg): Likewise for local "table".
15221
15222 * config/s390/s390.c (s390_chunkify_start): Likewise.
15223
15224 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
15225
15226 * jump.c (delete_related_insns): Strengthen local "lab_next" from
15227 rtx to rtx_jump_table_data *.
15228
15229 * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
15230 rtx_jump_table_data **. Add a checked cast when writing through
15231 the pointer: we know there that local "table" is non-NULL and that
15232 JUMP_TABLE_DATA_P (table) holds.
15233 (label_is_jump_target_p): Introduce local "table", using it in
15234 place of "tmp" for jump table data.
15235
15236 2014-08-19 Marek Polacek <polacek@redhat.com>
15237
15238 PR c++/62153
15239 * doc/invoke.texi: Document -Wbool-compare.
15240
15241 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15242
15243 * rtl.h (entry_of_function): Strengthen return type from rtx to
15244 rtx_insn *.
15245 * cfgrtl.c (entry_of_function): Likewise.
15246
15247 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15248
15249 * emit-rtl.h (get_insns): Strengthen return type from rtx to
15250 rtx_insn *, adding a checked cast for now.
15251 (get_last_insn): Likewise.
15252
15253 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15254
15255 * rtl.h (gen_label_rtx): Strengthen return type from rtx to
15256 rtx_code_label *.
15257
15258 * emit-rtl.c (gen_label_rtx): Likewise.
15259
15260 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15261
15262 * rtl.h (previous_insn): Strengthen return type from rtx to
15263 rtx_insn *.
15264 (next_insn): Likewise.
15265 (prev_nonnote_insn): Likewise.
15266 (prev_nonnote_insn_bb): Likewise.
15267 (next_nonnote_insn): Likewise.
15268 (next_nonnote_insn_bb): Likewise.
15269 (prev_nondebug_insn): Likewise.
15270 (next_nondebug_insn): Likewise.
15271 (prev_nonnote_nondebug_insn): Likewise.
15272 (next_nonnote_nondebug_insn): Likewise.
15273 (prev_real_insn): Likewise.
15274 (next_real_insn): Likewise.
15275 (prev_active_insn): Likewise.
15276 (next_active_insn): Likewise.
15277
15278 * emit-rtl.c (next_insn): Strengthen return type from rtx to
15279 rtx_insn *, adding a checked cast.
15280 (previous_insn): Likewise.
15281 (next_nonnote_insn): Likewise.
15282 (next_nonnote_insn_bb): Likewise.
15283 (prev_nonnote_insn): Likewise.
15284 (prev_nonnote_insn_bb): Likewise.
15285 (next_nondebug_insn): Likewise.
15286 (prev_nondebug_insn): Likewise.
15287 (next_nonnote_nondebug_insn): Likewise.
15288 (prev_nonnote_nondebug_insn): Likewise.
15289 (next_real_insn): Likewise.
15290 (prev_real_insn): Likewise.
15291 (next_active_insn): Likewise.
15292 (prev_active_insn): Likewise.
15293
15294 * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
15295 param "stepfunc" so that it returns an rtx_insn * rather than an
15296 rtx, to track the change to prev_nonnote_insn_bb, which is the
15297 only function this is called with.
15298 * config/sh/sh.c (sh_find_set_of_reg): Likewise.
15299
15300 2014-08-19 Jan Hubicka <hubicka@ucw.cz>
15301
15302 * ipa-visibility.c (update_visibility_by_resolution_info): Fix
15303 assert.
15304
15305 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15306
15307 * coretypes.h (class rtx_debug_insn): Add forward declaration.
15308 (class rtx_nonjump_insn): Likewise.
15309 (class rtx_jump_insn): Likewise.
15310 (class rtx_call_insn): Likewise.
15311 (class rtx_jump_table_data): Likewise.
15312 (class rtx_barrier): Likewise.
15313 (class rtx_code_label): Likewise.
15314 (class rtx_note): Likewise.
15315
15316 * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
15317 adding the invariant DEBUG_INSN_P (X).
15318 (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
15319 the invariant NONJUMP_INSN_P (X).
15320 (class rtx_jump_insn): New, a subclass of rtx_insn, adding
15321 the invariant JUMP_P (X).
15322 (class rtx_call_insn): New, a subclass of rtx_insn, adding
15323 the invariant CALL_P (X).
15324 (class rtx_jump_table): New, a subclass of rtx_insn, adding the
15325 invariant JUMP_TABLE_DATA_P (X).
15326 (class rtx_barrier): New, a subclass of rtx_insn, adding the
15327 invariant BARRIER_P (X).
15328 (class rtx_code_label): New, a subclass of rtx_insn, adding
15329 the invariant LABEL_P (X).
15330 (class rtx_note): New, a subclass of rtx_insn, adding
15331 the invariant NOTE_P(X).
15332 (is_a_helper <rtx_debug_insn *>::test): New.
15333 (is_a_helper <rtx_nonjump_insn *>::test): New.
15334 (is_a_helper <rtx_jump_insn *>::test): New.
15335 (is_a_helper <rtx_call_insn *>::test): New.
15336 (is_a_helper <rtx_jump_table_data *>::test): New functions,
15337 overloaded for both rtx and rtx_insn *.
15338 (is_a_helper <rtx_barrier *>::test): New.
15339 (is_a_helper <rtx_code_label *>::test): New functions, overloaded
15340 for both rtx and rtx_insn *.
15341 (is_a_helper <rtx_note *>::test): New.
15342
15343 2014-08-19 Marek Polacek <polacek@redhat.com>
15344
15345 * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
15346 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
15347 * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
15348 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
15349
15350 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15351
15352 * sel-sched-ir.h (BND_TO): insn_t will eventually be an
15353 rtx_insn *. To help with transition, for now, convert from an
15354 access macro into a pair of functions: BND_TO, returning an
15355 rtx_insn *, and...
15356 (SET_BND_TO): New function, for use where BND_TO is used as an
15357 lvalue.
15358
15359 * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
15360 SET_BND_TO.
15361 (BND_TO): New function, adding a checked cast.
15362 (SET_BND_TO): New function.
15363
15364 * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
15365 SET_BND_TO.
15366 (compute_av_set_on_boundaries): Likewise.
15367
15368 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
15369
15370 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
15371 destination if it is used in source.
15372 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
15373 (*popcount<mode>2_falsedep_1): Likewise.
15374
15375 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
15376
15377 PR other/62168
15378 * configure.ac: Set install_gold_as_default to no first.
15379 * configure: Regenerated.
15380
15381 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15382
15383 * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
15384 "note_list" field will eventually be an rtx_insn *. To help with
15385 transition, for now, convert from an access macro into a pair of
15386 functions: BB_NOTE_LIST, returning an rtx_insn *, and...
15387 (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
15388 used as an lvalue.
15389
15390 * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
15391 of BB_NOTE_LIST to SET_BB_NOTE_LIST.
15392
15393 * sel-sched-ir.c (init_bb): Likewise.
15394 (sel_restore_notes): Likewise.
15395 (move_bb_info): Likewise.
15396 (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
15397 (SET_BB_NOTE_LIST): New function.
15398
15399 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15400
15401 * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
15402 field will eventually be an rtx_insn *. To help with transition,
15403 for now, convert from an access macro into a pair of functions:
15404 VINSN_INSN_RTX, returning an rtx_insn *, and...
15405 (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
15406 is used as an lvalue.
15407
15408 * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
15409 SET_VINSN_INSN_RTX where it's used as an lvalue.
15410 (VINSN_INSN_RTX): New function.
15411 (SET_VINSN_INSN_RTX): New function.
15412
15413 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15414
15415 * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
15416 eventually be rtx_insn *, but to help with transition, for now,
15417 convert from an access macro into a pair of functions: DEP_PRO
15418 returning an rtx_insn * and...
15419 (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
15420 lvalue, returning an rtx&.
15421 (DEP_CON): Analogous changes to DEP_PRO above.
15422 (SET_DEP_CON): Likewise.
15423
15424 * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
15425 an lvalue to SET_DEP_CON.
15426 * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
15427 (sd_copy_back_deps): Likewise for DEP_CON.
15428 (DEP_PRO): New function, adding a checked cast for now.
15429 (DEP_CON): Likewise.
15430 (SET_DEP_PRO): New function.
15431 (SET_DEP_CON): Likewise.
15432
15433 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
15434
15435 * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
15436 (extra_options): Add i386/cygwin.opt.
15437 * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
15438 (CPP_SPEC): Accept -pthread.
15439 (LINK_SPEC): Ditto.
15440 (GOMP_SELF_SPECS): Update comment.
15441 * config/i386/cygwin.opt: New file for -pthread flag.
15442
15443 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15444
15445 * df-core.c (DF_REF_INSN): New, using a checked cast for now.
15446 * df.h (DF_REF_INSN): Convert from a macro to a function, so
15447 that we can return an rtx_insn *.
15448
15449 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
15450
15451 * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
15452 when building executables, not DLLs. Add --large-address-aware
15453 under the same conditions.
15454 * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
15455 when building executables, not DLLs. Add --large-address-aware
15456 under the same conditions when using -m32.
15457
15458 * config/i386/cygwin-stdint.h: Throughout, make type
15459 definitions dependent on target architecture, not host.
15460
15461 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15462
15463 * rtl.h (PREV_INSN): Convert to an inline function. Strengthen
15464 the return type from rtx to rtx_insn *, which will enable various
15465 conversions in followup patches. For now this is is done by a
15466 checked cast.
15467 (NEXT_INSN): Likewise.
15468 (SET_PREV_INSN): Convert to an inline function. This is intended
15469 for use as an lvalue, and so returns an rtx& to allow in-place
15470 modification.
15471 (SET_NEXT_INSN): Likewise.
15472
15473 2014-07-08 Mark Wielaard <mjw@redhat.com>
15474
15475 PR debug/59051
15476 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
15477
15478 2014-08-19 Marek Polacek <polacek@redhat.com>
15479
15480 PR c/61271
15481 * cgraphunit.c (handle_alias_pairs): Fix condition.
15482
15483 2014-08-19 Richard Biener <rguenther@suse.de>
15484
15485 * gimple-fold.c (fold_gimple_assign): Properly build a
15486 null-pointer constant when devirtualizing addresses.
15487
15488 2014-07-07 Mark Wielaard <mjw@redhat.com>
15489
15490 * dwarf2out.c (decl_quals): New function.
15491 (modified_type_die): Take one cv_quals argument instead of two,
15492 one for const and one for volatile.
15493 (add_type_attribute): Likewise.
15494 (generic_parameter_die): Call add_type_attribute with one modifier
15495 argument.
15496 (base_type_for_mode): Likewise.
15497 (add_bounds_info): Likewise.
15498 (add_subscript_info): Likewise.
15499 (gen_array_type_die): Likewise.
15500 (gen_descr_array_type_die): Likewise.
15501 (gen_entry_point_die): Likewise.
15502 (gen_enumeration_type_die): Likewise.
15503 (gen_formal_parameter_die): Likewise.
15504 (gen_subprogram_die): Likewise.
15505 (gen_variable_die): Likewise.
15506 (gen_const_die): Likewise.
15507 (gen_field_die): Likewise.
15508 (gen_pointer_type_die): Likewise.
15509 (gen_reference_type_die): Likewise.
15510 (gen_ptr_to_mbr_type_die): Likewise.
15511 (gen_inheritance_die): Likewise.
15512 (gen_subroutine_type_die): Likewise.
15513 (gen_typedef_die): Likewise.
15514 (force_type_die): Likewise.
15515
15516 2014-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15517
15518 * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
15519 if unset.
15520 * configure: Regenerate.
15521
15522 2014-08-19 Richard Biener <rguenther@suse.de>
15523
15524 * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
15525 DECL_EXTERNALs in BLOCKs as non-references.
15526 * tree-streamer-out.c (streamer_write_chain): Likewise.
15527
15528 2014-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
15529 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15530 Anna Tikhonova <anna.tikhonova@intel.com>
15531 Ilya Tocar <ilya.tocar@intel.com>
15532 Andrey Turetskiy <andrey.turetskiy@intel.com>
15533 Ilya Verbin <ilya.verbin@intel.com>
15534 Kirill Yukhin <kirill.yukhin@intel.com>
15535 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15536
15537 * config/i386/sse.md
15538 (define_mode_iterator VI48_AVX512F): Delete.
15539 (define_mode_iterator VI48_AVX512F_AVX512VL): New.
15540 (define_mode_iterator VI2_AVX512VL): Ditto.
15541 (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
15542 Delete.
15543 (define_insn
15544 ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
15545 New.
15546 (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
15547 (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
15548 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
15549 with VI48_AVX512F_AVX512VL): New.
15550 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
15551 with VI2_AVX512VL): Ditto.
15552
15553 2014-08-19 Marek Polacek <polacek@redhat.com>
15554
15555 * doc/invoke.texi: Document -Wc99-c11-compat.
15556
15557 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15558
15559 * rtl.h (PREV_INSN): Split macro in two: the existing one,
15560 for rvalues, and...
15561 (SET_PREV_INSN): New macro, for use as an lvalue.
15562 (NEXT_INSN, SET_NEXT_INSN): Likewise.
15563
15564 * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
15565 PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
15566 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
15567 (fixup_abnormal_edges): Likewise.
15568 (unlink_insn_chain): Likewise.
15569 (fixup_reorder_chain): Likewise.
15570 (cfg_layout_delete_block): Likewise.
15571 (cfg_layout_merge_blocks): Likewise.
15572 * combine.c (update_cfg_for_uncondjump): Likewise.
15573 * emit-rtl.c (link_insn_into_chain): Likewise.
15574 (remove_insn): Likewise.
15575 (delete_insns_since): Likewise.
15576 (reorder_insns_nobb): Likewise.
15577 (emit_insn_after_1): Likewise.
15578 * final.c (rest_of_clean_state): Likewise.
15579 (final_scan_insn): Likewise.
15580 * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
15581 * haifa-sched.c (concat_note_lists): Likewise.
15582 (remove_notes): Likewise.
15583 (restore_other_notes): Likewise.
15584 (move_insn): Likewise.
15585 (unlink_bb_notes): Likewise.
15586 (restore_bb_notes): Likewise.
15587 * jump.c (delete_for_peephole): Likewise.
15588 * optabs.c (emit_libcall_block_1): Likewise.
15589 * reorg.c (emit_delay_sequence): Likewise.
15590 (fill_simple_delay_slots): Likewise.
15591 * sel-sched-ir.c (sel_move_insn): Likewise.
15592 (sel_remove_insn): Likewise.
15593 (get_bb_note_from_pool): Likewise.
15594 * sel-sched.c (move_nop_to_previous_block): Likewise.
15595
15596 * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
15597 * config/c6x/c6x.c (gen_one_bundle): Likewise.
15598 (c6x_gen_bundles): Likewise.
15599 (hwloop_optimize): Likewise.
15600 * config/frv/frv.c (frv_function_prologue): Likewise.
15601 (frv_register_nop): Likewise.
15602 * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
15603 (ia64_reorg): Likewise.
15604 * config/mep/mep.c (mep_reorg_addcombine): Likewise.
15605 (mep_make_bundle): Likewise.
15606 (mep_bundle_insns): Likewise.
15607 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
15608 * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
15609 * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
15610
15611 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15612
15613 * basic-block.h (BB_HEAD): Convert to a function. Strengthen the
15614 return type from rtx to rtx_insn *.
15615 (BB_END): Likewise.
15616 (BB_HEADER): Likewise.
15617 (BB_FOOTER): Likewise.
15618 (SET_BB_HEAD): Convert to a function.
15619 (SET_BB_END): Likewise.
15620 (SET_BB_HEADER): Likewise.
15621 (SET_BB_FOOTER): Likewise.
15622
15623 * cfgrtl.c (BB_HEAD): New function, from macro of same name.
15624 Strengthen the return type from rtx to rtx_insn *. For now, this
15625 is done by adding a checked cast, but this will eventually
15626 become a field lookup.
15627 (BB_END): Likewise.
15628 (BB_HEADER): Likewise.
15629 (BB_FOOTER): Likewise.
15630 (SET_BB_HEAD): New function, from macro of same name. This is
15631 intended for use as an lvalue, and so returns an rtx& to allow
15632 in-place modification.
15633 (SET_BB_END): Likewise.
15634 (SET_BB_HEADER): Likewise.
15635 (SET_BB_FOOTER): Likewise.
15636
15637 2014-08-18 David Malcolm <dmalcolm@redhat.com>
15638
15639 * basic-block.h (BB_HEAD): Split macro in two: the existing one,
15640 for rvalues, and...
15641 (SET_BB_HEAD): New macro, for use as a lvalue.
15642 (BB_END, SET_BB_END): Likewise.
15643 (BB_HEADER, SET_BB_HEADER): Likewise.
15644 (BB_FOOTER, SET_BB_FOOTER): Likewise.
15645
15646 * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
15647 of BB_* macros into SET_BB_* macros.
15648 (fix_crossing_unconditional_branches): Likewise.
15649 * caller-save.c (save_call_clobbered_regs): Likewise.
15650 (insert_one_insn): Likewise.
15651 * cfgbuild.c (find_bb_boundaries): Likewise.
15652 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
15653 (outgoing_edges_match): Likewise.
15654 (try_optimize_cfg): Likewise.
15655 * cfgexpand.c (expand_gimple_cond): Likewise.
15656 (expand_gimple_tailcall): Likewise.
15657 (expand_gimple_basic_block): Likewise.
15658 (construct_exit_block): Likewise.
15659 * cfgrtl.c (delete_insn): Likewise.
15660 (create_basic_block_structure): Likewise.
15661 (rtl_delete_block): Likewise.
15662 (rtl_split_block): Likewise.
15663 (emit_nop_for_unique_locus_between): Likewise.
15664 (rtl_merge_blocks): Likewise.
15665 (block_label): Likewise.
15666 (try_redirect_by_replacing_jump): Likewise.
15667 (emit_barrier_after_bb): Likewise.
15668 (fixup_abnormal_edges): Likewise.
15669 (record_effective_endpoints): Likewise.
15670 (relink_block_chain): Likewise.
15671 (fixup_reorder_chain): Likewise.
15672 (fixup_fallthru_exit_predecessor): Likewise.
15673 (cfg_layout_duplicate_bb): Likewise.
15674 (cfg_layout_split_block): Likewise.
15675 (cfg_layout_delete_block): Likewise.
15676 (cfg_layout_merge_blocks): Likewise.
15677 * combine.c (update_cfg_for_uncondjump): Likewise.
15678 * emit-rtl.c (add_insn_after): Likewise.
15679 (remove_insn): Likewise.
15680 (reorder_insns): Likewise.
15681 (emit_insn_after_1): Likewise.
15682 * haifa-sched.c (get_ebb_head_tail): Likewise.
15683 (restore_other_notes): Likewise.
15684 (move_insn): Likewise.
15685 (sched_extend_bb): Likewise.
15686 (fix_jump_move): Likewise.
15687 * ifcvt.c (noce_process_if_block): Likewise.
15688 (dead_or_predicable): Likewise.
15689 * ira.c (update_equiv_regs): Likewise.
15690 * reg-stack.c (change_stack): Likewise.
15691 * sel-sched-ir.c (sel_move_insn): Likewise.
15692 * sel-sched.c (move_nop_to_previous_block): Likewise.
15693
15694 * config/c6x/c6x.c (hwloop_optimize): Likewise.
15695 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
15696
15697 2014-08-18 David Malcolm <dmalcolm@redhat.com>
15698
15699 * rtl.h (for_each_rtx_in_insn): New function.
15700 * rtlanal.c (for_each_rtx_in_insn): Likewise.
15701
15702 2014-08-18 David Malcolm <dmalcolm@redhat.com>
15703
15704 * coretypes.h (class rtx_insn): Add forward declaration.
15705
15706 * rtl.h: Include is-a.h.
15707 (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
15708 workaround to ensure gengtype knows inheritance is occurring,
15709 whilst continuing to use the pre-existing special-casing for
15710 rtx_def.
15711 (class rtx_insn): New subclass of rtx_def, adding the
15712 invariant that we're dealing with something we can sanely use
15713 INSN_UID, NEXT_INSN, PREV_INSN on.
15714 (is_a_helper <rtx_insn *>::test): New.
15715 (is_a_helper <const rtx_insn *>::test): New.
15716
15717 2014-08-18 David Malcolm <dmalcolm@redhat.com>
15718
15719 * is-a.h (template<T, U> safe_as_a <U *p>) New function.
15720
15721 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
15722
15723 * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
15724 comdats as extern.
15725
15726 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
15727
15728 * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
15729 to BUILT_IN_UNREACHABLE.
15730
15731 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
15732
15733 PR target/62011
15734 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
15735 New tune flag.
15736 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
15737 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
15738 (ffs<mode>2): Do not expand with tzcnt for
15739 TARGET_AVOID_FALSE_DEP_FOR_BMI.
15740 (ffssi2_no_cmove): Ditto.
15741 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
15742 (ctz<mode>2): New expander.
15743 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
15744 (*ctz<mode>2_falsedep): New insn.
15745 (*ctz<mode>2): Rename from ctz<mode>2.
15746 (clz<mode>2_lzcnt): New expander.
15747 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
15748 (*clz<mode>2_lzcnt_falsedep): New insn.
15749 (*clz<mode>2): Rename from ctz<mode>2.
15750 (popcount<mode>2): New expander.
15751 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
15752 (*popcount<mode>2_falsedep): New insn.
15753 (*popcount<mode>2): Rename from ctz<mode>2.
15754 (*popcount<mode>2_cmp): Remove.
15755 (*popcountsi2_cmp_zext): Ditto.
15756
15757 2014-08-18 Ajit Agarwal <ajitkum@xilinx.com>
15758
15759 * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
15760 (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
15761 * config/microblaze/microblaze.h
15762 (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
15763
15764 2014-08-18 H.J. Lu <hongjiu.lu@intel.com>
15765
15766 PR other/62168
15767 * configure.ac: Set install_gold_as_default to no for
15768 --enable-gold=no.
15769 * configure: Regenerated.
15770
15771 2014-08-18 Roman Gareev <gareevroman@gmail.com>
15772
15773 * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
15774 * config.in: Add undef of HAVE_isl.
15775 * configure: Regenerate.
15776 * configure.ac: Add definition of HAVE_isl.
15777 * graphite-blocking.c: Add checking of HAVE_isl.
15778 * graphite-dependences.c: Likewise.
15779 * graphite-interchange.c: Likewise.
15780 * graphite-isl-ast-to-gimple.c: Likewise.
15781 * graphite-optimize-isl.c: Likewise.
15782 * graphite-poly.c: Likewise.
15783 * graphite-scop-detection.c: Likewise.
15784 * graphite-sese-to-poly.c: Likewise.
15785 * graphite.c: Likewise.
15786 * toplev.c: Replace the checking of HAVE_cloog with the checking
15787 of HAVE_isl.
15788
15789 2014-08-18 Richard Biener <rguenther@suse.de>
15790
15791 PR tree-optimization/62090
15792 * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
15793 (fold_builtin_3): Do not fold snprintf.
15794 (fold_builtin_4): Likewise.
15795 * gimple-fold.c (gimple_fold_builtin_snprintf): New function
15796 moved from builtins.c.
15797 (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
15798 (gimple_fold_builtin): Do not fold sprintf here.
15799
15800 2014-08-18 Richard Biener <rguenther@suse.de>
15801
15802 * gimple-fold.c (maybe_fold_reference): Move re-gimplification
15803 code to ...
15804 (maybe_canonicalize_mem_ref_addr): ... this function.
15805 (fold_stmt_1): Apply it here before all simplification.
15806
15807 2014-08-18 Ilya Enkovich <ilya.enkovich@intel.com>
15808
15809 PR ipa/61800
15810 * cgraph.h (cgraph_node::create_indirect_edge): Add
15811 compute_indirect_info param.
15812 * cgraph.c (cgraph_node::create_indirect_edge): Compute
15813 indirect_info only when it is required.
15814 * cgraphclones.c (cgraph_clone_edge): Do not recompute
15815 indirect_info fore cloned indirect edge.
15816
15817 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15818 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15819 Anna Tikhonova <anna.tikhonova@intel.com>
15820 Ilya Tocar <ilya.tocar@intel.com>
15821 Andrey Turetskiy <andrey.turetskiy@intel.com>
15822 Ilya Verbin <ilya.verbin@intel.com>
15823 Kirill Yukhin <kirill.yukhin@intel.com>
15824 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15825
15826 * config/i386/sse.md
15827 (define_mode_iterator VI8_AVX2_AVX512BW): New.
15828 (define_insn "<sse2_avx2>_psadbw"): Add evex version.
15829
15830 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15831 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15832 Anna Tikhonova <anna.tikhonova@intel.com>
15833 Ilya Tocar <ilya.tocar@intel.com>
15834 Andrey Turetskiy <andrey.turetskiy@intel.com>
15835 Ilya Verbin <ilya.verbin@intel.com>
15836 Kirill Yukhin <kirill.yukhin@intel.com>
15837 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15838
15839 * config/i386/sse.md
15840 (define_mode_iterator VF1_AVX512VL): New.
15841 (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
15842 (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
15843 New.
15844
15845 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15846 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15847 Anna Tikhonova <anna.tikhonova@intel.com>
15848 Ilya Tocar <ilya.tocar@intel.com>
15849 Andrey Turetskiy <andrey.turetskiy@intel.com>
15850 Ilya Verbin <ilya.verbin@intel.com>
15851 Kirill Yukhin <kirill.yukhin@intel.com>
15852 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15853
15854 * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
15855 * config/i386/i386.md
15856 (define_code_iterator any_float): New.
15857 (define_code_attr floatsuffix): New.
15858 * config/i386/sse.md
15859 (define_mode_iterator VF1_128_256VL): New.
15860 (define_mode_iterator VF2_512_256VL): New.
15861 (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
15862 TARGET check.
15863 (define_insn "ufloatv8siv8df<mask_name>"): Delete.
15864 (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
15865 New.
15866 (define_mode_attr qq2pssuff): New.
15867 (define_mode_attr sselongvecmode): New.
15868 (define_mode_attr sselongvecmodelower): New.
15869 (define_mode_attr sseintvecmode3): New.
15870 (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
15871 New.
15872 (define_insn "*<floatsuffix>floatv2div2sf2"): New.
15873 (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
15874 (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
15875 (define_insn "ufloatv2siv2df2<mask_name>"): New.
15876
15877 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15878 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15879 Anna Tikhonova <anna.tikhonova@intel.com>
15880 Ilya Tocar <ilya.tocar@intel.com>
15881 Andrey Turetskiy <andrey.turetskiy@intel.com>
15882 Ilya Verbin <ilya.verbin@intel.com>
15883 Kirill Yukhin <kirill.yukhin@intel.com>
15884 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15885
15886 * config/i386/sse.md
15887 (define_mode_iterator VF2_AVX512VL): New.
15888 (define_mode_attr sseintvecmode2): New.
15889 (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
15890 (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
15891 (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
15892 (define_insn
15893 "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
15894 Ditto.
15895 (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15896 Ditto.
15897 (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15898 Ditto.
15899
15900 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15901 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15902 Anna Tikhonova <anna.tikhonova@intel.com>
15903 Ilya Tocar <ilya.tocar@intel.com>
15904 Andrey Turetskiy <andrey.turetskiy@intel.com>
15905 Ilya Verbin <ilya.verbin@intel.com>
15906 Kirill Yukhin <kirill.yukhin@intel.com>
15907 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15908
15909 * config/i386/i386.md
15910 (define_insn "*movoi_internal_avx"): Add evex version.
15911 (define_insn "*movti_internal"): Ditto.
15912
15913 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15914 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15915 Anna Tikhonova <anna.tikhonova@intel.com>
15916 Ilya Tocar <ilya.tocar@intel.com>
15917 Andrey Turetskiy <andrey.turetskiy@intel.com>
15918 Ilya Verbin <ilya.verbin@intel.com>
15919 Kirill Yukhin <kirill.yukhin@intel.com>
15920 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15921
15922 * config/i386/i386.md
15923 (define_attr "isa"): Add avx512dq, noavx512dq.
15924 (define_attr "enabled"): Ditto.
15925 * config/i386/sse.md
15926 (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
15927
15928 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15929 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15930 Anna Tikhonova <anna.tikhonova@intel.com>
15931 Ilya Tocar <ilya.tocar@intel.com>
15932 Andrey Turetskiy <andrey.turetskiy@intel.com>
15933 Ilya Verbin <ilya.verbin@intel.com>
15934 Kirill Yukhin <kirill.yukhin@intel.com>
15935 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15936
15937 * config/i386/i386.c
15938 (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
15939 avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
15940 avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
15941 avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
15942 avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
15943 avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
15944 avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
15945 avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
15946 * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
15947 * config/i386/sse.md
15948 (define_mode_iterator VMOVE): Allow V4TI mode.
15949 (define_mode_iterator V_AVX512VL): New.
15950 (define_mode_iterator V): New handling for AVX512VL.
15951 (define_insn "avx512f_load<mode>_mask"): Delete.
15952 (define_insn "<avx512>_load<mode>_mask"): New.
15953 (define_insn "avx512f_store<mode>_mask"): Delete.
15954 (define_insn "<avx512>_store<mode>_mask"): New.
15955
15956
15957 2014-08-18 Yury Gribov <y.gribov@samsung.com>
15958
15959 PR sanitizer/62089
15960 * asan.c (instrument_derefs): Fix bitfield check.
15961
15962 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
15963
15964 * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
15965 * config/rs6000/htm.md (ttest): Remove clobber.
15966 * config/rs6000/predicates.md (any_mask_operand): New predicate.
15967 (and_operand): Reformat.
15968 (and_2rld_operand): New predicate.
15969 * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
15970 parameter.
15971 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
15972 parameter. Handle AND directly.
15973 (rs6000_split_logical_di): Remove last parameter.
15974 (rs6000_split_logical): Remove last parameter. Remove obsolete
15975 comment.
15976 * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
15977 (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
15978 (ctz<mode>2, ffs<mode>2): Delete clobber. Reformat.
15979 (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
15980 *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
15981 and 5 anonymous splitters): Delete.
15982 (and<mode>3): New expander.
15983 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
15984 (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
15985 (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
15986 (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
15987 (floatdisf2_internal1): Remove clobbers.
15988 (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
15989 *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
15990 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
15991 (and<mode>3 for BOOL_128): Remove clobber.
15992 (*and<mode>3_internal for BOOL_128): Remove clobber. Adjust call of
15993 rs6000_split_logical.
15994 (*bool<mode>3_internal for BOOL_128): Adjust call of
15995 rs6000_split_logical.
15996 (*boolc<mode>3_internal1 for BOOL_128,
15997 *boolc<mode>3_internal2 for BOOL_128,
15998 *boolcc<mode>3_internal1 for BOOL_128,
15999 *boolcc<mode>3_internal2 for BOOL_128,
16000 *eqv<mode>3_internal1 for BOOL_128,
16001 *eqv<mode>3_internal2 for BOOL_128,
16002 *one_cmpl<mode>3_internal for BOOL_128): Ditto.
16003 * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
16004 clobber.
16005 (*vec_reload_and_reg_<mptrsize>): Delete.
16006
16007 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
16008
16009 * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
16010 and split, *boolccsi3_internal3 and split): Delete.
16011 (*boolccdi3_internal1, *boolccdi3_internal2 and split,
16012 *boolccdi3_internal3 and split): Delete.
16013 (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
16014 (*eqv<mode>3): Move. Add TODO comment. Fix attributes.
16015
16016 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
16017
16018 * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
16019 and split, *boolcsi3_internal3 and split): Delete.
16020 (*boolcdi3_internal1, *boolcdi3_internal2 and split,
16021 *boolcdi3_internal3 and split): Delete.
16022 (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
16023
16024 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
16025
16026 * config/rs6000/rs6000.c (print_operand) <'e'>: New.
16027 <'u'>: Also support printing the low-order 16 bits.
16028 * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
16029 *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
16030 (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
16031 *booldi3_internal3 and split): Delete.
16032 (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
16033 *bool<mode>3_dot2): New.
16034 (two anonymous define_splits for non_logical_cint_operand): Merge.
16035
16036 2014-08-17 Marek Polacek <polacek@redhat.com>
16037 Manuel López-Ibáñez <manu@gcc.gnu.org>
16038
16039 PR c/62059
16040 * diagnostic.c (adjust_line): Add gcc_checking_assert.
16041 (diagnostic_show_locus): Don't print caret diagnostic
16042 if a column is larger than the line_width.
16043
16044 2014-08-17 Roman Gareev <gareevroman@gmail.com>
16045
16046 * common.opt: Make the ISL AST generator to be the main code generator
16047 of Graphite.
16048
16049 2014-08-16 Gerald Pfeifer <gerald@pfeifer.com>
16050
16051 * wide-int.h (generic_wide_int): Declare as class instead of struct.
16052
16053 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
16054
16055 PR target/61641
16056 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
16057 Declare.
16058 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
16059 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
16060 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
16061 Define.
16062 * config/pa/pa.md (begin_brtab): Delete insn.
16063 (end_brtab): Likewise.
16064
16065 2014-08-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
16066
16067 * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
16068
16069 2014-08-15 Jan Hubicka <hubicka@ucw.cz>
16070
16071 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
16072 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
16073 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
16074 (get_dynamic_type): Remove.
16075 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
16076 (clear_speculation): Bring to ipa-deivrt.h
16077 (get_class_context): Rename to ...
16078 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
16079 (contains_type_p): Update.
16080 (get_dynamic_type): Rename to ...
16081 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
16082 (possible_polymorphic_call_targets): UPdate.
16083 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
16084 * ipa-prop.c (ipa_analyze_call_uses): Update.
16085
16086 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
16087
16088 * doc/invoke.texi (SH options): Document missing processor variant
16089 options. Remove references to Hitachi. Undocument deprecated mspace
16090 option.
16091
16092 2014-08-15 Jason Merrill <jason@redhat.com>
16093
16094 * tree.c (type_hash_canon): Uncomment assert.
16095
16096 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
16097
16098 * input.h (in_system_header_at): Add comment.
16099
16100 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
16101
16102 PR fortran/44054
16103 * diagnostic.c (build_message_string): Make it extern.
16104 * diagnostic.h (build_message_string): Make it extern.
16105
16106 2014-08-15 Vladimir Makarov <vmakarov@redhat.com>
16107
16108 * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
16109 load/store from/to non-floating class pseudo.
16110
16111 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
16112
16113 * input.c (diagnostic_file_cache_fini): Fix typo in comment.
16114
16115 2014-08-15 Richard Biener <rguenther@suse.de>
16116
16117 * tree-ssa-structalias.c (readonly_id): Rename to string_id.
16118 (get_constraint_for_ssa_var): Remove dead code.
16119 (get_constraint_for_1): Adjust.
16120 (find_what_var_points_to): Likewise.
16121 (init_base_vars): Likewise. STRING_CSTs do not contain pointers.
16122
16123 2014-08-15 Ilya Tocar <tocarip@gmail.com>
16124
16125 PR target/61878
16126 * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
16127 (_mm512_mask_cmpge_epu32_mask): Ditto.
16128 (_mm512_cmpge_epu32_mask): Ditto.
16129 (_mm512_mask_cmpge_epi64_mask): Ditto.
16130 (_mm512_cmpge_epi64_mask): Ditto.
16131 (_mm512_mask_cmpge_epu64_mask): Ditto.
16132 (_mm512_cmpge_epu64_mask): Ditto.
16133 (_mm512_mask_cmple_epi32_mask): Ditto.
16134 (_mm512_cmple_epi32_mask): Ditto.
16135 (_mm512_mask_cmple_epu32_mask): Ditto.
16136 (_mm512_cmple_epu32_mask): Ditto.
16137 (_mm512_mask_cmple_epi64_mask): Ditto.
16138 (_mm512_cmple_epi64_mask): Ditto.
16139 (_mm512_mask_cmple_epu64_mask): Ditto.
16140 (_mm512_cmple_epu64_mask): Ditto.
16141 (_mm512_mask_cmplt_epi32_mask): Ditto.
16142 (_mm512_cmplt_epi32_mask): Ditto.
16143 (_mm512_mask_cmplt_epu32_mask): Ditto.
16144 (_mm512_cmplt_epu32_mask): Ditto.
16145 (_mm512_mask_cmplt_epi64_mask): Ditto.
16146 (_mm512_cmplt_epi64_mask): Ditto.
16147 (_mm512_mask_cmplt_epu64_mask): Ditto.
16148 (_mm512_cmplt_epu64_mask): Ditto.
16149 (_mm512_mask_cmpneq_epi32_mask): Ditto.
16150 (_mm512_mask_cmpneq_epu32_mask): Ditto.
16151 (_mm512_cmpneq_epu32_mask): Ditto.
16152 (_mm512_mask_cmpneq_epi64_mask): Ditto.
16153 (_mm512_cmpneq_epi64_mask): Ditto.
16154 (_mm512_mask_cmpneq_epu64_mask): Ditto.
16155 (_mm512_cmpneq_epu64_mask): Ditto.
16156 (_mm512_castpd_ps): Ditto.
16157 (_mm512_castpd_si512): Ditto.
16158 (_mm512_castps_pd): Ditto.
16159 (_mm512_castps_si512): Ditto.
16160 (_mm512_castsi512_ps): Ditto.
16161 (_mm512_castsi512_pd): Ditto.
16162 (_mm512_castpd512_pd128): Ditto.
16163 (_mm512_castps512_ps128): Ditto.
16164 (_mm512_castsi512_si128): Ditto.
16165 (_mm512_castpd512_pd256): Ditto.
16166 (_mm512_castps512_ps256): Ditto.
16167 (_mm512_castsi512_si256): Ditto.
16168 (_mm512_castpd128_pd512): Ditto.
16169 (_mm512_castps128_ps512): Ditto.
16170 (_mm512_castsi128_si512): Ditto.
16171 (_mm512_castpd256_pd512): Ditto.
16172 (_mm512_castps256_ps512): Ditto.
16173 (_mm512_castsi256_si512): Ditto.
16174 (_mm512_cmpeq_epu32_mask): Ditto.
16175 (_mm512_mask_cmpeq_epu32_mask): Ditto.
16176 (_mm512_mask_cmpeq_epu64_mask): Ditto.
16177 (_mm512_cmpeq_epu64_mask): Ditto.
16178 (_mm512_cmpgt_epu32_mask): Ditto.
16179 (_mm512_mask_cmpgt_epu32_mask): Ditto.
16180 (_mm512_mask_cmpgt_epu64_mask): Ditto.
16181 (_mm512_cmpgt_epu64_mask): Ditto.
16182 * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
16183 V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
16184 * config/i386/i386.c (enum ix86_builtins): Add
16185 IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
16186 IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
16187 IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
16188 (bdesc_args): Add __builtin_ia32_si512_256si,
16189 __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
16190 __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
16191 __builtin_ia32_pd512_pd.
16192 (ix86_expand_args_builtin): Handle new FTYPEs.
16193 * config/i386/sse.md (castmode): Add 512-bit modes.
16194 (AVX512MODE2P): New.
16195 (avx512f_<castmode><avxsizesuffix>_<castmode): New.
16196 (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
16197
16198 2014-08-15 Richard Biener <rguenther@suse.de>
16199
16200 * fold-const.c (tree_swap_operands_p): Put all constants
16201 last, also strip sign-changing NOPs when considering further
16202 canonicalization. Canonicalize also when optimizing for size.
16203
16204 2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16205
16206 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
16207 one_match > zero_match case to just before simple_sequence.
16208
16209 2014-08-15 Richard Biener <rguenther@suse.de>
16210
16211 * data-streamer.h (streamer_string_index, string_for_index):
16212 Remove.
16213 * data-streamer-out.c (streamer_string_index): Make static.
16214 * data-streamer-in.c (string_for_index): Likewise.
16215 * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
16216 * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
16217
16218 2014-08-15 Richard Biener <rguenther@suse.de>
16219
16220 PR tree-optimization/62031
16221 * tree-data-ref.c (dr_analyze_indices): Do not set
16222 DR_UNCONSTRAINED_BASE.
16223 (dr_may_alias_p): All indirect accesses have to go the
16224 formerly DR_UNCONSTRAINED_BASE path.
16225 * tree-data-ref.h (struct indices): Remove
16226 unconstrained_base member.
16227 (DR_UNCONSTRAINED_BASE): Remove.
16228
16229 2014-08-15 Jakub Jelinek <jakub@redhat.com>
16230
16231 PR middle-end/62092
16232 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
16233 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
16234 in OMP_CLAUSE_MAP in some outer target region.
16235
16236 2014-08-15 Bin Cheng <bin.cheng@arm.com>
16237
16238 * tree-ssa-loop-ivopts.c (ivopts_data): New field
16239 name_expansion_cache.
16240 (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
16241 (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
16242 (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
16243 (difference_cannot_overflow_p): New parameter. Use affine
16244 expansion for equality check.
16245 (iv_elimination_compare_lt): Pass new argument.
16246
16247 2014-08-14 DJ Delorie <dj@redhat.com>
16248
16249 * config/rl78/rl78-real.md (addqi3_real): Allow adding global
16250 variables to the accumulator.
16251
16252 * config/rl78/predicates.md (rl78_near_mem_operand): New.
16253 * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
16254 (movhi_virt_mm): Split out near mem-mem moves to avoid problems
16255 with far-far moves.
16256
16257 * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
16258 * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
16259 (umulqihi3_virt): Likewise.
16260 * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
16261 (umulqihi3_real): Likewise.
16262
16263 * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
16264
16265 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
16266
16267 PR tree-optimization/62091
16268 * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
16269 function_entry_reached.
16270 (walk_aliased_vdefs): Clear it here.
16271 * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
16272
16273 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
16274
16275 * ipa-utils.h (compare_virtual_tables): Declare.
16276 * ipa-devirt.c (odr_subtypes_equivalent_p): New function
16277
16278 2014-08-14 Marek Polacek <polacek@redhat.com>
16279
16280 DR 458
16281 * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
16282 (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
16283
16284 2014-08-14 Tom de Vries <tom@codesourcery.com>
16285
16286 * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
16287
16288 2014-08-14 Tom de Vries <tom@codesourcery.com>
16289
16290 PR rtl-optimization/62004
16291 PR rtl-optimization/62030
16292 * ifcvt.c (rtx_interchangeable_p): New function.
16293 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
16294 * emit-rtl.h (mem_attrs_eq_p): Declare.
16295
16296 2014-08-14 Roman Gareev <gareevroman@gmail.com>
16297
16298 * graphite-scop-detection.c:
16299 Add inclusion of cp-tree.h.
16300 (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
16301 in case they are pointers to object types
16302
16303 2014-08-14 Richard Biener <rguenther@suse.de>
16304
16305 * BASE-VER: Change to 5.0.0
16306
16307 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
16308 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16309 Anna Tikhonova <anna.tikhonova@intel.com>
16310 Ilya Tocar <ilya.tocar@intel.com>
16311 Andrey Turetskiy <andrey.turetskiy@intel.com>
16312 Ilya Verbin <ilya.verbin@intel.com>
16313 Kirill Yukhin <kirill.yukhin@intel.com>
16314 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16315
16316 * config/i386/sse.md (define_mode_attr avx512): New.
16317 (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
16318 V4DI modes.
16319 (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
16320 (define_mode_attr ssse3_avx2): Ditto.
16321 (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
16322 (define_mode_attr avx2_avx512bw): New.
16323 (define_mode_attr ssedoublemodelower): New.
16324 (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
16325 V32HI, V64QI modes.
16326 (define_mode_attr ssebytemode): Allow V8DI modes.
16327 (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
16328 (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
16329 (define_mode_attr ssePSmode2): New.
16330 (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
16331 V16HI, V32HI modes.
16332 (define_mode_attr dbpsadbwmode): New.
16333 (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
16334 V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
16335 (vi8_sse4_1_avx2_avx512): New.
16336 (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
16337 mode attribute.
16338 (define_mode_attr blendbits): Move before its immediate use.
16339
16340 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
16341 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16342 Anna Tikhonova <anna.tikhonova@intel.com>
16343 Ilya Tocar <ilya.tocar@intel.com>
16344 Andrey Turetskiy <andrey.turetskiy@intel.com>
16345 Ilya Verbin <ilya.verbin@intel.com>
16346 Kirill Yukhin <kirill.yukhin@intel.com>
16347 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16348
16349 * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
16350 * config/i386/subst.md
16351 (define_mode_iterator SUBST_V): Update.
16352 (define_mode_iterator SUBST_A): Ditto.
16353 (define_subst_attr "mask_operand7"): New.
16354 (define_subst_attr "mask_operand10"): New.
16355 (define_subst_attr "mask_operand_arg34") : New.
16356 (define_subst_attr "mask_expand_op3"): New.
16357 (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
16358 (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
16359 (define_subst_attr "mask_avx512vl_condition"): New.
16360 (define_subst_attr "round_mask_operand4"): Ditto.
16361 (define_subst_attr "round_mask_scalar_op3"): Delete.
16362 (define_subst_attr "round_mask_op4"): New.
16363 (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
16364 V16SImode.
16365 (define_subst_attr "round_modev8sf_condition"): New.
16366 (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
16367 <MODE>mode.
16368 (define_subst_attr "round_saeonly_mask_operand4"): New.
16369 (define_subst_attr "round_saeonly_mask_op4"): New.
16370 (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
16371 V8DImode, V16SImode.
16372 (define_subst_attr "round_saeonly_modev8sf_condition"): New.
16373 (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
16374 (define_subst_attr "mask_expand4_args"): New.
16375 (define_subst "mask_expand4"): New.
16376
16377 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
16378 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16379 Anna Tikhonova <anna.tikhonova@intel.com>
16380 Ilya Tocar <ilya.tocar@intel.com>
16381 Andrey Turetskiy <andrey.turetskiy@intel.com>
16382 Ilya Verbin <ilya.verbin@intel.com>
16383 Kirill Yukhin <kirill.yukhin@intel.com>
16384 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16385
16386 * config/i386/i386.md
16387 (define_attr "isa"): Add avx512bw,noavx512bw.
16388 (define_attr "enabled"): Ditto.
16389 (define_split): Add 32/64-bit mask logic.
16390 (define_insn "*k<logic>qi"): New.
16391 (define_insn "*k<logic>hi"): New.
16392 (define_insn "*anddi_1"): Add mask version.
16393 (define_insn "*andsi_1"): Ditto.
16394 (define_insn "*<code><mode>_1"): Ditto.
16395 (define_insn "*<code>hi_1"): Ditto.
16396 (define_insn "kxnor<mode>"): New.
16397 (define_insn "kunpcksi"): New.
16398 (define_insn "kunpckdi"): New.
16399 (define_insn "*one_cmpl<mode>2_1"): Add mask version.
16400 (define_insn "*one_cmplhi2_1"): Ditto.
16401
16402 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
16403 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16404 Anna Tikhonova <anna.tikhonova@intel.com>
16405 Ilya Tocar <ilya.tocar@intel.com>
16406 Andrey Turetskiy <andrey.turetskiy@intel.com>
16407 Ilya Verbin <ilya.verbin@intel.com>
16408 Kirill Yukhin <kirill.yukhin@intel.com>
16409 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16410
16411 * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
16412 V32HImode.
16413
16414 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
16415 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16416 Anna Tikhonova <anna.tikhonova@intel.com>
16417 Ilya Tocar <ilya.tocar@intel.com>
16418 Andrey Turetskiy <andrey.turetskiy@intel.com>
16419 Ilya Verbin <ilya.verbin@intel.com>
16420 Kirill Yukhin <kirill.yukhin@intel.com>
16421 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16422
16423 * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
16424 registers.
16425 (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
16426 (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
16427 xmm/ymm16+ when availble.
16428 * config/i386/i386.h
16429 (HARD_REGNO_NREGS): Add mask regs.
16430 (VALID_AVX512F_REG_MODE): Ditto.
16431 (VALID_AVX512F_REG_MODE) : Define.
16432 (VALID_MASK_AVX512BW_MODE): Ditto.
16433 (reg_class) (MASK_REG_P(X)): Define.
16434 * config/i386/i386.md: Do not split long moves with mask register,
16435 use kmovb if avx512bw is availible.
16436 (movdi_internal): Handle mask registers.
16437
16438 2014-08-14 Richard Biener <rguenther@suse.de>
16439
16440 PR tree-optimization/62081
16441 * tree-ssa-loop.c (pass_fix_loops): New pass.
16442 (pass_tree_loop::gate): Do not fixup loops here.
16443 * tree-pass.h (make_pass_fix_loops): Declare.
16444 * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
16445
16446 2014-08-14 Richard Biener <rguenther@suse.de>
16447
16448 * tree.c (type_hash_lookup, type_hash_add): Merge into ...
16449 (type_hash_canon): ... this and avoid 2nd lookup for the add.
16450
16451 2014-08-14 Richard Biener <rguenther@suse.de>
16452
16453 PR tree-optimization/62090
16454 * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
16455 (fold_builtin_2): Do not fold sprintf.
16456 (fold_builtin_3): Likewise.
16457 * gimple-fold.c (gimple_fold_builtin_sprintf): New function
16458 moved from builtins.c.
16459 (gimple_fold_builtin): Fold sprintf.
16460
16461 2014-08-14 Richard Biener <rguenther@suse.de>
16462
16463 PR rtl-optimization/62079
16464 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
16465 run cleanup_cfg.
16466
16467 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
16468
16469 * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
16470 current_function_decl.
16471
16472 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
16473
16474 * cgraph.c (cgraph_node::function_symbol): Fix wrong
16475 cgraph_function_node to cgraph_node::function_symbol
16476 refactoring.
16477
16478 2014-08-14 Zhenqiang Chen <zhenqiang.chen@arm.com>
16479
16480 * config/arm/arm.c (arm_option_override): Set max_insns_skipped
16481 to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
16482
16483 2014-08-13 Chen Gang gang.chen.5i5j@gmail.com
16484
16485 * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
16486 warning.
16487
16488 2014-08-13 Roman Gareev <gareevroman@gmail.com>
16489
16490 * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
16491 generator.
16492
16493 2014-08-12 Jakub Jelinek <jakub@redhat.com>
16494
16495 PR target/62025
16496 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
16497 any registers that are used in mem_insn.
16498
16499 2014-08-12 Steve Ellcey <sellcey@mips.com>
16500
16501 * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
16502
16503 2014-08-12 Steve Ellcey <sellcey@mips.com>
16504
16505 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
16506 (MULTILIB_DIRNAMES): Ditto.
16507 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
16508 * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
16509 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
16510 * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
16511 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
16512 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
16513
16514 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16515
16516 PR target/61413
16517 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
16518 of __ARM_SIZEOF_WCHAR_T.
16519
16520 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16521
16522 PR target/62098
16523 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
16524 Remove unnecessary attributes.
16525
16526 2014-08-12 Yury Gribov <y.gribov@samsung.com>
16527
16528 * internal-fn.c (init_internal_fns): Fix off-by-one.
16529
16530 2014-08-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
16531 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16532 Anna Tikhonova <anna.tikhonova@intel.com>
16533 Ilya Tocar <ilya.tocar@intel.com>
16534 Andrey Turetskiy <andrey.turetskiy@intel.com>
16535 Ilya Verbin <ilya.verbin@intel.com>
16536 Kirill Yukhin <kirill.yukhin@intel.com>
16537 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16538
16539 * config/i386/i386.c (standard_sse_constant_opcode): Use
16540 vpxord/vpternlog if avx512 is availible.
16541
16542 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
16543
16544 PR middle-end/62103
16545 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
16546 bitfields, that is when size doesn't match the size of type or the
16547 size of the constructor.
16548
16549 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
16550
16551 * config/rs6000/constraints.md (wh constraint): New constraint,
16552 for FP registers if direct move is available.
16553 (wi constraint): New constraint, for VSX/FP registers that can
16554 handle 64-bit integers.
16555 (wj constraint): New constraint for VSX/FP registers that can
16556 handle 64-bit integers for direct moves.
16557 (wk constraint): New constraint for VSX/FP registers that can
16558 handle 64-bit doubles for direct moves.
16559 (wy constraint): Make documentation match implementation.
16560
16561 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
16562 scalar_in_vmx_p field to simplify tests of whether SFmode or
16563 DFmode can go in the Altivec registers.
16564 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
16565 (rs6000_setup_reg_addr_masks): Likewise.
16566 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
16567 field, and wh/wi/wj/wk constraints.
16568 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
16569 the wh/wi/wj/wk constraints.
16570 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
16571 upper registers, prefer VSX registers unless the operation is a
16572 memory operation with REG+OFFSET addressing.
16573
16574 * config/rs6000/vsx.md (VSr mode attribute): Add support for
16575 DImode. Change SFmode to use ww constraint instead of d to allow
16576 SF registers in the upper registers.
16577 (VSr2): Likewise.
16578 (VSr3): Likewise.
16579 (VSr5): Fix thinko in comment.
16580 (VSa): New mode attribute that is an alternative to wa, that
16581 returns the VSX register class that a mode can go in, but may not
16582 be the preferred register class.
16583 (VS_64dm): New mode attribute for appropriate register classes for
16584 referencing 64-bit elements of vectors for direct moves and normal
16585 moves.
16586 (VS_64reg): Likewise.
16587 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
16588 register allocator to only registers the data type can handle.
16589 (vsx_le_perm_load_<mode>): Likewise.
16590 (vsx_le_perm_store_<mode>): Likewise.
16591 (vsx_xxpermdi2_le_<mode>): Likewise.
16592 (vsx_xxpermdi4_le_<mode>): Likewise.
16593 (vsx_lxvd2x2_le_<mode>): Likewise.
16594 (vsx_lxvd2x4_le_<mode>): Likewise.
16595 (vsx_stxvd2x2_le_<mode>): Likewise.
16596 (vsx_add<mode>3): Likewise.
16597 (vsx_sub<mode>3): Likewise.
16598 (vsx_mul<mode>3): Likewise.
16599 (vsx_div<mode>3): Likewise.
16600 (vsx_tdiv<mode>3_internal): Likewise.
16601 (vsx_fre<mode>2): Likewise.
16602 (vsx_neg<mode>2): Likewise.
16603 (vsx_abs<mode>2): Likewise.
16604 (vsx_nabs<mode>2): Likewise.
16605 (vsx_smax<mode>3): Likewise.
16606 (vsx_smin<mode>3): Likewise.
16607 (vsx_sqrt<mode>2): Likewise.
16608 (vsx_rsqrte<mode>2): Likewise.
16609 (vsx_tsqrt<mode>2_internal): Likewise.
16610 (vsx_fms<mode>4): Likewise.
16611 (vsx_nfma<mode>4): Likewise.
16612 (vsx_eq<mode>): Likewise.
16613 (vsx_gt<mode>): Likewise.
16614 (vsx_ge<mode>): Likewise.
16615 (vsx_eq<mode>_p): Likewise.
16616 (vsx_gt<mode>_p): Likewise.
16617 (vsx_ge<mode>_p): Likewise.
16618 (vsx_xxsel<mode>): Likewise.
16619 (vsx_xxsel<mode>_uns): Likewise.
16620 (vsx_copysign<mode>3): Likewise.
16621 (vsx_float<VSi><mode>2): Likewise.
16622 (vsx_floatuns<VSi><mode>2): Likewise.
16623 (vsx_fix_trunc<mode><VSi>2): Likewise.
16624 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
16625 (vsx_x<VSv>r<VSs>i): Likewise.
16626 (vsx_x<VSv>r<VSs>ic): Likewise.
16627 (vsx_btrunc<mode>2): Likewise.
16628 (vsx_b2trunc<mode>2): Likewise.
16629 (vsx_floor<mode>2): Likewise.
16630 (vsx_ceil<mode>2): Likewise.
16631 (vsx_<VS_spdp_insn>): Likewise.
16632 (vsx_xscvspdp): Likewise.
16633 (vsx_xvcvspuxds): Likewise.
16634 (vsx_float_fix_<mode>2): Likewise.
16635 (vsx_set_<mode>): Likewise.
16636 (vsx_extract_<mode>_internal1): Likewise.
16637 (vsx_extract_<mode>_internal2): Likewise.
16638 (vsx_extract_<mode>_load): Likewise.
16639 (vsx_extract_<mode>_store): Likewise.
16640 (vsx_splat_<mode>): Likewise.
16641 (vsx_xxspltw_<mode>): Likewise.
16642 (vsx_xxspltw_<mode>_direct): Likewise.
16643 (vsx_xxmrghw_<mode>): Likewise.
16644 (vsx_xxmrglw_<mode>): Likewise.
16645 (vsx_xxsldwi_<mode>): Likewise.
16646 (vsx_xscvdpspn): Tighten constraints to only use register classes
16647 the types use.
16648 (vsx_xscvspdpn): Likewise.
16649 (vsx_xscvdpspn_scalar): Likewise.
16650
16651 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
16652 wj, and wk constraints.
16653 (GPR_REG_CLASS_P): New helper macro for register classes targeting
16654 general purpose registers.
16655
16656 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
16657 direct moves.
16658 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
16659 DImode instead of wm. Use wk constraint for direct move of DFmode
16660 instead of wm.
16661 (extendsidi2_lfiwax): Likewise.
16662 (lfiwax): Likewise.
16663 (lfiwzx): Likewise.
16664 (movdi_internal64): Likewise.
16665
16666 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
16667 wk constraints. Make the wy constraint documentation match them
16668 implementation.
16669
16670 2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr>
16671
16672 Replacement of isl_int by isl_val
16673 * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
16674 (compute_bounds_for_param): use isl_val instead of isl_int
16675 (compute_bounds_for_loop): likewise
16676 * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
16677 (build_linearized_memory_access): use isl_val instead of isl_int
16678 (pdr_stride_in_loop): likewise
16679 * graphite-optimize-isl.c:
16680 (getPrevectorMap): use isl_val instead of isl_int
16681 * graphite-poly.c:
16682 (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
16683 graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
16684 (extern the_isl_ctx): declare
16685 (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
16686 (extract_affine_gmp): likewise
16687 (wrap): likewise
16688 (build_loop_iteration_domains): likewise
16689 (add_param_constraints): likewise
16690
16691 2014-08-11 Richard Biener <rguenther@suse.de>
16692
16693 PR tree-optimization/62075
16694 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
16695 handle uses in patterns.
16696
16697 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
16698 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16699 Anna Tikhonova <anna.tikhonova@intel.com>
16700 Ilya Tocar <ilya.tocar@intel.com>
16701 Andrey Turetskiy <andrey.turetskiy@intel.com>
16702 Ilya Verbin <ilya.verbin@intel.com>
16703 Kirill Yukhin <kirill.yukhin@intel.com>
16704 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16705
16706 * common/config/i386/i386-common.c
16707 (OPTION_MASK_ISA_AVX512VL_SET): Define.
16708 (OPTION_MASK_ISA_AVX512F_UNSET): Update.
16709 (ix86_handle_option): Handle OPT_mavx512vl.
16710 * config/i386/cpuid.h (bit_AVX512VL): Define.
16711 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
16712 set -mavx512vl accordingly.
16713 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16714 OPTION_MASK_ISA_AVX512VL.
16715 * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
16716 (ix86_option_override_internal): Define PTA_AVX512VL, handle
16717 PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
16718 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
16719 * config/i386/i386.h (TARGET_AVX512VL): Define.
16720 (TARGET_AVX512VL_P(x)): Ditto.
16721 * config/i386/i386.opt: Add mavx512vl.
16722
16723 2014-08-11 Felix Yang <fei.yang0953@gmail.com>
16724
16725 PR tree-optimization/62073
16726 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
16727 a basic block.
16728
16729 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
16730 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16731 Anna Tikhonova <anna.tikhonova@intel.com>
16732 Ilya Tocar <ilya.tocar@intel.com>
16733 Andrey Turetskiy <andrey.turetskiy@intel.com>
16734 Ilya Verbin <ilya.verbin@intel.com>
16735 Kirill Yukhin <kirill.yukhin@intel.com>
16736 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16737
16738 * common/config/i386/i386-common.c
16739 (OPTION_MASK_ISA_AVX512BW_SET) : Define.
16740 (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
16741 (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
16742 (ix86_handle_option): Handle OPT_mavx512bw.
16743 * config/i386/cpuid.h (bit_AVX512BW): Define.
16744 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
16745 set -mavx512bw accordingly.
16746 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16747 OPTION_MASK_ISA_AVX512BW.
16748 * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
16749 (ix86_option_override_internal): Define PTA_AVX512BW, handle
16750 PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
16751 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
16752 * config/i386/i386.h (TARGET_AVX512BW): Define.
16753 (TARGET_AVX512BW_P(x)): Ditto.
16754 * config/i386/i386.opt: Add mavx512bw.
16755
16756 2014-08-11 Richard Biener <rguenther@suse.de>
16757
16758 PR tree-optimization/62070
16759 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
16760 Remove SSA checking.
16761
16762 2014-08-11 Yury Gribov <y.gribov@samsung.com>
16763
16764 * asan.c (asan_check_flags): New enum.
16765 (build_check_stmt_with_calls): Removed function.
16766 (build_check_stmt): Split inlining logic to
16767 asan_expand_check_ifn.
16768 (instrument_derefs): Rename parameter.
16769 (instrument_mem_region_access): Rename parameter.
16770 (instrument_strlen_call): Likewise.
16771 (asan_expand_check_ifn): New function.
16772 (asan_instrument): Remove old code.
16773 (pass_sanopt::execute): Change handling of
16774 asan-instrumentation-with-call-threshold.
16775 (asan_clear_shadow): Fix formatting.
16776 (asan_function_start): Likewise.
16777 (asan_emit_stack_protection): Likewise.
16778 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
16779 Update description.
16780 * internal-fn.c (expand_ASAN_CHECK): New function.
16781 * internal-fn.def (ASAN_CHECK): New internal function.
16782 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
16783 Update description.
16784 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
16785 * tree.c: Small comment fix.
16786
16787 2014-08-11 Yury Gribov <y.gribov@samsung.com>
16788
16789 * gimple.c (gimple_call_fnspec): Support internal functions.
16790 (gimple_call_return_flags): Use const.
16791 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
16792 * internal-fn.def: Add fnspec information.
16793 * internal-fn.h (internal_fn_fnspec): New function.
16794 (init_internal_fns): Declare new function.
16795 * internal-fn.c (internal_fn_fnspec_array): New global variable.
16796 (init_internal_fns): New function.
16797 * tree-core.h: Update macro call.
16798 * tree.c (build_common_builtin_nodes): Initialize internal fns.
16799
16800 2014-08-10 Gerald Pfeifer <gerald@pfeifer.com>
16801
16802 * lto-streamer.h (struct output_block::symbol): Change from
16803 struct symtab_node to plain symtab_node.
16804 (referenced_from_this_partition_p): Change first parameter
16805 from struct symtab_node to plain symtab_node.
16806
16807 2014-08-10 Marek Polacek <polacek@redhat.com>
16808
16809 PR c/51849
16810 * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
16811
16812 2014-08-09 Jan Hubicka <hubicka@ucw.cz>
16813
16814 * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
16815 DECL correctly; do not give up on types in static storage.
16816
16817 2014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
16818
16819 * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
16820
16821 2014-08-09 Roman Gareev <gareevroman@gmail.com>
16822
16823 * graphite-isl-ast-to-gimple.c:
16824 (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
16825
16826 * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
16827
16828 2014-08-08 Guozhi Wei <carrot@google.com>
16829
16830 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
16831
16832 2014-08-08 Cary Coutant <ccoutant@google.com>
16833
16834 * dwarf2out.c (get_skeleton_type_unit): Remove.
16835 (output_skeleton_debug_sections): Remove skeleton type units.
16836 (output_comdat_type_unit): Likewise.
16837 (dwarf2out_finish): Likewise.
16838
16839 2014-08-07 Yi Yang <ahyangyi@google.com>
16840
16841 * predict.c (expr_expected_value_1): Remove the redundant assignment.
16842
16843 2014-08-08 Richard Biener <rguenther@suse.de>
16844
16845 * lto-streamer.h (struct lto_input_block): Make it a class
16846 with a constructor.
16847 (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
16848 (struct lto_function_header, struct lto_simple_header,
16849 struct lto_simple_header_with_strings,
16850 struct lto_decl_header, struct lto_function_header): Make
16851 a simple inheritance hieararchy. Remove unused fields.
16852 (struct lto_asm_header): Remove.
16853 * lto-streamer-out.c (produce_asm): Adjust.
16854 (lto_output_toplevel_asms): Likewise.
16855 (produce_asm_for_decls): Likewise.
16856 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16857 * data-streamer-in.c (string_for_index): Likewise.
16858 * ipa-inline-analysis.c (inline_read_section): Likewise.
16859 * ipa-prop.c (ipa_prop_read_section): Likewise.
16860 (read_replacements_section): Likewise.
16861 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
16862 * lto-section-in.c (lto_create_simple_input_block): Likewise.
16863 (lto_destroy_simple_input_block): Likewise.
16864 * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
16865 (lto_input_toplevel_asms): Likewise.
16866
16867 2014-08-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
16868 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16869 Anna Tikhonova <anna.tikhonova@intel.com>
16870 Ilya Tocar <ilya.tocar@intel.com>
16871 Andrey Turetskiy <andrey.turetskiy@intel.com>
16872 Ilya Verbin <ilya.verbin@intel.com>
16873 Kirill Yukhin <kirill.yukhin@intel.com>
16874 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16875
16876 * common/config/i386/i386-common.c
16877 (OPTION_MASK_ISA_AVX512DQ_SET): Define.
16878 (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
16879 (ix86_handle_option): Handle OPT_mavx512dq.
16880 * config/i386/cpuid.h (bit_AVX512DQ): Define.
16881 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
16882 set -mavx512dq accordingly.
16883 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16884 OPTION_MASK_ISA_AVX512DQ.
16885 * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
16886 (ix86_option_override_internal): Define PTA_AVX512DQ, handle
16887 PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
16888 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
16889 * config/i386/i386.h (TARGET_AVX512DQ): Define.
16890 (TARGET_AVX512DQ_P(x)): Ditto.
16891 * config/i386/i386.opt: Add mavx512dq.
16892
16893 2014-08-08 Richard Biener <rguenther@suse.de>
16894
16895 * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
16896 target_percent, target_percent_s): Export.
16897 (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
16898 fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
16899 fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
16900 fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
16901 fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
16902 Move to gimple-fold.c.
16903 (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
16904 strcat and strcpy.
16905 (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
16906 mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
16907 (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
16908 memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
16909 (rewrite_call_expr_array): Remove.
16910 (fold_builtin_sprintf_chk): Likewise.
16911 (fold_builtin_snprintf_chk): Likewise.
16912 (fold_builtin_varargs): Remove handling of sprintf_chk,
16913 vsprintf_chk, snprintf_chk and vsnprintf_chk.
16914 (gimple_fold_builtin_sprintf_chk): Remove.
16915 (gimple_fold_builtin_snprintf_chk): Likewise.
16916 (gimple_fold_builtin_varargs): Likewise.
16917 (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
16918 * predict.c (optimize_bb_for_size_p): Handle NULL bb.
16919 * gimple.c (gimple_seq_add_seq_without_update): New function.
16920 * gimple.h (gimple_seq_add_seq_without_update): Declare.
16921 * gimple-fold.c: Include output.h.
16922 (gsi_replace_with_seq_vops): New function, split out from ...
16923 (gimplify_and_update_call_from_tree): ... here.
16924 (replace_call_with_value): New function.
16925 (replace_call_with_call_and_fold): Likewise.
16926 (var_decl_component_p): Moved from builtins.c.
16927 (gimple_fold_builtin_memory_op): Moved from builtins.c
16928 fold_builtin_memory_op and rewritten to GIMPLE.
16929 (gimple_fold_builtin_memset): Likewise.
16930 (gimple_fold_builtin_strcpy): Likewise.
16931 (gimple_fold_builtin_strncpy): Likewise.
16932 (gimple_fold_builtin_strcat): Likewise.
16933 (gimple_fold_builtin_fputs): Likewise.
16934 (gimple_fold_builtin_memory_chk): Likewise.
16935 (gimple_fold_builtin_stxcpy_chk): Likewise.
16936 (gimple_fold_builtin_stxncpy_chk): Likewise.
16937 (gimple_fold_builtin_snprintf_chk): Likewise.
16938 (gimple_fold_builtin_sprintf_chk): Likewise.
16939 (gimple_fold_builtin_strlen): New function.
16940 (gimple_fold_builtin_with_strlen): New function split out from
16941 gimple_fold_builtin.
16942 (gimple_fold_builtin): Change signature and handle
16943 bzero, memset, bcopy, memcpy, mempcpy and memmove folding
16944 here. Call gimple_fold_builtin_with_strlen.
16945 (gimple_fold_call): Adjust.
16946
16947 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
16948
16949 * calls.c (precompute_arguments): Check
16950 promoted_for_signed_and_unsigned_p and set the promoted mode.
16951 (promoted_for_signed_and_unsigned_p): New function.
16952 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
16953 and set the promoted mode.
16954 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
16955 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
16956 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
16957
16958
16959 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
16960
16961 * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
16962 instead of SUBREG_PROMOTED_UNSIGNED_SET.
16963 (expand_call): Likewise.
16964 * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
16965 to get promoted mode.
16966 * combine.c (record_promoted_value): Skip > 0 comparison with
16967 SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
16968 * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
16969 of SUBREG_PROMOTED_UNSIGNED_P.
16970 (convert_modes): Likewise.
16971 (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
16972 Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
16973 (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
16974 SUBREG_PROMOTED_UNSIGNED_SET.
16975 * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
16976 instead of SUBREG_PROMOTED_UNSIGNED_SET.
16977 * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
16978 SUBREG_PROMOTED_SET.
16979 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
16980 SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
16981 * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
16982 of SUBREG_PROMOTED_UNSIGNED_P.
16983 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
16984 (SUBREG_PROMOTED_SET): New define.
16985 (SUBREG_PROMOTED_GET): Likewise.
16986 (SUBREG_PROMOTED_SIGN): Likewise.
16987 (SUBREG_PROMOTED_SIGNED_P): Likewise.
16988 (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
16989 (SUBREG_PROMOTED_UNSIGNED_P): Updated.
16990 * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
16991 instead of SUBREG_PROMOTED_UNSIGNED_GET.
16992 (nonzero_bits1): Skip > 0 comparison with the results as
16993 SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
16994 (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
16995 of !SUBREG_PROMOTED_UNSIGNED_P.
16996 * simplify-rtx.c (simplify_unary_operation_1): Use new
16997 SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
16998 (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
16999 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
17000 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
17001
17002 2014-08-07 Jan Hubicka <hubicka@ucw.cz>
17003
17004 * ipa-devirt.c: Include gimple-pretty-print.h
17005 (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
17006 further tests.
17007 (decl_maybe_in_construction_p): Fix conditional on cdtor check
17008 (get_polymorphic_call_info): Fix return value
17009 (type_change_info): New sturcture based on ipa-prop
17010 variant.
17011 (noncall_stmt_may_be_vtbl_ptr_store): New predicate
17012 based on ipa-prop variant.
17013 (extr_type_from_vtbl_ptr_store): New function
17014 based on ipa-prop variant.
17015 (record_known_type): New function.
17016 (check_stmt_for_type_change): New function.
17017 (get_dynamic_type): New function.
17018 * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
17019 * tree-ssa-pre.c: ipa-utils.h
17020 (eliminate_dom_walker::before_dom_children): Use ipa-devirt
17021 machinery; sanity check with ipa-prop devirtualization.
17022 * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
17023 polymorphic flag.
17024
17025 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
17026
17027 * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
17028 * alias.c, cfgexpand.c, cgraphbuild.c,
17029 config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
17030 config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
17031 config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
17032 config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
17033 config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
17034 config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
17035 config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
17036 dse.c, except.c, gengtype.c, gimple-expr.c,
17037 gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
17038 ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
17039 tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
17040 tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
17041 tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
17042 tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
17043 pointer-set.h.
17044 * pointer-set.c: Remove file.
17045 * pointer-set.h: Remove file.
17046
17047 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17048
17049 * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
17050 * config/arm/types.md (f_sels, f_seld): Delete.
17051
17052 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17053
17054 * config/aarch64/aarch64.md (absdi2): Set simd attribute.
17055 (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
17056 (aarch64_movdi_<mode>high): Likewise.
17057 (aarch64_mov<mode>high_di): Likewise.
17058 (aarch64_movdi_<mode>low): Likewise.
17059 (aarch64_mov<mode>low_di): Likewise.
17060 (aarch64_movtilow_tilow): Likewise.
17061 Add comment explaining usage of fp,simd attributes and of
17062 TARGET_FLOAT and TARGET_SIMD.
17063
17064 2014-08-07 Ian Bolton <ian.bolton@arm.com>
17065 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17066
17067 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
17068 Use MOVN when one of the half-words is 0xffff.
17069
17070 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
17071
17072 * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
17073
17074 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17075
17076 * haifa-sched.c (SCHED_SORT): Delete. Macro used exactly once.
17077 (enum rfs_decition:RFS_*): New constants wrapped in an enum.
17078 (rfs_str): String corresponding to RFS_* constants.
17079 (rank_for_schedule_stats_t): New typedef.
17080 (rank_for_schedule_stats): New static variable.
17081 (rfs_result): New static function.
17082 (rank_for_schedule): Track statistics for deciding heuristics.
17083 (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
17084 static functions.
17085 (ready_sort): Use them for debug printouts.
17086 (schedule_block): Init statistics state. Print statistics on
17087 rank_for_schedule decisions.
17088
17089 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17090
17091 * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
17092
17093 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
17094
17095 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
17096 constraint.
17097
17098 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
17099
17100 * hash-map.h (default_hashmap_traits): Adjust overloads of hash
17101 function to not conflict.
17102 * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
17103 gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
17104 lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
17105 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
17106 tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
17107 of pointer_map.
17108
17109 2014-08-07 Marek Polacek <polacek@redhat.com>
17110
17111 * fold-const.c (fold_binary_loc): Add folding of
17112 (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
17113
17114 2013-08-07 Ilya Enkovich <ilya.enkovich@intel.com>
17115
17116 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
17117 instead of type size.
17118 (ASM_FINISH_DECLARE_OBJECT): Likewise.
17119
17120 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
17121
17122 * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
17123 (*thumb1_movqi_insn): Likewise.
17124 * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
17125
17126 2014-08-07 Tom de Vries <tom@codesourcery.com>
17127
17128 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
17129 (glibc_2_11_or_earlier): Remove effective-target keywords.
17130
17131 2014-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
17132
17133 * config/arm/arm.c (bdesc_2arg): Fix typo.
17134 (arm_atomic_assign_expand_fenv): Remove The default implementation.
17135
17136 2014-08-07 Zhenqiang Chen <zhenqiang.chen@arm.com>
17137
17138 * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
17139
17140 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
17141
17142 PR debug/61923
17143 * haifa-sched.c (advance_one_cycle): Fix dump.
17144 (schedule_block): Don't advance cycle if we are already at the
17145 beginning of the cycle.
17146
17147 2014-08-06 Martin Jambor <mjambor@suse.cz>
17148
17149 PR ipa/61393
17150 * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
17151
17152 2014-08-06 Richard Biener <rguenther@suse.de>
17153
17154 PR lto/62034
17155 * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
17156 SCCs here.
17157 (lto_input_tree): Pop SCCs here.
17158
17159 2014-08-06 Richard Biener <rguenther@suse.de>
17160
17161 PR tree-optimization/61320
17162 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
17163 handle misaligned loads.
17164
17165 2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
17166
17167 * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
17168 (aarch64_expand_vec_perm_const): Check for dup before zip.
17169
17170 2014-08-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17171
17172 * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
17173 CONST_INT_P instead of GET_CODE and compare.
17174 (aarch64_select_cc_mode): Likewise.
17175 (aarch64_print_operand): Likewise.
17176 (aarch64_rtx_costs): Likewise.
17177 (aarch64_simd_valid_immediate): Likewise.
17178 (aarch64_simd_check_vect_par_cnst_half): Likewise.
17179 (aarch64_simd_emit_pair_result_insn): Likewise.
17180
17181 2014-08-05 David Malcolm <dmalcolm@redhat.com>
17182
17183 * gdbhooks.py (find_gcc_source_dir): New helper function.
17184 (class PassNames): New class, locating and parsing passes.def.
17185 (class BreakOnPass): New command "break-on-pass".
17186
17187 2014-08-05 Trevor Saunders <tsaunders@mozilla.com>
17188
17189 * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
17190 getting olde.
17191
17192 2014-08-05 Richard Biener <rguenther@suse.de>
17193
17194 PR rtl-optimization/61672
17195 * emit-rtl.h (mem_attrs_eq_p): Declare.
17196 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
17197 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
17198 * cfgcleanup.c (merge_memattrs): Likewise.
17199 Include emit-rtl.h.
17200
17201 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17202
17203 * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
17204 rather than singleton vectors.
17205 (vqdmlsls_lane_s32): Likewise.
17206
17207 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17208
17209 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
17210 Use VSDQ_HSI mode iterator.
17211 (aarch64_sqrdmulh_laneq<mode>): Likewise.
17212 (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
17213 * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
17214 Use BUILTIN_VDQHS macro.
17215 (sqrdmulh_laneq): Likewise.
17216 * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
17217 (vqdmlals_laneq_s32): Likewise.
17218 (vqdmlslh_laneq_s16): Likewise.
17219 (vqdmlsls_laneq_s32): Likewise.
17220 (vqdmulhh_laneq_s16): Likewise.
17221 (vqdmulhs_laneq_s32): Likewise.
17222 (vqrdmulhh_laneq_s16): Likewise.
17223 (vqrdmulhs_laneq_s32): Likewise.
17224
17225 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17226
17227 * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
17228 (vmuld_laneq_f64): Likewise.
17229 (vmuls_laneq_f32): Likewise.
17230 (vmul_n_f64): Likewise.
17231 (vmuld_lane_f64): Reimplement in C.
17232 (vmuls_lane_f32): Likewise.
17233
17234 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17235
17236 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
17237 to reservation.
17238 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
17239
17240 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17241
17242 * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
17243 (rbitsi2): Likewise.
17244 (*arm_rev): Set predicable and predicable_short_it attributes.
17245
17246 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17247
17248 * convert.c (convert_to_integer): Guard transformation to lrint by
17249 -fno-math-errno.
17250
17251 2014-08-05 James Greenhalgh <james.greenhalgh@arm.com>
17252
17253 * config/aarch64/aarch64-builtins.c
17254 (aarch64_simd_builtin_type_mode): Delete.
17255 (v8qi_UP): Remap to V8QImode.
17256 (v4hi_UP): Remap to V4HImode.
17257 (v2si_UP): Remap to V2SImode.
17258 (v2sf_UP): Remap to V2SFmode.
17259 (v1df_UP): Remap to V1DFmode.
17260 (di_UP): Remap to DImode.
17261 (df_UP): Remap to DFmode.
17262 (v16qi_UP):V16QImode.
17263 (v8hi_UP): Remap to V8HImode.
17264 (v4si_UP): Remap to V4SImode.
17265 (v4sf_UP): Remap to V4SFmode.
17266 (v2di_UP): Remap to V2DImode.
17267 (v2df_UP): Remap to V2DFmode.
17268 (ti_UP): Remap to TImode.
17269 (ei_UP): Remap to EImode.
17270 (oi_UP): Remap to OImode.
17271 (ci_UP): Map to CImode.
17272 (xi_UP): Remap to XImode.
17273 (si_UP): Remap to SImode.
17274 (sf_UP): Remap to SFmode.
17275 (hi_UP): Remap to HImode.
17276 (qi_UP): Remap to QImode.
17277 (aarch64_simd_builtin_datum): Make mode a machine_mode.
17278 (VAR1): Build builtin name.
17279 (aarch64_init_simd_builtins): Remove dead code.
17280
17281 2014-08-05 Roman Gareev <gareevroman@gmail.com>
17282
17283 * graphite-isl-ast-to-gimple.c:
17284 (set_options): New function.
17285 (scop_to_isl_ast): Add calling of set_options.
17286
17287 2014-08-05 Jakub Jelinek <jakub@redhat.com>
17288
17289 * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
17290 (analyze_iv_to_split_insn): Don't initialize them.
17291 (get_ivts_expr): Removed.
17292 (allocate_basic_variable, insert_base_initialization): Use
17293 SET_SRC instead of *get_ivts_expr.
17294 (split_iv): Use &SET_SRC instead of get_ivts_expr.
17295
17296 2014-08-05 Roman Gareev <gareevroman@gmail.com>
17297
17298 * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
17299 (translate_isl_ast_for_loop): Add checking of the
17300 flag_loop_parallelize_all.
17301 (ast_build_before_for): New function.
17302 (scop_to_isl_ast): Add checking of the
17303 flag_loop_parallelize_all.
17304 * graphite-dependences.c: Move the defenition of the
17305 scop_get_dependences from graphite-optimize-isl.c to this file.
17306 (apply_schedule_on_deps): Add checking of the ux's emptiness.
17307 (carries_deps): Add checking of the x's value.
17308 * graphite-optimize-isl.c: Move the defenition of the
17309 scop_get_dependences to graphite-dependences.c.
17310 * graphite-poly.h: Add declarations of scop_get_dependences
17311 and carries_deps.
17312
17313 2014-08-04 Rohit <rohitarulraj@freescale.com>
17314
17315 PR target/60102
17316 * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
17317 names.
17318 (alt_reg_names): Likewise.
17319 (rs6000_dwarf_register_span): For SPE high registers, replace
17320 dwarf register numbers with GCC hard register numbers.
17321 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
17322 (rs6000_dbx_register_number): For SPE high registers, return dwarf
17323 register number for the corresponding GCC hard register number.
17324 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
17325 newly added GCC hard register numbers for SPE high registers.
17326 (DWARF_FRAME_REGISTERS): Likewise.
17327 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
17328 (DWARF_FRAME_REGNUM): Likewise.
17329 (FIXED_REGISTERS): Likewise.
17330 (CALL_USED_REGISTERS): Likewise.
17331 (CALL_REALLY_USED_REGISTERS): Likewise.
17332 (REG_ALLOC_ORDER): Likewise.
17333 (enum reg_class): Likewise.
17334 (REG_CLASS_NAMES): Likewise.
17335 (REG_CLASS_CONTENTS): Likewise.
17336 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
17337
17338 2014-08-04 Richard Biener <rguenther@suse.de>
17339
17340 * gimple-fold.h (gimple_fold_builtin): Remove.
17341 * gimple-fold.c (gimple_fold_builtin): Make static.
17342 * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
17343 fold_stmt, not gimple_fold_builtin.
17344
17345 2014-08-04 Martin Liska <mliska@suse.cz>
17346
17347 * cgraph.h (csi_end_p): Removed.
17348 (csi_next): Likewise.
17349 (csi_node): Likewise.
17350 (csi_start): Likewise.
17351 (cgraph_node_in_set_p): Likewise.
17352 (cgraph_node_set_size): Likewise.
17353 (vsi_end_p): Likewise.
17354 (vsi_next): Likewise.
17355 (vsi_node): Likewise.
17356 (vsi_start): Likewise.
17357 (varpool_node_set_size): Likewise.
17358 (cgraph_node_set_nonempty_p): Likewise.
17359 (varpool_node_set_nonempty_p): Likewise.
17360 * cgraphunit.c (cgraph_process_new_functions): vec replaces
17361 cgraph_node_set.
17362 * ipa-inline-transform.c: Likewise.
17363 * ipa-utils.c (cgraph_node_set_new): Removed.
17364 (cgraph_node_set_add): Likewise.
17365 (cgraph_node_set_remove): Likewise.
17366 (cgraph_node_set_find): Likewise.
17367 (dump_cgraph_node_set): Likewise.
17368 (debug_cgraph_node_set): Likewise.
17369 (free_cgraph_node_set): Likewise.
17370 (varpool_node_set_new): Likewise.
17371 (varpool_node_set_add): Likewise.
17372 (varpool_node_set_remove): Likewise.
17373 (varpool_node_set_find): Likewise.
17374 (dump_varpool_node_set): Likewise.
17375 (free_varpool_node_set): Likewise.
17376 (debug_varpool_node_set): Likewise.
17377 * tree-emutls.c (struct tls_var_data):
17378 (emutls_index): Removed.
17379 (emutls_decl): Likewise.
17380 (gen_emutls_addr): Function implementation uses newly added
17381 hash_map<varpool_node *, tls_var_data>.
17382 (clear_access_vars): Likewise.
17383 (create_emultls_var): Likewise.
17384 (ipa_lower_emutls): Likewise.
17385 (reset_access): New function.
17386
17387 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17388
17389 * config/i386/i386.c (ix86_option_override_internal): Add
17390 PTA_RDRND and PTA_MOVBE for bdver4.
17391
17392 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17393 James Greenhalgh <james.greenhalgh@arm.com>
17394
17395 * doc/md.texi (clrsb): Document.
17396 (clz): Change reference to x into operand 1.
17397 (ctz): Likewise.
17398 (popcount): Likewise.
17399
17400 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17401
17402 PR target/61713
17403 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
17404 move to subtarget in serial version if result is ignored.
17405
17406 2014-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17407 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17408
17409 * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
17410 to any two insns. Update comment. Rename to sched_macro_fuse_insns.
17411 (sched_analyze_insn): Update use of try_group_insn to
17412 sched_macro_fuse_insns.
17413 * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
17414 arguments that are not conditional jumps.
17415
17416 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17417
17418 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
17419 family information. Handle BTVER2 cpu with cpuid family value.
17420
17421 2014-08-04 Tom de Vries <tom@codesourcery.com>
17422
17423 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
17424 (glibc_2_11_or_earlier): Document effective-target keywords.
17425
17426 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
17427
17428 * ipa-devirt.c (odr_type_warn_count): Add type.
17429 (possible_polymorphic_call_targets): Set it.
17430 (ipa_devirt): Use it.
17431
17432 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
17433
17434 * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
17435 Document.
17436 * ipa-devirt.c: Include hash-map.h
17437 (struct polymorphic_call_target_d): Add type_warning and decl_warning.
17438 (clear_speculation): Break out of ...
17439 (get_class_context): ... here; speed up handling obviously useless
17440 speculations.
17441 (odr_type_warn_count, decl_warn_count): New structures.
17442 (final_warning_record): New structure.
17443 (final_warning_records): New static variable.
17444 (possible_polymorphic_call_targets): Cleanup handling of
17445 speculative info; do not build speculation when user do not care;
17446 record info about warnings when asked for.
17447 (add_decl_warning): New function.
17448 (type_warning_cmp): New function.
17449 (decl_warning_cmp): New function.
17450 (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
17451 (gate): Enable pass when warnings are requested.
17452 * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
17453 options.
17454
17455 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
17456
17457 * hash-map.h (default_hashmap_traits::mark_key_deleted):
17458 Fix cast.
17459 (hash_map::remove): New method.
17460 (hash_map::traverse): New method.
17461 * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
17462 ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
17463 tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
17464 tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
17465 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
17466 tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
17467 pointer_map.
17468
17469 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
17470
17471 * hash-set.h: new File.
17472 * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
17473 cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
17474 ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
17475 lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
17476 tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
17477 tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
17478 tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
17479 varpool.c: Use hash_set instead of pointer_set.
17480
17481 2014-08-01 Alan Lawrence <alan.lawrence@arm.com>
17482
17483 * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
17484
17485 2014-08-01 Jiong Wang <jiong.wang@arm.com>
17486
17487 * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
17488 for frame access when strict_p is false.
17489
17490 2014-08-01 Renlin Li <renlin.li@arm.com>
17491 2014-08-01 Jiong Wang <jiong.wang@arm.com>
17492
17493 * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
17494 aarch64_offset_7bit_signed_scaled_p, remove static and use it.
17495 * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
17496 Declaration.
17497 * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
17498 predicate.
17499 * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
17500 aarch64_mem_pair_offset.
17501
17502 2014-08-01 Jiong Wang <jiong.wang@arm.com>
17503
17504 * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
17505 offset.
17506 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
17507 * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
17508
17509 2014-08-01 Matthew Fortune <matthew.fortune@imgtec.com>
17510
17511 * config/mips/mips.h (REGISTER_PREFIX): Define macro.
17512
17513 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
17514
17515 PR regression/61510
17516 * cgraphunit.c (analyze_functions): Use get_create rather than get
17517 for decls which are clones of abstract functions.
17518
17519 2014-08-01 Martin Liska <mliska@suse.cz>
17520
17521 * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
17522 * ipa-prop.h (count_formal_params): Global function created from static.
17523 * ipa-prop.c (count_formal_params): Likewise.
17524 * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
17525 profiles for semantically equivalent functions.
17526 * passes.c (do_per_function): If we load body of a function
17527 during WPA, this condition should behave same.
17528 * varpool.c (ctor_for_folding): More tolerant assert for variable
17529 aliases created during WPA.
17530
17531 2014-08-01 Martin Liska <mliska@suse.cz>
17532
17533 * doc/invoke.texi (Options That Control Optimization): Documentation
17534 for -foptimize-strlen introduced. Optimization levels default options
17535 fixed.
17536
17537 2014-08-01 Jakub Jelinek <jakub@redhat.com>
17538
17539 * opts.c (common_handle_option): Handle -fsanitize=alignment.
17540 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
17541 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
17542 type to bool.
17543 * stor-layout.h (min_align_of_type): New prototype.
17544 * asan.c (pass_sanopt::execute): Don't perform gsi_next if
17545 ubsan_expand* told us not to do it. Remove the extra gsi_end_p
17546 check.
17547 * ubsan.c: Include builtins.h.
17548 (ubsan_expand_bounds_ifn): Change return type to bool,
17549 always return true.
17550 (ubsan_expand_null_ifn): Change return type to bool, change
17551 argument to gimple_stmt_iterator *. Handle both null and alignment
17552 sanitization, take type from ckind argument's type rather than
17553 first argument.
17554 (instrument_member_call): Removed.
17555 (instrument_mem_ref): Remove t argument, add mem and base arguments.
17556 Handle both null and alignment sanitization, don't say whole
17557 struct access is member access. Build 3 argument IFN_UBSAN_NULL
17558 call instead of 2 argument.
17559 (instrument_null): Adjust instrument_mem_ref caller. Don't
17560 instrument calls here.
17561 (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
17562 like SANITIZE_NULL.
17563 * stor-layout.c (min_align_of_type): New function.
17564 * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
17565 Or it into SANITIZE_UNDEFINED.
17566 * doc/invoke.texi (-fsanitize=alignment): Document.
17567
17568 2014-07-31 Andi Kleen <ak@linux.intel.com>
17569
17570 * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
17571
17572 2014-07-31 Andi Kleen <ak@linux.intel.com>
17573
17574 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
17575 inchash.
17576 (vn_reference_compute_hash): Dito.
17577 (vn_nary_op_compute_hash): Dito.
17578 (vn_phi_compute_hash): Dito.
17579 * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
17580
17581 2014-07-31 Andi Kleen <ak@linux.intel.com>
17582
17583 * tree-ssa-dom.c (iterative_hash_exprs_commutative):
17584 Rename to inchash:add_expr_commutative. Convert to inchash.
17585 (iterative_hash_hashable_expr): Rename to
17586 inchash:add_hashable_expr. Convert to inchash.
17587 (avail_expr_hash): Dito.
17588
17589 2014-07-31 Andi Kleen <ak@linux.intel.com>
17590
17591 * ipa-devirt.c (polymorphic_call_target_hasher::hash):
17592 Convert to inchash.
17593
17594 2014-07-31 Andi Kleen <ak@linux.intel.com>
17595
17596 * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
17597
17598 2014-07-31 Andi Kleen <ak@linux.intel.com>
17599
17600 * Makefile.in (OBJS): Add rtlhash.o
17601 * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
17602 (loc_checksum): Dito.
17603 (loc_checksum_ordered): Dito.
17604 (hash_loc_operands): Dito.
17605 (hash_locs): Dito.
17606 (hash_loc_list): Dito.
17607 * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
17608 * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
17609 * rtlhash.c: New file.
17610 * rtlhash.h: New file.
17611
17612 2014-07-31 Andi Kleen <ak@linux.intel.com>
17613
17614 * inchash.h (inchash): Change inchash class to namespace.
17615 (class hash): ... Rename from inchash.
17616 (add_object): Move from macro to class template.
17617 * lto-streamer-out.c (hash_tree): Change inchash
17618 to inchash::hash.
17619 * tree.c (build_type_attribute_qual_variant): Dito.
17620 (type_hash_list): Dito.
17621 (attribute_hash_list): Dito.
17622 (iterative_hstate_expr): Rename to inchash::add_expr
17623 (build_range_type_1): Change inchash to inchash::hash
17624 and use hash::add_expr.
17625 (build_array_type_1): Dito.
17626 (build_function_type): Dito
17627 (build_method_type_directly): Dito.
17628 (build_offset_type): Dito.
17629 (build_complex_type): Dito.
17630 (make_vector_type): Dito.
17631 * tree.h (iterative_hash_expr): Dito.
17632
17633 2014-07-31 Chen Gang <gang.chen.5i5j@gmail.com>
17634
17635 * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
17636
17637 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
17638
17639 * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
17640 correct alphabetical position.
17641 (vpaddd_f64): Rewrite using builtins.
17642 (vpaddd_s64): Move to correct alphabetical position.
17643 (vpaddd_u64): New.
17644
17645 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
17646
17647 PR target/61844
17648 * config/sh/sh.c (sh_legitimate_address_p,
17649 sh_legitimize_reload_address): Handle reg+reg address modes when
17650 ALLOW_INDEXED_ADDRESS is false.
17651 * config/sh/predicates.md (general_movsrc_operand,
17652 general_movdst_operand): Likewise.
17653
17654 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
17655
17656 * config/aarch64/aarch64-builtins.c
17657 (aarch64_gimple_fold_builtin): Don't fold reduction operations for
17658 BYTES_BIG_ENDIAN.
17659
17660 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
17661
17662 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
17663 the generated mask based on BYTES_BIG_ENDIAN.
17664 (aarch64_simd_check_vect_par_cnst_half): New.
17665 * config/aarch64/aarch64-protos.h
17666 (aarch64_simd_check_vect_par_cnst_half): New.
17667 * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
17668 the check out to aarch64_simd_check_vect_par_cnst_half.
17669 (vect_par_cnst_lo_half): Likewise.
17670 * config/aarch64/aarch64-simd.md
17671 (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
17672 (move_hi_quad_<mode>): Always generate a low mask.
17673
17674 2014-07-30 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
17675
17676 * doc/invoke.texi (AVR Options): Add documentation about
17677 __AVR_DEVICE_NAME__ built-in macro.
17678
17679 2014-07-31 Charles Baylis <charles.baylis@linaro.org>
17680
17681 PR target/61948
17682 * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
17683 constraints are satisfied.
17684 (<shift>di3_neon): Likewise.
17685
17686 2014-07-31 Richard Biener <rguenther@suse.de>
17687
17688 PR tree-optimization/61964
17689 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
17690 by structural equality.
17691
17692 2014-07-31 Yury Gribov <y.gribov@samsung.com>
17693
17694 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
17695 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
17696 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
17697 New enums.
17698 * gcc.c (sanitize_spec_function): Support new option.
17699 (SANITIZER_SPEC): Remove now redundant check.
17700 * opts.c (common_handle_option): Support new option.
17701 (finish_options): Check for incompatibilities.
17702 * toplev.c (process_options): Split userspace-specific checks.
17703
17704 2014-07-31 Richard Biener <rguenther@suse.de>
17705
17706 * lto-streamer.h (struct output_block): Remove global.
17707 (struct data_in): Remove labels, num_named_labels and
17708 num_unnamed_labels.
17709 * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
17710 * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
17711
17712 2014-07-31 Marc Glisse <marc.glisse@inria.fr>
17713
17714 PR c++/60517
17715 * common.opt (-Wreturn-local-addr): Moved from c.opt.
17716 * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
17717 (isolate_path): New argument to avoid inserting a trap.
17718 (find_implicit_erroneous_behaviour): Handle returning the address
17719 of a local variable.
17720 (find_explicit_erroneous_behaviour): Likewise.
17721
17722 2014-07-31 Bingfeng Mei <bmei@broadcom.com>
17723
17724 PR lto/61868
17725 * toplev.c (init_random_seed): Move piece of code never called to
17726 set_random_seed.
17727 (set_random_seed): see above.
17728
17729 2014-07-31 Tom de Vries <tom@codesourcery.com>
17730
17731 * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
17732
17733 2014-07-31 Richard Sandiford <rdsandiford@googlemail.com>
17734
17735 * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
17736 (compute_regs_asm_clobbered): Use extract_asm_operands instead.
17737
17738 2014-07-31 Richard Biener <rguenther@suse.de>
17739
17740 * data-streamer.h (streamer_write_data_stream): Declare here,
17741 renamed from ...
17742 * lto-streamer.h (lto_output_data_stream): ... this. Remove.
17743 * lto-cgraph.c (lto_output_node): Adjust.
17744 (lto_output_varpool_node): Likewise.
17745 * data-streamer-out.c (streamer_string_index): Likewise.
17746 (streamer_write_data_stream, lto_append_block): Move from ...
17747 * lto-section-out.c (lto_output_data_stream,
17748 lto_append_block): ... here.
17749
17750 2014-07-30 Mike Stump <mikestump@comcast.net>
17751
17752 * configure.ac: Also check for popen.
17753 * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
17754 * configure: Regenerate.
17755 * config.in: Regenerate.
17756
17757 2014-07-30 Martin Jambor <mjambor@suse.cz>
17758
17759 * tree-sra.c (sra_ipa_modify_assign): Change type of the first
17760 parameter to gimple.
17761
17762 2014-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17763
17764 * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
17765 address as second parameter to __tpf_eh_return routine.
17766
17767 2014-07-30 Jiong Wang <jiong.wang@arm.com>
17768
17769 * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
17770 Thumb2.
17771
17772 2014-07-30 Tom Tromey <tromey@redhat.com>
17773
17774 PR c/59855
17775 * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
17776 * doc/extend.texi (Type Attributes): Document designated_init
17777 attribute.
17778
17779 2014-07-30 Roman Gareev <gareevroman@gmail.com>
17780
17781 * graphite-isl-ast-to-gimple.c:
17782 (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
17783 (gcc_expression_from_isl_expression): Pass type to
17784 gcc_expression_from_isl_ast_expr_id.
17785
17786 2014-07-30 Richard Biener <rguenther@suse.de>
17787
17788 * lto-streamer.h (lto_write_data): New function.
17789 * langhooks.c (lhd_append_data): Do not free block.
17790 * lto-section-out.c (lto_write_data): New function writing
17791 raw data to the current section.
17792 (lto_write_stream): Adjust for langhook semantic change.
17793 (lto_destroy_simple_output_block): Write header directly.
17794 * lto-opts.c (lto_write_options): Write options directly.
17795 * lto-streamer-out.c (produce_asm): Write heaeder directly.
17796 (lto_output_toplevel_asms): Likewise.
17797 (copy_function_or_variable): Copy data directly.
17798 (write_global_references): Output index table directly.
17799 (lto_output_decl_state_refs): Likewise.
17800 (write_symbol): Write data directly.
17801 (produce_symtab): Adjust.
17802 (produce_asm_for_decls): Output header and refs directly.
17803
17804 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
17805
17806 * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
17807 to speculative_targets
17808 (get_class_context): Fix handling of contextes without outer type;
17809 avoid matching non-polymorphic types in LTO.
17810 (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
17811 parameter to speculative_targetsp; handle speculation.
17812 (dump_possible_polymorphic_call_targets): Update dumping.
17813
17814 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
17815
17816 * common.opt (Wodr): Enable by default.
17817
17818 2014-07-29 Olivier Hainque <hainque@adacore.com>
17819
17820 * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
17821
17822 2014-07-29 H.J. Lu <hongjiu.lu@intel.com>
17823
17824 PR bootstrap/61914
17825 * gengtype.c (strtoken): New function.
17826 (create_user_defined_type): Replace strtok with strtoken.
17827
17828 2014-07-29 Nathan Sidwell <nathan@acm.org>
17829
17830 * gcov-io.c (gcov_var): Make hidden.
17831 * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
17832 (gcov_do_dump): Declare.
17833 (gcov_output_files): Call gcov_do_dump, not gcov_exit).
17834
17835 2014-07-29 Martin Jambor <mjambor@suse.cz>
17836
17837 * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
17838 parameter to gimple.
17839 (sra_modify_assign): Likewise.
17840
17841 2014-07-29 Richard Biener <rguenther@suse.de>
17842
17843 PR middle-end/52478
17844 * expr.c (expand_expr_real_2): Revert last change.
17845
17846 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
17847
17848 * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
17849 * cgraph.h (cgraph_indirect_call_info): Add speculative data.
17850 * gimple-fold.c (fold_gimple_assign): Fix check for virtual
17851 call.
17852 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
17853 (contains_type_p): Forward declare.
17854 (polymorphic_call_target_hasher::hash): Hash speculative info.
17855 (polymorphic_call_target_hasher::equal): Compare speculative info.
17856 (get_class_context): Handle speuclation.
17857 (contains_type_p): Update.
17858 (get_polymorphic_call_info_for_decl): Update.
17859 (walk_ssa_copies): Break out from ...
17860 (get_polymorphic_call_info): ... here; set speculative context
17861 before giving up.
17862 * ipa-prop.c (ipa_write_indirect_edge_info,
17863 ipa_read_indirect_edge_info): Stream speculative context.
17864 * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
17865 (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
17866 SPECULATIVE_MAYBE_DERIVED_TYPE).
17867 (possible_polymorphic_call_targets overriders): Update.
17868 (dump_possible_polymorphic_call_targets overriders): Update.
17869 (dump_possible_polymorphic_call_target_p overriders): Update.
17870
17871 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
17872
17873 * gimple-fold.c (fold_gimple_assign): Fix condition guarding
17874 ipa-devirt path; fix thinko there.
17875
17876 2014-07-28 Trevor Saunders <tsaunders@mozilla.com>
17877
17878 * config/i386/i386.c (ix86_return_in_memory): Replace one
17879 ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
17880
17881 2014-07-28 Marek Polacek <polacek@redhat.com>
17882
17883 * doc/invoke.texi (-Wno-odr): Fix @item entry. Tweak wording.
17884
17885 2014-07-28 Peter Bergner <bergner@vnet.ibm.com>
17886
17887 * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
17888 * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
17889 * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
17890 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17891 (USE_LD_AS_NEEDED): Likewise.
17892 (ASM_APP_ON): Likewise.
17893 (ASM_APP_OFF): Likewise.
17894 (TARGET_POSIX_IO): Likewise.
17895 * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
17896 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17897 (USE_LD_AS_NEEDED): Likewise.
17898 (ASM_APP_ON): Likewise.
17899 (ASM_APP_OFF): Likewise.
17900 (TARGET_POSIX_IO): Likewise.
17901
17902 2014-07-28 Eric Botcazou <ebotcazou@adacore.com>
17903
17904 PR middle-end/61734
17905 * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
17906 operators other than the equality operators.
17907
17908 2014-07-28 Richard Biener <rguenther@suse.de>
17909
17910 PR middle-end/52478
17911 * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
17912 sure to register SImode ones, not only >= word_mode ones.
17913 * expr.c (expand_expr_real_2): When expanding -ftrapv
17914 binops do not use OPTAB_LIB_WIDEN.
17915
17916 2014-07-28 Richard Sandiford <rdsandiford@googlemail.com>
17917
17918 PR middle-end/61919
17919 * tree-outof-ssa.c (insert_partition_copy_on_edge)
17920 (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
17921 (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
17922 inserting them in the insn stream.
17923
17924 2014-07-28 Marek Polacek <polacek@redhat.com>
17925
17926 PR middle-end/61913
17927 * common.opt (Wodr): Add Var.
17928
17929 2014-07-28 Richard Biener <rguenther@suse.de>
17930
17931 PR tree-optimization/61921
17932 * tree-ssa-structalias.c (create_variable_info_for_1): Check
17933 if there is a varpool node before dereferencing it.
17934
17935 2014-07-28 Roman Gareev <gareevroman@gmail.com>
17936
17937 * graphite-sese-to-poly.c:
17938 (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
17939 id of the pbb), which contains pointer to the pbb1.
17940
17941 * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
17942
17943 2014-07-28 Roman Gareev <gareevroman@gmail.com>
17944
17945 * graphite-isl-ast-to-gimple.c:
17946 (graphite_create_new_guard): New function.
17947 (translate_isl_ast_node_if): New function.
17948 (translate_isl_ast): Add calling of translate_isl_ast_node_if.
17949
17950 * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
17951
17952 2014-07-27 Anthony Green <green@moxielogic.com>
17953
17954 * config.gcc: Add moxie-*-moxiebox* configuration.
17955 * config/moxie/moxiebox.h: New file.
17956
17957 2014-07-26 Andrew Pinski <apinski@cavium.com>
17958
17959 * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
17960 from the read only register.
17961
17962 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
17963
17964 * ira-costs.c (find_costs_and_classes): For -O0, use the best class
17965 as the allocation class if it isn't likely to be spilled.
17966
17967 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
17968
17969 * rtl.h (tls_referenced_p): Declare.
17970 * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
17971 * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
17972 (mips_cannot_force_const_mem): Use tls_referenced_p.
17973 * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
17974 * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
17975 instead of pa_tls_referenced_p.
17976 * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
17977 (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
17978 (pa_legitimate_constant_p): Likewise.
17979 (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
17980 * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
17981 (rs6000_cannot_force_const_mem, rs6000_emit_move)
17982 (rs6000_address_for_altivec): Use tls_referenced_p instead of
17983 rs6000_tls_referenced_p.
17984 (rs6000_tls_symbol_ref_1): Delete.
17985
17986 2014-07-26 Marc Glisse <marc.glisse@inria.fr>
17987
17988 PR target/44551
17989 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
17990 Optimize inverse of a VEC_CONCAT.
17991
17992 2014-07-25 Xinliang David Li <davidxl@google.com>
17993
17994 * params.def: New parameter.
17995 * coverage.c (get_coverage_counts): Check new flag.
17996 (coverage_compute_profile_id): Check new flag.
17997 (coverage_begin_function): Check new flag.
17998 (coverage_end_function): Check new flag.
17999 * value-prof.c (coverage_node_map_initialized_p): New function.
18000 (init_node_map): Populate map with all functions.
18001 * doc/invoke.texi: Document new parameter.
18002
18003 2014-07-25 Jan Hubicka <hubicka@ucw.cz>
18004 Richard Biener <rguenther@suse.de>
18005
18006 * lto-streamer-out.c (struct sccs): Turn to ...
18007 (class DFS): ... this one; refactor the DFS walk so it can
18008 be re-done on per-SCC basis.
18009 (DFS::DFS): New constructor.
18010 (DFS::~DFS): New destructor.
18011 (hash_tree): Add new MAP argument holding in-SCC hash values;
18012 remove POINTER_TYPE hashing hack.
18013 (scc_entry_compare): Rename to ...
18014 (DFS::scc_entry_compare): ... this one.
18015 (hash_scc): Rename to ...
18016 (DFS::hash_scc): ... this one; pass output_block instead
18017 of streamer_cache; work harder to get unique and stable SCC
18018 hashes.
18019 (DFS_write_tree): Rename to ...
18020 (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
18021 (lto_output_tree): Update.
18022
18023 2014-07-25 Andi Kleen <ak@linux.intel.com>
18024
18025 * lto-streamer-out.c (hash_tree): Convert to inchash.
18026
18027 2014-07-25 Andi Kleen <ak@linux.intel.com>
18028
18029 * tree.c (build_type_attribute_qual_variant): Use inchash.
18030 (type_hash_list): Dito.
18031 (attribute_hash_list): Dito
18032 (iterative_hstate_expr): Dito.
18033 (iterative_hash_expr): Dito.
18034 (build_range_type_1): Dito.
18035 (build_array_type_1): Dito.
18036 (build_function_type): Dito.
18037 (build_method_type_directly): Dito.
18038 (build_offset_type): Dito.
18039 (build_complex_type): Dito.
18040 (make_vector_type): Dito.
18041 * tree.h (iterative_hash_expr): Add compat wrapper.
18042 (iterative_hstate_expr): Add.
18043
18044 2014-07-25 Andi Kleen <ak@linux.intel.com>
18045
18046 * Makefile.in (OBJS): Add inchash.o.
18047 (PLUGIN_HEADERS): Add inchash.h.
18048 * ipa-devirt.c: Include inchash.h.
18049 * lto-streamer-out.c: Dito.
18050 * tree-ssa-dom.c: Dito.
18051 * tree-ssa-pre.c: Dito.
18052 * tree-ssa-sccvn.c: Dito.
18053 * tree-ssa-tail-merge.c: Dito.
18054 * asan.c: Dito.
18055 * tree.c (iterative_hash_hashval_t): Move to ...
18056 (iterative_hash_host_wide_int): Move to ...
18057 * inchash.c: Here. New file.
18058 * tree.h (iterative_hash_hashval_t): Move to ...
18059 (iterative_hash_host_wide_int): Move to ...
18060 * inchash.h: Here. New file.
18061
18062 2014-07-25 Richard Biener <rguenther@suse.de>
18063
18064 PR middle-end/61762
18065 PR middle-end/61894
18066 * fold-const.c (native_encode_int): Add and handle offset
18067 parameter to do partial encodings of expr.
18068 (native_encode_fixed): Likewise.
18069 (native_encode_real): Likewise.
18070 (native_encode_complex): Likewise.
18071 (native_encode_vector): Likewise.
18072 (native_encode_string): Likewise.
18073 (native_encode_expr): Likewise.
18074 * fold-const.c (native_encode_expr): Add offset parameter
18075 defaulting to -1.
18076 * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
18077 (fold_ctor_reference): Handle all reads from tcc_constant
18078 ctors.
18079
18080 2014-07-25 Richard Biener <rguenther@suse.de>
18081
18082 * tree-inline.c (estimate_move_cost): Mark speed_p argument
18083 as possibly unused.
18084
18085 2014-07-23 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
18086
18087 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
18088
18089 2014-07-24 Kyle McMartin <kyle@redhat.com>
18090
18091 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
18092
18093 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18094
18095 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
18096 Add prototype.
18097 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
18098 function.
18099 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
18100 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
18101 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
18102
18103 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18104
18105 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
18106 and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
18107 aggregate types. Instead, *all* aggregate types, except for single-
18108 element or homogeneous float/vector aggregates, are quadword-aligned
18109 if required by their type alignment. Issue -Wpsabi note when a type
18110 is now treated differently than before.
18111
18112 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18113
18114 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
18115 does not fit fully into floating-point registers, and there is still
18116 space in the register parameter area, use GPRs to pass those parts
18117 of the argument. Issue -Wpsabi note if any parameter is now treated
18118 differently than before.
18119 (rs6000_arg_partial_bytes): Update.
18120
18121 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
18122
18123 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
18124
18125 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
18126
18127 * rtl.h (target_rtl): Remove lang_dependent_initialized.
18128 * toplev.c (initialize_rtl): Don't use it. Move previously
18129 "language-dependent" calls to...
18130 (backend_init): ...here.
18131 (lang_dependent_init_target): Don't set lang_dependent_initialized.
18132 Assert that RTL initialization hasn't happend yet.
18133
18134 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
18135
18136 PR rtl-optimization/61629
18137 * reginfo.c (reinit_regs): Only call ira_init and recog_init if
18138 they have already been initialized.
18139
18140 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
18141
18142 PR middle-end/61268
18143 * function.c (assign_parm_setup_reg): Prevent invalid sharing of
18144 DECL_INCOMING_RTL and entry_parm.
18145 (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
18146 * calls.c (load_register_parameters): Likewise argument values.
18147 (emit_library_call_value_1, store_one_arg): Likewise argument
18148 save areas.
18149 * config/i386/i386.c (assign_386_stack_local): Likewise the local
18150 stack slot.
18151 * explow.c (validize_mem): Modify the argument in-place.
18152
18153 2014-07-24 Jiong Wang <jiong.wang@arm.com>
18154
18155 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
18156 (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
18157
18158 2014-07-24 Jiong Wang <jiong.wang@arm.com>
18159
18160 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
18161 (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
18162
18163 2014-07-24 Jiong Wang <jiong.wang@arm.com>
18164
18165 * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
18166 (aarch64_save_callee_saves): New parameter "skip_wb".
18167 (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
18168
18169 2014-07-24 Jiong Wang <jiong.wang@arm.com>
18170
18171 * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
18172 "wb_candidate2".
18173 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
18174
18175 2014-07-24 Roman Gareev <gareevroman@gmail.com>
18176
18177 * graphite-isl-ast-to-gimple.c:
18178 (graphite_create_new_loop): Add calling of isl_id_free to properly
18179 decrement reference counts.
18180
18181 * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
18182
18183 2014-07-24 Martin Liska <mliska@suse.cz>
18184 * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
18185 function used.
18186 * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
18187 (rs6000_code_end): Likewise.
18188
18189 2014-07-24 Martin Liska <mliska@suse.cz>
18190
18191 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
18192 symtab_node funtion used.
18193 (rs6000_xcoff_declare_object_name): Likewise.
18194
18195 2014-07-24 Martin Liska <mliska@suse.cz>
18196
18197 * cgraphunit.c (compile): Correct function used.
18198
18199 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
18200
18201 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
18202 as non-indexable.
18203
18204 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
18205
18206 PR lto/61802
18207 * varasm.c (bss_initializer_p): Handle offlined ctors.
18208 (align_variable, get_variable_align): Likewise.
18209 (make_decl_one_only): Likewise.
18210 (default_binds_local_p_1): Likewise.
18211 (decl_binds_to_current_def_p): Likewise.
18212 (get_variable_section): Get constructor if it is offlined.
18213 (assemble_variable_contents): Sanity check that the caller
18214 streamed in the ctor in LTO.
18215
18216 2014-07-24 Roman Gareev <gareevroman@gmail.com>
18217
18218 * graphite-isl-ast-to-gimple.c:
18219 (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
18220 (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
18221 isl_ast_op_pdiv_r to the different case.
18222
18223 * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
18224
18225 2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18226
18227 PR middle-end/61876
18228 * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
18229 when flag_errno_math is on.
18230
18231 2014-07-24 Martin Liska <mliska@suse.cz>
18232
18233 * cgraph.h (varpool_node):
18234 (availability get_availability (void)):
18235 created from cgraph_variable_initializer_availability
18236 (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
18237 created from: cgraph_variable_initializer_availability
18238 (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
18239 (void finalize_named_section_flags (void)):
18240 created from varpool_finalize_named_section_flags
18241 (bool assemble_decl (void)): created from varpool_assemble_decl
18242 (void analyze (void)): created from varpool_analyze_node
18243 (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
18244 void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
18245 (void remove_initializer (void)): created from varpool_remove_initializer
18246 (tree get_constructor (void)): created from varpool_get_constructor
18247 (bool externally_visible_p (void)): created from varpool_externally_visible_p
18248 (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
18249 (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
18250 (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
18251 (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
18252 (static void finalize_decl (tree decl)): created from varpool_finalize_decl
18253 (static bool output_variables (void)): created from varpool_output_variables
18254 (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
18255 created from varpool_extra_name_alias
18256 (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
18257 (static void dump_varpool (FILE *f)): created from dump_varpool
18258 (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
18259 (static varpool_node *create_empty (void)): created from varpool_create_empty_node
18260 (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
18261 (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
18262 (void assemble_aliases (void)): created from assemble_aliases
18263
18264 2014-07-24 Martin Liska <mliska@suse.cz>
18265
18266 * cgraph.h (symtab_node):
18267 (void register_symbol (void)): created from symtab_register_node
18268 (void remove (void)): created from symtab_remove_node
18269 (void dump (FILE *f)): created from dump_symtab_node
18270 (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
18271 (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
18272 (struct ipa_ref *add_reference (symtab_node *referred_node,
18273 enum ipa_ref_use use_type)): created from add_reference
18274 (struct ipa_ref *add_reference (symtab_node *referred_node,
18275 enum ipa_ref_use use_type, gimple stmt)): created from add_reference
18276 (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
18277 gimple stmt)): created from maybe_add_reference
18278 (bool semantically_equivalent_p (symtab_node *target)): created from
18279 symtab_semantically_equivalent_p
18280 (void remove_from_same_comdat_group (void)): created from
18281 remove_from_same_comdat_group
18282 (void add_to_same_comdat_group (symtab_node *old_node)): created from
18283 symtab_add_to_same_comdat_group
18284 (void dissolve_same_comdat_group_list (void)): created from
18285 symtab_dissolve_same_comdat_group_list
18286 (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
18287 (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
18288 created from symtab_alias_ultimate_target
18289 (inline symtab_node *next_defined_symbol (void)): created from
18290 symtab_next_defined_symbol
18291 (bool resolve_alias (symtab_node *target)): created from
18292 symtab_resolve_alias
18293 (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
18294 void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
18295 (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
18296 (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
18297 (void set_section (const char *section)): created from set_section_1
18298 (enum availability get_availability (void)): created from symtab_node_availability
18299 (void make_decl_local (void)): created from symtab_make_decl_local
18300 (bool real_symbol_p (void)): created from symtab_read_node
18301 (can_be_discarded_p (void)): created from symtab_can_be_discarded
18302 (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
18303 (inline bool in_same_comdat_group_p (symtab_node *target)): created from
18304 symtab_in_same_comdat_p;
18305 (bool address_taken_from_non_vtable_p (void)): created from
18306 address_taken_from_non_vtable_p
18307 (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
18308 (static void dump_table (FILE *)): created from dump_symtab
18309 (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
18310 (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
18311 (static bool used_from_object_file_p_worker (symtab_node *node)): created from
18312 symtab_used_from_object_file_p
18313 (void dump_base (FILE *)): created from dump_symtab_base
18314 (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
18315 (void unregister (void)): created from symtab_unregister_node
18316 (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
18317 (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
18318 (static bool noninterposable_alias (symtab_node *node, void *data)): created from
18319 symtab_nonoverwritable_alias_1
18320 * cgraph.h (cgraph_node):
18321 (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
18322 created from cgraph_remove_node_and_inline_clones
18323 (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
18324 (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
18325 bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
18326 (cgraph_node *function_symbol (enum availability *avail = NULL)):
18327 created from cgraph_function_node
18328 (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
18329 vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
18330 struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
18331 created from cgraph_create_clone
18332 (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
18333 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
18334 created from cgraph_create_virtual_clone
18335 (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
18336 (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
18337 bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
18338 (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
18339 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
18340 bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
18341 created from cgraph_function_version_info
18342 (struct cgraph_function_version_info *insert_new_function_version (void)):
18343 created from insert_new_cgraph_node_version
18344 (struct cgraph_function_version_info *function_version (void)): created from
18345 get_cgraph_node_version
18346 (void analyze (void)): created from analyze_function
18347 (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
18348 HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
18349 tree real_alias) cgraph_add_thunk
18350 (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
18351 (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
18352 created from cgraph_function_or_thunk_node
18353 (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
18354 created from expand_thunk
18355 (void reset (void)): created from cgraph_reset_node
18356 (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
18357 (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
18358 (void remove (void)): created from cgraph_remove_node
18359 (void dump (FILE *f)): created from dump_cgraph_node
18360 (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
18361 (bool get_body (void)): created from cgraph_get_body
18362 (void release_body (void)): created from cgraph_release_function_body
18363 (void unnest (void)): created from cgraph_unnest_node
18364 (void make_local (void)): created from cgraph_make_node_local
18365 (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
18366 (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
18367 gcov_type count, int freq)): created from cgraph_create_edge
18368 (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
18369 gcov_type count, int freq)): created from cgraph_create_indirect_edge
18370 (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
18371 gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
18372 created from cgraph_create_edge_including_clones
18373 (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
18374 (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
18375 (void remove_callers (void)): created from cgraph_node_remove_callers
18376 (void remove_callees (void)): created from cgraph_node_remove_callees
18377 (enum availability get_availability (void)): created from cgraph_function_body_availability
18378 (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
18379 (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
18380 (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
18381 (void call_duplication_hooks (cgraph_node *node2)): created from
18382 cgraph_call_node_duplication_hooks
18383 (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
18384 void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
18385 (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
18386 void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
18387 (void call_function_insertion_hooks (void)):
18388 created from cgraph_call_function_insertion_hooks
18389 (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
18390 (bool local_p (void)): created from cgraph_local_node
18391 (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
18392 (bool cannot_return_p (void)): created from cgraph_node_cannot_return
18393 (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
18394 (inline bool only_called_directly_or_aliased_p (void)):
18395 created from cgraph_only_called_directly_or_aliased_p
18396 (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
18397 created from cgraph_will_be_removed_from_program_if_no_direct_calls
18398 (bool can_remove_if_no_direct_calls_and_refs_p (void)):
18399 created from cgraph_can_remove_if_no_direct_calls_and_refs_p
18400 (bool can_remove_if_no_direct_calls_p (void)):
18401 created from cgraph_can_remove_if_no_direct_calls_p
18402 (inline bool has_gimple_body_p (void)):
18403 created from cgraph_function_with_gimple_body_p
18404 (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
18405 (static void dump_cgraph (FILE *f)): created from dump_cgraph
18406 (static inline void debug_cgraph (void)): created from debug_cgraph
18407 (static void record_function_versions (tree decl1, tree decl2)):
18408 created from record_function_versions
18409 (static void delete_function_version (tree decl)):
18410 created from delete_function_version
18411 (static void add_new_function (tree fndecl, bool lowered)):
18412 created from cgraph_add_new_function
18413 (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
18414 (static cgraph_node * create (tree decl)): created from cgraph_create_node
18415 (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
18416 (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
18417 (static cgraph_node *get_for_asmname (tree asmname)):
18418 created from cgraph_node_for_asm
18419 (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
18420 created from cgraph_same_body_alias
18421 (static bool used_from_object_file_p_worker (cgraph_node *node,
18422 void *): new function
18423 (static bool non_local_p (cgraph_node *node, void *)):
18424 created from cgraph_non_local_node_p_1
18425 (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
18426 created from verify_cgraph
18427 (static bool make_local (cgraph_node *node, void *)):
18428 created from cgraph_make_node_local
18429 (static cgraph_node *create_alias (tree alias, tree target)):
18430 created from cgraph_create_function_alias
18431 (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
18432 gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
18433 created from cgraph_create_edge_1
18434 * cgraph.h (varpool_node):
18435 (void remove (void)): created from varpool_remove_node
18436 (void dump (FILE *f)): created from dump_varpool_node
18437
18438 2014-07-24 Richard Biener <rguenther@suse.de>
18439
18440 PR ipa/61823
18441 * tree-ssa-structalias.c (create_variable_info_for_1):
18442 Use varpool_get_constructor.
18443 (create_variable_info_for): Likewise.
18444
18445 2014-07-24 Jiong Wang <jiong.wang@arm.com>
18446
18447 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
18448 subtract outgoing area size when restoring stack_pointer_rtx.
18449
18450 2014-07-24 Nick Clifton <nickc@redhat.com>
18451
18452 * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
18453 that operations are taking place in parallel.
18454 * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
18455
18456 2014-07-24 Thomas Schwinge <thomas@codesourcery.com>
18457
18458 * omp-low.c (extract_omp_for_data): Add missing break statement.
18459
18460 2014-07-24 Richard Biener <rguenther@suse.de>
18461
18462 * tree-inline.h (estimate_move_cost): Add speed_p parameter.
18463 * tree-inline.c (estimate_move_cost): Add speed_p parameter
18464 and adjust MOVE_RATIO query accordingly.
18465 (estimate_num_insns): Adjust callers.
18466 * ipa-prop.c (ipa_populate_param_decls): Likewise.
18467 * ipa-cp.c (gather_context_independent_values,
18468 estimate_local_effects): Likewise.
18469 * ipa-split.c (consider_split): Likewise.
18470
18471 2014-07-24 Trevor Saunders <tsaunders@mozilla.com>
18472
18473 * config/i386/driver-i386.c: Remove names of unused arguments and
18474 unnecessary unused attributes.
18475 * config/i386/host-mingw32.c: Likewise.
18476 * config/i386/i386.c: Likewise.
18477 * config/i386/winnt-stubs.c: Likewise.
18478 * config/i386/winnt.c: Likewise.
18479
18480 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18481
18482 * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
18483 (aarch64_gen_loadwb_pair): New helper function.
18484 (aarch64_expand_epilogue): Simplify code using new helper functions.
18485 * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
18486
18487 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18488
18489 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
18490 (aarch64_gen_storewb_pair): New helper function.
18491 (aarch64_expand_prologue): Simplify code using new helper functions.
18492 * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
18493
18494 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18495
18496 * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
18497 Rename to aarch64_save_callee_saves, remove restore code.
18498 (aarch64_restore_callee_saves): New function.
18499
18500 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18501
18502 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
18503 (aarch64_save_callee_saves): New function to handle reg save
18504 for both core and vectore regs.
18505
18506 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18507
18508 * config/aarch64/aarch64.c (aarch64_gen_load_pair)
18509 (aarch64_gen_store_pair): New helper function.
18510 (aarch64_save_or_restore_callee_save_registers)
18511 (aarch64_save_or_restore_fprs): Use new helper functions.
18512
18513 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18514
18515 * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
18516 (aarch64_save_or_restore_callee_save_registers)
18517 (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
18518
18519 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18520
18521 * config/aarch64/aarch64.c
18522 (aarch64_save_or_restore_callee_save_registers)
18523 (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
18524
18525 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18526
18527 * config/aarch64/aarch64.c
18528 (aarch64_save_or_restore_callee_save_registers)
18529 (aarch64_save_or_restore_fprs): Remove 'increment'.
18530
18531 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18532
18533 * config/aarch64/aarch64.c
18534 (aarch64_save_or_restore_callee_save_registers)
18535 (aarch64_save_or_restore_fprs): Use register offset in
18536 cfun->machine->frame.reg_offset.
18537
18538 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18539
18540 * config/aarch64/aarch64.c
18541 (aarch64_save_or_restore_callee_save_registers)
18542 (aarch64_save_or_restore_fprs): Remove base_rtx.
18543
18544 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18545
18546 * config/aarch64/aarch64.c
18547 (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
18548 to 'start_offset'. Remove local variable 'start_offset'.
18549
18550 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18551
18552 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
18553 type to HOST_WIDE_INT.
18554
18555 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18556
18557 * config/aarch64/aarch64.c (aarch64_expand_prologue)
18558 (aarch64_save_or_restore_fprs)
18559 (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
18560
18561 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
18562
18563 * config/arm/t-rtems-eabi: Add
18564 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
18565 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
18566 mbig-endian/mthumb/march=armv7-r, and
18567 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
18568 multilibs.
18569
18570 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
18571 Chris Johns <chrisj@rtems.org>
18572 Joel Sherrill <joel.sherrill@oarcorp.com>
18573
18574 * config.gcc: Add nios2-*-rtems*.
18575 * config/nios2/rtems.h: New file.
18576 * gcc/config/nios2/t-rtems: New file.
18577
18578 2014-07-23 Segher Boessenkool <segher@kernel.crashing.org>
18579
18580 PR target/61396
18581 * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
18582 constant numbers, not general constants.
18583 (rs6000_expand_vector_init): Ditto.
18584
18585 2014-07-23 Nathan Sidwell <nathan@acm.org>
18586
18587 * gcov-tool.c (gcov_list): Declare here.
18588 (set_gcov_list): Remove.
18589 (gcov_output_files): Set gcov_list directly.
18590
18591 2014-07-23 Host Schirmeier <horst@schirmeier.com>
18592
18593 * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
18594
18595 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18596
18597 * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
18598 callee-saved registers are available for padding purpose
18599 and r3 is not mandatory, then prefer use those callee-saved
18600 instead of r3.
18601
18602 2014-07-23 Richard Biener <rguenther@suse.de>
18603
18604 * params.def (PARAM_MAX_COMBINE_INSNS): New.
18605 * combine.c: Include statistics.h and params.h.
18606 (combine_instructions): Guard three and four insn combines
18607 with max-combine-insns value. Record statistics for combines
18608 performed.
18609 * doc/invoke.texi (max-combine-insns): Document new param.
18610
18611 2014-07-23 Roman Gareev <gareevroman@gmail.com>
18612
18613 * graphite-isl-ast-to-gimple.c:
18614 (translate_isl_ast_node_block): New function.
18615 (translate_isl_ast): Add calling of translate_isl_ast_node_block.
18616
18617 * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
18618 * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
18619
18620 2014-07-23 Roman Gareev <gareevroman@gmail.com>
18621
18622 * graphite-isl-ast-to-gimple.c:
18623 (get_max_schedule_dimensions): New function.
18624 (extend_schedule): Likewise.
18625 (generate_isl_schedule): Add calling of extend_schedule and
18626 get_max_schedule_dimensions.
18627
18628 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18629
18630 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
18631 (case UNSPEC): Handle UNSPEC_RBIT.
18632
18633 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18634
18635 * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
18636 (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
18637
18638 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18639
18640 * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
18641
18642 2014-07-22 Roman Gareev <gareevroman@gmail.com>
18643
18644 * graphite-isl-ast-to-gimple.c:
18645 Add inclusion of gimple-ssa.h, tree-into-ssa.h.
18646 (ivs_params_clear):
18647 (build_iv_mapping): New function.
18648 (translate_isl_ast_node_user): Likewise.
18649 (translate_isl_ast): Add calling of translate_isl_ast_node_user.
18650
18651 * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
18652 * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
18653 * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
18654
18655 2014-07-21 Bin Cheng <bin.cheng@arm.com>
18656
18657 PR target/55701
18658 * config/arm/arm.md (setmem): New pattern.
18659 * config/arm/arm-protos.h (struct tune_params): New fields.
18660 (arm_gen_setmem): New prototype.
18661 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
18662 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
18663 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
18664 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
18665 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
18666 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
18667 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
18668 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
18669 (arm_const_inline_cost): New function.
18670 (arm_block_set_max_insns): New function.
18671 (arm_block_set_non_vect_profit_p): New function.
18672 (arm_block_set_vect_profit_p): New function.
18673 (arm_block_set_unaligned_vect): New function.
18674 (arm_block_set_aligned_vect): New function.
18675 (arm_block_set_unaligned_non_vect): New function.
18676 (arm_block_set_aligned_non_vect): New function.
18677 (arm_block_set_vect, arm_gen_setmem): New functions.
18678
18679 2014-07-21 Bin Cheng <bin.cheng@arm.com>
18680
18681 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
18682
18683 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
18684
18685 PR target/61855
18686 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
18687 out of #ifdef __OPTIMIZE__.
18688
18689 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
18690
18691 * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
18692 different trapping status if -fnon-call-exceptions is enabled.
18693
18694 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
18695
18696 * expr.c (store_field): Handle VOIDmode for calls that return values
18697 in multiple locations.
18698
18699 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18700
18701 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
18702 (altivec_vsldoi_<mode>): Likewise.
18703
18704 2014-07-20 Roman Gareev <gareevroman@gmail.com>
18705
18706 * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
18707 to the number of characters in the line.
18708
18709 2014-07-20 Roman Gareev <gareevroman@gmail.com>
18710
18711 * graphite-isl-ast-to-gimple.c: Add using of
18712 build_nonstandard_integer_type instead of int128_integer_type_node.
18713
18714 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
18715
18716 * toplev.c (output_stack_usage): Adjust the location of the warning.
18717
18718 2014-07-19 Daniel Cederman <cederman@gaisler.com>
18719
18720 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
18721 (*membar_storeload): Disable for LEON3.
18722
18723 2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
18724
18725 PR rtl-optimization/61461
18726 * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
18727
18728 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
18729
18730 PR target/61794
18731 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
18732 Fix instruction constraint.
18733 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
18734
18735 2014-07-18 Jonathan Wakely <jwakely@redhat.com>
18736
18737 * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
18738
18739 2014-07-18 Chung-Ju Wu <jasonwucj@gmail.com>
18740
18741 * config/nds32/nds32.c (nds32_can_eliminate): Follow the
18742 GNU coding standards.
18743 (nds32_register_move_cost): Likewise.
18744 (nds32_memory_move_cost): Likewise.
18745 (nds32_address_cost): Likewise.
18746
18747 2014-07-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
18748
18749 * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
18750
18751 2014-07-17 John David Anglin <danglin@gcc.gnu.org>
18752
18753 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
18754 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
18755 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
18756 (HAVE_sync_compare_and_swapqi): Define.
18757 (HAVE_sync_compare_and_swaphi): Likewise.
18758 (HAVE_sync_compare_and_swapsi): Likewise.
18759
18760 2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
18761
18762 * config/mips/p5600.md: Add missing cpu tests.
18763
18764 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18765
18766 * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
18767 (vmla_f64): Likewise.
18768 (vfms_f64): Likewise.
18769 (vmls_f64): Likewise.
18770
18771 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18772
18773 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
18774 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
18775
18776 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18777
18778 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
18779 (vmlal_high_lane_s32): Likewise.
18780 (vmlal_high_lane_u16): Likewise.
18781 (vmlal_high_lane_u32): Likewise.
18782 (vmlsl_high_lane_s16): Likewise.
18783 (vmlsl_high_lane_s32): Likewise.
18784 (vmlsl_high_lane_u16): Likewise.
18785 (vmlsl_high_lane_u32): Likewise.
18786
18787 2014-07-17 Terry Guo <terry.guo@arm.com>
18788
18789 * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
18790 (alus_reg): Renamed to alus_sreg.
18791 * config/arm/arm-fixed.md: Change type of non-dsp instructions
18792 from alu_reg to alu_sreg. Change type of dsp instructions from
18793 alu_reg to alu_dsp_reg.
18794 * config/arm/thumb1.md: Likewise.
18795 * config/arm/thumb2.md: Likewise.
18796 * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
18797 * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
18798 with alu_sreg and alus_sreg.
18799 * config/arm/arm1026ejs.md (alu_op): Likewise.
18800 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
18801 * config/arm/arm926ejs.md (9_alu_op): Likewise.
18802 * config/arm/fa526.md (526_alu_op): Likewise.
18803 * config/arm/fa606te.md (606te_alu_op): Likewise.
18804 * config/arm/fa626te.md (626te_alu_op): Likewise.
18805 * config/arm/fa726te.md (726te_alu_op): Likewise.
18806 * config/arm/fmp626.md (mp626_alu_op): Likewise.
18807 * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
18808 alu_sreg, alu_dsp_reg and alus_sreg.
18809 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
18810 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18811 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18812 * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
18813 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
18814 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18815 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18816 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18817 * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
18818 * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
18819 subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
18820 *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
18821 (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
18822 sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
18823 subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
18824 alus_reg to alus_sreg.
18825
18826 2014-07-17 Andreas Schwab <schwab@linux-m68k.org>
18827
18828 * real.c (encode_ieee_extended_motorola): Clear integer bit in the
18829 infinity format.
18830
18831 2014-07-17 Richard Biener <rguenther@suse.de>
18832
18833 PR rtl-optimization/61801
18834 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
18835 don't set reg_pending_barrier if it appears in a debug-insn.
18836
18837 2014-07-16 DJ Delorie <dj@redhat.com>
18838
18839 * config/rx/rx.c (rx_option_override): Fix alignment values.
18840 (rx_align_for_label): Likewise.
18841
18842 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
18843
18844 PR target/61737.
18845 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
18846 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18847 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
18848 functions.
18849 (cris_print_index, cris_print_operand, cris_constant_index_p)
18850 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
18851 (cris_address_cost): Ditto last CONSTANT_P.
18852 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
18853 callers changed. Yield cris_offsettable_symbol for non-PIC
18854 constant symbolic expressions including labels. Yield cris_unspec
18855 for all unspecs.
18856 (cris_expand_pic_call_address): New parameter MARKERP. Set its
18857 target to pic_offset_table_rtx for calls that will likely go
18858 through PLT, const0_rtx when they can't. All callers changed.
18859 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
18860 symbolic expressions to be PICified. Remove second, redundant,
18861 assert on can_create_pseudo_p returning non-zero. Use
18862 replace_equiv_address_nv, not replace_equiv_address, for final
18863 operand update.
18864 * config/cris/cris.md ("movsi"): Move variable t to pattern
18865 toplevel. Adjust assert for new cris_symbol_type member. Use
18866 CONSTANT_P instead of CONSTANT_ADDRESS_P.
18867 ("*movsi_internal") <case 9>: Make check for valid unspec operands
18868 for lapc stricter.
18869 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
18870 ("call", "call_value"): Use second incoming operand as a marker
18871 for pic-offset-table-register being used.
18872 ("*expanded_call_non_v32", "*expanded_call_v32")
18873 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
18874 second incoming operand to CALL, match cris_call_type_marker.
18875 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
18876 ("*expanded_call_side"): Ditto. Fix typo in comment.
18877 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
18878 CONSTANT_P.
18879 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
18880 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
18881 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
18882 users changed. Add members cris_offsettable_symbol and cris_unspec.
18883 (cris_symbol_type): Rename from cris_pic_symbol_type.
18884 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
18885 just CONSTANT_P.
18886 * config/cris/cris-protos.h (cris_symbol_type_of,
18887 cris_expand_pic_call_address): Adjust prototypes.
18888 (cris_legitimate_constant_p): New prototype.
18889
18890 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
18891 an existing tmake_file. Don't add t-slibgcc and t-linux.
18892
18893 2014-07-17 Jason Merrill <jason@redhat.com>
18894
18895 PR c++/61623
18896 * symtab.c (symtab_remove_from_same_comdat_group): Also
18897 set_comdat_group to NULL_TREE.
18898 (verify_symtab): Fix diagnostic.
18899
18900 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
18901
18902 PR target/61662
18903 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
18904
18905 2014-07-16 Dodji Seketeli <dodji@redhat.com>
18906
18907 Support location tracking for built-in macro tokens
18908 * input.h (is_location_from_builtin_token): New function declaration.
18909 * input.c (is_location_from_builtin_token): New function definition.
18910 * toplev.c (general_init): Tell libcpp what the pre-defined
18911 spelling location for built-in tokens is.
18912
18913 2014-07-16 Jakub Jelinek <jakub@redhat.com>
18914
18915 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
18916 on the FUNCTION_DECL.
18917
18918 2014-07-16 Richard Biener <rguenther@suse.de>
18919
18920 PR other/61782
18921 * doc/extend.texi (always_inline): Clarify.
18922
18923 2014-07-15 Eric Christopher <echristo@gmail.com>
18924
18925 * doc/invoke.texi (Link Options): Document -z option.
18926
18927 2014-07-15 Uros Bizjak <ubizjak@gmail.com>
18928
18929 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
18930 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18931
18932 2014-07-15 Jan Hubicka <hubicka@ucw.cz>
18933
18934 * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
18935
18936 2014-07-15 Bernd Schmidt <bernds@codesourcery.com>
18937
18938 * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
18939 varpool_assemble_decl.
18940 * varpool.c (varpool_assemble_decl): Assert that node->definition is
18941 true.
18942
18943 2014-07-15 Michael Matz <matz@suse.de>
18944
18945 PR rtl-optimization/61772
18946 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
18947
18948 2014-07-15 Richard Biener <rguenther@suse.de>
18949
18950 * opts.c (default_options_table): Disable bit-ccp at -Og.
18951
18952 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
18953
18954 * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
18955
18956 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
18957
18958 * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
18959 NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
18960 call langhook for unknown declaration.
18961 (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
18962 * tree.h (DECL_ARGUMENTS): Update.
18963 * print-tree.c (print_node): Update.
18964 * tree-core.h (tree_decl_non_common): Remove arguments.
18965 (tree_function_decl): Add arguments.
18966
18967 2014-07-14 Richard Earnshaw <rearnsha@arm.com>
18968
18969 * aarch64.md (add_losym_<mode>): Set type to alu_imm.
18970
18971 2014-07-14 Richard Biener <rguenther@suse.de>
18972
18973 PR tree-optimization/61779
18974 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
18975 simplifying a condition.
18976
18977 2014-07-14 Richard Biener <rguenther@suse.de>
18978
18979 * builtins.c (c_strlen): Make only_value == 2 really only
18980 affect warning generation.
18981
18982 2014-07-14 Richard Biener <rguenther@suse.de>
18983
18984 PR tree-optimization/61757
18985 PR tree-optimization/61783
18986 PR tree-optimization/61787
18987 * tree-ssa-dom.c (record_equality): Revert canonicalization
18988 change and add comment.
18989 (propagate_rhs_into_lhs): Revert previous fix, removing
18990 loop depth restriction again.
18991
18992 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18993
18994 * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
18995 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18996 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18997 * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
18998 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18999 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
19000 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
19001
19002 2014-07-14 Richard Biener <rguenther@suse.de>
19003
19004 * cgraph.h (decl_in_symtab_p): Make inline.
19005
19006 2014-07-14 Jakub Jelinek <jakub@redhat.com>
19007
19008 PR middle-end/61294
19009 * doc/invoke.texi (-Wmemset-transposed-args): Document.
19010
19011 PR target/61656
19012 * config/i386/i386.c (classify_argument): Don't merge classes above
19013 number of words.
19014
19015 2014-07-13 Jan Hubicka <hubicka@ucw.cz>
19016
19017 * cgraph.h (symtab_node): Add nonzero_address.
19018 (decl_in_symtab_p): Break out from ...
19019 (symtab_get_node): ... here.
19020 * fold-const.c: Include cgraph.h
19021 (tree_single_nonzero_warnv_p): Use symtab to determine
19022 if symbol is non-zero.
19023 * symtab.c (symtab_node::nonzero_address): New method.
19024
19025 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
19026
19027 * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
19028 forgotten in previous commit.
19029
19030 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
19031
19032 * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
19033 on builtin types.
19034 * ipa-devirt.c: Include stor-layout.h and intl.h
19035 (odr_subtypes_equivalent_p): New function.
19036 (warn_odr): New function.
19037 (warn_type_mismatch): New function.
19038 (odr_types_equivalent_p): New function.
19039 (add_type_duplicate): Use it.
19040 * common.opt (Wodr): New flag.
19041 * doc/invoke.texi (Wodr): Document new warning.
19042
19043 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
19044
19045 * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
19046 (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
19047 * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
19048 (varpool_get_constructor): Push CTORS_IN timevar.
19049 * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
19050
19051 2014-07-12 Uros Bizjak <ubizjak@gmail.com>
19052
19053 * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
19054 Remove VOID_FTYPE_PUSHORT.
19055 * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
19056 Change code to USHORT_FTYPE_VOID.
19057 (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
19058 (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
19059 (ix86_atomic_assign_expand_fenv): Update for
19060 __builtin_ia32_fnstsw changes.
19061 * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
19062 (fnstsw): Change operand 0 to nonimmediate operand.
19063
19064 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
19065
19066 * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
19067 (varpool_get_constructor): New function.
19068 (varpool_ctor_useable_for_folding_p): Break out from ...
19069 (ctor_for_folding): ... here; use varpool_get_constructor.
19070 (varpool_assemble_decl): Likewise.
19071 * lto-streamer.h (struct output_block): Turn cgraph_node
19072 to symbol filed.
19073 (lto_input_variable_constructor): Declare.
19074 * ipa-visibility.c (function_and_variable_visibility): Use
19075 varpool_get_constructor.
19076 * cgraph.h (varpool_get_constructor): Declare.
19077 (varpool_ctor_useable_for_folding_p): New function.
19078 * lto-streamer-out.c (get_symbol_initial_value): Take encoder
19079 parameter; return error_mark_node for non-trivial constructors.
19080 (lto_write_tree_1, DFS_write_tree): Update use of
19081 get_symbol_initial_value.
19082 (output_function): Update initialization of symbol.
19083 (output_constructor): New function.
19084 (copy_function): Rename to ..
19085 (copy_function_or_variable): ... this one; handle vars too.
19086 (lto_output): Output variable sections.
19087 * lto-streamer-in.c (input_constructor): New function.
19088 (lto_read_body): Rename from ...
19089 (lto_read_body_or_constructor): ... this one; handle vars too.
19090 (lto_input_variable_constructor): New function.
19091 * ipa-prop.c (ipa_prop_write_jump_functions,
19092 ipa_prop_write_all_agg_replacement): Update.
19093 * lto-cgraph.c (compute_ltrans_boundary): Use it.
19094 (output_cgraph_opt_summary): Set symbol to NULL.
19095
19096 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
19097
19098 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
19099 non-polymorphic types.
19100 * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
19101 * ipa-devirt.c (types_same_for_odr): Do not explode when one
19102 of types is not polymorphic.
19103
19104 2014-07-11 Vladimir Makarov <vmakarov@redhat.com>
19105
19106 * lra-constraints.c (remove_inheritance_pseudos): Process
19107 destination pseudo too.
19108
19109 2014-07-11 Rong Xu <xur@google.com>
19110
19111 * gcov-tool.c (gcov_output_files): Fix build error introduced in
19112 commit r212448.
19113
19114 2014-07-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
19115
19116 * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
19117 * config/avr/avr-devices.c (AVR_MCU): Same.
19118 (avr_mcu_types): add text start value to end of device list.
19119 * config/avr/avr-mcus.def: Add text section start for all devices.
19120 (ata5782): Add new avr5 device.
19121 (ata5831): Same.
19122 * config/avr/avr-tables.opt: Regenerate.
19123 * config/avr/avr.h: Add declaration for text section start handler.
19124 (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
19125 SPEC functions.
19126 (LINK_SPEC): Include text section start handler to linker spec.
19127 * config/avr/driver-avr.c (avr_device_to_text_start): New function to
19128 pass -Ttext option to linker if the text section start for the device
19129 is not zero.
19130 * config/avr/t-multilib: Regenerate.
19131 * doc/avr-mmcu.texi: Regenerate.
19132
19133 2014-07-11 David Edelsohn <dje.gcc@gmail.com>
19134
19135 * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
19136 * config/rs6000/aix52.h (LINK_SPEC): Same.
19137 * config/rs6000/aix53.h (LINK_SPEC): Same.
19138 * config/rs6000/aix61.h (LINK_SPEC): Same.
19139 * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
19140
19141 2014-07-11 Roman Gareev <gareevroman@gmail.com>
19142
19143 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
19144 (graphite_verify): New function.
19145 (ivs_params_clear): New function.
19146 (gcc_expression_from_isl_ast_expr_id): New function.
19147 (gcc_expression_from_isl_expr_int): New function.
19148 (binary_op_to_tree): New function.
19149 (ternary_op_to_tree): New function.
19150 (unary_op_to_tree): New function.
19151 (nary_op_to_tree): New function.
19152 (gcc_expression_from_isl_expr_op): New function.
19153 (gcc_expression_from_isl_expression): New function.
19154 (graphite_create_new_loop): New function.
19155 (translate_isl_ast_for_loop): New function.
19156 (get_upper_bound): New function.
19157 (graphite_create_new_loop_guard): New function.
19158 (translate_isl_ast_node_for): New function.
19159 (translate_isl_ast): New function.
19160 (add_parameters_to_ivs_params): New function.
19161 (scop_to_isl_ast): New parameter ip.
19162 (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
19163
19164 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
19165
19166 * config/xtensa/predicates.md (call expander): Update for
19167 DECL_SECTION_NAME being string.
19168
19169 2014-07-11 Richard Biener <rguenther@suse.de>
19170
19171 PR middle-end/61473
19172 * builtins.c (fold_builtin_memory_op): Inline memory moves that
19173 can be implemented with a single load followed by a single store.
19174 (c_strlen): Only warn when only_value is not 2.
19175
19176 2014-07-11 Evgeny Stupachenko <evstupac@gmail.com>
19177
19178 * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
19179
19180 2014-07-11 Marat Zakirov <m.zakirov@samsung.com>
19181
19182 PR target/61561
19183 * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
19184 (*movhi_bytes): Likewise.
19185 (*arm_movqi_insn): Likewise.
19186
19187 2014-07-11 Uros Bizjak <ubizjak@gmail.com>
19188
19189 PR target/56858
19190 * config/alpha/alpha.c: Include tree-pass.h, context.h
19191 and pass_manager.h.
19192 (pass_data_handle_trap_shadows): New pass.
19193 (pass_handle_trap_shadows::gate): New pass gate function.
19194 (make_pass_handle_trap_shadows): New function.
19195 (rest_of_handle_trap_shadows): Ditto.
19196
19197 (alpha_align_insns_1): Rename from alpha_align_insns.
19198 (pass_data_align_insns): New pass.
19199 (pass_align_insns::gate): New pass gate function.
19200 (make_pass_aling_insns): New function.
19201 (rest_of_align_insns): Ditto.
19202 (alpha_align_insns): Ditto.
19203
19204 (alpha_option_override): Declare handle_trap_shadows info
19205 and align_insns_info. Register handle_trap_shadows and align_insns
19206 passes here.
19207 (alpha_reorg): Do not call alpha_trap_shadows and
19208 alpha_align_insn from here.
19209
19210 (alpha_pad_function_end): Do not skip BARRIERs.
19211
19212 2014-07-10 Rong Xu <xur@google.com>
19213
19214 Add gcov-tool: an offline gcda profile processing tool support.
19215 * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
19216 (gcov_is_error): Ditto.
19217 (gcov_read_string): Ditto.
19218 (gcov_read_sync): Ditto.
19219 * gcov-io.h: Move counter defines to gcov-counter.def.
19220 * gcov-dump.c (tag_counters): Use gcov-counter.def.
19221 * coverage.c: Ditto.
19222 * gcov-tool.c: Offline gcda profile processing tool.
19223 (unlink_gcda_file): Remove one gcda file.
19224 (unlink_profile_dir): Remove gcda files from the profile path.
19225 (gcov_output_files): Output gcda files to an output dir.
19226 (profile_merge): Merge two profiles in directory.
19227 (print_merge_usage_message): Print merge usage.
19228 (merge_usage): Print merge usage and exit.
19229 (do_merge): Driver for profile merge sub-command.
19230 (profile_rewrite): Rewrite profile.
19231 (print_rewrite_usage_message): Print rewrite usage.
19232 (rewrite_usage): Print rewrite usage and exit.
19233 (do_rewrite): Driver for profile rewrite sub-command.
19234 (print_usage): Print gcov-info usage and exit.
19235 (print_version): Print gcov-info version.
19236 (process_args): Process arguments.
19237 (main): Main routine for gcov-tool.
19238 * Makefile.in: Build and install gcov-tool.
19239 * gcov-counter.def: New file split from gcov-io.h.
19240 * doc/gcc.texi: Include gcov-tool.texi.
19241 * doc/gcov-tool.texi: Document for gcov-tool.
19242
19243 2014-07-10 Richard Biener <rguenther@suse.de>
19244
19245 PR tree-optimization/61757
19246 * tree-ssa-dom.c (loop_depth_of_name): Restore.
19247 (propagate_rhs_into_lhs): Revert part of last change.
19248
19249 2014-07-10 Thomas Schwinge <thomas@codesourcery.com>
19250
19251 * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
19252 FUNCTION_DECLs.
19253
19254 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
19255
19256 PR middle-end/53590
19257 * function.c (allocate_struct_function): Revert r188667 change.
19258
19259 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
19260
19261 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
19262
19263 * doc/install.texi: Remove links to defunct package providers for
19264 Solaris.
19265
19266 2014-07-09 Tom de Vries <tom@codesourcery.com>
19267
19268 * final.c (get_call_fndecl): Declare.
19269 (self_recursive_call_p): New function.
19270 (collect_fn_hard_reg_usage): Handle self-recursive function calls.
19271
19272 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19273
19274 * ipa-devirt.c (record_node): Walk through aliases.
19275
19276 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19277
19278 * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
19279
19280 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19281
19282 Revert:
19283 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
19284
19285 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19286
19287 * ipa-visibility.c (function_and_variable_visibility): Remove
19288 temporary hack disabling local aliases on AIX.
19289
19290 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19291
19292 * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
19293 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
19294
19295 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19296
19297 * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
19298 * rs6000/rs6000.c: Inline output of .set instruction.
19299 (declare_alias_data): New struct.
19300 (rs6000_declare_alias): New function.
19301 (rs6000_xcoff_declare_function_name): Use it.
19302 (rs6000_xcoff_declare_object_name): New function.
19303 * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
19304 (ASM_OUTPUT_DEF): Turn to empty definition.
19305
19306 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
19307
19308 PR bootstrap/61679
19309 * hash-table.h: use hash_table::value_type instead of
19310 Descriptor::value_type in the return types of several methods.
19311
19312 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
19313
19314 * tree-pass.h (pass_data): Remove has_execute member.
19315 * passes.c (execute_one_pass): Don't check pass->has_execute.
19316 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
19317 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
19318 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
19319 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
19320 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
19321 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
19322 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
19323 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
19324 gimple-low.c, gimple-ssa-isolate-paths.c,
19325 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
19326 ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
19327 ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
19328 ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
19329 lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
19330 postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
19331 reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
19332 stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
19333 tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
19334 tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
19335 tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
19336 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
19337 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
19338 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
19339 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
19340 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
19341 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
19342 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
19343 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
19344 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
19345 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
19346 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
19347 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
19348 web.c: Remove initializer for pass_data::has_execute.
19349
19350 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
19351
19352 * graphite-htab.h: Use hash_map instead of hash_table.
19353 * graphite-clast-to-gimple.c: Adjust.
19354 * passes.c: Use hash_map instead of hash_table.
19355 * sese.c: Likewise.
19356 * sese.h: Remove now unused code.
19357
19358 2014-07-08 Sriraman Tallam <tmsriram@google.com>
19359
19360 PR target/61599
19361 * config/i386/i386.c (ix86_in_large_data_p): Check for size less
19362 than zero.
19363
19364 2014-07-08 Jakub Jelinek <jakub@redhat.com>
19365
19366 PR rtl-optimization/61673
19367 * combine.c (simplify_comparison): Test just mode's sign bit
19368 in tmode rather than the sign bit and any bits above it.
19369
19370 2014-07-08 Roman Gareev <gareevroman@gmail.com>
19371
19372 * graphite-isl-ast-to-gimple.c (generate_isl_context):
19373 Add __isl_give to the declaration.
19374 (generate_isl_schedule): Likewise.
19375 (scop_to_isl_ast): Likewise.
19376
19377 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19378
19379 * config/arm/arm.c (cortexa5_extra_costs): New table.
19380 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
19381
19382 2014-07-08 Jakub Jelinek <jakub@redhat.com>
19383
19384 PR tree-optimization/61725
19385 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
19386 range, use range_includes_zerop_p instead of integer_zerop on
19387 vr0->min, only use log2 of max if min is not negative.
19388
19389 2014-07-08 Richard Biener <rguenther@suse.de>
19390
19391 * tree-ssa-dom.h (loop_depth_of_name): Remove.
19392 * tree-ssa-dom.c (record_equivalences_from_phis): Remove
19393 restriction on loop depth difference.
19394 (record_equality): Likewise.
19395 (propagate_rhs_into_lhs): Likewise. Simplify condition.
19396 (loop_depth_of_name): Remove.
19397 * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
19398 restriction on loop depth difference.
19399 (init_copy_prop): Likewise.
19400
19401 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19402
19403 * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
19404 parameter.
19405 (walk_aliased_vdefs): Likewise.
19406 * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
19407 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
19408 (detect_type_change_from_memory_writes): Check if entry was reached.
19409
19410 2014-07-08 Richard Biener <rguenther@suse.de>
19411
19412 PR tree-optimization/61681
19413 * tree-ssa-structalias.c (find_what_var_points_to): Expand
19414 NONLOCAL inside ESCAPED.
19415
19416 2014-07-08 Richard Biener <rguenther@suse.de>
19417
19418 PR tree-optimization/61680
19419 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19420 Handle properly all read-write dependences with group accesses.
19421
19422 2014-07-08 Yuri Rumyantsev <ysrumyan@gmail.com>
19423
19424 PR tree-optimization/61576
19425 * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
19426 block containing reduction statement is predecessor of phi basi block.
19427
19428 2014-07-08 Marek Polacek <polacek@redhat.com>
19429
19430 PR c/60226
19431 * fold-const.c (round_up_loc): Change the parameter type.
19432 Remove assert.
19433 * fold-const.h (round_up_loc): Adjust declaration.
19434 * stor-layout.c (finalize_record_size): Check for too large types.
19435
19436 2014-07-07 Jan Hubicka <hubicka@ucw.cz>
19437
19438 * symtab.c: Include calls.h.
19439 (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
19440
19441 2014-07-07 Maciej W. Rozycki <macro@codesourcery.com>
19442
19443 * config/rs6000/rs6000.c (output_vec_const_move): Handle
19444 little-endian code generation.
19445 * config/rs6000/spe.md (spe_evmergehi): Rename to...
19446 (vec_perm00_v2si): ... this. Handle little-endian code generation.
19447 (spe_evmergehilo): Rename to...
19448 (vec_perm01_v2si): ... this. Handle little-endian code generation.
19449 (spe_evmergelo): Rename to...
19450 (vec_perm11_v2si): ... this. Handle little-endian code generation.
19451 (spe_evmergelohi): Rename to...
19452 (vec_perm10_v2si): ... this. Handle little-endian code generation.
19453 (spe_evmergehi, spe_evmergehilo): New expanders.
19454 (spe_evmergelo, spe_evmergelohi): Likewise.
19455 (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
19456 (*frob_tf_ti): Likewise.
19457 (*frob_<mode>_di_2): Likewise.
19458 (*frob_tf_di_8_2): Likewise.
19459 (*frob_di_<mode>): Likewise.
19460 (*frob_ti_tf): Likewise.
19461 (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
19462 (*frob_ti_<mode>_8_2): Likewise.
19463 (*frob_ti_tf_2): Likewise.
19464 (mov_si<mode>_e500_subreg0): Rename to...
19465 (mov_si<mode>_e500_subreg0_be): ... this. Restrict to the big
19466 endianness only.
19467 (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
19468 (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
19469 (*mov_si<mode>_e500_subreg0_elf_low_be): ... this. Restrict to
19470 the big endianness only.
19471 (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
19472 (*mov_si<mode>_e500_subreg0_2): Rename to...
19473 (*mov_si<mode>_e500_subreg0_2_be): ... this. Restrict to the
19474 big big endianness only.
19475 (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
19476 (*mov_si<mode>_e500_subreg4): Rename to...
19477 (*mov_si<mode>_e500_subreg4_be): ... this. Restrict to the big
19478 endianness only.
19479 (mov_si<mode>_e500_subreg4_le): New instruction pattern.
19480 (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
19481 (*mov_si<mode>_e500_subreg4_elf_low_be): ... this. Restrict to
19482 the big endianness only.
19483 (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
19484 pattern.
19485 (*mov_si<mode>_e500_subreg4_2): Rename to...
19486 (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big
19487 endianness only.
19488 (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
19489 (*mov_sitf_e500_subreg8): Rename to...
19490 (*mov_sitf_e500_subreg8_be): ... this. Restrict to the big
19491 endianness only.
19492 (*mov_sitf_e500_subreg8_le): New instruction pattern.
19493 (*mov_sitf_e500_subreg8_2): Rename to...
19494 (*mov_sitf_e500_subreg8_2_be): ... this. Restrict to the big
19495 endianness only.
19496 (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
19497 (*mov_sitf_e500_subreg12): Rename to...
19498 (*mov_sitf_e500_subreg12_be): ... this. Restrict to the big
19499 endianness only.
19500 (*mov_sitf_e500_subreg12_le): New instruction pattern.
19501 (*mov_sitf_e500_subreg12_2): Rename to...
19502 (*mov_sitf_e500_subreg12_2_be): ... this. Restrict to the big
19503 endianness only.
19504 (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
19505
19506 2014-07-07 Max Ostapenko <m.ostapenko@partner.samsung.com>
19507
19508 * asan.c (instrument_strlen_call): Do not instrument first byte
19509 in strlen if already instrumented.
19510
19511 2014-07-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19512
19513 * config/arm/arm.opt (mwords-little-endian): Delete.
19514 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
19515 of TARGET_LITTLE_WORDS.
19516 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
19517 * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
19518 warning.
19519 * doc/invoke.texi: Remove references to -mwords-little-endian.
19520
19521 2014-07-07 Jakub Jelinek <jakub@redhat.com>
19522
19523 * expmed.c (struct init_expmed_rtl): Change all fields but
19524 pow2 and cint from struct rtx_def to rtx.
19525 (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
19526 (init_expmed): Likewise. Allocate all the 18 rtxes and ggc_free them
19527 at the end again.
19528
19529 2014-07-06 Marek Polacek <polacek@redhat.com>
19530
19531 PR c/6940
19532 * doc/invoke.texi: Document -Wsizeof-array-argument.
19533
19534 2014-07-05 Gerald Pfeifer <gerald@pfeifer.com>
19535
19536 * wide-int.h (wide_int_storage): Change declaration from struct
19537 to class.
19538
19539 2014-07-05 Jan Hubicka <hubicka@ucw.cz>
19540
19541 * cgraph.c (cgraph_create_indirect_edge): Update call of
19542 get_polymorphic_call_info.
19543 * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
19544 (possible_polymorphic_call_targets): Add parameter call.
19545 (decl_maybe_in_construction_p): New predicate.
19546 (get_polymorphic_call_info): Add parameter call;
19547 use decl_maybe_in_construction_p.
19548 * gimple-fold.c (fold_gimple_assign): Update use of
19549 possible_polymorphic_call_targets.
19550 (gimple_fold_call): Likewise.
19551 * ipa-prop.c: Inlcude calls.h
19552 (ipa_binfo_from_known_type_jfunc): Check that known type is record.
19553 (param_type_may_change_p): New predicate.
19554 (detect_type_change_from_memory_writes): Break out from ...
19555 (detect_type_change): ... this one; use param_type_may_change_p.
19556 (detect_type_change_ssa): Use param_type_may_change_p.
19557 (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
19558
19559 2014-07-05 Charles Baylis <charles.baylis@linaro.org>
19560
19561 PR target/49423
19562 * config/arm/arm-protos.h (arm_legitimate_address_p,
19563 arm_is_constant_pool_ref): Add prototypes.
19564 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
19565 (arm_is_constant_pool_ref) New function.
19566 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
19567 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
19568 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
19569 operand. Remove pool_range and neg_pool_range attributes.
19570 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
19571 pool_range and neg_pool_range attributes.
19572 * config/arm/constraints.md (Uh): New constraint.
19573 (Uq): Don't allow constant pool references.
19574
19575 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
19576
19577 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
19578 (move_lo_quad_internal_be_<mode>): Likewise.
19579 (move_lo_quad_<mode>): Convert to define_expand.
19580 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
19581 (aarch64_simd_move_hi_quad_be_<mode>): New.
19582 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
19583 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
19584 (aarch64_combinez_be<mode>): New.
19585 (aarch64_combine<mode>): Convert to define_expand.
19586 (aarch64_combine_internal<mode>): New.
19587 (aarch64_simd_combine<mode>): Remove bogus RTL description.
19588
19589 2014-07-04 Tom de Vries <tom@codesourcery.com>
19590
19591 * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
19592 combination of earlyclobber and read/write modifiers.
19593
19594 2014-07-04 Tom de Vries <tom@codesourcery.com>
19595
19596 * config/aarch64/aarch64-simd.md
19597 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
19598
19599 2014-07-04 Richard Earnshaw <rearnsha@arm.com>
19600
19601 PR target/61714
19602 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
19603
19604 2014-07-04 Jakub Jelinek <jakub@redhat.com>
19605
19606 PR middle-end/61654
19607 * cgraphunit.c (expand_thunk): Call free_dominance_info.
19608
19609 PR tree-optimization/61684
19610 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
19611 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
19612
19613 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19614 Kito Cheng <kito@0xlab.org>
19615 Monk Chiang <sh.chiang04@gmail.com>
19616
19617 * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
19618 (nds32_symbol_load_store_p): Move to ...
19619 (nds32_fp_as_gp_check_available): Move to ...
19620 * config/nds32/nds32-fp-as-gp.c: ... here.
19621 * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
19622 extern declaration.
19623
19624 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19625 Kito Cheng <kito@0xlab.org>
19626 Monk Chiang <sh.chiang04@gmail.com>
19627
19628 * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
19629 (nds32_expand_store_multiple): Move to ...
19630 (nds32_expand_movmemqi): Move to ...
19631 * config/nds32/nds32-memory-manipulation.c: ... here.
19632
19633 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19634 Kito Cheng <kito@0xlab.org>
19635 Monk Chiang <sh.chiang04@gmail.com>
19636
19637 * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
19638 (nds32_output_casesi_pc_relative): Move to ...
19639 (nds32_output_casesi): Move to ...
19640 (nds32_mem_format): Move to ...
19641 (nds32_output_16bit_store): Move to ...
19642 (nds32_output_16bit_load): Move to ...
19643 (nds32_output_32bit_store): Move to ...
19644 (nds32_output_32bit_load): Move to ...
19645 (nds32_output_32bit_load_s): Move to ...
19646 (nds32_output_stack_push): Move to ...
19647 (nds32_output_stack_pop): Move to ...
19648 * config/nds32/nds32-md-auxiliary.c: ... here.
19649
19650 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19651 Ling-Hua Tseng <uranus@tinlans.org>
19652
19653 * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
19654 the purpose of this file.
19655
19656 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19657 Kito Cheng <kito@0xlab.org>
19658 Monk Chiang <sh.chiang04@gmail.com>
19659
19660 * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
19661 (nds32_address_cost): Move implementation to ...
19662 * config/nds32/nds32-cost.c: ... here.
19663 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
19664 (nds32_address_cost_impl): Declare.
19665
19666 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19667 Kito Cheng <kito@0xlab.org>
19668 Monk Chiang <sh.chiang04@gmail.com>
19669
19670 * config/nds32/nds32.c
19671 (nds32_consecutive_registers_load_store_p): Move to ...
19672 (nds32_valid_multiple_load_store): Move to ...
19673 (nds32_valid_stack_push_pop): Move to ...
19674 (nds32_can_use_bclr_p): Move to ...
19675 (nds32_can_use_bset_p): Move to ...
19676 (nds32_can_use_btgl_p): Move to ...
19677 (nds32_can_use_bitci_p): Move to ...
19678 * config/nds32/nds32-predicates.c: ... here.
19679
19680 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19681 Kito Cheng <kito@0xlab.org>
19682 Monk Chiang <sh.chiang04@gmail.com>
19683
19684 * config/nds32/nds32.c
19685 (nds32_expand_builtin_null_ftype_reg): Move to ...
19686 (nds32_expand_builtin_reg_ftype_imm): Move to ...
19687 (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
19688 (nds32_init_builtins): Move implementation to ...
19689 (nds32_expand_builtin): Move implementation to ...
19690 * config/nds32/nds32-intrinsic.c: ... here.
19691 * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
19692 (nds32_expand_builtin_impl): Declare.
19693
19694 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19695 Kito Cheng <kito@0xlab.org>
19696 Monk Chiang <sh.chiang04@gmail.com>
19697
19698 * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
19699 (nds32_emit_section_tail_template): Move to ...
19700 (nds32_emit_isr_jmptbl_section): Move to ...
19701 (nds32_emit_isr_vector_section): Move to ...
19702 (nds32_emit_isr_reset_conten): Move to ...
19703 (nds32_check_isr_attrs_conflict): Move to ...
19704 (nds32_construct_isr_vectors_information): Move to ...
19705 (nds32_asm_file_start): Move implementation to ...
19706 (nds32_asm_file_end): Move implementation to ...
19707 * config/nds32/nds32-isr.c: ... here.
19708 * config/nds32/nds32-protos.h
19709 (nds32_check_isr_attrs_conflict): Declare.
19710 (nds32_construct_isr_vectors_information): Declare.
19711 (nds32_asm_file_start_for_isr): Declare.
19712 (nds32_asm_file_end_for_isr): Declare.
19713
19714 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19715 Kito Cheng <kito@0xlab.org>
19716 Monk Chiang <sh.chiang04@gmail.com>
19717
19718 * config.gcc (nds32*): Add new modules to extra_objs.
19719 (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
19720 (nds32be-*-*): Likewise.
19721 * config/nds32/nds32-cost.c: New file.
19722 * config/nds32/nds32-fp-as-gp.c: New file.
19723 * config/nds32/nds32-intrinsic.c: New file.
19724 * config/nds32/nds32-isr.c: New file.
19725 * config/nds32/nds32-md-auxiliary.c: New file.
19726 * config/nds32/nds32-memory-manipulation.c: New file.
19727 * config/nds32/nds32-pipelines-auxiliary.c: New file.
19728 * config/nds32/nds32-predicates.c: New file.
19729 * config/nds32/t-nds32: New file.
19730
19731 2014-07-03 Jakub Jelinek <jakub@redhat.com>
19732
19733 PR tree-optimization/61682
19734 * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
19735 using cases and when one of the operands is equal to 1.
19736
19737 2014-07-03 Segher Boessenkool <segher@kernel.crashing.org>
19738
19739 * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
19740 ashr<mode>3): Correct mode of operands[2].
19741 (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
19742 lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
19743 Correct mode of operands[2]. Fix split condition.
19744
19745 2014-07-03 Richard Earnshaw <rearnsha@arm.com>
19746
19747 * arm.md (arch): Add armv6_or_vfpv3.
19748 (arch_enabled): Add test for the above.
19749 * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
19750 on VFP9.
19751 (sqrtsf_vfp, sqrtdf_vfp): Likewise.
19752
19753 2014-07-03 Jakub Jelinek <jakub@redhat.com>
19754
19755 * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
19756 * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
19757 HWI 1 and negate the unsigned value.
19758 * expmed.c (expand_sdiv_pow2): For modes wider than word always
19759 use AND instead of shift.
19760 * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
19761
19762 2014-07-03 Marek Polacek <polacek@redhat.com>
19763
19764 * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
19765 (-fsanitize=float-divide-by-zero): Move to the table with
19766 -fsanitize=undefined suboptions.
19767 (-fsanitize=float-cast-overflow): Likewise.
19768
19769 2014-07-03 Maciej W. Rozycki <macro@codesourcery.com>
19770
19771 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
19772 BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
19773 endianness.
19774
19775 2014-07-03 Zhenqiang Chen <zhenqiang.chen@linaro.org>
19776
19777 * loop-invariant.c (struct invariant): Add a new member: eqno;
19778 (find_identical_invariants): Update eqno;
19779 (create_new_invariant): Init eqno;
19780 (get_inv_cost): Compute comp_cost with eqno;
19781
19782 2014-07-02 Segher Boessenkool <segher@kernel.crashing.org>
19783
19784 * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
19785 (walk_insn_part) <ROTATE, ROTATERT>: New cases.
19786 (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
19787 * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
19788 Only do the transformation if both HAVE_rotate and HAVE_rotatert.
19789
19790 2014-07-02 Christian Bruel <christian.bruel@st.com>
19791
19792 PR target/29349
19793 PR target/53513
19794 * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
19795 (make_preds_opaque): Delete.
19796 (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
19797 (commit_mode_sets): New function.
19798 (optimize_mode_switching): Handle current_mode to mode_switching_emit.
19799 Process all modes at once.
19800 * basic-block.h (pre_edge_lcm_avs): Declare.
19801 * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
19802 Call clear_aux_for_edges. Fix comments.
19803 (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
19804 (pre_edge_rev_lcm): Idem.
19805 * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
19806 parameter.
19807 * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
19808 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
19809 Idem.
19810 * config/i386/i386.c (x96_emit_mode_set): Idem.
19811 * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
19812 * config/sh/sh.md (toggle_pr): Defined if TARGET_FPU_SINGLE.
19813 (fpscr_toggle) Disallow from delay slot.
19814 * target.def (emit_mode_set): Add prev_mode parameter.
19815 * doc/tm.texi: Regenerate.
19816
19817 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19818
19819 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
19820 variable i.
19821
19822 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
19823
19824 * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
19825 vtable_pointer_value_to_vtable): Constify.
19826 (contains_polymorphic_type_p): Declare.
19827 * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
19828 vtable_pointer_value_to_vtable): Constify.
19829 (contains_polymorphic_type_p): New predicate.
19830 * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
19831 polymorphic types.
19832 (ipa_set_ancestor_jf): Likewise.
19833 (detect_type_change): Return false in easy cases.
19834 (compute_complex_assign_jump_func): Require type to contain
19835 polymorphic type.
19836 (compute_known_type_jump_func): Likewise.
19837
19838 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
19839
19840 * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
19841 Remove.
19842 (type_in_anonymous_namespace_p): Constify argument.
19843 * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
19844 * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
19845 (main_odr_variant): New function.
19846 (hash_type_name): Make static; update assert; do not ICE on
19847 non-records.
19848 (types_same_for_odr): Bring here from tree.c; simplify and remove
19849 old structural comparing code that doesn't work for templates.
19850 (odr_hasher::equal): Update assert.
19851 (add_type_duplicate): Return true when bases should be computed;
19852 replace incomplete loader by complete; do not output duplicated
19853 warnings; do not ICE on non-records; set odr_violated flag.
19854 (get_odr_type): Be ready to replace incomplete type by complete
19855 one; work on ODR variants instead of main variants; reorder item
19856 in array so bases have still smaller indexes.
19857 (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
19858 (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
19859
19860 2014-07-01 Cary Coutant <ccoutant@google.com>
19861
19862 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
19863 lookup.
19864 (resolve_addr_in_expr): When replacing the rtx in a location list
19865 entry, get a new address table entry.
19866 (dwarf2out_finish): Call index_location_lists even if there are no
19867 addr_index_table entries yet.
19868
19869 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
19870
19871 * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
19872 change for not being obvious.
19873
19874 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
19875
19876 * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
19877 unused argument.
19878
19879 2014-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19880
19881 * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
19882 (vcagt_f64): Likewise.
19883 (vcale_f64): Likewise.
19884 (vcaled_f64): Likewise.
19885 (vcales_f32): Likewise.
19886 (vcalt_f64): Likewise.
19887 (vcaltd_f64): Likewise.
19888 (vcalts_f32): Likewise.
19889
19890 2014-07-01 Marek Polacek <polacek@redhat.com>
19891
19892 * doc/invoke.texi: Document -Wint-conversion.
19893
19894 2014-07-01 Marek Polacek <polacek@redhat.com>
19895
19896 PR c/58286
19897 * doc/invoke.texi: Document -Wincompatible-pointer-types.
19898
19899 2014-07-01 Martin Liska <mliska@suse.cz>
19900
19901 IPA REF alias refactoring
19902 * cgraph.h (iterate_direct_aliases): New function.
19903 (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
19904 * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
19905 FOR_EACH_ALIAS added.
19906 (cgraph_for_node_and_aliases): Likewise.
19907 * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
19908 * ipa-inline.c (reset_edge_caches): Likewise.
19909 (update_caller_keys): Likewise.
19910 * trans-mem.c (ipa_tm_execute): Likewise.
19911 *varpool.c (varpool_analyze_node): Likewise.
19912 (varpool_for_node_and_aliases): Likewise.
19913 * ipa-ref.h (first_alias): New function.
19914 (last_alias): Likewise.
19915 (has_aliases_p): Likewise.
19916 * ipa-ref.c (ipa_ref::remove_reference): Removal function
19917 is sensitive to IPA_REF_ALIASes.
19918 * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
19919 are put at the beginning of the list.
19920 (symtab_node::iterate_direct_aliases): New function.
19921
19922 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
19923
19924 Revert:
19925 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19926 type is complete.
19927 (write_ts_type_common_tree_pointers): Do not stream fields not set
19928 for incomplete types; do not stream duplicated fields for variants;
19929 sanity check that variant and type match.
19930 (write_ts_type_non_common_tree_pointers): Likewise.
19931 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19932 TYPE_SIZE whether type is complete.
19933 (lto_input_ts_type_common_tree_pointers): Do same changes as in
19934 write_ts_type_common_tree_pointers
19935 (lto_input_ts_type_non_common_tree_pointers): Likewise.
19936
19937 2014-06-30 Joseph Myers <joseph@codesourcery.com>
19938
19939 * var-tracking.c (add_stores): Return instead of asserting if old
19940 and new values for conditional store are the same.
19941
19942 2014-06-30 Richard Henderson <rth@redhat.com>
19943
19944 PR rtl-opt/61608
19945 PR target/39284
19946 * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
19947 the cfg if there were any changes.
19948 * passes.def: Revert move of peephole2 after reorder_blocks;
19949 move duplicate_computed_gotos before peephole2.
19950
19951 2014-06-30 Uros Bizjak <ubizjak@gmail.com>
19952
19953 * except.c (emit_note_eh_region_end): New helper function.
19954 (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
19955 emit EH_REGION_END note.
19956 * jump.c (cleanup_barriers): Do not split a call and its
19957 corresponding CALL_ARG_LOCATION note.
19958
19959 2014-06-30 Jeff Law <law@redhat.com>
19960
19961 PR tree-optimization/61607
19962 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
19963 deeper into the SSA_NAME_VALUE chain.
19964
19965 2014-06-30 Marek Polacek <polacek@redhat.com>
19966
19967 * convert.c (convert_to_integer): Don't instrument conversions if the
19968 function has no_sanitize_undefined attribute.
19969 * ubsan.c: Don't run the ubsan pass if the function has
19970 no_sanitize_undefined attribute.
19971
19972 2014-06-30 Jakub Jelinek <jakub@redhat.com>
19973
19974 * doc/invoke.texi (-fsanitize=bounds): Move to the table with
19975 -fsanitize=undefined suboptions.
19976
19977 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
19978
19979 * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
19980 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
19981 against bigendian and adjust indices.
19982
19983 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
19984
19985 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
19986
19987 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
19988
19989 PR target/61633
19990 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
19991 Add alternative; make early clobber. Adjust both split patterns
19992 to use operand 0 as the working register.
19993
19994 2014-06-30 Jakub Jelinek <jakub@redhat.com>
19995
19996 * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
19997 as ira_object_id_map might be NULL, or 1.
19998
19999 2014-06-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
20000
20001 * loop-invariant.c (get_inv_cost): Handle register class.
20002 (gain_for_invariant): Check the register pressure of the inv
20003 and its overlapped register class, other than all.
20004
20005 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
20006
20007 * doc/invoke.texi (Optimize Options): Fix descriptions of
20008 ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
20009
20010 2014-06-29 David Wohlferd <dw@LimeGreenSocks.com>
20011
20012 * doc/extend.texi (Function Attributes): Update 'naked' attribute
20013 documentation.
20014
20015 2014-06-29 Tobias Grosser <tobias@grosser.es>
20016
20017 PR bootstrap/61650
20018 * graphite-isl-ast-to-gimple.c: Add missing guards.
20019
20020 2014-06-29 Roman Gareev <gareevroman@gmail.com>
20021
20022 * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
20023 * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
20024 * flag-types.h: Add new enum fgraphite_generator.
20025 * graphite-isl-ast-to-gimple.c: New.
20026 * graphite-isl-ast-to-gimple.h: New.
20027 * graphite.c (graphite_transform_loops): Add choice of Graphite
20028 code generator, which depends on flag_graphite_code_gen.
20029
20030 2014-06-29 Roman Gareev <gareevroman@gmail.com>
20031
20032 * graphite-dependences.c (subtract_commutative_associative_deps):
20033 Add NULL checking of the following variables: must_raw_no_source,
20034 may_raw_no_source, must_war_no_source, may_war_no_source,
20035 must_waw_no_source, may_waw_no_source, must_raw, may_raw,
20036 must_war, may_war, must_waw, may_waw.
20037
20038 2014-06-29 Roman Gareev <gareevroman@gmail.com>
20039
20040 * graphite-clast-to-gimple.c: gloog is renamed to
20041 graphite_regenerate_ast_cloog. gloog_error is renamed to
20042 graphite_regenerate_error.
20043 * graphite-clast-to-gimple.h: The definition of the struct
20044 bb_pbb_def is moved to graphite-htab.h.
20045 Add inclusion of the hash-table.h.
20046 * graphite-htab.h: The declaration of the function gloog is moved
20047 to graphite-clast-to-gimple.h and renamed to
20048 graphite_regenerate_ast_cloog.
20049 * graphite.c (graphite_transform_loops): gloog is renamed
20050 to graphite_regenerate_ast_cloog.
20051
20052 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
20053
20054 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
20055 type is complete.
20056 (write_ts_type_common_tree_pointers): Do not stream fields not set
20057 for incomplete types; do not stream duplicated fields for variants;
20058 sanity check that variant and type match.
20059 (write_ts_type_non_common_tree_pointers): Likewise.
20060 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
20061 TYPE_SIZE whether type is complete.
20062 (lto_input_ts_type_common_tree_pointers): Do same changes as in
20063 write_ts_type_common_tree_pointers
20064 (lto_input_ts_type_non_common_tree_pointers): Likewise.
20065
20066 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
20067
20068 * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
20069
20070 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
20071
20072 * tree-inline.c (remap_type_1): Do not duplicate fields
20073 that are shared in between type and its main variant.
20074
20075 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
20076
20077 * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
20078 of the type.
20079 (ipa_set_ancestor_jf) Likewise.
20080 (check_stmt_for_type_change): Check that we work on main variant.
20081 (detect_type_change): Look into main variant.
20082 (compute_known_type_jump_func): Check that main variant has BINFO.
20083
20084 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
20085
20086 * ipa-devirt.c (set_type_binfo): New function.
20087 (add_type_duplicate): Use it.
20088 (get_odr_type): Sanity check that binfos points to main variants.
20089 (get_class_context): Be sure the context's outer_type is main variant.
20090 (contains_type_p): Walk main variant.
20091 (get_polymorphic_call_info_for_decl): Set outer_type to be
20092 main variant.
20093 (get_polymorphic_call_info): Likewise.
20094 (possible_polymorphic_call_targets): Sanity check that we operate
20095 on main variant.
20096
20097 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
20098
20099 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
20100
20101 2014-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20102
20103 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
20104 accidental change due to wide-int branch merge.
20105
20106 2014-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20107
20108 * configure.ac (gcc_cv_as_compress_debug): Check for assembler
20109 compressed debug support.
20110 (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
20111 * configure: Regenerate.
20112 * config.in: Regenerate.
20113 * common.opt (compressed_debug_sections): New enum.
20114 (gz, gz=): New options.
20115 * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
20116 (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
20117 (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
20118 * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
20119 LINK_COMPRESS_DEBUG_SPEC.
20120 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
20121 * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
20122 * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
20123 (Debugging Options): Document -gz[=type].
20124
20125 2014-06-27 Martin Jambor <mjambor@suse.cz>
20126
20127 PR ipa/61160
20128 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
20129 args_to_skip, use those from node instead. Copy args_to_skip and
20130 combined_args_to_skip from node to the new thunk.
20131 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
20132 (cgraph_create_virtual_clone): Moved computation of
20133 combined_args_to_skip...
20134 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
20135
20136 2014-06-27 trevor Saunders <tsaunders@mozilla.com>
20137
20138 * config/i386/winnt.c (i386_pe_section_type_flags): Remove
20139 redundant diagnostic machinary.
20140
20141 2014-06-27 Richard Biener <rguenther@suse.de>
20142
20143 * tree-ssa-math-opts.c (bswap_replace): Fix
20144 SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
20145
20146 2014-06-27 Martin Liska <mliska@suse.cz>
20147
20148 * gimple.h (gimple_location_safe): New function introduced.
20149 * cgraphunit.c (walk_polymorphic_call_targets): Usage
20150 of gimple_location_safe replaces gimple_location.
20151 (gimple_fold_call): Likewise.
20152 * ipa-devirt.c (ipa_devirt): Likewise.
20153 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
20154 * ipa.c (walk_polymorphic_call_targets): Likewise.
20155 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
20156
20157 2014-06-27 Jakub Jelinek <jakub@redhat.com>
20158
20159 PR tree-optimization/57233
20160 PR tree-optimization/61299
20161 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
20162 functions.
20163 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
20164 would be lowered to scalar shifts, check if corresponding
20165 shifts and vector BIT_IOR_EXPR are supported and don't lower
20166 or lower just to narrower vector type in that case.
20167 * expmed.c (expand_shift_1): Fix up handling of vector
20168 shifts and rotates.
20169
20170 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
20171
20172 PR target/61586
20173 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
20174
20175 2014-06-26 Jan Hubicka <hubicka@ucw.cz>
20176
20177 * doc/invoke.texi (-fsemantic-interposition): Document.
20178 * common.opt (fsemantic-interposition): New flag.
20179 * varasm.c (decl_replaceable_p): Use it.
20180
20181 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20182
20183 PR target/61542
20184 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
20185 extraction other than index 3.
20186
20187 2014-06-26 Teresa Johnson <tejohnson@google.com>
20188
20189 * doc/invoke.texi: Fix typo.
20190 * dumpfile.c: Add support for documented -fdump-* options
20191 optimized/missed/note/optall.
20192
20193 2014-06-26 Martin Jambor <mjambor@suse.cz>
20194
20195 * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
20196 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
20197 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
20198 (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
20199 * opts.c (default_options_optimization): Set
20200 PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
20201 * doc/invoke.texi (allow-load-data-races)
20202 (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
20203 (allow-store-data-races): Document the new default.
20204
20205 2014-06-26 Martin Jambor <mjambor@suse.cz>
20206
20207 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
20208 renamed to ipa_impossible_devirt_target. Fix typo.
20209 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
20210 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
20211 ipa_impossible_devirt_target.
20212
20213 2014-06-26 Richard Biener <rguenther@suse.de>
20214
20215 PR tree-optimization/61607
20216 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
20217 explaining why we restrict copies on loop depth.
20218 * tree-ssa-dom.c (cprop_operand): Remove restriction on
20219 on loop depth.
20220 (record_equivalences_from_phis): Instead add it here.
20221
20222 2014-06-26 Bernd Schmidt <bernds@codesourcery.com>
20223
20224 * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
20225 (LTO_WRAPPER_OBJS): New variable.
20226 (lto-wrapper$(exeext)): Use it.
20227 * collect2.c: Include "collect-utils.h".
20228 (verbose, debug): Remove variables.
20229 (at_file_supplied): No longer static.
20230 (tool_name): New variable.
20231 (do_wait, fork_execute, maybe_unlink): Don't declare.
20232 (tool_cleanup): No longer static.
20233 (notice): Remove function.
20234 (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
20235 fork_execute calls.
20236 (collect_wait, do_wait, collect_execute): Remove functions.
20237 (maybe_unlink): No longer static.
20238 * collect2.h (verbose, debug): Don't declare.
20239 (at_file_supplied): Declare.
20240 * collect-utils.c (utils_cleanup): New arg from_signal. All callers
20241 changed.
20242 (collect_execute): Replace with implementation from collect2, plus a
20243 new arg use_atfile. All callers changed.
20244 (collect_wait): Replace with implementation from collect2.
20245 (maybe_unlink_file): Remove function.
20246 (fork_execute): Replace with implementation from collect2, plus a
20247 new arg use_atfile. All callers changed.
20248 (do_wait): Add call to utils_cleanup to the error path.
20249 * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
20250 (tool_cleanup): Adjust declarations.
20251 * lto-wrapper.c (tool_cleanup): Add unused bool argument.
20252 * tlink.c: Include "collect-utils.h".
20253 (tlink_execute): New arg use_atfile. All callers changed.
20254 (tlink_init, tlink_execute): Remove declarations.
20255
20256 * collect-utils.c (save_temps): New variable.
20257 (do_wait): Use it instead of debug. Use fatal_error.
20258 * collect-utils.h (save_temps): Declare.
20259 * collect2.c (verbose): Rename from vflag. All uses changed.
20260 (tool_cleanup): New function, copied from collect_atexit.
20261 (collect_atexit, handler): Just call it.
20262 * collect2.h (verbose): Declaration renamed from vflag.
20263 * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
20264 debug.
20265
20266 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
20267 (lto-wrapper$(exeext)): Link with collect-utils.o.
20268 * collect-utils.c: New file.
20269 * collect-utils.h: New file.
20270 * lto-wrapper.c: Include "collect-utils.h".
20271 (args_name): Delete variable.
20272 (tool_name): New variable.
20273 (tool_cleanup): New function.
20274 (maybe_unlink): Renamed from maybe_unlink_file. All callers changed.
20275 (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
20276 (fork_execute): Remove functions.
20277
20278 2014-06-26 Nick Clifton <nickc@redhat.com>
20279
20280 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
20281
20282 * doc/extend.texi (Function Attributes): Fix typo in description
20283 of RX vector attribute.
20284
20285 2014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
20286
20287 * config.gcc (supported_defaults): Error when passing either
20288 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
20289
20290 2014-06-26 Richard Biener <rguenther@suse.de>
20291
20292 * tree-ssa-dom.c (cprop_operand): Remove restriction on
20293 propagating volatile pointers.
20294
20295 2014-06-26 Richard Biener <rguenther@suse.de>
20296
20297 PR tree-optimization/61607
20298 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
20299 loop if we redirected its latch edge.
20300 (thread_block_1): Do not cancel loops prematurely.
20301
20302 2014-06-25 Jan Hubicka <hubicka@ucw.cz>
20303
20304 * toplev.c (backend_init_target): Move init_emit_regs and
20305 init_regs to...
20306 (backend_init) ... here; skip ira_init_once and backend_init_target.
20307 (target_reinit) ... and here; clear
20308 this_target_rtl->lang_dependent_initialized.
20309 (lang_dependent_init_target): Clear
20310 this_target_rtl->lang_dependent_initialized;
20311 break out rtl initialization to ...
20312 (initialize_rtl): ... here; call also backend_init_target
20313 and ira_init_once.
20314 * toplev.h (initialize_rtl): New function.
20315 * function.c: Include toplev.h
20316 (init_function_start): Call initialize_rtl.
20317 * rtl.h (target_rtl): Add target_specific_initialized,
20318 lang_dependent_initialized.
20319
20320 2014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
20321 Jakub Jelinek <jakub@redhat.com>
20322
20323 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
20324
20325 2014-06-25 Tom de Vries <tom@codesourcery.com>
20326
20327 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
20328
20329 2014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
20330
20331 * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
20332 check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
20333 Issue a strict overflow warning if appropriate.
20334
20335 2014-06-25 Martin Liska <mliska@suse.cz>
20336
20337 IPA REF refactoring
20338 * Makefile.in: Removed header file (ipa-ref-inline.h).
20339 * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
20340 called.
20341 (cgraph_speculative_call_info): Likewise.
20342 (cgraph_for_node_thunks_and_aliases): Likewise.
20343 (cgraph_for_node_and_aliases): Likewise.
20344 (verify_cgraph_node): Likewise.
20345 * cgraph.h: Batch of IPA REF functions become member functions of
20346 symtab_node: add_reference, maybe_add_reference, clone_references,
20347 clone_referring, clone_reference, find_reference,
20348 remove_stmt_references, remove_all_references,
20349 remove_all_referring, dump_references, dump_referring,
20350 has_alias_p, iterate_reference, iterate_referring.
20351 * cgraphbuild.c (record_reference): New IPA REF function used.
20352 (record_type_list): Likewise.
20353 (record_eh_tables): Likewise.
20354 (mark_address): Likewise.
20355 (mark_load): Likewise.
20356 (mark_store): Likewise.
20357 (pass_build_cgraph_edges): Likewise.
20358 (rebuild_cgraph_edge): Likewise.
20359 (cgraph_rebuild_references): Likewise.
20360 (pass_remove_cgraph_callee_edges): Likewise.
20361 * cgraphclones.c (cgraph_clone_node): Likewise.
20362 (cgraph_create_virtual_clone): Likewise.
20363 (cgraph_materialize_clone): Likewise.
20364 (cgraph_materialize_all_clones): Likewise.
20365 * cgraphunit.c (cgraph_reset_node): Likewise.
20366 (cgraph_reset_node): Likewise.
20367 (analyze_function): Likewise.
20368 (assemble_thunks_and_aliases): Likewise.
20369 (expand_function): Likewise.
20370 * ipa-comdats.c (propagate_comdat_group): Likewise.
20371 (enqueue_references): Likewise.
20372 * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
20373 (create_specialized_node): Likewise.
20374 * ipa-devirt.c (referenced_from_vtable_p): Likewise.
20375 * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
20376 * ipa-inline.c (reset_edge_caches): Likewise.
20377 (update_caller_keys): Likewise.
20378 (execute): Likewise.
20379 * ipa-prop.c (remove_described_reference): Likewise.
20380 (propagate_controlled_uses): Likewise.
20381 (ipa_edge_duplication_hook): Likewise.
20382 (ipa_modify_call_arguments): Likewise.
20383 * ipa-pure-const.c (propagate_pure_const): Likewise.
20384 * ipa-ref-inline.h: Header file removed, functions moved
20385 to symtab_node class.
20386 * ipa-ref.c (remove_reference): New class member function.
20387 (cannot_lead_to_return): New class member function.
20388 (referring_ref_list): Likewise.
20389 (referred_ref_list): Likewise.
20390 Rest of functions moved to symtab_node class.
20391 * ipa-ref.h: New member functions remove_reference,
20392 cannot_lead_to_return, referring_ref_list, referred_ref_list added
20393 to ipa_ref class.
20394 ipa_ref_list class has new member functions: first_reference,
20395 first_referring, clear, nreferences.
20396 * ipa-reference.c (analyze_function): New IPA REF function used.
20397 (write_node_summary_p): Likewise.
20398 (ipa_reference_write_optimization_summary): Likewise.
20399 * ipa-split.c (split_function): Likewise.
20400 * ipa-utils.c (ipa_reverse_postorder): Likewise.
20401 * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
20402 (function_and_variable_visibility): Likewise.
20403 * ipa.c (has_addr_references_p): Likewise.
20404 (process_references): Argument type changed.
20405 (symtab_remove_unreachable_nodes): New IPA REF function used.
20406 (process_references): Likewise.
20407 (set_writeonly_bit): Likewise.
20408 * lto-cgraph.c: Implementation of new symtab_node member functions
20409 that uses new IPA REF functions.
20410 * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
20411 function used.
20412 * lto-streamer-out.c (output_symbol_p): Likewise.
20413 * lto-streamer.h (referenced_from_this_partition_p): Argument type
20414 changed.
20415 * symtab.c: Implementation of new IPA REF API.
20416 * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
20417 (ipa_tm_create_version): Likewise.
20418 (ipa_tm_execute): Likewise.
20419 * tree-emutls.c (gen_emutls_addr): Likewise.
20420 * tree-inline.c (copy_bb): Likewise.
20421 (delete_unreachable_blocks_update_callgraph): Likewise.
20422 * varpool.c (varpool_remove_unreferenced_decls): Likewise.
20423 (varpool_for_node_and_aliases): Likewise.
20424
20425 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
20426
20427 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
20428
20429 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
20430
20431 PR bootstrap/61598
20432 * fold-const.c (fold_checksum_tree): Use a hash_table of const
20433 tree_node * instead of tree_node *.
20434 (fold): Adjust.
20435 (print_fold_checksum): Likewise.
20436 (fold_check_failed): Likewise.
20437 (debug_fold_checksum): Likewise.
20438 (fold_build1_stat_loc): Likewise.
20439 (fold_build2_stat_loc): Likewise.
20440 (fold_build3_stat_loc): Likewise.
20441 (fold_build_call_array_loc): Likewise.
20442
20443 2014-06-25 David Edelsohn <dje.gcc@gmail.com>
20444
20445 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
20446 implementation with call to...
20447 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
20448 function.
20449 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
20450 Declare.
20451
20452 2014-06-25 Marc Glisse <marc.glisse@inria.fr>
20453
20454 PR tree-optimization/57742
20455 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
20456 after replacing the statement.
20457
20458 2014-06-25 Nick Clifton <nickc@redhat.com>
20459
20460 * config/v850/v850.c (GHS_default_section_names): Change to const
20461 char * type.
20462 (GHS_current_section_names): Likewise.
20463 (v850_insert_attributes): Do not build strings, just assign the
20464 names directly. Change the type of 'chosen_section' to const
20465 char*.
20466 * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
20467 directly to the array entry.
20468 * config/v850/v850.h (GHS_default_section_names): Change to const
20469 char * type.
20470 (GHS_current_section_names): Likewise.
20471
20472 2014-06-25 Jakub Jelinek <jakub@redhat.com>
20473
20474 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
20475 (LANG_HOOKS_DECLS): Add it.
20476 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
20477 has correct type.
20478 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
20479 * langhooks.h (struct lang_hooks_for_decls): Add
20480 omp_clause_linear_ctor hook.
20481 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
20482 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
20483 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
20484 combined simd loop use omp_clause_linear_ctor hook.
20485
20486 2014-06-24 Cong Hou <congh@google.com>
20487
20488 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
20489 pattern recognition.
20490 (type_conversion_p): PROMOTION is true if it's a type promotion
20491 conversion, and false otherwise. Return true if the given expression
20492 is a type conversion one.
20493 * tree-vectorizer.h: Adjust the number of patterns.
20494 * tree.def: Add SAD_EXPR.
20495 * optabs.def: Add sad_optab.
20496 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
20497 * expr.c (expand_expr_real_2): Likewise.
20498 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
20499 * gimple.c (get_gimple_rhs_num_ops): Likewise.
20500 * optabs.c (optab_for_tree_code): Likewise.
20501 * tree-cfg.c (estimate_operator_cost): Likewise.
20502 * tree-ssa-operands.c (get_expr_operands): Likewise.
20503 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
20504 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
20505 * doc/generic.texi: Add document for SAD_EXPR.
20506 * doc/md.texi: Add document for ssad and usad.
20507
20508 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
20509
20510 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
20511 qualification in cast.
20512
20513 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
20514
20515 * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
20516 * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
20517 * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
20518 (tree_function_decl): ... here.
20519 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
20520 streaming of vindex to ...
20521 (write_ts_function_decl_tree_pointers): ... here.
20522 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
20523 Do not stream DECL_VINDEX.
20524 (lto_input_ts_function_decl_tree_pointers): Stream it here.
20525
20526 2014-06-24 Catherine Moore <clm@codesourcery.com>
20527 Sandra Loosemore <sandra@codesourcery.com>
20528
20529 * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
20530 * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
20531 * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
20532
20533 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
20534
20535 * doc/invoke.texi (Warning Options): Remove duplicated
20536 -Wmaybe-uninitialized.
20537
20538 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
20539
20540 PR tree-optimization/57742
20541 * tree-ssa-strlen.c (get_string_length): Ignore malloc.
20542 (handle_builtin_malloc, handle_builtin_memset): New functions.
20543 (strlen_optimize_stmt): Call them.
20544 * passes.def: Move strlen after loop+dom but before vrp.
20545
20546 2014-06-24 Jakub Jelinek <jakub@redhat.com>
20547
20548 PR target/61570
20549 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
20550 model family 6 CPU with has_longmode never use a CPU without
20551 64-bit support.
20552
20553 2014-06-24 H.J. Lu <hongjiu.lu@intel.com>
20554
20555 PR target/61570
20556 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
20557 the last change.
20558
20559 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
20560
20561 * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
20562 * dominance.c (iterate_fix_dominators): Use hash_map instead of
20563 pointer_map.
20564 * hash-map.h: New file.
20565 * ipa-comdats.c: Use hash_map instead of pointer_map.
20566 * ipa.c: Likewise.
20567 * lto-section-out.c: Adjust.
20568 * lto-streamer.h: Replace pointer_map with hash_map.
20569 * symtab.c (verify_symtab): Likewise.
20570 * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
20571 * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
20572 * tree-streamer.h: Likewise.
20573 * tree-streamer.c: Adjust.
20574 * pointer-set.h: Remove pointer_map.
20575
20576 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
20577
20578 * hash-table.h: Add a template arg to choose between storing values
20579 and storing pointers to values, and then provide partial
20580 specializations for both.
20581 * tree-browser.c (tree_upper_hasher): Provide the type the hash table
20582 should store, not the type values should point to.
20583 * tree-into-ssa.c (var_info_hasher): Likewise.
20584 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
20585 * tree-complex.c: Adjust.
20586 * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
20587 table instead of int_tree_map *.
20588 * tree-parloops.c: Adjust.
20589 * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
20590 type is being stored.
20591 * tree-vectorizer.c: Adjust.
20592
20593 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
20594
20595 * hash-table.h: Remove a layer of indirection from hash_table so that
20596 it contains the hash table's data instead of a pointer to the data.
20597 * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
20598 config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
20599 config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
20600 data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
20601 fold-const.c, gcse.c, ggc-common.c,
20602 gimple-ssa-strength-reduction.c, gimplify.c,
20603 graphite-clast-to-gimple.c, graphite-dependences.c,
20604 graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
20605 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
20606 loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
20607 lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
20608 postreload-gcse.c, sese.c, statistics.c, store-motion.c,
20609 trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
20610 tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
20611 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
20612 tree-ssa-live.c, tree-ssa-loop-im.c,
20613 tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
20614 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
20615 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
20616 tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
20617 tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
20618 tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
20619 vtable-verify.c, vtable-verify.h: Adjust.
20620
20621 2014-06-24 Richard Biener <rguenther@suse.de>
20622
20623 PR tree-optimization/61572
20624 * tree-ssa-sink.c (statement_sink_location): Do not sink
20625 loads from hard registers.
20626
20627 2014-06-24 Jakub Jelinek <jakub@redhat.com>
20628
20629 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
20630 not mentioned in clauses use private clause if the iterator is
20631 declared in #pragma omp for simd, and when adding lastprivate
20632 instead, add it to the outer #pragma omp for too. Diagnose
20633 if the variable is private in outer context. For simd collapse > 1
20634 loops, replace all iterators with temporaries.
20635 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
20636 same even in collapse > 1 loops.
20637
20638 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
20639 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
20640 non-NULL.
20641 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
20642 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
20643 non-NULL.
20644 (gimplify_adjust_omp_clauses): Likewise.
20645 * omp-low.c (lower_rec_simd_input_clauses,
20646 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
20647 safelen the same as safelen(1).
20648 * tree-nested.c (convert_nonlocal_omp_clauses,
20649 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
20650 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
20651 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
20652 Fixup handling of GIMPLE_OMP_TARGET.
20653 (convert_tramp_reference_stmt, convert_gimple_call): Handle
20654 GIMPLE_OMP_TARGET.
20655
20656 2014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
20657
20658 PR tree-optimization/61554
20659 * tree-ssa-propagate.c: Include "bitmap.h".
20660 (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
20661 properly update constructor/destructor.
20662 (substitute_and_fold_dom_walker::before_dom_children):
20663 Remove call to gimple_purge_dead_eh_edges, add bb->index to
20664 need_eh_cleaup instead.
20665 (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
20666 need_eh_cleanup.
20667
20668 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
20669
20670 * varpool.c (dump_varpool_node): Dump used_by_single_function.
20671 * tree-pass.h (make_pass_ipa_single_use): New pass.
20672 * cgraph.h (used_by_single_function): New flag.
20673 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
20674 Stream it.
20675 * passes.def (pass_ipa_single_use): Scedule.
20676 * ipa.c (BOTTOM): New macro.
20677 (meet): New function
20678 (propagate_single_user): New function.
20679 (ipa_single_use): New function.
20680 (pass_data_ipa_single_use): New pass.
20681 (pass_ipa_single_use): New pass.
20682 (pass_ipa_single_use::gate): New gate.
20683 (make_pass_ipa_single_use): New function.
20684
20685 2014-06-23 Kai Tietz <ktietz@redhat.com>
20686
20687 PR target/39284
20688 * passes.def (peephole2): Move peephole2 pass before sched2 pass.
20689 * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
20690
20691 2014-06-23 Richard Biener <rguenther@suse.de>
20692
20693 * tree-ssa-loop.c (gate_loop): New function.
20694 (pass_tree_loop::gate): Call it.
20695 (pass_data_tree_no_loop, pass_tree_no_loop,
20696 make_pass_tree_no_loop): New.
20697 * tree-vectorizer.c: Include tree-scalar-evolution.c
20698 (pass_slp_vectorize::execute): Initialize loops and SCEV if
20699 required.
20700 (pass_slp_vectorize::clone): New method.
20701 * timevar.def (TV_TREE_NOLOOP): New.
20702 * tree-pass.h (make_pass_tree_no_loop): Declare.
20703 * passes.def (pass_tree_no_loop): New pass group with
20704 SLP vectorizer.
20705
20706 2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
20707
20708 PR target/61570
20709 * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
20710 to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
20711
20712 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
20713
20714 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
20715 "yes" where needed.
20716
20717 2014-06-23 Alan Modra <amodra@gmail.com>
20718
20719 PR bootstrap/61583
20720 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
20721 to zero on debug statements.
20722
20723 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
20724
20725 PR target/60825
20726 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
20727 Ignore third operand if present by marking qualifier_internal.
20728
20729 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
20730
20731 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
20732 vector extension.
20733 (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
20734 arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
20735 (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
20736 vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
20737 vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
20738 vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
20739 vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
20740 vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
20741 vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
20742 vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
20743 vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
20744 vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
20745 vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
20746 vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
20747 vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
20748 vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
20749 logic in GCC vector extensions
20750
20751 (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
20752 vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
20753 vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
20754 vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
20755 vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
20756 vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
20757 vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
20758 vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
20759 vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
20760 vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
20761
20762 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
20763
20764 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
20765 extensions.
20766
20767 (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
20768 (vget_low_s64): Use __GET_LOW macro.
20769 (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
20770 gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
20771 (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
20772 (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
20773 __builtin_aarch64_lane_boundsi, use GCC vector extensions.
20774
20775 (vcombine_s64): Use GCC vector extensions; remove cast.
20776 (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
20777 vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
20778 vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
20779 Fix type signature; remove cast.
20780
20781 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
20782
20783 PR target/60825
20784 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
20785 V1DFmode.
20786 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
20787 add V1DFmode
20788 (BUILTIN_VD1): New.
20789 (BUILTIN_VD_RE): Remove.
20790 (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
20791 (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
20792 * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
20793 variant but not df.
20794 (vreinterpretv1df*, vreinterpret*v1df): New.
20795 (vreinterpretdf*, vreinterpret*df): Remove.
20796 * config/aarch64/aarch64-simd.md (aarch64_create,
20797 aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
20798 * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
20799 (VD1): New.
20800 * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
20801 (vcreate_f64): Remove cast, use v1df builtin.
20802 (vcombine_f64): Remove cast, get elements with gcc vector extensions.
20803 (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
20804 vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
20805 vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
20806 vmov_n_f64, vst1_f64): Use gcc vector extensions.
20807 (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
20808 add range check using __builtin_aarch64_im_lane_boundsi.
20809 (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
20810 vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
20811 type signature, use gcc vector extensions.
20812 (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
20813 vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
20814 vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
20815 vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
20816 vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
20817 vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
20818 vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
20819 vreinterpret_u64_f64): Use v1df builtin not df.
20820
20821 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
20822
20823 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
20824 vector registers.
20825
20826 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
20827
20828 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
20829 priority directly.
20830
20831 2014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
20832
20833 * loop-invariant.c (pre_check_invariant_p): New function.
20834 (find_invariant_insn): Call pre_check_invariant_p.
20835
20836 2014-06-22 Richard Henderson <rth@redhat.com>
20837
20838 PR target/61565
20839 * compare-elim.c (struct comparison): Add eh_note.
20840 (find_comparison_dom_walker::before_dom_children): Don't eliminate
20841 a redundant comparison in a different EH region. Purge EH edges if
20842 necessary.
20843
20844 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20845
20846 * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
20847 (var_shift): Use it.
20848 (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
20849 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
20850 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
20851 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
20852 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
20853 *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
20854 *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
20855 *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
20856 *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
20857 *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
20858 *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
20859 *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
20860 *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
20861 *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
20862 *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
20863 *rotldi3_internal15be): Use the new attribute. Merge register and
20864 integer alternatives.
20865
20866 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20867
20868 * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
20869 define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
20870 split, *ashrdi3_internal3 and split): Delete, merge into...
20871 (ashr<mode>3): New expander.
20872 (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
20873 (*ashrsi3_64): Fix formatting. Replace "i" by "n".
20874
20875 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20876
20877 * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
20878 *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
20879 *rotldi3_internal3 and split): Delete, merge into...
20880 (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
20881 (*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
20882 Use "rotlw" extended mnemonic.
20883
20884 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20885
20886 * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
20887 and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
20888 and split, *ashldi3_internal3 and split): Delete, merge into...
20889 (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
20890 (*ashlsi3_64): Fix formatting. Replace "i" by "n".
20891
20892 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20893
20894 * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
20895 (lshrsi3, two anonymous define_insns and define_splits,
20896 lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
20897 *lshrdi3_internal3 and split): Delete, merge into...
20898 (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
20899 (*lshrsi3_64): Fix formatting. Replace "i" by "n".
20900
20901 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20902
20903 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
20904 Remove "O" alternative.
20905
20906 2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
20907
20908 * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
20909 (mips_move_from_gpr_cost): Likewise.
20910 (mips_register_move_cost): Update accordingly.
20911 (mips_secondary_reload_class): Remove name of in_p.
20912
20913 2014-06-22 Marc Glisse <marc.glisse@inria.fr>
20914
20915 PR target/61503
20916 * config/i386/i386.md (x86_64_shrd, x86_shrd,
20917 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
20918
20919 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
20920
20921 * config/nios2/nios2.c: Include "builtins.h".
20922
20923 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
20924
20925 * cgraph.h (tls_model_names): New variable.
20926 * print-tree.c (print_node): Simplify.
20927 * varpool.c (tls_model_names): New variable.
20928 (dump_varpool_node): Output tls model.
20929
20930 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
20931
20932 * ipa-visibility.c (function_and_variable_visibility): Disable
20933 temporarily local aliases for some targets.
20934
20935 2014-06-20 Marek Polacek <polacek@redhat.com>
20936
20937 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
20938 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
20939 into SANITIZE_UNDEFINED.
20940 * doc/invoke.texi: Describe -fsanitize=bounds.
20941 * gimplify.c (gimplify_call_expr): Add gimplification of internal
20942 functions created in the FEs.
20943 * internal-fn.c: Move "internal-fn.h" after "tree.h".
20944 (expand_UBSAN_BOUNDS): New function.
20945 * internal-fn.def (UBSAN_BOUNDS): New internal function.
20946 * internal-fn.h: Don't define internal functions here.
20947 * opts.c (common_handle_option): Add -fsanitize=bounds.
20948 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
20949 BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
20950 * tree-core.h: Define internal functions here.
20951 (struct tree_base): Add ifn field.
20952 * tree-pretty-print.c: Include "internal-fn.h".
20953 (dump_generic_node): Handle functions without CALL_EXPR_FN.
20954 * tree.c (get_callee_fndecl): Likewise.
20955 (build_call_expr_internal_loc): New function.
20956 * tree.def (CALL_EXPR): Update description.
20957 * tree.h (CALL_EXPR_IFN): Define.
20958 (build_call_expr_internal_loc): Declare.
20959 * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
20960 types.
20961 (ubsan_type_descriptor): Change bool parameter to enum
20962 ubsan_print_style. Adjust the code. Add handling of
20963 UBSAN_PRINT_ARRAY.
20964 (ubsan_expand_bounds_ifn): New function.
20965 (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
20966 (ubsan_build_overflow_builtin): Likewise.
20967 (instrument_bool_enum_load): Likewise.
20968 (ubsan_instrument_float_cast): Likewise.
20969 * ubsan.h (enum ubsan_print_style): New enum.
20970 (ubsan_expand_bounds_ifn): Declare.
20971 (ubsan_type_descriptor): Adjust declaration. Use a default parameter.
20972
20973 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
20974
20975 * config/rs6000/rs6000.md: Append `DONE' to preparation
20976 statements of `bswap' pattern splitters.
20977
20978 2014-06-20 Tom de Vries <tom@codesourcery.com>
20979
20980 * target.def (call_fusage_contains_non_callee_clobbers): Update
20981 definition.
20982 * doc/tm.texi: Regenerate.
20983
20984 2014-06-20 Yury Gribov <y.gribov@samsung.com>
20985 Max Ostapenko <m.ostapenko@partner.samsung.com>
20986
20987 PR sanitizer/61547
20988 * asan.c (instrument_strlen_call): Fixed instrumentation of
20989 trailing byte.
20990
20991 2014-06-20 Martin Jambor <mjambor@suse.cz>
20992
20993 PR ipa/61540
20994 * ipa-prop.c (impossible_devirt_target): New function.
20995 (try_make_edge_direct_virtual_call): Use it, also instead of
20996 asserting.
20997
20998 2014-06-20 Yury Gribov <y.gribov@samsung.com>
20999 Max Ostapenko <m.ostapenko@partner.samsung.com>
21000
21001 PR sanitizer/61530
21002 * asan.c (build_check_stmt): Add condition.
21003
21004 2014-06-20 Martin Jambor <mjambor@suse.cz>
21005
21006 PR ipa/61211
21007 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
21008 expanded clones.
21009
21010 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21011
21012 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
21013 Update comments.
21014 (VCONQ): Make comment more helpful.
21015 (VCON): Delete.
21016 * config/aarch64/aarch64-simd.md
21017 (aarch64_sqdmulh_lane<mode>):
21018 Use VCOND for operands 2. Update lane checking and flipping logic.
21019 (aarch64_sqrdmulh_lane<mode>): Likewise.
21020 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
21021 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
21022 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
21023 attribute of operand 3 to VCOND.
21024 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
21025 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
21026 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
21027 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
21028 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
21029 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
21030 define_insn.
21031 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
21032 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
21033 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
21034 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
21035 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
21036 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
21037 operand to VCOND. Update lane flipping and bounds checking logic.
21038 (aarch64_sqdmlal2_lane<mode>): Likewise.
21039 (aarch64_sqdmlsl_lane<mode>): Likewise.
21040 (aarch64_sqdmull_lane<mode>): Likewise.
21041 (aarch64_sqdmull2_lane<mode>): Likewise.
21042 (aarch64_sqdmlal_laneq<mode>):
21043 Replace VCON usage with VCONQ.
21044 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
21045 (aarch64_sqdmlal2_laneq<mode>): Emit
21046 aarch64_sqdmlal2_laneq<mode>_internal insn.
21047 Replace VCON with VCONQ.
21048 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
21049 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
21050 (aarch64_sqdmull_laneq<mode>): Emit
21051 aarch64_sqdmull_laneq<mode>_internal insn.
21052 Replace VCON with VCONQ.
21053 (aarch64_sqdmull2_laneq<mode>): Emit
21054 aarch64_sqdmull2_laneq<mode>_internal insn.
21055 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
21056 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
21057 of 3rd argument to int16x4_t.
21058 (vqdmlalh_lane_s16): Likewise.
21059 (vqdmlslh_lane_s16): Likewise.
21060 (vqdmull_high_lane_s16): Likewise.
21061 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
21062 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
21063 (vqdmlsl_lane_s16): Likewise.
21064 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
21065 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
21066 (vqdmlals_lane_s32): Likewise.
21067 (vqdmlsls_lane_s32): Likewise.
21068 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
21069 (vqdmulls_lane_s32): Likewise.
21070 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
21071 (vqdmlsl_lane_s32): Likewise.
21072 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
21073 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
21074 (vqrdmulhh_lane_s16): Likewise.
21075 (vqdmlsl_high_lane_s16): Likewise.
21076 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
21077 (vqdmlsl_high_lane_s32): Likewise.
21078 (vqrdmulhs_lane_s32): Likewise.
21079
21080 2014-06-20 Tom de Vries <tom@codesourcery.com>
21081
21082 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
21083 get_call_reg_set_usage.
21084
21085 2014-06-20 Tom de Vries <tom@codesourcery.com>
21086
21087 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
21088 it contains all call_used_regs.
21089
21090 2014-06-20 Tom de Vries <tom@codesourcery.com>
21091
21092 * final.c (collect_fn_hard_reg_usage): Add and use variable
21093 function_used_regs.
21094
21095 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
21096
21097 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
21098 (set_init_priority, get_init_priority, set_fini_priority,
21099 get_fini_priority): New methods.
21100 * tree.c (init_priority_for_decl): Remove.
21101 (init_ttree): Do not initialize init priority.
21102 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
21103 (decl_priority_info): Remove.
21104 (decl_init_priority_insert): Rewrite.
21105 (decl_fini_priority_insert): Rewrite.
21106 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
21107 tree_priority_map_marked_p): Remove.
21108 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
21109 * lto-streamer-out.c (hash_tree): Do not hash priorities.
21110 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
21111 not output priorities.
21112 (pack_ts_function_decl_value_fields): Likewise.
21113 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
21114 not input priorities.
21115 (unpack_ts_function_decl_value_fields): Likewise.
21116 * symtab.c (symbol_priority_map): Declare.
21117 (init_priority_hash): Declare.
21118 (symtab_unregister_node): Unregister from priority hash, too.
21119 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
21120 New methods.
21121 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
21122 (symbol_priority_info): New function.
21123 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
21124 New methods.
21125 * tree-core.h (tree_priority_map): Remove.
21126
21127 2014-06-20 Jakub Jelinek <jakub@redhat.com>
21128
21129 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
21130 0xff to uint64_t before shifting it up.
21131
21132 2014-06-20 Julian Brown <julian@codesourcery.com>
21133 Chung-Lin Tang <cltang@codesourcery.com>
21134
21135 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
21136 TARGET_THUMB1_ONLY. Add comments.
21137
21138 2014-06-19 Tom de Vries <tom@codesourcery.com>
21139
21140 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
21141 return type to void.
21142 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
21143
21144 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
21145
21146 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
21147 as "move", from depends_on.
21148
21149 2014-06-19 Terry Guo <terry.guo@arm.com>
21150
21151 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
21152 stage.
21153
21154 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
21155
21156 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
21157 Remove cr5.
21158 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
21159
21160 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
21161
21162 PR target/61550
21163 * config/sh/sh.c (prepare_move_operands): Don't process TLS
21164 addresses here if reload in progress or completed.
21165
21166 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
21167
21168 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
21169 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
21170 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
21171 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
21172 (mips_register_priority): New function that implements the target
21173 hook TARGET_REGISTER_PRIORITY.
21174 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
21175 (mips_lra_p): Likewise for TARGET_LRA_P.
21176 (TARGET_REGISTER_PRIORITY): Define macro.
21177 (TARGET_SPILL_CLASS): Likewise.
21178 (TARGET_LRA_P): Likewise.
21179 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
21180 classes.
21181 (REG_CLASS_NAMES): Likewise.
21182 (REG_CLASS_CONTENTS): Likewise.
21183 (BASE_REG_CLASS): Use M16_SP_REGS.
21184 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
21185 New set attribute to enable alternatives depending on the register
21186 allocator used.
21187 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
21188 (*lea64): Disable pattern for MIPS16.
21189 * config/mips/mips.opt (mlra): New option.
21190
21191 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
21192
21193 * lra-constraints.c (base_to_reg): New function.
21194 (process_address): Use new function.
21195
21196 2014-06-18 Tom de Vries <tom@codesourcery.com>
21197
21198 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
21199 * config/aarch64/aarch64.c
21200 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
21201 (aarch64_emit_call_insn): New function.
21202 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
21203 of emit_call_insn.
21204 * config/aarch64/aarch64.md (define_expand "call_internal")
21205 (define_expand "call_value_internal", define_expand "sibcall_internal")
21206 (define_expand "sibcall_value_internal"): New.
21207 (define_expand "call", define_expand "call_value")
21208 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
21209 expand variant and aarch64_emit_call_insn.
21210
21211 2014-06-18 Radovan Obradovic <robradovic@mips.com>
21212 Tom de Vries <tom@codesourcery.com>
21213
21214 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
21215 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
21216 Redefine to true.
21217 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
21218 clobbers to CALL_INSN_FUNCTION_USAGE.
21219 (define_expand "sibcall_internal")
21220 (define_expand "sibcall_value_internal"): New.
21221 (define_expand "call", define_expand "call_value"): Add argument to
21222 arm_emit_call_insn.
21223 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
21224 (define_expand "sibcall_value"): Use sibcall_value_internal and
21225 arm_emit_call_insn.
21226
21227 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21228
21229 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
21230
21231 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21232
21233 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
21234 __udivmoddi4.
21235
21236 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21237
21238 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
21239 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
21240 annotations. Fix DWARF information.
21241
21242 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21243
21244 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
21245 __udivmoddi4, and fixups for negative operands.
21246
21247 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21248
21249 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
21250
21251 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21252
21253 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
21254 to __udivmoddi4.
21255
21256 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21257
21258 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
21259 manipulation.
21260
21261 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21262
21263 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
21264 describing register usage on function entry and exit.
21265
21266 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21267
21268 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
21269 (__aeabi_ldivmod): Fix whitespace.
21270
21271 2014-06-18 Andreas Schwab <schwab@suse.de>
21272
21273 * doc/md.texi (Standard Names): Use @itemx for grouped items.
21274 Remove blank line after @item.
21275
21276 2014-06-18 Richard Henderson <rth@redhat.com>
21277
21278 PR target/61545
21279 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
21280
21281 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21282
21283 * config/arm/arm.c (neon_vector_mem_operand): Allow register
21284 POST_MODIFY for neon loads and stores.
21285 (arm_print_operand): Output post-index register for neon loads and
21286 stores.
21287
21288 2014-06-18 Richard Biener <rguenther@suse.de>
21289
21290 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
21291
21292 2014-06-18 Richard Biener <rguenther@suse.de>
21293
21294 * tree-pass.h (make_pass_dce_loop): Remove.
21295 * passes.def: Replace pass_dce_loop with pass_dce.
21296 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
21297 changed free niter estimates and reset the scev cache.
21298 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
21299 make_pass_dce_loop): Remove.
21300 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
21301 (fini_copy_prop): Return whether something changed. Always
21302 let substitute_and_fold perform DCE and free niter estimates
21303 and reset the scev cache if so.
21304 (execute_copy_prop): If sth changed schedule cleanup-cfg.
21305 (pass_data_copy_prop): Do not unconditionally schedule
21306 cleanup-cfg or update-ssa.
21307
21308 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
21309
21310 PR tree-optimization/61518
21311 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
21312 reduction var is used in reduction stmt or phi-function only.
21313
21314 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21315
21316 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
21317
21318 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
21319
21320 PR tree-optimization/61517
21321 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
21322 whose rhs's first tree is the source expression instead of the
21323 expression itself.
21324 (find_bswap_or_nop): Likewise.
21325 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
21326 gimple stmt whose rhs's first tree is the source. In the memory source
21327 case, move the stmt to be replaced close to one of the original load to
21328 avoid the problem of a store between the load and the stmt's original
21329 location.
21330 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
21331 signature.
21332
21333 2014-06-18 Andreas Schwab <schwab@suse.de>
21334
21335 PR rtl-optimization/54555
21336 * postreload.c (move2add_use_add2_insn): Substitute
21337 STRICT_LOW_PART only if it is cheaper.
21338
21339 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
21340
21341 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
21342 Do not use unspec as call operand. Use memory_operand instead of
21343 memory_nox32_operand and add "m" operand constraint. Disable
21344 pattern for TARGET_X32.
21345 (*sibcall_pop_memory): Ditto.
21346 (*sibcall_value_memory): Ditto.
21347 (*sibcall_value_pop_memory): Ditto.
21348 (sibcall peepholes): Merge SImode and DImode patterns using
21349 W mode iterator. Use memory_operand instead of memory_nox32_operand.
21350 Disable pattern for TARGET_X32. Check if eliminated register is
21351 really dead after call insn. Generate call RTX without unspec operand.
21352 (sibcall_value peepholes): Ditto.
21353 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
21354 instead of memory_nox32_operand. Check if eliminated register is
21355 really dead after call insn. Generate call RTX without unspec operand.
21356 (sibcall_value_pop peepholes): Ditto.
21357 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
21358
21359 2014-06-18 Terry Guo <terry.guo@arm.com>
21360
21361 PR target/61544
21362 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
21363 reach the head.
21364
21365 2014-06-18 Olivier Hainque <hainque@adacore.com>
21366
21367 * tree-core.h (tree_block): Add an "end_locus" field, allowing
21368 memorization of the end of block source location.
21369 * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
21370 * gimplify.c (gimplify_bind_expr): Propagate the block start and
21371 end source location info we have on the block entry/exit code we
21372 generate.
21373
21374 2014-06-18 Richard Biener <rguenther@suse.de>
21375
21376 * common.opt (fssa-phiopt): New option.
21377 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
21378 but not with -Og.
21379 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
21380 * doc/invoke.texi (-fssa-phiopt): Document.
21381
21382 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21383
21384 * genattrtab.c (n_bypassed): New variable.
21385 (process_bypasses): Initialise n_bypassed.
21386 Count number of bypassed reservations.
21387 (make_automaton_attrs): Allocate space for bypassed reservations
21388 rather than number of bypasses.
21389
21390 2014-06-18 Richard Biener <rguenther@suse.de>
21391
21392 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
21393 we propagated anything.
21394 (substitute_and_fold_dom_walker::before_dom_children): Something
21395 changed if we propagated into PHI arguments.
21396 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
21397 we removed a stmt.
21398
21399 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
21400
21401 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
21402 vector case.
21403 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
21404 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
21405 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
21406 Introduces alternative way of loads group permutaions.
21407 (vect_transform_grouped_load): Try alternative way of permutations.
21408
21409 2014-06-18 Jakub Jelinek <jakub@redhat.com>
21410
21411 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
21412 changed in ORT_TARGET region, don't jump to do_outer.
21413 (struct gimplify_adjust_omp_clauses_data): New type.
21414 (gimplify_adjust_omp_clauses_1): Adjust for data being
21415 a struct gimplify_adjust_omp_clauses_data pointer instead
21416 of tree *. Pass pre_p as a new argument to
21417 lang_hooks.decls.omp_finish_clause hook.
21418 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
21419 splay_tree_foreach to pass both list_p and pre_p.
21420 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
21421 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
21422 gimplify_adjust_omp_clauses callers.
21423 * langhooks.c (lhd_omp_finish_clause): New function.
21424 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
21425 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
21426 * langhooks.h (struct lang_hooks_for_decls): Add a new
21427 gimple_seq * argument to omp_finish_clause hook.
21428 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
21429 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
21430 (scan_omp_parallel, lower_omp_for): When adding
21431 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
21432 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
21433 * tree-nested.c (convert_nonlocal_omp_clauses,
21434 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
21435 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
21436
21437 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
21438
21439 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
21440 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
21441
21442 2014-06-17 Xinliang David Li <davidxl@google.com>
21443
21444 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
21445 * passes.c (pass_init_dump_file): Do not set initialize
21446 flag to false unconditionally.
21447
21448 2014-06-17 Richard Biener <rguenther@suse.de>
21449
21450 * genopinit.c (main): Use vec<>::qsort method.
21451 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
21452 Likewise.
21453 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
21454
21455 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
21456
21457 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
21458 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
21459 (mips_move_to_gpr_cost): Remove ST_REGS case.
21460 (mips_move_from_gpr_cost): Likewise.
21461 (mips_register_move_cost): Likewise.
21462 (mips_secondary_reload_class): Likewise.
21463
21464 2014-06-17 Richard Biener <rguenther@suse.de>
21465
21466 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
21467 (pass_all_optimizations): Move 3rd copy-prop pass from after
21468 fre to before ifcombine/phiopt.
21469
21470 2014-06-17 Richard Biener <rguenther@suse.de>
21471
21472 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
21473 and allow all blocks to be forwarders.
21474
21475 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
21476
21477 PR target/61483
21478 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
21479 variable 'size'; calculate 'size' right in the front; use
21480 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
21481 pcum->aapcs_stack_words.
21482
21483 2014-06-17 Nick Clifton <nickc@redhat.com>
21484
21485 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
21486 (umulhi3, mulsidi3, umulsidi3): Likewise.
21487
21488 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
21489
21490 PR middle-end/61508
21491 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
21492 check for section name.
21493
21494 2014-06-17 Richard Biener <rguenther@suse.de>
21495
21496 * tree-ssa-propagate.c: Include domwalk.h.
21497 (substitute_and_fold): Outline main worker into a domwalker ...
21498 (substitute_and_fold_dom_walker::before_dom_children): ... here.
21499 Schedule stmts we can fully propagate for removal. Remove
21500 poor-mans DCE.
21501 (substitute_and_fold): Apply a dominator walk to perform
21502 substitution. Process stmts scheduled for removal here.
21503
21504 2014-06-17 Richard Biener <rguenther@suse.de>
21505
21506 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
21507 of PHI node moving.
21508
21509 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
21510
21511 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
21512 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
21513 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
21514 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
21515 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
21516 TARGET_HARD_FLOAT.
21517 (get_fpscr) : Likewise.
21518
21519 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
21520
21521 PR rtl-optimization/61325
21522 * lra-constraints.c (valid_address_p): Add forward declaration.
21523 (simplify_operand_subreg): Check address validity before and after
21524 alter_reg of memory subreg.
21525
21526 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
21527
21528 * config/i386/i386.c (decide_alg): Correctly handle
21529 maximum size of stringop algorithm.
21530
21531 2014-06-16 Yury Gribov <y.gribov@samsung.com>
21532
21533 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
21534
21535 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
21536
21537 PR rtl-optimization/61522
21538 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
21539
21540 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
21541
21542 Revert:
21543 * symtab.c (symtab_node::reset_section): New method.
21544 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21545 for localization.
21546 * cgraph.h (reset_section): Declare.
21547 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21548 do not consider comdat locals.
21549 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21550 for new symbol.
21551 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21552 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21553 reset sections of symbols dragged out of the comdats.
21554 (function_and_variable_visibility): Reset sections of
21555 localized symbols.
21556
21557 2014-06-16 Richard Biener <rguenther@suse.de>
21558
21559 PR tree-optimization/61482
21560 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
21561 [-INF(OVF), +INF(OVF)] range.
21562
21563 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
21564
21565 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
21566 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
21567 handling 32-bit multiplication.
21568
21569 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
21570
21571 PR middle-end/61430
21572 * lra-lives.c (process_bb_lives): Skip creating copy during
21573 insn scan when src/dest has constrained to same regno.
21574
21575 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
21576
21577 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
21578 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
21579
21580 2014-06-16 Yury Gribov <y.gribov@samsung.com>
21581
21582 * asan.c (check_func): New function.
21583 (maybe_create_ssa_name): Likewise.
21584 (build_check_stmt_with_calls): Likewise.
21585 (use_calls_p): Likewise.
21586 (report_error_func): Change interface.
21587 (build_check_stmt): Allow non-integer lengths; add support
21588 for new parameter.
21589 (asan_instrument): Likewise.
21590 (instrument_mem_region_access): Moved code to build_check_stmt.
21591 (instrument_derefs): Likewise.
21592 (instrument_strlen_call): Likewise.
21593 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
21594 * doc/invoke.texi: Describe new parameter.
21595 * params.def: Define new parameter.
21596 * params.h: Likewise.
21597 * sanitizer.def: Describe new builtins.
21598
21599 2014-06-16 Richard Biener <rguenther@suse.de>
21600
21601 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21602 Make all defs available at the end.
21603 (eliminate): If we remove a PHI node schedule cfg-cleanup.
21604
21605 2014-06-18 Jakub Jelinek <jakub@redhat.com>
21606
21607 PR plugins/45078
21608 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
21609
21610 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
21611
21612 PR bootstrap/61516
21613 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
21614 initialization. Replace remaining use of uid.
21615
21616 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
21617
21618 * c-family/c-common.c (handle_tls_model_attribute): Use
21619 set_decl_tls_model.
21620 * c-family/c-common.c (handle_tls_model_attribute): Use
21621 set_decl_tls_model.
21622 * cgraph.h (struct varpool_node): Add tls_model.
21623 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
21624 * tree.h (DECL_TLS_MODEL): Update.
21625 (DECL_THREAD_LOCAL_P): Check that variable is static.
21626 (decl_tls_model): Declare.
21627 (set_decl_tls_model): Declare.
21628 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
21629 set symbol prorperties.
21630 (get_emutls_init_templ_addr): Cleanup.
21631 (new_emutls_decl): Update.
21632 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
21633 (lto_input_varpool_node): Likewise.
21634 * lto-streamer-out.c (hash_tree): Likewise.
21635 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
21636 not stream DECL_TLS_MODEL.
21637 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
21638 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
21639
21640 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21641
21642 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
21643
21644 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21645
21646 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
21647 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
21648 lists.
21649 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
21650 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
21651 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
21652 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
21653 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
21654 (df_get_artificial_defs, df_get_artificial_uses)
21655 (df_single_def, df_single_use): Update accordingly.
21656 (df_refs_chain_dump): Take the first element in a linked list as
21657 parameter, rather than a pointer to an array of pointers.
21658 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
21659 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
21660 (df_chain_create_bb_process_use): Likewise.
21661 (df_md_bb_local_compute_process_def): Likewise.
21662 * fwprop.c (process_defs, process_uses): Likewise.
21663 (register_active_defs, update_uses): Likewise.
21664 (forward_propagate_asm): Update for new df_ref linking.
21665 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
21666 (df_null_ref_rec, df_null_mw_rec): Likewise.
21667 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
21668 explicitly.
21669 (df_scan_free_bb_info): Remove check for null artificial_defs.
21670 (df_install_ref_incremental): Adjust for new df_ref linking.
21671 Use a single-element insertion rather than a full sort.
21672 (df_ref_chain_delete_du_chain): Take the first element
21673 in a linked list as parameter, rather than a pointer to an array of
21674 pointers.
21675 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
21676 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
21677 (df_insn_info_delete): Remove check for null defs and call to
21678 df_scan_free_mws_vec.
21679 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
21680 null rather than df_null_*_rec.
21681 (df_insn_rescan_debug_internal): Likewise, and update null
21682 checks in the same way. Remove check for null defs.
21683 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
21684 Move a single element rather doing a full sort.
21685 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
21686 linking.
21687 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
21688 Initialize df_ref and df_mw_hardreg lists to null rather than
21689 df_null_*_rec.
21690 (df_ref_compare): Take df_refs as parameter, transferring the
21691 old interface to...
21692 (df_ref_ptr_compare): ...this new function.
21693 (df_sort_and_compress_refs): Update accordingly.
21694 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
21695 old interface to...
21696 (df_mw_ptr_compare): ...this new function.
21697 (df_sort_and_compress_mws): Update accordingly.
21698 (df_install_refs, df_install_mws): Return a linked list rather than
21699 an array of pointers.
21700 (df_refs_add_to_chains): Assert that old lists are empty rather
21701 than freeing them.
21702 (df_insn_refs_verify): Don't handle null defs speciailly.
21703 * web.c (union_match_dups): Update for new df_ref linking.
21704
21705 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21706
21707 * df.h (df_ref_create, df_ref_remove): Delete.
21708 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
21709 (df_ref_remove): Likewise.
21710
21711 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21712
21713 * df.h (df_single_def, df_single_use): New functions.
21714 * ira.c (find_moveable_pseudos): Use them.
21715
21716 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21717
21718 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
21719 * df-problems.c (df_note_bb_compute): Use it.
21720 * regstat.c (regstat_bb_compute_ri): Likewise.
21721
21722 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21723
21724 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
21725 * cse.c (cse_extended_basic_block): Use them.
21726 * dce.c (mark_artificial_use): Likewise.
21727 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
21728 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21729 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
21730 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
21731 (df_simulate_initialize_backwards): Likewise.
21732 (df_simulate_finalize_backwards): Likewise.
21733 (df_simulate_initialize_forwards): Likewise.
21734 (df_md_simulate_artificial_defs_at_top): Likewise.
21735 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21736 * regrename.c (init_rename_info): Likewise.
21737 * regstat.c (regstat_bb_compute_ri): Likewise.
21738 (regstat_bb_compute_calls_crossed): Likewise.
21739
21740 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21741
21742 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
21743 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
21744 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
21745 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
21746 * combine.c (create_log_links): Likewise.
21747 * compare-elim.c (find_flags_uses_in_insn): Likewise.
21748 (try_eliminate_compare): Likewise.
21749 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
21750 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
21751 (remove_reg_equal_equiv_notes_for_defs): Likewise.
21752 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
21753 (word_dce_process_block, dce_process_block): Likewise.
21754 * ddg.c (def_has_ccmode_p): Likewise.
21755 * df-core.c (df_bb_regno_first_def_find): Likewise.
21756 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
21757 * df-problems.c (df_rd_simulate_one_insn): Likewise.
21758 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21759 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
21760 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
21761 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
21762 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
21763 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
21764 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
21765 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
21766 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21767 * fwprop.c (local_ref_killed_between_p): Likewise.
21768 (all_uses_available_at, free_load_extend): Likewise.
21769 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
21770 * hw-doloop.c (scan_loop): Likewise.
21771 * ifcvt.c (dead_or_predicable): Likewise.
21772 * init-regs.c (initialize_uninitialized_regs): Likewise.
21773 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
21774 (process_bb_node_lives): Likewise.
21775 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
21776 (find_moveable_pseudos): Likewise.
21777 * loop-invariant.c (check_dependencies, record_uses): Likewise.
21778 * recog.c (peep2_find_free_register): Likewise.
21779 * ree.c (get_defs): Likewise.
21780 * regstat.c (regstat_bb_compute_ri): Likewise.
21781 (regstat_bb_compute_calls_crossed): Likewise.
21782 * sched-deps.c (find_inc, find_mem): Likewise.
21783 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
21784 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
21785 * shrink-wrap.c (requires_stack_frame_p): Likewise.
21786 (prepare_shrink_wrap): Likewise.
21787 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
21788 * web.c (union_defs, pass_web::execute): Likewise.
21789 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
21790 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
21791
21792 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
21793
21794 * lra-assign.c (assign_by_spills): Add code to assign vector regs
21795 to inheritance pseudos.
21796 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
21797
21798 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
21799
21800 PR target/61415
21801 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
21802 (BU_MISC_2): Rename to ...
21803 (BU_LDBL128_2): ... this.
21804 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
21805 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
21806 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
21807 RS6000_BTM_LDBL128.
21808 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
21809 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
21810 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
21811 (unpacktf_1): Likewise.
21812 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
21813 (__builtin_longdouble_dw1): Likewise.
21814 * doc/sourcebuild.texi (longdouble128): Document.
21815
21816 2014-06-13 Jeff Law <law@redhat.com>
21817
21818 PR rtl-optimization/61094
21819 PR rtl-optimization/61446
21820 * ree.c (combine_reaching_defs): Get the mode for the copy from
21821 the extension insn rather than the defining insn.
21822
21823 2014-06-13 Dehao Chen <dehao@google.com>
21824
21825 * dwarf2out.c (add_linkage_name): Emit more linkage name.
21826
21827 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
21828
21829 * doc/install.texi (--enable-linker-plugin-configure-flags)
21830 (--enable-linker-plugin-flags): Document new flags.
21831
21832 2014-06-13 Martin Jambor <mjambor@suse.cz>
21833
21834 PR ipa/61186
21835 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
21836 cache_token if returning early.
21837
21838 2014-06-13 Nick Clifton <nickc@redhat.com>
21839
21840 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
21841 requested alignment is active.
21842 (LABEL_ALIGN): Likewise.
21843 (LOOP_ALIGN): Likewise.
21844
21845 2014-06-13 Richard Biener <rguenther@suse.de>
21846
21847 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21848 Rewrite to propagate the VN result into all uses where
21849 possible and to remove stmts becoming dead because of that.
21850 (eliminate): Generalize stmt removal handling, remove in
21851 reverse dominator order to support proper debug stmt
21852 generation. Update stmts before removing stmts.
21853 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
21854
21855 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
21856
21857 PR tree-optimization/61375
21858 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
21859 symbolic number cannot be represented in an uint64_t.
21860 (find_bswap_or_nop_1): Likewise.
21861
21862 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
21863
21864 * symtab.c (symtab_node::reset_section): New method.
21865 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21866 for localization.
21867 * cgraph.h (reset_section): Declare.
21868 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21869 do not consider comdat locals.
21870 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21871 for new symbol.
21872 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21873 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21874 reset sections of symbols dragged out of the comdats.
21875 (function_and_variable_visibility): Reset sections of
21876 localized symbols.
21877
21878 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
21879
21880 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
21881 to use symtab and decl_binds_to_current_def_p
21882 * tree-vectorizer.c (increase_alignment): Increase alignment
21883 of alias target, too.
21884
21885 2014-06-12 Jakub Jelinek <jakub@redhat.com>
21886
21887 PR middle-end/61486
21888 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
21889 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
21890 if outer combined construct is distribute.
21891 (gimplify_omp_for): For OMP_DISTRIBUTE set
21892 gimplify_omp_ctxp->distribute.
21893 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
21894 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
21895 mapping into decl map.
21896
21897 2014-06-12 Jason Merrill <jason@redhat.com>
21898
21899 * common.opt (fabi-version): Change default to 0.
21900
21901 2014-06-12 Jason Merrill <jason@redhat.com>
21902
21903 * toplev.c (process_options): Reject -fabi-version=1.
21904
21905 2014-06-12 Jeff Law <law@redhat.com>
21906
21907 PR tree-optimization/61009
21908 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
21909 value when we stop processing a block due to problematic PHIs.
21910
21911 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
21912
21913 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
21914 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
21915 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
21916 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
21917 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
21918 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
21919 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
21920 are not in the spec.
21921
21922 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
21923
21924 PR target/59843
21925 * config/aarch64/aarch64-modes.def: Add V1DFmode.
21926 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
21927 Support V1DFmode.
21928
21929 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
21930
21931 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
21932
21933 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
21934
21935 PR target/61443
21936 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
21937 loading from address spaces.
21938
21939 2014-06-12 Martin Liska <mliska@suse.cz>
21940
21941 PR ipa/61462
21942 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
21943 statement is reachable.
21944
21945 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
21946
21947 * symtab.c (section_hash): New hash.
21948 (symtab_unregister_node): Clear section before freeing.
21949 (hash_section_hash_entry): New haser.
21950 (eq_sections): New function.
21951 (symtab_node::set_section_for_node): New method.
21952 (set_section_1): Update.
21953 (symtab_node::set_section): Take string instead of tree as parameter.
21954 (symtab_resolve_alias): Update.
21955 * cgraph.h (section_hash_entry_d): New structure.
21956 (section_hash_entry): New typedef.
21957 (cgraph_node): Change comdat_group_ to x_comdat_group,
21958 change section_ to x_section and turn into section_hash_entry;
21959 update accestors; put set_section_for_node offline.
21960 * tree.c (decl_section_name): Turn into string.
21961 (set_decl_section_name): Change parameter to be string.
21962 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
21963 * sdbout.c (sdbout_one_type): Update.
21964 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
21965 * varasm.c (IN_NAMED_SECTION, get_named_section,
21966 resolve_unique_section, hot_function_section, get_named_text_section,
21967 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
21968 make_decl_rtl, default_unique_section): Update.
21969 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
21970 (c6x_elf_unique_section): Update.
21971 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
21972 * config/pa/pa.c (pa_function_section): Update.
21973 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
21974 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
21975 * config/arc/arc.c (arc_in_small_data_p): Update.
21976 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
21977 * config/mcore/mcore.c (mcore_unique_section): Update.
21978 * config/mips/mips.c (mips16_build_function_stub): Update.
21979 (mips16_build_call_stub): Update.
21980 (mips_function_rodata_section): Update.
21981 (mips_in_small_data_p): Update.
21982 * config/score/score.c (score_in_small_data_p): Update.
21983 * config/rx/rx.c (rx_in_small_data): Update.
21984 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
21985 (rs6000_xcoff_asm_named_section): Update.
21986 (rs6000_xcoff_unique_section): Update.
21987 * config/frv/frv.c (frv_string_begins_with): Update.
21988 (frv_in_small_data_p): Update.
21989 * config/v850/v850.c (v850_encode_data_area): Update.
21990 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
21991 (bfin_handle_l1_data_attribute): Update.
21992 (bfin_handle_l2_attribute): Update.
21993 * config/mep/mep.c (mep_unique_section): Update.
21994 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
21995 Update.
21996 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
21997 (h8300_handle_tiny_data_attribute): Update.
21998 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
21999 (m32r_in_small_data_p): Update.
22000 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
22001 * config/i386/i386.c (ix86_in_large_data_p): Update.
22002 * config/i386/winnt.c (i386_pe_unique_section): Update.
22003 * config/darwin.c (darwin_function_section): Update.
22004 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
22005 * tree-emutls.c (get_emutls_init_templ_addr): Update.
22006 (new_emutls_decl): Update.
22007 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
22008 input_varpool_node): Update.
22009 (ead_string_cst): Turn to ...
22010 (read_string): ... this one.
22011 * dwarf2out.c (secname_for_decl): Update.
22012 * asan.c (asan_protect_global): Update.
22013
22014 2014-06-11 DJ Delorie <dj@redhat.com>
22015
22016 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
22017 cache lines.
22018 * config/rx/rx.c (rx_option_override): Likewise.
22019 (rx_align_for_label): Likewise.
22020
22021 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
22022
22023 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
22024
22025 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
22026 prototype.
22027
22028 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22029
22030 * common.md: New file.
22031 * doc/md.texi: Update description of generic, machine-independent
22032 constraints.
22033 * config/s390/constraints.md (e): Delete.
22034 * Makefile.in (md_file): Include common.md.
22035 * config/m32c/t-m32c (md_file): Likewise.
22036 * genpreds.c (general_mem): New array.
22037 (generic_constraint_letters): Remove constraints now defined by
22038 common.md.
22039 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
22040 Allow the first character to be '<' or '>' as well.
22041 * genoutput.c (general_mem): New array.
22042 (indep_constraints): Remove constraints now defined by common.md.
22043 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
22044 Remove special handling of 'm'.
22045 * ira-costs.c (record_reg_classes): Remove special handling of
22046 constraints now defined by common.md.
22047 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
22048 * ira-lives.c (single_reg_class): Likewise.
22049 (ira_implicitly_set_insn_hard_regs): Likewise.
22050 * lra-constraints.c (reg_class_from_constraints): Likewise.
22051 (process_alt_operands, process_address, curr_insn_transform): Likewise.
22052 * postreload.c (reload_cse_simplify_operands): Likewise.
22053 * reload.c (push_secondary_reload, scratch_reload_class)
22054 (find_reloads, alternative_allows_const_pool_ref): Likewise.
22055 * reload1.c (maybe_fix_stack_asms): Likewise.
22056 * targhooks.c (default_secondary_reload): Likewise.
22057 * stmt.c (parse_output_constraint): Likewise.
22058 * recog.c (preprocess_constraints): Likewise.
22059 (constrain_operands, peep2_find_free_register): Likewise.
22060 (asm_operand_ok): Likewise, but add a comment saying why 'o'
22061 must be handled specially.
22062
22063 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22064
22065 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
22066 * genpreds.c (have_const_dbl_constraints): Delete.
22067 (add_constraint): Don't set it.
22068 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
22069 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
22070 constraints using the lookup_constraint logic.
22071 * ira-lives.c (single_reg_class): Likewise.
22072 * ira.c (ira_setup_alts): Likewise.
22073 * lra-constraints.c (process_alt_operands): Likewise.
22074 * recog.c (asm_operand_ok, constrain_operands): Likewise.
22075 * reload.c (find_reloads): Likewise.
22076
22077 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22078
22079 * genpreds.c (const_int_start, const_int_end): New variables.
22080 (choose_enum_order): Output CONST_INT constraints before memory
22081 constraints.
22082 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
22083 Add CT_CONST_INT.
22084 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
22085 * ira.c (ira_setup_alts): Likewise.
22086 * lra-constraints.c (process_alt_operands): Likewise.
22087 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
22088 * reload.c (find_reloads): Likewise.
22089
22090 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22091
22092 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
22093 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
22094 * recog.c (preprocess_constraints): Update accordingly.
22095
22096 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22097
22098 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
22099 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
22100 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
22101 * genpreds.c (print_type_tree): New function.
22102 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
22103 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
22104 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
22105 Write out enum constraint_type and get_constraint_type.
22106 * lra-constraints.c (satisfies_memory_constraint_p): Take a
22107 constraint_num rather than a constraint string.
22108 (satisfies_address_constraint_p): Likewise.
22109 (reg_class_from_constraints): Avoid old constraint macros.
22110 (process_alt_operands, process_address_1): Likewise.
22111 (curr_insn_transform): Likewise.
22112 * ira-costs.c (record_reg_classes): Likewise.
22113 (record_operand_costs): Likewise.
22114 * ira-lives.c (single_reg_class): Likewise.
22115 (ira_implicitly_set_insn_hard_regs): Likewise.
22116 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
22117 * postreload.c (reload_cse_simplify_operands): Likewise.
22118 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
22119 (constrain_operands, peep2_find_free_register): Likewise.
22120 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
22121 (find_reloads, alternative_allows_const_pool_ref): Likewise.
22122 * reload1.c (maybe_fix_stack_asms): Likewise.
22123 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
22124 * targhooks.c (default_secondary_reload): Likewise.
22125 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
22126 to EXTRA_CONSTRAINT_STR.
22127 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
22128
22129 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22130
22131 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
22132 (write_constraint_satisfied_p_array): ...this new function.
22133 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
22134 an array.
22135 (write_insn_preds_c): Update accordingly.
22136
22137 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22138
22139 * genpreds.c (write_lookup_constraint): Rename to...
22140 (write_lookup_constraint_1): ...this.
22141 (write_lookup_constraint_array): New function.
22142 (write_tm_preds_h): Define lookup_constraint as an inline function
22143 that uses write_lookup_constraint_array where possible.
22144 (write_insn_preds_c): Update for the changes above.
22145
22146 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22147
22148 * doc/md.texi (regclass_for_constraint): Rename to...
22149 (reg_class_for_constraint): ...this.
22150 * genpreds.c (num_constraints, enum_order, register_start)
22151 (register_end, satisfied_start, memory_start, memory_end)
22152 (address_start, address_end): New variables.
22153 (add_constraint): Count the number of constraints.
22154 (choose_enum_order): New function.
22155 (write_enum_constraint_num): Iterate over enum_order.
22156 (write_regclass_for_constraint): Rename to...
22157 (write_reg_class_for_constraint_1): ...this and update output
22158 accordingly.
22159 (write_constraint_satisfied_p): Rename to...
22160 (write_constraint_satisfied_p_1): ...this and update output
22161 accordingly. Do nothing if all extra constraints are register
22162 constraints.
22163 (write_insn_extra_memory_constraint): Delete.
22164 (write_insn_extra_address_constraint): Delete.
22165 (write_range_function): New function.
22166 (write_tm_preds_h): Define constraint_satisfied_p and
22167 reg_class_for_constraint as inline functions that do a range check
22168 before calling the out-of-line function. Use write_range_function
22169 to implement insn_extra_{register,memory,address}_constraint,
22170 the first of which is new.
22171 (write_insn_preds_c): Update after above changes to write_* functions.
22172 (main): Call choose_enum_order.
22173
22174 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
22175
22176 PR tree-optimization/61306
22177 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
22178 expression instead of its size.
22179 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
22180 false to prevent optimization when the result is unpredictable due to
22181 arithmetic right shift of signed type with highest byte is set.
22182 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
22183 (init_symbolic_number): Likewise.
22184 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
22185 when the result is unpredictable due to sign extension.
22186
22187 2014-06-11 Terry Guo <terry.guo@arm.com>
22188
22189 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
22190 (*thumb1_addsi3): Ditto.
22191 (*thumb_subdi3): Ditto.
22192 (thumb1_subsi3_insn): Ditto.
22193 (*thumb_mulsi3): Ditto.
22194 (*thumb_mulsi3_v6): Ditto.
22195 (*thumb1_andsi3_insn): Ditto.
22196 (thumb1_bicsi3): Ditto.
22197 (*thumb1_iorsi3_insn): Ditto.
22198 (*thumb1_xorsi3_insn): Ditto.
22199 (*thumb1_ashlsi3): Ditto.
22200 (*thumb1_ashrsi3): Ditto.
22201 (*thumb1_lshrsi3): Ditto.
22202 (*thumb1_rotrsi3): Ditto.
22203 (*thumb1_negdi2): Ditto.
22204 (*thumb1_negsi2): Ditto.
22205 (*thumb1_abssi2): Ditto.
22206 (*thumb1_neg_abssi2): Ditto.
22207 (*thumb1_one_cmplsi2): Ditto.
22208 (*thumb1_zero_extendhisi2): Ditto.
22209 (*thumb1_zero_extendqisi2): Ditto.
22210 (*thumb1_zero_extendqisi2_v6): Ditto.
22211 (thumb1_extendhisi2): Ditto.
22212 (thumb1_extendqisi2): Ditto.
22213 (*thumb1_movdi_insn): Ditto.
22214 (*thumb1_movsi_insn): Ditto.
22215 (*thumb1_movhi_insn): Ditto.
22216 (thumb_movhi_clobber): Ditto.
22217 (*thumb1_movqi_insn): Ditto.
22218 (*thumb1_movhf): Ditto.
22219 (*thumb1_movsf_insn): Ditto.
22220 (*thumb_movdf_insn): Ditto.
22221 (movmem12b): Ditto.
22222 (movmem8b): Ditto.
22223 (cbranchqi4): Ditto.
22224 (cbranchsi4_insn): Ditto.
22225 (cbranchsi4_scratch): Ditto.
22226 (*negated_cbranchsi4): Ditto.
22227 (*tbit_cbranch): Ditto.
22228 (*tlobits_cbranch): Ditto.
22229 (*tstsi3_cbranch): Ditto.
22230 (*cbranchne_decr1): Ditto.
22231 (*addsi3_cbranch): Ditto.
22232 (*addsi3_cbranch_scratch): Ditto.
22233 (*thumb_cmpdi_zero): Ditto.
22234 (cstoresi_eq0_thumb1): Ditto.
22235 (cstoresi_ne0_thumb1): Ditto.
22236 (*cstoresi_eq0_thumb1_insn): Ditto.
22237 (*cstoresi_ne0_thumb1_insn): Ditto.
22238 (cstoresi_nltu_thumb1): Ditto.
22239 (cstoresi_ltu_thumb1): Ditto.
22240 (thumb1_addsi3_addgeu): Ditto.
22241 (*thumb_jump): Ditto.
22242 (*call_reg_thumb1_v5): Ditto.
22243 (*call_reg_thumb1): Ditto.
22244 (*call_value_reg_thumb1_v5): Ditto.
22245 (*call_value_reg_thumb1): Ditto.
22246 (*call_insn): Ditto.
22247 (*call_value_insn): Ditto.
22248 (thumb1_casesi_internal_pic): Ditto.
22249 (thumb1_casesi_dispatch): Ditto.
22250 (*thumb1_indirect_jump): Ditto.
22251 (prologue_thumb1_interwork): Ditto.
22252 (*epilogue_insns): Ditto.
22253 (consttable_1): Ditto.
22254 (consttable_2): Ditto.
22255 (tablejump): Ditto.
22256 (*thumb1_tablejump): Ditto.
22257 (thumb_eh_return): Ditto.
22258 (define_peephole2): Two of them are thumb1 only and got moved into
22259 new file thumb1.md.
22260 (define_split): Six of them are thumb1 only and got moved into new
22261 file thumb1.md.
22262 * config/arm/thumb1.md: New file comprised of above thumb1 only
22263 patterns.
22264
22265 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22266
22267 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
22268 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
22269 dependencies.
22270 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
22271 (aarch64_crc_builtin_datum): New struct.
22272 (aarch64_crc_builtin_data): New.
22273 (aarch64_init_crc32_builtins): New function.
22274 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
22275 (aarch64_crc32_expand_builtin): New.
22276 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
22277 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
22278 __ARM_FEATURE_CRC32 when appropriate.
22279 (TARGET_CRC32): Define.
22280 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
22281 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
22282 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
22283 (aarch64_<crc_variant>): New pattern.
22284 * config/aarch64/arm_acle.h: New file.
22285 * config/aarch64/iterators.md (CRC): New int iterator.
22286 (crc_variant, crc_mode): New int attributes.
22287 * doc/aarch64-acle-intrinsics.texi: New file.
22288 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
22289 Include aarch64-acle-intrinsics.texi.
22290
22291 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
22292
22293 * tree-vect-data-refs.c (vect_grouped_store_supported): New
22294 check for stores group of length 3.
22295 (vect_permute_store_chain): New permutations for stores group of
22296 length 3.
22297 * tree-vect-stmts.c (vect_model_store_cost): Change cost
22298 of vec_perm_shuffle for the new permutations.
22299
22300 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
22301
22302 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
22303 table rewriting temporarily on targets not supporting ONE_ONLY.
22304
22305 2014-06-11 Richard Biener <rguenther@suse.de>
22306
22307 PR middle-end/61437
22308 Revert
22309 2014-06-04 Richard Biener <rguenther@suse.de>
22310
22311 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
22312 TREE_PUBLIC and DECL_EXTERNAL decls.
22313
22314 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
22315
22316 * varasm.c (set_implicit_section): New function.
22317 (resolve_unique_section): Use it to set implicit section
22318 for aliases, too.
22319 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
22320 (default_function_section): Likewise.
22321 (decl_binds_to_current_def_p): Constify argument.
22322 * varasm.h (decl_binds_to_current_def_p): Update prototype.
22323 * asan.c (asan_protect_global): Use
22324 symtab_get_node (decl)->implicit_section.
22325 * symtab.c (dump_symtab_base): Dump implicit sections.
22326 (verify_symtab_base): Verify sanity of sectoins and comdats.
22327 (symtab_resolve_alias): Alias share the section of its target.
22328 (set_section_1): New function.
22329 (symtab_node::set_section): Move here, recurse to aliases.
22330 (verify_symtab): Check for duplicated symtab lists.
22331 * tree-core.h (implicit_section_name_p): Remove.
22332 * tree-vect-data-refs.c: Include varasm.h.
22333 (vect_can_force_dr_alignment_p): Fix conditional on when
22334 decl bints to current definition; use
22335 symtab_get_node (decl)->implicit_section.
22336 * cgraph.c (cgraph_make_node_local_1): Fix section set.
22337 * cgraph.h (struct symtab_node): Add implicit_section.
22338 (set_section): Rename to ...
22339 (set_section_for_node): ... this one.
22340 (set_section): Declare.
22341 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
22342 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
22343 input_overwrite_node, input_varpool_node): Stream implicit_section.
22344 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
22345 removal; it will fail in LTO.
22346
22347 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22348
22349 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
22350 Change second alternative type to f_mcr.
22351 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
22352 and 12th alternatives' types to f_mcr and f_mrc.
22353 (*movdi_aarch64): Same for 12th and 13th alternatives.
22354 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
22355 (aarch64_movtilow_tilow): Change type to fmov.
22356
22357 2014-06-10 Jiong Wang <jiong.wang@arm.com>
22358
22359 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
22360 (aarch64_save_or_restore_callee_save_registers): Fix layout.
22361
22362 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22363
22364 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
22365 New expander.
22366 (aarch64_sqrdmulh_lane<mode>): Likewise.
22367 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
22368 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
22369 (aarch64_sqdmulh_laneq<mode>): New expander.
22370 (aarch64_sqrdmulh_laneq<mode>): Likewise.
22371 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
22372 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
22373 (aarch64_sqdmulh_lane<mode>): New expander.
22374 (aarch64_sqrdmulh_lane<mode>): Likewise.
22375 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
22376 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
22377 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
22378 (aarch64_sqdmlal_laneq<mode>): Likewise.
22379 (aarch64_sqdmlsl_lane<mode>): Likewise.
22380 (aarch64_sqdmlsl_laneq<mode>): Likewise.
22381 (aarch64_sqdmlal2_lane<mode>): Likewise.
22382 (aarch64_sqdmlal2_laneq<mode>): Likewise.
22383 (aarch64_sqdmlsl2_lane<mode>): Likewise.
22384 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
22385 (aarch64_sqdmull_lane<mode>): Likewise.
22386 (aarch64_sqdmull_laneq<mode>): Likewise.
22387 (aarch64_sqdmull2_lane<mode>): Likewise.
22388 (aarch64_sqdmull2_laneq<mode>): Likewise.
22389
22390 2014-06-10 Richard Biener <rguenther@suse.de>
22391
22392 PR tree-optimization/61438
22393 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
22394 (eliminate_dom_walker::before_dom_children): Only try to inhibit
22395 insertion of IVs if running PRE.
22396 (eliminate): Adjust.
22397 (pass_pre::execute): Likewise.
22398 (pass_fre::execute): Likewise.
22399
22400 2014-06-10 Richard Biener <rguenther@suse.de>
22401
22402 PR middle-end/61456
22403 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
22404 Do not use the main variant for the type comparison.
22405 (ncr_compar): Likewise.
22406 (nonoverlapping_component_refs_p): Likewise.
22407
22408 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
22409
22410 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
22411 REG_CFA_RESTORE mode.
22412
22413 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
22414
22415 * config/i386/i386.c (expand_vec_perm_pblendv): New.
22416 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
22417 expand_vec_perm_pblendv.
22418
22419 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22420
22421 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
22422 available.
22423 Simplify description of __crc32d and __crc32cd intrinsics.
22424 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
22425 availability.
22426
22427 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
22428
22429 PR lto/61334
22430 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
22431 * config.in: Regenerate.
22432 * configure: Likewise.
22433
22434 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
22435
22436 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
22437 and public vars.
22438 (intersect_static_var_sets): Remove.
22439 (propagate): Do not prune local statics.
22440
22441 2014-06-10 Jakub Jelinek <jakub@redhat.com>
22442
22443 PR fortran/60928
22444 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
22445 Set lastprivate_firstprivate even if omp_private_outer_ref
22446 langhook returns true.
22447 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
22448 langhook, call unshare_expr on new_var and call
22449 build_outer_var_ref to get the last argument.
22450
22451 2014-06-10 Marek Polacek <polacek@redhat.com>
22452
22453 PR c/60988
22454 * doc/extend.texi: Add cindex for transparent_union.
22455
22456 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
22457
22458 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
22459 init_symbolic_number ().
22460
22461 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
22462
22463 PR middle-end/61141
22464 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
22465 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
22466 (verify_rtl_sharing): Likewise.
22467
22468 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
22469
22470 PR c++/54442
22471 * tree.c (build_qualified_type): Use a canonical type for
22472 TYPE_CANONICAL.
22473
22474 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22475
22476 * config/arm/arm-modes.def: Remove XFmode.
22477
22478 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
22479
22480 PR target/61062
22481 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
22482 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
22483 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
22484 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
22485 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
22486 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
22487 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
22488 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
22489 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
22490
22491 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
22492
22493 * tree-core.h (tree_decl_with_vis): Remove section_name.
22494
22495 2014-06-09 Kito Cheng <kito@0xlab.org>
22496
22497 * ira.c (ira): Don't call init_caller_save if LRA enabled
22498 since LRA use its own infrastructure to handle that.
22499
22500 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
22501
22502 * symtab.c (dump_symtab_base): Update dumping.
22503 (symtab_make_decl_local): Clear only DECL_COMDAT.
22504 * tree-vect-data-refs.c (Check that variable is static before
22505 tampering with sections.
22506 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
22507 (cgraph_create_virtual_clone): Likewise.
22508 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
22509 (decl_section_name, set_decl_section_name): New accessors.
22510 (find_decls_types_r): Do not walk section name
22511 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
22512 (decl_comdat_group, decl_comdat_group_id): Constify.
22513 (decl_section_name, set_decl_section_name): Update.
22514 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
22515 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
22516 (cgraph_make_node_local_1): Clear section and comdat group.
22517 * cgraph.h (set_comdat_group): Sanity check.
22518 (get_section, set_section): New.
22519 * ipa-comdats.c (ipa_comdats): Use get_section.
22520 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
22521 * lto-streamer-out.c: Do not follow section names.
22522 * c-family/c-common.c (handle_section_attribute): Update.
22523 * lto-cgraph.c (lto_output_node): Output section.
22524 (lto_output_varpool_node): Likewise.
22525 (read_comdat_group): Rename to ...
22526 (read_identifier): ... this one.
22527 (read_string_cst): New function.
22528 (input_node, input_varpool_node): Input section names.
22529 * tree-emutls.c (get_emutls_init_templ_addr): Update.
22530 (new_emutls_decl): Update.
22531 (secname_for_decl): Check section names only of static vars.
22532 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
22533 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
22534 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
22535 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
22536 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
22537 * config/mcore/mcore.c (mcore_unique_section): Likewise.
22538 * config/mips/mips.c (mips16_build_function_stub): Likewise.
22539 * config/v850/v850.c (v850_insert_attributes): Likewise.
22540 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
22541 Likewise.
22542 (h8300_handle_tiny_data_attribute): Likewise.
22543 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
22544 (bfin_handle_l2_attribute): Likewise.
22545
22546 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
22547
22548 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
22549 remove static initializer.
22550
22551 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
22552
22553 * varasm.c (use_blocks_for_decl_p): Check symbol table
22554 instead of alias attribute.
22555 (place_block_symbol): Recurse on aliases.
22556
22557 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
22558
22559 * ipa-visibility.c: Include varasm.h
22560 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
22561
22562 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
22563
22564 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
22565 outputting aliases.
22566
22567 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
22568
22569 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
22570 from test_insn into GGC space escape via SET_SRC.
22571
22572 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
22573
22574 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
22575 call statement, if any.
22576 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
22577 statements, if any. Tidy up.
22578
22579 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
22580
22581 PR target/61431
22582 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
22583 iterators, VSX_D that handles 64-bit types, and VSX_LE that
22584 handles swapping the two 64-bit double words on little endian
22585 systems. Include V1TImode and optionally TImode in VSX_LE so that
22586 these types are properly swapped. Change all of the insns and
22587 splits that do the 64-bit swaps to use VSX_LE.
22588 (vsx_le_perm_load_<mode>): Likewise.
22589 (vsx_le_perm_store_<mode>): Likewise.
22590 (splitters for little endian memory operations): Likewise.
22591 (vsx_xxpermdi2_le_<mode>): Likewise.
22592 (vsx_lxvd2x2_le_<mode>): Likewise.
22593 (vsx_stxvd2x2_le_<mode>): Likewise.
22594
22595 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
22596
22597 PR target/61423
22598 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
22599 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
22600 and corresponding splitters. Zero extend general register
22601 or memory input operand to XMM temporary. Enable for
22602 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
22603 (floatunssi<mode>2): Update expander predicate.
22604
22605 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
22606
22607 PR rtl-optimization/61325
22608 * lra-constraints.c (process_address_1): Check scale equal to one
22609 to prevent transformation: base + scale * index => base + new_reg.
22610
22611 2014-06-06 Richard Biener <rguenther@suse.de>
22612
22613 PR tree-optimization/59299
22614 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
22615 a def operand.
22616 (nearest_common_dominator_of_uses): Likewise.
22617 (statement_sink_location): Adjust. Support sinking loads.
22618
22619 2014-06-06 Martin Jambor <mjambor@suse.cz>
22620
22621 * ipa-prop.c (get_place_in_agg_contents_list): New function.
22622 (build_agg_jump_func_from_list): Likewise.
22623 (determine_known_aggregate_parts): Renamed to
22624 determine_locally_known_aggregate_parts. Moved some functionality
22625 to the two functions above, removed bound checks.
22626
22627 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
22628
22629 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
22630 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
22631 (aarch64_progress_pointer): Likewise.
22632 (aarch64_copy_one_part_and_move_pointers): Likewise.
22633 (aarch64_expand_movmen): Likewise.
22634 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
22635 * config/aarch64/aarch64.md (movmem<mode>): New.
22636
22637 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
22638
22639 * targhooks.c (default_add_stmt_cost): Call target specific
22640 hook instead of default one.
22641
22642 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
22643
22644 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
22645 endianness instead of host endianness.
22646 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
22647 comments.
22648
22649 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
22650
22651 PR debug/53927
22652 * function.c (instantiate_decls): Process the saved static chain.
22653 (expand_function_start): If not optimizing, save the static chain
22654 onto the stack.
22655 * tree-nested.c (convert_all_function_calls): Always create the static
22656 chain for nested functions if not optimizing.
22657
22658 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
22659
22660 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
22661
22662 2014-06-06 Richard Biener <rguenther@suse.de>
22663
22664 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
22665 (construct_init_block): Likewise.
22666 (construct_exit_block): Likewise.
22667 (pass_expand::execute): Likewise.
22668 * graphite.c (graphite_transforms): Replace check for current_loops
22669 with a check for > 1 loops.
22670 (pass_graphite_transforms::execute): Adjust.
22671 * ipa-split.c (split_function): Remove check for current_loops.
22672 * omp-low.c (expand_parallel_call): Likewise.
22673 (expand_omp_for_init_counts): Likewise.
22674 (extract_omp_for_update_vars): Likewise.
22675 (expand_omp_for_generic): Likewise.
22676 (expand_omp_sections): Likewise.
22677 (expand_omp_target): Likewise.
22678 * tracer.c (tail_duplicate): Likewise.
22679 (pass_tracer::execute): Likewise.
22680 * trans-mem.c (expand_transaction): Likewise.
22681 * tree-complex.c (expand_complex_div_wide): Likewise.
22682 * tree-eh.c (lower_resx): Likewise.
22683 (cleanup_empty_eh_merge_phis): Likewise.
22684 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
22685 current_loops with a check for > 1 loops.
22686 (pass_predcom::execute): Adjust.
22687 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
22688 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
22689 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
22690 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
22691 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
22692 * tree-switch-conversion.c (process_switch): Likewise.
22693 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
22694 * tree-vrp.c (vrp_visit_phi_node): Likewise.
22695 (execute_vrp): Likewise.
22696 * ubsan.c (ubsan_expand_null_ifn): Likewise.
22697
22698 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
22699
22700 * rtl.h (insn_location): Declare.
22701 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
22702 with UNKNOWN_LOCATION.
22703 * emit-rtl.c (insn_location): New function.
22704 * final.c (notice_source_line): Check that the instruction has a
22705 location before retrieving it and use insn_location.
22706 * modulo-sched.c (loop_single_full_bb_p): Likewise.
22707 * print-rtl.c (print_rtx): Likewise.
22708
22709 2014-06-06 Richard Biener <rguenther@suse.de>
22710
22711 * passes.def: Move 2nd VRP pass before phi-only-cprop.
22712
22713 2014-06-06 Christian Bruel <christian.bruel@st.com>
22714
22715 PR tree-optimization/43934
22716 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
22717 cost.
22718
22719 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
22720
22721 * ira-lives.c (single_reg_class): Add missing break. Explicitly
22722 return NO_REGS for extra address and memory constraints. Handle
22723 operands that match (or are equivalent to something that matches)
22724 extra constant constraints. Ignore other non-register operands.
22725
22726 2014-06-06 Alan Modra <amodra@gmail.com>
22727
22728 PR target/61300
22729 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
22730 * doc/tm.texi: Regenerate.
22731 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
22732 Use throughout in place of REG_PARM_STACK_SPACE.
22733 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
22734 "incoming" param. Pass to rs6000_function_parms_need_stack.
22735 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
22736 prototype_p when incoming. Use function decl when incoming
22737 to handle K&R style functions.
22738 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
22739 (INCOMING_REG_PARM_STACK_SPACE): Define.
22740
22741 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
22742
22743 PR target/52472
22744 * cfgexpand.c (expand_debug_expr): Use address space of nested
22745 TREE_TYPE for ADDR_EXPR and MEM_REF.
22746
22747 2014-06-05 Jeff Law <law@redhat.com>
22748
22749 PR tree-optimization/61289
22750 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
22751 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
22752 looking for those which match LHS. All callers changed.
22753 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
22754 parameters and code which manipulated them. All callers changed.
22755 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
22756 and DST_MAP parameters. Simplify invalidation code by just calling
22757 invalidate_equivalences. All callers changed.
22758 (thread_across_edge): Simplify now that we don't need to maintain
22759 the map of equivalences to invalidate.
22760
22761 2014-06-05 Kai Tietz <ktietz@redhat.com>
22762 Richard Henderson <rth@redhat.com>
22763
22764 PR target/46219
22765 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
22766 checking for !TARGET_X32.
22767 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
22768 (sibcall_intern): New define_insn, plus required peepholes.
22769 (sibcall_pop_intern): Likewise.
22770 (sibcall_value_intern): Likewise.
22771 (sibcall_value_pop_intern): Likewise.
22772
22773 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
22774
22775 * tree-inline.c (tree_function_versioning): Check DF info existence
22776 before accessing it.
22777
22778 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22779
22780 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
22781 frame_size.
22782 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
22783 aarch64_frame hard_fp_offset and frame_size.
22784 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
22785 frame_size; remove original_frame_size.
22786 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
22787 (aarch64_initial_elimination_offset): Remove frame_size and
22788 offset. Use aarch64_frame frame_size.
22789
22790 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22791 Jiong Wang <jiong.wang@arm.com>
22792 Renlin <renlin.li@arm.com>
22793
22794 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
22795 initialization of R30 offset. Update offset. Iterate core
22796 regisers upto X30. Remove X29, X30 specific code.
22797
22798 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22799 Jiong Wang <jiong.wang@arm.com>
22800
22801 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
22802 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
22803 (aarch64_register_saved_on_entry): Adjust test.
22804
22805 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22806
22807 * config/aarch64/aarch64.h (machine_function): Move
22808 saved_varargs_size from here...
22809 (aarch64_frame): ... to here.
22810
22811 * config/aarch64/aarch64.c (aarch64_expand_prologue)
22812 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
22813 (aarch64_initial_elimination_offset)
22814 (aarch64_setup_incoming_varargs): Adjust location of
22815 saved_varargs_size.
22816
22817 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22818
22819 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
22820 layout comment.
22821
22822 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
22823 Prachi Godbole <Prachi.Godbole@imgtec.com>
22824
22825 * config/mips/mips-cpus.def: Add definition for p5600. Updated
22826 mips32r5 entry to use PROCESSOR_P5600.
22827 * config/mips/mips-tables.opt: Regenerate.
22828 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
22829 * config/mips/mips.c (mips_fmadd_bypass): New function.
22830 (mips_rtx_cost_data): Add costs for p5600.
22831 (mips_issue_rate): Add support for p5600.
22832 (mips_multipass_dfa_lookahead): Likewise.
22833 * config/mips/mips.h (TUNE_P5600): New define.
22834 (TUNE_MACC_CHAINS): Add TUNE_P5600.
22835 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
22836 * config/mips/mips.md: Include p5600.md.
22837 (processor): Add p5600.
22838 * config/mips/p5600.md: New file.
22839
22840 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
22841
22842 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
22843 * config/i386/predicates.md (palignr_operand): New.
22844 Indicates if permutation is suitable for palignr instruction.
22845
22846 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
22847
22848 PR tree-optimization/61319
22849 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
22850 stmt belongs to loop.
22851
22852 2014-06-05 Richard Biener <rguenther@suse.de>
22853
22854 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
22855 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
22856 (lookup_tmp_var): Adjust.
22857 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
22858
22859 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22860
22861 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
22862
22863 2014-06-05 Marek Polacek <polacek@redhat.com>
22864
22865 PR c/49706
22866 * doc/invoke.texi: Document -Wlogical-not-parentheses.
22867
22868 2014-06-04 Tom de Vries <tom@codesourcery.com>
22869
22870 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
22871 CONST_INT.
22872
22873 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
22874
22875 PR tree-optimization/61385
22876 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
22877
22878 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
22879
22880 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
22881 changed to use fatal_error.
22882 (main): Ensure lto_wrapper_cleanup is run atexit.
22883
22884 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22885
22886 * lra-constraints.c (valid_address_p): Move earlier in file.
22887 (address_eliminator): New structure.
22888 (satisfies_memory_constraint_p): New function.
22889 (satisfies_address_constraint_p): Likewise.
22890 (process_alt_operands, process_address, curr_insn_transform): Use them.
22891
22892 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22893
22894 * lra-int.h (lra_static_insn_data): Make operand_alternative a
22895 const pointer.
22896 (target_lra_int, default_target_lra_int, this_target_lra_int)
22897 (op_alt_data): Delete.
22898 * lra.h (lra_init): Delete.
22899 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
22900 (init_insn_code_data_once): Remove op_alt_data handling.
22901 (finish_insn_code_data_once): Likewise.
22902 (init_op_alt_data): Delete.
22903 (get_static_insn_data): Initialize operand_alternative to null.
22904 (free_insn_recog_data): Cast operand_alternative before freeing it.
22905 (setup_operand_alternative): Take the operand_alternative as
22906 parameter and assume it isn't already cached in the static
22907 insn data.
22908 (lra_set_insn_recog_data): Update accordingly.
22909 (lra_init): Delete.
22910 * ira.c (ira_init): Don't call lra_init.
22911 * target-globals.h (this_target_lra_int): Declare.
22912 (target_globals): Remove lra_int.
22913 (restore_target_globals): Update accordingly.
22914 * target-globals.c: Don't include lra-int.h.
22915 (default_target_globals, save_target_globals): Remove lra_int.
22916
22917 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22918
22919 * recog.h (operand_alternative): Convert reg_class, reject,
22920 matched and matches into bitfields.
22921 (preprocess_constraints): New overload.
22922 (preprocess_insn_constraints): New function.
22923 (preprocess_constraints): Take the insn as parameter.
22924 (recog_op_alt): Change into a pointer.
22925 (target_recog): Add x_op_alt.
22926 * recog.c (asm_op_alt): New variable.
22927 (recog_op_alt): Change into a pointer.
22928 (preprocess_constraints): New overload, replacing the old function
22929 definition with one that doesn't use global state.
22930 (preprocess_insn_constraints): New function.
22931 (preprocess_constraints): Use them. Take the insn as parameter.
22932 Use asm_op_alt for asms.
22933 (recog_init): Free existing x_op_alt entries.
22934 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
22935 pointer const.
22936 (make_early_clobber_and_input_conflicts): Likewise.
22937 (process_bb_node_lives): Pass the insn to process_constraints.
22938 * reg-stack.c (check_asm_stack_operands): Likewise.
22939 (subst_asm_stack_regs): Likewise.
22940 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22941 * regrename.c (build_def_use): Likewise.
22942 * sched-deps.c (sched_analyze_insn): Likewise.
22943 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
22944 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
22945 (note_invalid_constants): Likewise.
22946 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22947 (ix86_legitimate_combined_insn): Make operand_alternative pointer
22948 const.
22949
22950 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22951
22952 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
22953 * ira-lives.c (check_and_make_def_conflict): Check for disabled
22954 alternatives.
22955 (make_early_clobber_and_input_conflicts): Likewise.
22956 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22957
22958 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22959
22960 * recog.h (alternative_class): New function.
22961 (which_op_alt): Return a const recog_op_alt.
22962 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
22963 (subst_asm_stack_regs): Likewise.
22964 * config/arm/arm.c (note_invalid_constants): Likewise.
22965 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
22966 the operand_alternative; use alternative class instead.
22967 * sel-sched.c (get_reg_class): Likewise.
22968 * regrename.c (build_def_use): Likewise.
22969 (hide_operands, restore_operands, record_out_operands): Update type
22970 accordingly.
22971
22972 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22973
22974 * recog.h (recog_op_alt): Convert to a flat array.
22975 (which_op_alt): New function.
22976 * recog.c (recog_op_alt): Convert to a flat array.
22977 (preprocess_constraints): Update accordingly, grouping all
22978 operands of the same alternative together, rather than the
22979 other way around.
22980 * ira-lives.c (check_and_make_def_conflict): Likewise.
22981 (make_early_clobber_and_input_conflicts): Likewise.
22982 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22983 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
22984 (subst_asm_stack_regs): Likewise.
22985 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22986 * regrename.c (hide_operands, record_out_operands): Likewise.
22987 (build_def_use): Likewise.
22988 * sel-sched.c (get_reg_class): Likewise.
22989 * config/arm/arm.c (note_invalid_constants): Likewise.
22990
22991 2014-06-04 Jason Merrill <jason@redhat.com>
22992
22993 PR c++/51253
22994 PR c++/61382
22995 * gimplify.c (gimplify_arg): Non-static.
22996 * gimplify.h: Declare it.
22997
22998 2014-06-04 Richard Biener <rguenther@suse.de>
22999
23000 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
23001 TREE_PUBLIC and DECL_EXTERNAL decls.
23002
23003 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
23004
23005 * regcprop.c (copyprop_hardreg_forward_1): Account for
23006 HARD_REGNO_CALL_PART_CLOBBERED.
23007
23008 2014-06-04 Richard Biener <rguenther@suse.de>
23009
23010 * configure.ac: Check whether the underlying type of int64_t
23011 is long or long long.
23012 * configure: Regenerate.
23013 * config.in: Likewise.
23014 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
23015 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23016
23017 2014-06-04 Richard Biener <rguenther@suse.de>
23018
23019 PR tree-optimization/60098
23020 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
23021 we hit a kill.
23022 (dse_optimize_stmt): Simplify, now that we found a kill
23023 earlier.
23024
23025 2014-06-04 Richard Biener <rguenther@suse.de>
23026
23027 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
23028 of accesses with non-invariant address.
23029
23030 2014-06-04 Martin Liska <mliska@suse.cz>
23031
23032 * cgraph.h (cgraph_make_wrapper): New function introduced.
23033 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
23034 * ipa-inline.h (inline_analyze_function): The function is global.
23035 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
23036
23037 2014-06-04 Martin Liska <mliska@suse.cz>
23038
23039 * tree.h (private_lookup_attribute_starting): New function.
23040 (lookup_attribute_starting): Likewise.
23041 * tree.c (private_lookup_attribute_starting): Likewise.
23042
23043 2014-06-04 Martin Liska <mliska@suse.cz>
23044
23045 * cgraph.h (expand_thunk): New argument added.
23046 (address_taken_from_non_vtable_p): New global function.
23047 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
23048 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
23049 * cgraphunit.c (analyze_function): Likewise.
23050 (assemble_thunks_and_aliases): Argument added to call.
23051 (expand_thunk): New argument forces to produce GIMPLE thunk.
23052
23053 2014-06-04 Martin Liska <mliska@suse.cz>
23054
23055 * coverage.h (coverage_compute_cfg_checksum): Argument added.
23056 * coverage.c (coverage_compute_cfg_checksum): Likewise.
23057 * profile.c (branch_prob): Likewise.
23058
23059 2014-06-04 Martin Jambor <mjambor@suse.cz>
23060
23061 PR ipa/61340
23062 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
23063 handler for switch on an ipa_ref_use enum.
23064 * ipa-reference.c (analyze_function): Likewise.
23065
23066 2014-06-04 Kai Tietz <ktietz@redhat.com>
23067
23068 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
23069 from old call-instruction.
23070
23071 2014-06-04 Bin Cheng <bin.cheng@arm.com>
23072
23073 * config/aarch64/aarch64.c (aarch64_classify_address)
23074 (aarch64_legitimize_reload_address): Support full addressing modes
23075 for vector modes.
23076 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
23077 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
23078
23079 2014-06-03 Andrew Pinski <apinski@cavium.com>
23080
23081 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
23082 for OP0.
23083
23084 2014-06-03 Andrew Pinski <apinski@cavium.com>
23085
23086 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
23087 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
23088
23089 2014-06-03 Kai Tietz <ktietz@redhat.com>
23090
23091 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
23092 for 64-bit ms-abi.
23093
23094 2014-06-03 Dehao Chen <dehao@google.com>
23095
23096 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
23097 the same loop.
23098
23099 2014-06-03 Marek Polacek <polacek@redhat.com>
23100
23101 PR c/60439
23102 * doc/invoke.texi: Document -Wswitch-bool.
23103 * function.c (stack_protect_epilogue): Cast controlling expression of
23104 the switch to int.
23105 * gengtype.c (walk_type): Generate switch expression with its
23106 controlling expression cast to int.
23107
23108 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
23109
23110 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
23111 and attiny841.
23112 * config/avr/avr-tables.opt: Regenerate.
23113 * config/avr/t-multilib: Regenerate.
23114 * doc/avr-mmcu.texi: Regenerate.
23115
23116 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
23117 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
23118
23119 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
23120 (ata6617c, ata664251): Add new avr35 devices.
23121 (ata6612c): Add new avr4 device.
23122 (ata6613c, ata6614q): Add new avr5 devices.
23123 * config/avr/avr-tables.opt: Regenerate.
23124 * config/avr/t-multilib: Regenerate.
23125 * doc/avr-mmcu.texi: Regenerate.
23126
23127 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
23128
23129 * gcc/config/aarch64/aarch64-builtins.c
23130 (aarch64_types_binop_ssu_qualifiers): New static data.
23131 (TYPES_BINOP_SSU): Define.
23132 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
23133 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
23134 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
23135 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
23136 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
23137 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
23138 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
23139 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
23140 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
23141 suffix to builtin function name, remove cast.
23142 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
23143 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
23144 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
23145
23146 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
23147
23148 * gcc/config/aarch64/aarch64-builtins.c
23149 (aarch64_types_binop_uus_qualifiers,
23150 aarch64_types_shift_to_unsigned_qualifiers,
23151 aarch64_types_unsigned_shiftacc_qualifiers): Define.
23152 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
23153 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
23154 sqshlu_n, uqshl_n): Update qualifiers.
23155 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
23156 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
23157 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
23158 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
23159 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
23160 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
23161 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
23162 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
23163 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
23164 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
23165 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
23166 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
23167 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
23168 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
23169 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
23170 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
23171 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
23172 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
23173 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
23174 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
23175 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
23176 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
23177 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
23178 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
23179 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
23180 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
23181 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
23182
23183 2014-06-03 Teresa Johnson <tejohnson@google.com>
23184
23185 * tree-sra.c (modify_function): Record caller nodes after rebuild.
23186
23187 2014-06-02 Jason Merrill <jason@redhat.com>
23188
23189 PR c++/61020
23190 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
23191
23192 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
23193
23194 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
23195 location == 0.
23196
23197 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
23198
23199 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
23200 New pattern.
23201 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
23202 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
23203 * config/aarch64/iterators.md (REVERSE): New iterator.
23204 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
23205 (rev_op): New int_attribute.
23206 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
23207 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
23208 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
23209 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
23210 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
23211 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
23212 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
23213 Replace temporary __asm__ with __builtin_shuffle.
23214
23215 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
23216
23217 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
23218 mips64r5.
23219 * config/mips/mips-tables.opt: Regenerate.
23220 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
23221 to use mips_isa_rev rather than ISA_MIPS32R2.
23222 * config/mips/mips.h (ISA_MIPS32R3): New define.
23223 (ISA_MIPS32R5): New define.
23224 (ISA_MIPS64R3): New define.
23225 (ISA_MIPS64R5): New define.
23226 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
23227 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
23228 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
23229 and mips64r5.
23230 (MIPS_ISA_SYNCI_SPEC): Likewise.
23231 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
23232 (LINK_SPEC): Added mips32r3 and mips32r5.
23233 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
23234 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
23235 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
23236 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
23237 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
23238 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
23239 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
23240
23241 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
23242
23243 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
23244 options.
23245 * config/mips/mips.opt (mxpa): New option.
23246 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
23247 assembler.
23248
23249 2014-06-03 Martin Jambor <mjambor@suse.cz>
23250
23251 PR ipa/61160
23252 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
23253 thunks.
23254
23255 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
23256
23257 PR tree-optimization/61328
23258 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
23259 initialization from find_bswap_or_nop_1.
23260 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
23261 in source_expr2 before using the size value the function sets. Also
23262 make use of init_symbolic_number () in both the old place and
23263 find_bswap_or_nop_load () to avoid reading uninitialized memory when
23264 doing recursion in the GIMPLE_BINARY_RHS case.
23265
23266 2014-06-03 Richard Biener <rguenther@suse.de>
23267
23268 PR tree-optimization/61383
23269 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
23270 stmts can't trap.
23271
23272 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
23273
23274 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
23275 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
23276 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
23277 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
23278 in this file.
23279 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
23280 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
23281 * system.h: ...here and make it unconditional.
23282 * target.def (conditional_register_usage): Mention
23283 define_register_constraint instead of old-style constraint macros.
23284 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
23285 * doc/tm.texi: Regenerate.
23286 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
23287 protected by !USE_MD_CONSTRAINTS.
23288 * config/frv/frv.md: Remove quote from old version of documentation.
23289 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
23290 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
23291 CONST_DOUBLE_OK_FOR_LETTER.
23292 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
23293
23294 2014-06-02 Andrew Pinski <apinski@cavium.com>
23295
23296 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
23297 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
23298 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
23299 file whose name depends on -mabi= and -mbig-endian.
23300 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
23301 Handle LP64 better and handle ilp32 too.
23302 (MULTILIB_OPTIONS): Delete.
23303 (MULTILIB_DIRNAMES): Delete.
23304
23305 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
23306
23307 * expr.h: Remove prototypes of functions defined in builtins.c.
23308 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
23309 Remove prototypes of functions defined in builtins.c.
23310 * builtins.h: Update prototype list to include all exported functions.
23311 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
23312 no_c99_libc_has_function): Move to targhooks.c
23313 (build_string_literal, build_call_expr_loc_array,
23314 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
23315 to tree.c.
23316 (expand_builtin_object_size, fold_builtin_object_size): Make static.
23317 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
23318 no_c99_libc_has_function): Relocate from builtins.c.
23319 * tree.c: Include builtins.h.
23320 (build_call_expr_loc_array, build_call_expr_loc_vec,
23321 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
23322 from builtins.c.
23323 * fold-const.h (fold_fma): Move prototype to builtins.h.
23324 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
23325 * asan.c: Include builtins.h.
23326 * cfgexpand.c: Likewise.
23327 * convert.c: Likewise.
23328 * emit-rtl.c: Likewise.
23329 * except.c: Likewise.
23330 * expr.c: Likewise.
23331 * fold-const.c: Likewise.
23332 * gimple-fold.c: Likewise.
23333 * gimple-ssa-strength-reduction.c: Likewise.
23334 * gimplify.c: Likewise.
23335 * ipa-inline.c: Likewise.
23336 * ipa-prop.c: Likewise.
23337 * lto-streamer-out.c: Likewise.
23338 * stmt.c: Likewise.
23339 * tree-inline.c: Likewise.
23340 * tree-object-size.c: Likewise.
23341 * tree-sra.c: Likewise.
23342 * tree-ssa-ccp.c: Likewise.
23343 * tree-ssa-forwprop.c: Likewise.
23344 * tree-ssa-loop-ivcanon.c: Likewise.
23345 * tree-ssa-loop-ivopts.c: Likewise.
23346 * tree-ssa-math-opts.c: Likewise.
23347 * tree-ssa-reassoc.c: Likewise.
23348 * tree-ssa-threadedge.c: Likewise.
23349 * tree-streamer-in.c: Likewise.
23350 * tree-vect-data-refs.c: Likewise.
23351 * tree-vect-patterns.c: Likewise.
23352 * tree-vect-stmts.c: Likewise.
23353 * config/aarch64/aarch64.c: Likewise.
23354 * config/alpha/alpha.c: Likewise.
23355 * config/arc/arc.c: Likewise.
23356 * config/arm/arm.c: Likewise.
23357 * config/avr/avr.c: Likewise.
23358 * config/bfin/bfin.c: Likewise.
23359 * config/c6x/c6x.c: Likewise.
23360 * config/cr16/cr16.c: Likewise.
23361 * config/cris/cris.c: Likewise.
23362 * config/epiphany/epiphany.c: Likewise.
23363 * config/fr30/fr30.c: Likewise.
23364 * config/frv/frv.c: Likewise.
23365 * config/h8300/h8300.c: Likewise.
23366 * config/i386/i386.c: Likewise.
23367 * config/i386/winnt.c: Likewise.
23368 * config/ia64/ia64.c: Likewise.
23369 * config/iq2000/iq2000.c: Likewise.
23370 * config/lm32/lm32.c: Likewise.
23371 * config/m32c/m32c.c: Likewise.
23372 * config/m32r/m32r.c: Likewise.
23373 * config/m68k/m68k.c: Likewise.
23374 * config/mcore/mcore.c: Likewise.
23375 * config/mep/mep.c: Likewise.
23376 * config/microblaze/microblaze.c: Likewise.
23377 * config/mips/mips.c: Likewise.
23378 * config/mmix/mmix.c: Likewise.
23379 * config/mn10300/mn10300.c: Likewise.
23380 * config/moxie/moxie.c: Likewise.
23381 * config/msp430/msp430.c: Likewise.
23382 * config/nds32/nds32.c: Likewise.
23383 * config/pa/pa.c: Likewise.
23384 * config/pdp11/pdp11.c: Likewise.
23385 * config/picochip/picochip.c: Likewise.
23386 * config/rl78/rl78.c: Likewise.
23387 * config/rs6000/rs6000.c: Likewise.
23388 * config/rx/rx.c: Likewise.
23389 * config/s390/s390.c: Likewise.
23390 * config/score/score.c: Likewise.
23391 * config/sh/sh.c: Likewise.
23392 * config/sparc/sparc.c: Likewise.
23393 * config/spu/spu.c: Likewise.
23394 * config/stormy16/stormy16.c: Likewise.
23395 * config/tilegx/tilegx.c: Likewise.
23396 * config/tilepro/tilepro.c: Likewise.
23397 * config/v850/v850.c: Likewise.
23398 * config/vax/vax.c: Likewise.
23399 * config/xtensa/xtensa.c: Likewise.
23400
23401 2014-06-02 Jeff Law <law@redhat.com>
23402
23403 PR rtl-optimization/61094
23404 * ree.c (combine_reaching_defs): Do not reextend an insn if it
23405 was marked as do_no_reextend. If a copy is needed to eliminate
23406 an extension, then mark it as do_not_reextend.
23407
23408 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
23409
23410 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
23411
23412 2014-06-02 Richard Henderson <rth@redhat.com>
23413
23414 PR target/61336
23415 * config/alpha/alpha.c (print_operand_address): Allow symbolic
23416 addresses inside asms. Use output_operand_lossage instead of
23417 gcc_unreachable.
23418
23419 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
23420
23421 PR target/61239
23422 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
23423 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
23424
23425 2014-06-02 Tom de Vries <tom@codesourcery.com>
23426
23427 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
23428 case that x has VOIDmode.
23429
23430 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
23431
23432 * varasm.c (copy_constant): Delete function.
23433 (build_constant_desc): Don't call it.
23434
23435 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23436
23437 PR target/61154
23438 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
23439 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
23440 with immediate_operand.
23441
23442 2014-06-02 Andreas Schwab <schwab@suse.de>
23443
23444 * config/ia64/ia64.c
23445 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
23446 pending_data_specs first.
23447
23448 2014-06-02 Richard Biener <rguenther@suse.de>
23449
23450 PR tree-optimization/61378
23451 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
23452 valueized_anything.
23453
23454 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
23455
23456 * config/i386/constraints.md (Bw): Rename from 'w'.
23457 (Bz): Rename from 'z'.
23458 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
23459
23460 2014-06-01 Kai Tietz <ktietz@redhat.com>
23461
23462 PR target/61377
23463 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
23464 * config/i386/i386.md (sibcall_insn_operand): Use Bs
23465 instead of m constraint.
23466
23467 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
23468
23469 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
23470 a separate alternative where the scratch operand 2 is marked as
23471 early clobber.
23472
23473 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
23474
23475 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
23476 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
23477 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
23478 and __builtins_arm_get_fpscr.
23479 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
23480 __builtins_arm_get_fpscr.
23481 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
23482 __builtins_arm_ldfpscr.
23483 (arm_atomic_assign_expand_fenv): New function.
23484 * config/arm/vfp.md (set_fpscr): New pattern.
23485 (get_fpscr) : Likewise.
23486 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
23487 VUNSPEC_SET_FPSCR.
23488 * doc/extend.texi (AARCH64 Built-in Functions) : Document
23489 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
23490
23491 2014-05-30 Jakub Jelinek <jakub@redhat.com>
23492
23493 * asan.c (report_error_func): Add SLOW_P argument, use
23494 BUILT_IN_ASAN_*_N if set.
23495 (build_check_stmt): Likewise.
23496 (instrument_derefs): If T has insufficient alignment,
23497 force same handling as for odd sizes.
23498
23499 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
23500 BUILT_IN_ASAN_REPORT_STORE_N): New.
23501 * asan.c (struct asan_mem_ref): Change access_size type to
23502 HOST_WIDE_INT.
23503 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
23504 update_mem_ref_hash_table): Likewise.
23505 (asan_mem_ref_hasher::hash): Hash in a HWI.
23506 (report_error_func): Change size_in_bytes argument to HWI.
23507 Use *_N builtins if size_in_bytes is larger than 16 or not power of
23508 two.
23509 (build_shadow_mem_access): New function.
23510 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
23511 Handle size_in_bytes not power of two or larger than 16.
23512 (instrument_derefs): Don't give up if size_in_bytes is not
23513 power of two or is larger than 16.
23514
23515 2014-05-30 Kai Tietz <ktietz@redhat.com>
23516
23517 PR target/60104
23518 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
23519 for sibling-tail-calls.
23520 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
23521 to its use.
23522 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
23523 (sibcall_insn_operand): Add check for sibcall_memory_operand.
23524
23525 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
23526
23527 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
23528 * config/avr/avr-tables.opt: Regenerate.
23529 * config/avr/t-multilib: Regenerate.
23530 * doc/avr-mmcu.texi: Regenerate.
23531
23532 2014-05-30 Ian Lance Taylor <iant@google.com>
23533
23534 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
23535 target("sse").
23536
23537 2014-05-30 Tom de Vries <tom@codesourcery.com>
23538
23539 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
23540 Redefine as true.
23541
23542 2014-05-30 Tom de Vries <tom@codesourcery.com>
23543
23544 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23545 * lra.c (initialize_lra_reg_info_element): Add init of
23546 actual_call_used_reg_set field.
23547 (lra): Call lra_create_live_ranges before lra_inheritance for
23548 -fuse-caller-save.
23549 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23550 -fuse-caller-save.
23551 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
23552 instead of call_used_reg_set for -fuse-caller-save.
23553 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23554
23555 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23556
23557 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
23558 to mov_imm.
23559 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
23560
23561 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
23562
23563 * ira.c (ira_get_dup_out_num): Check for output operands at
23564 the start of the loop. Handle cases where an included alternative
23565 follows an excluded one.
23566
23567 2014-05-29 Mike Stump <mikestump@comcast.net>
23568
23569 PR debug/61352
23570 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
23571 post ld passes when lto is used.
23572
23573 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
23574
23575 PR rtl-optimization/61325
23576 * lra-constraints.c (process_address): Rename to process_address_1.
23577 (process_address): New function.
23578
23579 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
23580
23581 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
23582 TYPES_BINOPV): New static data.
23583 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
23584 New builtin.
23585 * config/aarch64/aarch64-simd.md (aarch64_ext,
23586 aarch64_im_lane_boundsi): New patterns.
23587 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
23588 patterns for EXT.
23589 (aarch64_evpc_ext): New function.
23590
23591 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
23592
23593 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
23594 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
23595 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
23596 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
23597 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
23598
23599 2014-05-29 Tom de Vries <tom@codesourcery.com>
23600
23601 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
23602
23603 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
23604 Richard Sandiford <rdsandiford@googlemail.com>
23605
23606 * arm/iterators.md (shiftable_ops): New code iterator.
23607 (t2_binop0, arith_shift_insn): New code attributes.
23608 * arm/predicates.md (shift_nomul_operator): New predicate.
23609 * arm/arm.md (insn_enabled): Delete.
23610 (enabled): Remove insn_enabled test.
23611 (*arith_shiftsi): Delete. Replace with ...
23612 (*<arith_shift_insn>_multsi): ... new pattern.
23613 (*<arith_shift_insn>_shiftsi): ... new pattern.
23614 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
23615
23616 2014-05-29 Radovan Obradovic <robradovic@mips.com>
23617 Tom de Vries <tom@codesourcery.com>
23618
23619 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
23620 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
23621 clobber.
23622 (mips_split_call): Use POST_CALL_TMP_REG.
23623 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
23624
23625 2014-05-29 Tom de Vries <tom@codesourcery.com>
23626
23627 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
23628 with #ifdef STACK_REGS.
23629
23630 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
23631
23632 * varasm.c (get_variable_section): Walk aliases.
23633 (place_block_symbol): Walk aliases.
23634
23635 2014-05-28 Tom de Vries <tom@codesourcery.com>
23636
23637 Revert:
23638 2014-05-28 Tom de Vries <tom@codesourcery.com>
23639
23640 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23641 * lra.c (initialize_lra_reg_info_element): Add init of
23642 actual_call_used_reg_set field.
23643 (lra): Call lra_create_live_ranges before lra_inheritance for
23644 -fuse-caller-save.
23645 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23646 -fuse-caller-save.
23647 * lra-constraints.c (need_for_call_save_p): Use
23648 actual_call_used_reg_set instead of call_used_reg_set for
23649 -fuse-caller-save.
23650 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23651
23652 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
23653
23654 * doc/md.texi: Document that the % constraint character must
23655 be at the beginning of the string.
23656 * genoutput.c (validate_insn_alternatives): Check that '=',
23657 '+' and '%' only appear at the beginning of a constraint.
23658 * ira.c (commutative_constraint_p): Delete.
23659 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
23660 at the start of the string.
23661 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
23662 duplicate '='s.
23663 * config/arm/neon.md (bicdi3_neon): Likewise.
23664 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
23665 (slt_si, sltu_si): Likewise.
23666 * config/vax/vax.md (sbcdi3): Likewise.
23667 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
23668 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
23669 (mul64): Move '%' to beginning of constraint.
23670 * config/arm/arm.md (*xordi3_insn): Likewise.
23671 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
23672 (xorsi3): Likewise.
23673
23674 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
23675
23676 * doc/md.texi: Document the restrictions on the "enabled" attribute.
23677
23678 2014-05-28 Jason Merrill <jason@redhat.com>
23679
23680 PR c++/47202
23681 * cgraph.h (symtab_node::get_comdat_group_id): New.
23682 * cgraphunit.c (analyze_functions): Call it.
23683 * symtab.c (dump_symtab_node): Likewise.
23684 * tree.c (decl_comdat_group_id): New.
23685 * tree.h: Declare it.
23686 * lto-streamer-out.c (write_symbol): Use it.
23687 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
23688
23689 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
23690
23691 PR bootstrap/PR61146
23692 * wide-int.cc: Do not include longlong.h when compiling with clang.
23693
23694 2014-05-28 Richard Biener <rguenther@suse.de>
23695
23696 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
23697 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
23698 (vrp_visit_assignment_or_call): Print less vertical space.
23699 (vrp_visit_stmt): Likewise.
23700 (vrp_visit_phi_node): Likewise. For a PHI argument with
23701 VR_VARYING range consider recording it as copy.
23702
23703 2014-05-28 Richard Biener <rguenther@suse.de>
23704
23705 Revert
23706 2014-05-28 Richard Biener <rguenther@suse.de>
23707
23708 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23709
23710 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
23711
23712 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
23713 sufficiently aligned and an offset is used at the same time.
23714 (expand_expr_real_1): Likewise.
23715
23716 2014-05-28 Richard Biener <rguenther@suse.de>
23717
23718 PR middle-end/61045
23719 * fold-const.c (fold_comparison): When folding
23720 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
23721 the sign of the remaining constant operand stays the same.
23722
23723 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
23724
23725 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
23726 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
23727 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
23728 to the assembler.
23729 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
23730 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
23731 (m32bit-doubles) Likewise.
23732 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
23733 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
23734 option for RL78.
23735
23736 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23737
23738 * configure.ac ($gcc_cv_ld_clearcap): New test.
23739 * configure: Regenerate.
23740 * config.in: Regenerate.
23741 * config/sol2.opt (mclear-hwcap): New option.
23742 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
23743 * config/sol2-clearcap.map: Moved here from
23744 testsuite/gcc.target/i386/clearcap.map.
23745 * config/sol2-clearcapv2.map: Move here from
23746 gcc.target/i386/clearcapv2.map.
23747 * config/t-sol2 (install): Depend on install-clearcap-map.
23748 (install-clearcap-map): New target.
23749 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
23750 -mclear-hwcap.
23751
23752 2014-05-28 Richard Biener <rguenther@suse.de>
23753
23754 * hwint.h (*_HALF_WIDE_INT*): Move to ...
23755 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
23756 ... here and remove the rest.
23757 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23758
23759 2014-05-28 Richard Biener <rguenther@suse.de>
23760
23761 PR tree-optimization/61335
23762 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
23763 new range fails, drop to varying.
23764
23765 2014-05-28 Olivier Hainque <hainque@adacore.com>
23766
23767 * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
23768 (CPP_SPEC): Add entry for -mcpu=8548.
23769 * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
23770 * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
23771
23772 2014-05-28 Tom de Vries <tom@codesourcery.com>
23773
23774 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23775 * lra.c (initialize_lra_reg_info_element): Add init of
23776 actual_call_used_reg_set field.
23777 (lra): Call lra_create_live_ranges before lra_inheritance for
23778 -fuse-caller-save.
23779 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23780 -fuse-caller-save.
23781 * lra-constraints.c (need_for_call_save_p): Use
23782 actual_call_used_reg_set instead of call_used_reg_set for
23783 -fuse-caller-save.
23784 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23785
23786 2014-05-28 Radovan Obradovic <robradovic@mips.com>
23787 Tom de Vries <tom@codesourcery.com>
23788
23789 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
23790 to gccoptlist.
23791 (@item -fuse-caller-save): New item.
23792
23793 2014-05-28 Radovan Obradovic <robradovic@mips.com>
23794 Tom de Vries <tom@codesourcery.com>
23795
23796 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
23797 OPT_fuse_caller_save.
23798
23799 2014-05-28 Radovan Obradovic <robradovic@mips.com>
23800 Tom de Vries <tom@codesourcery.com>
23801
23802 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
23803 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
23804 get_call_reg_set_usage.
23805 * resource.c (mark_set_resources, mark_target_live_regs): Use
23806 get_call_reg_set_usage.
23807 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
23808 field.
23809 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
23810 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
23811 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23812 * ira-build.c (ira_create_allocno): Init
23813 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23814 (create_cap_allocno, propagate_allocno_info)
23815 (propagate_some_info_from_allocno)
23816 (copy_info_to_removed_store_destinations): Handle
23817 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23818 * ira-costs.c (ira_tune_allocno_costs): Use
23819 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
23820
23821 2014-05-28 Radovan Obradovic <robradovic@mips.com>
23822 Tom de Vries <tom@codesourcery.com>
23823
23824 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
23825 and function_used_regs_valid fields.
23826 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
23827 find_all_hard_reg_sets.
23828 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
23829 (get_call_reg_set_usage): New function.
23830 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
23831 * regs.h (get_call_reg_set_usage): Declare.
23832
23833 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
23834
23835 PR libgcc/61152
23836 * config/dbx.h (License): Add Runtime Library Exception.
23837 * config/newlib-stdint.h (License): Same.
23838 * config/rtems.h (License): Same
23839 * config/initfini-array.h (License): Same
23840 * config/v850/v850.h (License): Same.
23841 * config/v850/v850-opts.h (License): Same
23842 * config/v850/rtems.h (License): Same.
23843
23844 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
23845
23846 PR target/61044
23847 * doc/extend.texi (Local Labels): Note that label differences are
23848 not supported for AVR.
23849
23850 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
23851 Olivier Hainque <hainque@adacore.com>
23852
23853 * rtl.h (set_for_reg_notes): Declare.
23854 * emit-rtl.c (set_for_reg_notes): New function.
23855 (set_unique_reg_note): Use it.
23856 * optabs.c (add_equal_note): Likewise
23857
23858 2014-05-27 Andrew Pinski <apinski@cavium.com>
23859
23860 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
23861 Use <w> for the register in assembly template.
23862 (stack_protect_test): Use the mode of operands[0] for the result.
23863 (stack_protect_test_<mode>): Use <w> for the register
23864 in assembly template.
23865
23866 2014-05-27 DJ Delorie <dj@redhat.com>
23867
23868 * config/rx/rx.c (add_vector_labels): New.
23869 (rx_output_function_prologue): Call it.
23870 (rx_handle_func_attribute): Don't require empty arguments.
23871 (rx_handle_vector_attribute): New.
23872 (rx_attribute_table): Add "vector" attribute.
23873 * doc/extend.texi (interrupt, vector): Document new/changed
23874 RX-specific attributes.
23875
23876 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
23877
23878 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
23879
23880 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
23881 predicate to detect a negative quotient.
23882
23883 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
23884
23885 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
23886 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
23887 Add X - Y CMP 0 to X CMP Y transformation.
23888 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
23889
23890 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
23891
23892 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
23893 before printing.
23894
23895 2014-05-27 Steve Ellcey <sellcey@mips.com>
23896
23897 * config/mips/mips.c: Add include of cgraph.h.
23898
23899 2014-05-27 Richard Biener <rguenther@suse.de>
23900
23901 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
23902
23903 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
23904
23905 PR libgcc/61152
23906 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
23907 * config/arm/arm-cores.def (License): Same.
23908 * config/arm/arm-opts.h (License): Same.
23909 * config/arm/aout.h (License): Same.
23910 * config/arm/bpabi.h (License): Same.
23911 * config/arm/elf.h (License): Same.
23912 * config/arm/linux-elf.h (License): Same.
23913 * config/arm/linux-gas.h (License): Same.
23914 * config/arm/netbsd-elf.h (License): Same.
23915 * config/arm/uclinux-eabi.h (License): Same.
23916 * config/arm/uclinux-elf.h (License): Same.
23917 * config/arm/vxworks.h (License): Same.
23918
23919 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23920
23921 * config/arm/neon.md (neon_bswap<mode>): New pattern.
23922 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
23923 (arm_init_neon_builtins): Handle NEON_BSWAP.
23924 Define required type nodes.
23925 (arm_expand_neon_builtin): Handle NEON_BSWAP.
23926 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
23927 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
23928 * config/arm/iterators.md (VDQHSD): New mode iterator.
23929
23930 2014-05-27 Richard Biener <rguenther@suse.de>
23931
23932 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
23933 Try using literal operands when comparing value-ranges failed.
23934
23935 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
23936
23937 * ira.c (commutative_operand): Adjust for change to recog_data.
23938 [Missing from previous commit.]
23939
23940 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
23941
23942 * system.h (TEST_BIT): New macro.
23943 * recog.h (alternative_mask): New type.
23944 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
23945 (recog_data_d): Replace alternative_enabled_p array with
23946 enabled_alternatives.
23947 (target_recog): New structure.
23948 (default_target_recog, this_target_recog): Declare.
23949 (get_enabled_alternatives, recog_init): Likewise.
23950 * recog.c (default_target_recog, this_target_recog): New variables.
23951 (get_enabled_alternatives): New function.
23952 (extract_insn): Use it.
23953 (recog_init): New function.
23954 (preprocess_constraints, constrain_operands): Adjust for change to
23955 recog_data.
23956 * postreload.c (reload_cse_simplify_operands): Likewise.
23957 * reload.c (find_reloads): Likewise.
23958 * ira-costs.c (record_reg_classes): Likewise.
23959 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
23960 all alternatives after a disabled one would be skipped.
23961 (ira_implicitly_set_insn_hard_regs): Likewise.
23962 * ira.c (ira_setup_alts): Adjust for change to recog_data.
23963 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
23964 with enabled_alternatives.
23965 * lra.c (free_insn_recog_data): Update accordingly.
23966 (lra_update_insn_recog_data): Likewise.
23967 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
23968 * lra-constraints.c (process_alt_operands): Likewise. Handle
23969 only_alternative as part of the enabled mask.
23970 * target-globals.h (this_target_recog): Declare.
23971 (target_globals): Add a recog field.
23972 (restore_target_globals): Restore this_target_recog.
23973 * target-globals.c: Include recog.h.
23974 (default_target_globals): Initialize recog field.
23975 (save_target_globals): Likewise.
23976 * reginfo.c (reinit_regs): Call recog_init.
23977 * toplev.c (backend_init_target): Likewise.
23978
23979 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
23980
23981 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
23982 rather than any named insn's code.
23983
23984 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
23985
23986 PR libgcc/61152
23987 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
23988 * config/arm/arm-cores.def (License): Same.
23989
23990 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
23991
23992 * tree.h (decl_comdat_group): Declare.
23993 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
23994 * tree.c (decl_comdat_group): Here.
23995
23996 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
23997
23998 PR rtl-optimization/61222
23999 * combine.c (simplify_shift_const_1): When moving a PLUS outside
24000 the shift, truncate the PLUS operand to the result mode.
24001
24002 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
24003
24004 PR target/61271
24005 * config/i386/i386.c (ix86_rtx_costs)
24006 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
24007 Fix condition.
24008
24009 2014-05-26 Martin Jambor <mjambor@suse.cz>
24010
24011 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
24012 subreg uses.
24013
24014 2014-05-26 Richard Biener <rguenther@suse.de>
24015
24016 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
24017 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
24018 Provide specializations.
24019 (wi::int_traits <HOST_WIDE_INT>,
24020 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
24021
24022 2014-05-26 Alan Modra <amodra@gmail.com>
24023
24024 PR target/61098
24025 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
24026 params and return a bool. Remove dead code. Update comment.
24027 Assert we have a const_int source. Remove bogus code from
24028 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
24029 handling of constants > 2G and reg_equal note, from..
24030 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
24031 return value. Update comment. If we can, use a new pseudo
24032 for intermediate calculations.
24033 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
24034 prototype.
24035 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
24036 call to rs6000_emit_set_const in splitter.
24037 (movdi_internal64+2, +3): Likewise.
24038
24039 2014-05-26 Richard Biener <rguenther@suse.de>
24040
24041 * system.h: Define __STDC_FORMAT_MACROS before
24042 including inttypes.h.
24043 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
24044 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
24045 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
24046 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
24047 HOST_WIDEST_INT_C): Remove.
24048 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
24049 if C99 inttypes.h is not available.
24050 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
24051 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
24052 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
24053 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
24054 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
24055 (struct output_info): Likewise.
24056 (print_statistics): Adjust.
24057 (dump_bitmap_statistics): Likewise.
24058 * bt-load.c (migrate_btr_defs): Print with PRId64.
24059 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
24060 (MAX_SAFE_MULTIPLIER): Adjust.
24061 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
24062 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
24063 dump_cgraph_node): Likewise.
24064 * final.c (dump_basic_block_info): Likewise.
24065 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
24066 * gcov.c (format_gcov): Likewise.
24067 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
24068 for calculation.
24069 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
24070 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
24071 (inline_small_functions, dump_overall_stats, dump_inline_stats):
24072 Use PRId64 for dumping.
24073 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
24074 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
24075 (add_allocno_hard_regs): Adjust.
24076 * loop-doloop.c (doloop_modify): Print using PRId64.
24077 * loop-iv.c (inverse): Compute in uint64_t.
24078 (determine_max_iter, iv_number_of_iterations): Likewise.
24079 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
24080 Print using PRId64.
24081 * lto-streamer-out.c (write_symbol): Use uint64_t.
24082 * mcf.c (CAP_INFINITY): Use int64_t maximum.
24083 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
24084 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
24085 * modulo-sched.c (const_iteration_count): Use int64_t.
24086 (sms_schedule): Dump using PRId64.
24087 * predict.c (dump_prediction): Likewise.
24088 * pretty-print.h (pp_widest_integer): Remove.
24089 * profile.c (get_working_sets, is_edge_inconsistent,
24090 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
24091 * tree-pretty-print.c (pp_double_int): Remove case handling
24092 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
24093 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
24094 and adjust users.
24095 (pass_optimize_bswap::execute): Remove restriction on hosts.
24096 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
24097 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
24098 * tree.c (widest_int_cst_value): Remove.
24099 * tree.h (widest_int_cst_value): Likewise.
24100 * value-prof.c (dump_histogram_value): Print using PRId64.
24101 * gengtype.c (main): Also inject int64_t.
24102 * ggc-page.c (struct max_alignment): Use int64_t.
24103 * alloc-pool.c (struct allocation_object_def): Likewise.
24104 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
24105 for computation.
24106 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
24107 * doc/tm.texi: Regenerated.
24108 * gengtype-lex.l (IWORD): Handle [u]int64_t.
24109 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
24110 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
24111 mmix_output_register_setting): Use [u]int64_t in prototypes.
24112 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
24113 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
24114 mmix_output_octa, mmix_output_shifted_value): Adjust.
24115 (mmix_intval): Adjust. Remove unreachable case.
24116 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
24117
24118 2014-05-26 Richard Biener <rguenther@suse.de>
24119
24120 * configure.ac: Drop __int64 type check. Insist that we
24121 found uint64_t and int64_t.
24122 * hwint.h (HOST_BITS_PER___INT64): Remove.
24123 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
24124 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
24125 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
24126 (HOST_WIDEST_FAST_INT): Remove __int64 case.
24127 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
24128 for dst_q_src_df_rms_cdt.
24129 * configure: Regenerate.
24130 * config.in: Likewise.
24131
24132 2014-05-26 Michael Tautschnig <mt@debian.org>
24133
24134 PR target/61249
24135 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
24136 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
24137
24138 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
24139
24140 PR rtl-optimization/61278
24141 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
24142
24143 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
24144
24145 PR rtl-optimization/61220
24146 Part of PR rtl-optimization/61225
24147 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
24148 insn; skip split_edge for a block with only one successor.
24149
24150 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24151
24152 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
24153 for variables.
24154
24155 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24156
24157 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
24158 (update_vtable_references): New function.
24159 (function_and_variable_visibility): Rewrite also vtable initializers.
24160 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
24161
24162 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24163
24164 * ggc.h (ggc_grow): New function.
24165 * ggc-none.c (ggc_grow): New function.
24166 * ggc-page.c (ggc_grow): Likewise.
24167
24168 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24169
24170 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
24171 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
24172 comdat_can_be_unshared_p, cgraph_externally_visible_p,
24173 varpool_externally_visible_p, can_replace_by_local_alias,
24174 update_visibility_by_resolution_info, function_and_variable_visibility,
24175 pass_data_ipa_function_and_variable_visibility,
24176 make_pass_ipa_function_and_variable_visibility,
24177 whole_program_function_and_variable_visibility,
24178 pass_data_ipa_whole_program_visibility,
24179 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
24180 * cgraph.h (cgraph_local_node_p): Declare.
24181 * ipa-visibility.c: New file.
24182 * Makefile.in (OBJS): Add ipa-visiblity.o
24183
24184 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24185
24186 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
24187 that var decl is available.
24188
24189 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24190
24191 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
24192 symtab_node pointer.
24193 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
24194 (find_decls_types_r): Do not walk COMDAT_GROUP.
24195 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
24196 * varasm.c (make_decl_one_only): Use set_comdat_group;
24197 create node if needed.
24198 * ipa-inline-transform.c (save_inline_function_body): Update
24199 way we decl->symtab mapping.
24200 * symtab.c (symtab_hash, hash_node, eq_node
24201 symtab_insert_node_to_hashtable): Remove.
24202 (symtab_register_node): Update.
24203 (symtab_unregister_node): Update.
24204 (symtab_get_node): Reimplement as inline function.
24205 (symtab_add_to_same_comdat_group): Update.
24206 (symtab_dissolve_same_comdat_group_list): Update.
24207 (dump_symtab_base): Update.
24208 (verify_symtab_base): Update.
24209 (symtab_make_decl_local): Update.
24210 (fixup_same_cpp_alias_visibility): Update.
24211 (symtab_nonoverwritable_alias): Update.
24212 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
24213 * ipa.c (update_visibility_by_resolution_info): UPdate.
24214 * bb-reorder.c: Include cgraph.h
24215 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
24216 with comdat groups.
24217 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
24218 * cgraph.c (cgraph_get_create_node): Update.
24219 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
24220 and comdat_group_.
24221 (symtab_get_node): Make inline.
24222 (symtab_insert_node_to_hashtable): Remove.
24223 (symtab_can_be_discarded): Update.
24224 (decl_comdat_group): New function.
24225 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
24226 Update.
24227 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
24228 comdat group name.
24229 (read_comdat_group): New function.
24230 (input_node, input_varpool_node): Use it.
24231 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
24232 comdat groups.
24233 * mips.c (mips_start_unique_function): Likewise.
24234 (ix86_code_end): Likewise.
24235 (rs6000_code_end): Likweise.
24236 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
24237
24238 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24239
24240 * gengtype-state.c (fatal_reading_state): Bring offline.
24241 * optabs.c (widening_optab_handler): Bring offline.
24242 * optabs.h (widening_optab_handler): Likewise.
24243 * final.c (get_attr_length_1): Likewise.
24244
24245 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24246
24247 * sched-int.h (sd_iterator_cond): Manually tail recurse.
24248
24249 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24250
24251 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
24252 (ppc440-compare): Include shift with dot.
24253 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
24254 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
24255 without dot.
24256 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
24257 without dot.
24258 (e6500_sfx2): Include it.
24259 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
24260 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
24261 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
24262 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
24263 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
24264 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
24265 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
24266 *lshiftrt_internal1le, *lshiftrt_internal1be,
24267 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
24268 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
24269 *rotldi3_internal10le, *rotldi3_internal10be,
24270 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
24271 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
24272 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
24273 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
24274 define_insns): Use type "shift" in the appropriate alternatives.
24275
24276 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24277
24278 * config/rs6000/rs6000.md (type): Add "logical". Delete
24279 "fast_compare".
24280 (dot): Adjust comment.
24281 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
24282 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
24283 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
24284 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
24285 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
24286 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
24287 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
24288 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
24289
24290 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24291 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
24292 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24293 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24294 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24295 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24296 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24297 * config/rs6000/8540.md (ppc8540_su): Adjust.
24298 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24299 cell-cmp-microcoded): Adjust.
24300 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
24301 * config/rs6000/e500mc.md (e500mc_su): Adjust.
24302 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
24303 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
24304 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
24305 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24306 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
24307 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
24308 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
24309 Adjust.
24310 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
24311 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
24312 Adjust. Adjust comment.
24313 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24314 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
24315
24316 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24317
24318 * config/rs6000/rs6000.md (type): Add "add".
24319 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
24320 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
24321 define_insns): Use it.
24322 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
24323
24324 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24325 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
24326 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24327 * config/rs6000/601.md (ppc601-integer): Adjust.
24328 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24329 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24330 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24331 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24332 * config/rs6000/8540.md (ppc8540_su): Adjust.
24333 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24334 cell-cmp-microcoded): Adjust.
24335 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
24336 * config/rs6000/e500mc.md (e500mc_su): Adjust.
24337 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
24338 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
24339 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
24340 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24341 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
24342 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
24343 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
24344 Adjust.
24345 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
24346 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
24347 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24348 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
24349
24350 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24351
24352 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
24353 "delayed_compare", "var_delayed_compare".
24354 (var_shift): New attribute.
24355 (cell_micro): Adjust.
24356 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
24357 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
24358 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
24359 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
24360 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
24361 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
24362 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
24363 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
24364 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
24365 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
24366 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
24367 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
24368 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
24369 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
24370 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
24371 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
24372 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
24373 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
24374 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
24375 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
24376 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
24377 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
24378 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
24379 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24380 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24381
24382 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24383 * config/rs6000/440.md (ppc440-integer): Adjust.
24384 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24385 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
24386 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24387 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24388 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24389 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24390 * config/rs6000/8540.md (ppc8540_su): Adjust.
24391 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24392 cell-cmp-microcoded): Adjust.
24393 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
24394 * config/rs6000/e500mc.md (e500mc_su): Adjust.
24395 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
24396 e500mc64_delayed): Adjust.
24397 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
24398 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
24399 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24400 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
24401 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
24402 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
24403 power6-delayed-compare, power6-var-delayed-compare): Adjust.
24404 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
24405 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
24406 Adjust comment.
24407 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24408 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
24409
24410 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24411
24412 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
24413 (bits): New mode_attr.
24414 (idiv_ldiv): Delete mode_attr.
24415 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
24416 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24417 rs6000_adjust_priority, is_nonpipeline_insn,
24418 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24419
24420 * config/rs6000/40x.md (ppc403-idiv): Adjust.
24421 * config/rs6000/440.md (ppc440-idiv): Adjust.
24422 * config/rs6000/476.md (ppc476-idiv): Adjust.
24423 * config/rs6000/601.md (ppc601-idiv): Adjust.
24424 * config/rs6000/603.md (ppc603-idiv): Adjust.
24425 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
24426 ppc620-ldiv): Adjust.
24427 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
24428 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
24429 * config/rs6000/8540.md (ppc8540_divide): Adjust.
24430 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
24431 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
24432 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
24433 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
24434 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
24435 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
24436 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
24437 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
24438 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
24439 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
24440 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
24441 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
24442 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
24443 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
24444 * config/rs6000/titan.md (titan_fxu_div): Adjust.
24445
24446 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24447
24448 * config/rs6000/rs6000.md (type): Delete "insert_word",
24449 "insert_dword". Add "insert".
24450 (size): Update comment.
24451 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24452 insn_must_be_first_in_group): Adjust.
24453 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
24454 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
24455 *insvsi_internal6, insvdi_internal): Adjust.
24456
24457 * config/rs6000/40x.md (ppc403-integer): Adjust.
24458 * config/rs6000/440.md (ppc440-integer): Adjust.
24459 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
24460 * config/rs6000/601.md (ppc601-integer): Adjust.
24461 * config/rs6000/603.md (ppc603-integer): Adjust.
24462 * config/rs6000/6xx.md (ppc604-integer): Adjust.
24463 * config/rs6000/7450.md (ppc7450-integer): Adjust.
24464 * config/rs6000/7xx.md (ppc750-integer): Adjust.
24465 * config/rs6000/8540.md (ppc8540_su): Adjust.
24466 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
24467 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
24468 * config/rs6000/e500mc.md (e500mc_su): Adjust.
24469 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
24470 * config/rs6000/e5500.md (e5500_sfx): Adjust.
24471 * config/rs6000/e6500.md (e6500_sfx): Adjust.
24472 * config/rs6000/mpc.md (mpccore-integer): Adjust.
24473 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
24474 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
24475 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
24476 * config/rs6000/power7.md (power7-integer): Adjust.
24477 * config/rs6000/power8.md (power8-1cyc): Adjust.
24478 * config/rs6000/rs64.md (rs64a-integer): Adjust.
24479 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
24480
24481 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24482
24483 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
24484 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
24485 (size): New attribute.
24486 (dot): New attribute.
24487 (cell_micro): Adjust.
24488 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
24489 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
24490 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
24491 umuldi3_highpart): Adjust.
24492 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24493 rs6000_adjust_priority, is_nonpipeline_insn,
24494 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24495
24496 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
24497 ppc405-imul3): Adjust.
24498 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
24499 * config/rs6000/476.md (ppc476-imul): Adjust.
24500 * config/rs6000/601.md (ppc601-imul): Adjust.
24501 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
24502 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
24503 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
24504 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
24505 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
24506 Adjust.
24507 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
24508 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
24509 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
24510 cell-imul): Adjust.
24511 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
24512 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
24513 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
24514 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
24515 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
24516 * config/rs6000/mpc.md (mpccore-imul): Adjust.
24517 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
24518 power4-lmul, power4-imul, power4-imul3): Adjust.
24519 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
24520 power5-lmul, power5-imul, power5-imul3): Adjust.
24521 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
24522 power6-lmul, power6-imul, power6-imul3): Adjust.
24523 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
24524 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
24525
24526 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
24527 rs64a-lmul): Adjust.
24528 * config/rs6000/titan.md (titan_imul): Adjust.
24529
24530 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24531
24532 * config/rs6000/rs6000.md (type): Add new value "halfmul".
24533 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
24534 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
24535 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
24536 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
24537 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
24538 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
24539 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
24540 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
24541 * config/rs6000/titan.md: Delete nonsensical comment.
24542 (titan_imul): Add type imul3.
24543 (titan_mulhw): Remove type imul3; add type halfmul.
24544
24545 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24546
24547 * config/rs6000/rs6000.md (type): Reorder, reformat.
24548
24549 2014-05-23 Martin Jambor <mjambor@suse.cz>
24550
24551 PR tree-optimization/53787
24552 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
24553 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
24554 analysis_done, update all uses.
24555 * ipa-prop.c: Include domwalk.h
24556 (param_analysis_info): Removed.
24557 (param_aa_status): New type.
24558 (ipa_bb_info): Likewise.
24559 (func_body_info): Likewise.
24560 (ipa_get_bb_info): New function.
24561 (aa_overwalked): Likewise.
24562 (find_dominating_aa_status): Likewise.
24563 (parm_bb_aa_status_for_bb): Likewise.
24564 (parm_preserved_before_stmt_p): Changed to use new param AA info.
24565 (load_from_unmodified_param): Accept func_body_info as a parameter
24566 instead of parms_ainfo.
24567 (parm_ref_data_preserved_p): Changed to use new param AA info.
24568 (parm_ref_data_pass_through_p): Likewise.
24569 (ipa_load_from_parm_agg_1): Likewise. Update callers.
24570 (compute_complex_assign_jump_func): Changed to use new param AA info.
24571 (compute_complex_ancestor_jump_func): Likewise.
24572 (ipa_compute_jump_functions_for_edge): Likewise.
24573 (ipa_compute_jump_functions): Removed.
24574 (ipa_compute_jump_functions_for_bb): New function.
24575 (ipa_analyze_indirect_call_uses): Likewise, moved variable
24576 declarations down.
24577 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
24578 and info, moved variable declarations down.
24579 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
24580 node and info.
24581 (ipa_analyze_stmt_uses): Likewise.
24582 (ipa_analyze_params_uses): Removed.
24583 (ipa_analyze_params_uses_in_bb): New function.
24584 (ipa_analyze_controlled_uses): Likewise.
24585 (free_ipa_bb_info): Likewise.
24586 (analysis_dom_walker): New class.
24587 (ipa_analyze_node): Handle node-specific forbidden analysis,
24588 initialize and free func_body_info, use dominator walker.
24589 (ipcp_modif_dom_walker): New class.
24590 (ipcp_transform_function): Create and free func_body_info, use
24591 ipcp_modif_dom_walker, moved a lot of functionality there.
24592
24593 2014-05-23 Marek Polacek <polacek@redhat.com>
24594 Jakub Jelinek <jakub@redhat.com>
24595
24596 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
24597 * gcc.c (sanitize_spec_function): Likewise.
24598 * convert.c (convert_to_integer): Include "ubsan.h". Add
24599 floating-point to integer instrumentation.
24600 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
24601 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
24602 SANITIZE_NONDEFAULT.
24603 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
24604 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
24605 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
24606 * ubsan.c: Include "realmpfr.h" and "dfp.h".
24607 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
24608 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
24609 float/double/long double.
24610 (ubsan_instrument_float_cast): New function.
24611 * ubsan.h (ubsan_instrument_float_cast): Declare.
24612
24613 2014-05-23 Jiong Wang <jiong.wang@arm.com>
24614
24615 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
24616 predicate.
24617 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
24618 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
24619 Adjust for tailcalling through registers.
24620 * config/aarch64/aarch64.h (enum reg_class): New caller save
24621 register class.
24622 (REG_CLASS_NAMES): Likewise.
24623 (REG_CLASS_CONTENTS): Likewise.
24624 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
24625 Allow tailcalling without decls.
24626
24627 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
24628
24629 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
24630 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
24631
24632 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
24633 gsi, and variables v_* to v*.
24634
24635 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
24636
24637 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
24638
24639 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
24640
24641 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
24642 * omp-low.c: Update accordingly.
24643
24644 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
24645 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
24646 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
24647 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
24648 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
24649 GF_OMP_TARGET_KIND_UPDATE.
24650
24651 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
24652 Explicitly enumerate the expected region types.
24653
24654 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
24655
24656 PR other/56955
24657 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
24658 documentation; the old documentation didn't clearly state the
24659 constraints on the contents of the pointed-to storage.
24660
24661 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24662
24663 Fix bootstrap error on ia64
24664 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
24665 Return default value.
24666
24667 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
24668
24669 PR tree-optimization/54733
24670 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
24671 (CMPNOP): Define.
24672 (find_bswap_or_nop_load): New.
24673 (find_bswap_1): Renamed to ...
24674 (find_bswap_or_nop_1): This. Also add support for memory source.
24675 (find_bswap): Renamed to ...
24676 (find_bswap_or_nop): This. Also add support for memory source and
24677 detection of bitwise operations equivalent to load in target
24678 endianness.
24679 (execute_optimize_bswap): Likewise. Also move its leading comment back
24680 in place and split statement transformation into ...
24681 (bswap_replace): This.
24682
24683 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
24684
24685 PR rtl-optimization/61215
24686 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
24687 simplify_gen_subreg until final substitution.
24688
24689 2014-05-23 Alan Modra <amodra@gmail.com>
24690
24691 PR target/61231
24692 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
24693 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
24694 Use "Y" constraint rather than "m".
24695
24696 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
24697
24698 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
24699 define.
24700 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
24701 New function declaration.
24702 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
24703 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
24704 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
24705 (aarch64_init_builtins) : Initialize builtins
24706 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24707 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24708 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
24709 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
24710 and __builtins_aarch64_set_fpsr.
24711 (aarch64_atomic_assign_expand_fenv): New function.
24712 * config/aarch64/aarch64.md (set_fpcr): New pattern.
24713 (get_fpcr) : Likewise.
24714 (set_fpsr) : Likewise.
24715 (get_fpsr) : Likewise.
24716 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
24717 and UNSPECV_SET_FPSR.
24718 * doc/extend.texi (AARCH64 Built-in Functions) : Document
24719 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24720 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24721
24722 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
24723
24724 PR rtl-optimization/60969
24725 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
24726 constraints. Set up mem cost for NO_REGS case.
24727
24728 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
24729
24730 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
24731
24732 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
24733
24734 * config/darwin.c: Include "lto-section-names.h".
24735 (LTO_SEGMENT_NAME): Don't define.
24736 * config/i386/winnt.c: Include "lto-section-names.h".
24737 * lto-streamer.c: Include "lto-section-names.h".
24738 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
24739 * lto-wrapper.c: Include "lto-section-names.h".
24740 (LTO_SECTION_NAME_PREFIX): Don't define.
24741 * lto-section-names.h: New file.
24742 * cgraphunit.c: Include "lto-section-names.h".
24743
24744 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
24745
24746 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
24747
24748 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
24749
24750 PR target/61208
24751 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
24752
24753 2014-05-22 Nick Clifton <nickc@redhat.com>
24754
24755 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
24756
24757 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
24758
24759 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
24760 -> (T)A transformation to integer types.
24761
24762 2014-05-22 Teresa Johnson <tejohnson@google.com>
24763
24764 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
24765 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
24766 (gcov_rewrite): Use gcov_nonruntime_assert.
24767 (gcov_open): Ditto.
24768 (gcov_write_words): Ditto.
24769 (gcov_write_length): Ditto.
24770 (gcov_read_words): Use gcov_nonruntime_assert, and remove
24771 gcc_assert from IN_LIBGCOV code.
24772 (gcov_read_summary): Use gcov_error to flag profile corruption.
24773 (gcov_sync): Use gcov_nonruntime_assert.
24774 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
24775 (gcov_histo_index): Use gcov_nonruntime_assert.
24776 (static void gcov_histogram_merge): Ditto.
24777 (compute_working_sets): Ditto.
24778 * gcov-io.h (gcov_nonruntime_assert): Define.
24779 (gcov_error): Define for !IN_LIBGCOV
24780
24781 2014-05-22 Richard Biener <rguenther@suse.de>
24782
24783 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
24784 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
24785 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
24786 and deallocation site.
24787 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24788 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
24789 passing through the incoming points-to set.
24790 (handle_lhs_call): Use flags argument instead of recomputing it.
24791 (find_func_aliases_for_call): Call handle_lhs_call with proper
24792 call return flags.
24793
24794 2014-05-22 Jakub Jelinek <jakub@redhat.com>
24795
24796 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
24797 all padding bits in REAL_VALUE_TYPE are cleared.
24798
24799 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24800
24801 Cleanup and improve multipass_dfa_lookahead_guard
24802 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
24803 (core2i7_first_cycle_multipass_begin,)
24804 (core2i7_first_cycle_multipass_issue,)
24805 (core2i7_first_cycle_multipass_backtrack): Update signature.
24806 * config/ia64/ia64.c
24807 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
24808 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
24809 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
24810 hook definition.
24811 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
24812 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
24813 values.
24814 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
24815 return values.
24816 * doc/tm.texi: Regenerate.
24817 * doc/tm.texi.in
24818 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
24819 * haifa-sched.c (ready_try): Make signed to allow negative values.
24820 (rebug_ready_list_1): Update.
24821 (choose_ready): Simplify.
24822 (sched_extend_ready_list): Update.
24823
24824 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24825
24826 Remove IA64 speculation tweaking flags
24827 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
24828 speculation tuning flags.
24829 (msched-prefer-non-data-spec-insns,)
24830 (msched-prefer-non-control-spec-insns): Obsolete options.
24831 * haifa-sched.c (choose_ready): Remove handling of
24832 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24833 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
24834 and PREFER_NON_DATA_SPEC.
24835 * sel-sched.c (process_spec_exprs): Remove handling of
24836 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24837
24838 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24839
24840 Improve scheduling debug output
24841 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
24842 (advance_one_cycle): Update.
24843 (schedule_insn, queue_to_ready): Add debug printouts.
24844 (debug_ready_list_1): New static function.
24845 (debug_ready_list): Update.
24846 (max_issue): Add debug printouts.
24847 (dump_insn_stream): New static function.
24848 (schedule_block): Use it. Also better indent printouts.
24849
24850 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24851
24852 Fix sched_insn debug counter
24853 * haifa-sched.c (schedule_insn): Update.
24854 (struct haifa_saved_data): Add nonscheduled_insns_begin.
24855 (save_backtrack_point, restore_backtrack_point): Update.
24856 (first_nonscheduled_insn): New static function.
24857 (queue_to_ready, choose_ready): Use it.
24858 (schedule_block): Init nonscheduled_insns_begin.
24859 (sched_emit_insn): Update.
24860
24861
24862 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
24863
24864 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
24865 to GENERAL_REGS.
24866 (aarch64_secondary_reload) : LikeWise.
24867 (aarch64_class_max_nregs) : Remove CORE_REGS.
24868 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
24869 (REG_CLASS_NAMES) : Likewise.
24870 (REG_CLASS_CONTENTS) : LikeWise.
24871 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
24872
24873 2014-05-21 Guozhi Wei <carrot@google.com>
24874
24875 PR target/61202
24876 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
24877 constraint.
24878 (vqdmulhq_n_s16): Likewise.
24879
24880 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
24881
24882 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
24883
24884 2014-05-21 Marek Polacek <polacek@redhat.com>
24885
24886 PR sanitizer/61272
24887 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
24888
24889 2014-05-21 Martin Jambor <mjambor@suse.cz>
24890
24891 * doc/invoke.texi (Optimize Options): Document parameters
24892 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
24893 ipa-cp-array-index-hint-bonus.
24894
24895 2014-05-21 Mark Wielaard <mjw@redhat.com>
24896
24897 PR debug/16063
24898 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
24899 version >= 3 or not strict DWARF.
24900 * langhooks.h (struct lang_hooks_for_types): Add
24901 enum_underlying_base_type.
24902 * langhooks.c (lhd_enum_underlying_base_type): New function.
24903 * gcc/langhooks.h (struct lang_hooks_for_types): Add
24904 enum_underlying_base_type.
24905 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
24906 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
24907 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
24908
24909 2014-05-21 Richard Biener <rguenther@suse.de>
24910
24911 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
24912
24913 2014-05-21 John Marino <gnugcc@marino.st>
24914
24915 * config.gcc (*-*-dragonfly*): New target.
24916 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
24917 * configure: Regenerate.
24918 * config/dragonfly-stdint.h: New.
24919 * config/dragonfly.h: New.
24920 * config/dragonfly.opt: New.
24921 * config/i386/dragonfly.h: New.
24922 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
24923
24924 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
24925
24926 * tree.def (VOID_CST): New.
24927 * tree-core.h (TI_VOID): New.
24928 * tree.h (void_node): New.
24929 * tree.c (tree_node_structure_for_code, tree_code_size)
24930 (iterative_hash_expr): Handle VOID_CST.
24931 (build_common_tree_nodes): Initialize void_node.
24932
24933 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
24934
24935 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
24936 functions.
24937 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
24938
24939 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
24940 more places.
24941
24942 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
24943 flag_reorder_blocks_and_partition.
24944 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
24945
24946 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
24947
24948 PR target/54236
24949 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
24950 constraints.
24951 (*addc_r_t): Add new insn_and_split.
24952
24953 2014-05-21 Jakub Jelinek <jakub@redhat.com>
24954
24955 PR middle-end/61252
24956 * omp-low.c (handle_simd_reference): New function.
24957 (lower_rec_input_clauses): Use it. Defer adding reference
24958 initialization even for reduction without placeholder if in simd,
24959 handle it properly later on.
24960
24961 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
24962
24963 PR tree-optimization/60899
24964 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
24965 assume all static symbols will have definition wile parsing and
24966 check the do have definition later in compilation; check that
24967 variable referring symbol will be output before concluding that
24968 reference is safe; be conservative for referring local statics;
24969 be more precise about when comdat is output in other partition.
24970
24971 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
24972
24973 PR bootstrap/60984
24974 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
24975 parameter.
24976 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
24977 (ipa_inline): Loop inline_to_all_callers until no more aliases
24978 are removed.
24979
24980 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
24981
24982 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
24983 set writeonly flag only for vars actually written to.
24984
24985 2014-05-20 Dehao Chen <dehao@google.com>
24986
24987 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
24988 and callee count to get clone count.
24989 * tree-inline.c (expand_call_inline): Use callee count instead of bb
24990 count in copy_body.
24991
24992 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
24993
24994 PR rtl-optimization/61243
24995 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
24996
24997 2014-05-20 Xinliang David Li <davidxl@google.com>
24998
24999 * cgraphunit.c (walk_polymorphic_call_targets): Add
25000 dbgcnt and fopt-info support.
25001 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
25002 * ipa-devirt.c (ipa_devirt): Ditto.
25003 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
25004 * ipa.c (walk_polymorphic_call_targets): Ditto.
25005 * gimple-fold.c (fold_gimple_assign): Ditto.
25006 (gimple_fold_call): Ditto.
25007 * dbgcnt.def: New counter.
25008
25009 2014-05-20 DJ Delorie <dj@redhat.com>
25010
25011 * config/msp430/msp430.md (split): Don't allow subregs when
25012 splitting SImode adds.
25013 (andneghi): Fix subtraction logic.
25014 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
25015
25016 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
25017
25018 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
25019 symbols.
25020 * except.c (switch_to_exception_section, resolve_unique_section,
25021 get_named_text_section, default_function_rodata_section,
25022 align_variable, get_block_for_decl, default_section_type_flags):
25023 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
25024 * symtab.c (symtab_add_to_same_comdat_group,
25025 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
25026 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
25027 Likewise.
25028 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
25029 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
25030 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
25031 (c6x_function_in_section_p): Likewise.
25032 * config/darwin.c (machopic_select_section): Likewise.
25033 * config/arm/arm.c (arm_function_in_section_p): Likewise.
25034 * config/mips/mips.c (mips_function_rodata_section): Likewise.
25035 * config/mep/mep.c (mep_select_section): LIkewise.
25036 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
25037
25038 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
25039
25040 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
25041 EH region of calls to pure functions that can throw an exception.
25042 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
25043 (copy_reference_ops_from_call): Also copy the EH region of the call if
25044 it can throw an exception.
25045
25046 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25047
25048 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
25049 nested VEC_SELECTs that are inverses of each other.
25050
25051 2014-05-20 Richard Biener <rguenther@suse.de>
25052
25053 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
25054 (extract_and_process_scc_for_name): not here.
25055 (cond_dom_walker::before_dom_children): Only process
25056 stmts that end the BB in interesting ways.
25057 (run_scc_vn): Mark param uses as visited.
25058
25059 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25060
25061 * config/arm/arm.md (arith_shiftsi): Do not predicate for
25062 arm_restrict_it.
25063
25064 2014-05-20 Nick Clifton <nickc@redhat.com>
25065
25066 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
25067 (msp430_gimplify_va_arg_expr): New function.
25068 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
25069
25070 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
25071 operand 0 in order to prevent confusion about the number of
25072 registers involved.
25073
25074 2014-05-20 Richard Biener <rguenther@suse.de>
25075
25076 PR tree-optimization/61221
25077 * tree-ssa-pre.c (el_to_update): Remove.
25078 (eliminate_dom_walker::before_dom_children): Handle released
25079 VDEFs by value-numbering them to the associated VUSE. Update
25080 stmt immediately for substituted call address.
25081 (eliminate): Remove delayed stmt updating code.
25082 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
25083 possibly late re-numbered vuses.
25084 (vn_reference_lookup_2): Adjust.
25085 (vn_reference_lookup_pieces): Likewise.
25086 (vn_reference_lookup): Likewise.
25087
25088 2014-05-20 Richard Biener <rguenther@suse.de>
25089
25090 * config.gcc: Remove need_64bit_hwint.
25091 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
25092 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
25093 it to be true.
25094 * config.in: Regenerate.
25095 * configure: Likewise.
25096
25097 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
25098
25099 * doc/extend.texi: Create Label Attributes section,
25100 move all label attributes into it and reference it.
25101
25102 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
25103
25104 * arm.c (thumb1_reorg): When scanning backwards skip anything
25105 that's not a proper insn.
25106
25107 2014-05-19 Richard Biener <rguenther@suse.de>
25108
25109 PR tree-optimization/61221
25110 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
25111 Do nothing for unreachable blocks.
25112 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
25113 Improve unreachability detection.
25114
25115 2014-05-19 Richard Biener <rguenther@suse.de>
25116
25117 PR tree-optimization/61209
25118 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
25119
25120 2014-05-19 Nick Clifton <nickc@redhat.com>
25121
25122 * except.c (init_eh): Fix computation of builtin setjmp buffer
25123 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
25124
25125 2014-05-19 Richard Biener <rguenther@suse.de>
25126
25127 PR tree-optimization/61184
25128 * tree-vrp.c (is_negative_overflow_infinity): Use
25129 TREE_OVERFLOW_P and do that check first.
25130 (is_positive_overflow_infinity): Likewise.
25131 (is_overflow_infinity): Likewise.
25132 (vrp_operand_equal_p): Properly treat operands with
25133 differing overflow as not equal.
25134
25135 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
25136
25137 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
25138 shift simplification where it was intended.
25139
25140 2014-05-19 Christian Bruel <christian.bruel@st.com>
25141
25142 PR target/61195
25143 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
25144
25145 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
25146
25147 PR target/61084
25148 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
25149 than wide_int.
25150
25151 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
25152
25153 * reg-notes.def (CROSSING_JUMP): Likewise.
25154 * rtl.h (rtx_def): Update comment for jump flag.
25155 (CROSSING_JUMP_P): Define.
25156 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
25157 of a REG_CROSSING_JUMP note.
25158 * cfghooks.c (tidy_fallthru_edges): Likewise.
25159 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
25160 * emit-rtl.c (try_split): Likewise.
25161 * haifa-sched.c (sched_create_recovery_edges): Likewise.
25162 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
25163 * jump.c (redirect_jump_2): Likewise.
25164 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
25165 (relax_delay_slots): Likewise.
25166 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
25167 (bbit_di): Likewise.
25168 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
25169 * config/sh/sh.md (jump_compact): Likewise.
25170 * bb-reorder.c (rotate_loop): Likewise.
25171 (pass_duplicate_computed_gotos::execute): Likewise.
25172 (add_reg_crossing_jump_notes): Rename to...
25173 (update_crossing_jump_flags): ...this.
25174 (pass_partition_blocks::execute): Update accordingly.
25175
25176 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
25177
25178 * tree.h: Remove extraneous template <>.
25179
25180 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
25181
25182 * ipa.c (symtab_remove_unreachable_nodes): Remove
25183 symbol from comdat group if its body was eliminated.
25184 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
25185 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
25186 (symtab_unregister_node): ... this one.
25187 (verify_symtab_base): More strict checking of comdats.
25188 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
25189
25190 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
25191
25192 * tree-pass.h (make_pass_ipa_comdats): New pass.
25193 * timevar.def (TV_IPA_COMDATS): New timevar.
25194 * passes.def (pass_ipa_comdats): Add.
25195 * Makefile.in (OBJS): Add ipa-comdats.o
25196 * ipa-comdats.c: New file.
25197
25198 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
25199
25200 * ipa.c (update_visibility_by_resolution_info): New function.
25201 (function_and_variable_visibility): Use it.
25202
25203 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
25204
25205 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
25206 New functions.
25207 (FOR_EACH_DEFINED_SYMBOL): New macro.
25208 (varpool_first_static_initializer, varpool_next_static_initializer,
25209 varpool_first_defined_variable, varpool_next_defined_variable):
25210 Fix comments.
25211 (symtab_in_same_comdat_p): Correctly deal with inline functions.
25212
25213 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
25214
25215 * ggc-page.c (ggc_handle_finalizers): Add comment.
25216
25217 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
25218
25219 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
25220 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
25221 (ggc_internal_cleared_alloc): Likewise.
25222 * ggc-page.c (finalizer): New class.
25223 (vec_finalizer): Likewise.
25224 (globals::finalizers): New member.
25225 (globals::vec_finalizers): Likewise.
25226 (ggc_internal_alloc): Record the finalizer if any for the block being
25227 allocated.
25228 (ggc_handle_finalizers): New function.
25229 (ggc_collect): Call ggc_handle_finalizers.
25230 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
25231 finalizer.
25232 (ggc_internal_cleared_alloc): Likewise.
25233 (finalize): New function.
25234 (need_finalization_p): Likewise.
25235 (ggc_alloc): Install the type's destructor as the finalizer if it
25236 might do something.
25237 (ggc_cleared_alloc): Likewise.
25238 (ggc_vec_alloc): Likewise.
25239 (ggc_cleared_vec_alloc): Likewise.
25240
25241 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
25242
25243 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
25244
25245 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
25246
25247 * alias.c (record_alias_subset): Adjust.
25248 * bitmap.c (bitmap_element_allocate): Likewise.
25249 (bitmap_gc_alloc_stat): Likewise.
25250 * cfg.c (init_flow): Likewise.
25251 (alloc_block): Likewise.
25252 (unchecked_make_edge): Likewise.
25253 * cfgloop.c (alloc_loop): Likewise.
25254 (flow_loops_find): Likewise.
25255 (rescan_loop_exit): Likewise.
25256 * cfgrtl.c (init_rtl_bb_info): Likewise.
25257 * cgraph.c (insert_new_cgraph_node_version): Likewise.
25258 (cgraph_allocate_node): Likewise.
25259 (cgraph_create_edge_1): Likewise.
25260 (cgraph_allocate_init_indirect_info): Likewise.
25261 * cgraphclones.c (cgraph_clone_edge): Likewise.
25262 * cgraphunit.c (add_asm_node): Likewise.
25263 (init_lowered_empty_function): Likewise.
25264 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
25265 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25266 (alpha_use_linkage): Likewise.
25267 * config/arc/arc.c (arc_init_machine_status): Likewise.
25268 * config/arm/arm.c (arm_init_machine_status): Likewise.
25269 * config/avr/avr.c (avr_init_machine_status): Likewise.
25270 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25271 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
25272 * config/cris/cris.c (cris_init_machine_status): Likewise.
25273 * config/darwin.c (machopic_indirection_name): Likewise.
25274 (darwin_build_constant_cfstring): Likewise.
25275 (darwin_enter_string_into_cfstring_table): Likewise.
25276 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
25277 * config/frv/frv.c (frv_init_machine_status): Likewise.
25278 * config/i386/i386.c (get_dllimport_decl): Likewise.
25279 (ix86_init_machine_status): Likewise.
25280 (assign_386_stack_local): Likewise.
25281 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25282 (i386_pe_maybe_record_exported_symbol): Likewise.
25283 (i386_pe_record_stub): Likewise.
25284 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25285 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25286 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25287 (m32c_note_pragma_address): Likewise.
25288 * config/mep/mep.c (mep_init_machine_status): Likewise.
25289 (mep_note_pragma_flag): Likewise.
25290 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25291 (mips16_local_alias): Likewise.
25292 (mips_init_machine_status): Likewise.
25293 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25294 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25295 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
25296 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
25297 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
25298 * config/pa/pa.c (pa_init_machine_status): Likewise.
25299 (pa_get_deferred_plabel): Likewise.
25300 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
25301 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25302 (rs6000_init_machine_status): Likewise.
25303 (output_toc): Likewise.
25304 * config/s390/s390.c (s390_init_machine_status): Likewise.
25305 * config/score/score.c (score_output_external): Likewise.
25306 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25307 * config/spu/spu.c (spu_init_machine_status): Likewise.
25308 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
25309 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
25310 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25311 * coverage.c (coverage_end_function): Likewise.
25312 * dbxout.c (dbxout_init): Likewise.
25313 * doc/gty.texi: Don't mention variable_size attribute.
25314 * dwarf2cfi.c (new_cfi): Adjust.
25315 (new_cfi_row): Likewise.
25316 (copy_cfi_row): Likewise.
25317 (create_cie_data): Likewise.
25318 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
25319 (new_loc_descr): Likewise.
25320 (find_AT_string_in_table): Likewise.
25321 (add_addr_table_entry): Likewise.
25322 (new_die): Likewise.
25323 (add_var_loc_to_decl): Likewise.
25324 (clone_die): Likewise.
25325 (clone_as_declaration): Likewise.
25326 (break_out_comdat_types): Likewise.
25327 (new_loc_list): Likewise.
25328 (add_loc_descr_to_each): Likewise.
25329 (add_location_or_const_value_attribute): Likewise.
25330 (add_linkage_name): Likewise.
25331 (lookup_filename): Likewise.
25332 (dwarf2out_var_location): Likewise.
25333 (new_line_info_table): Likewise.
25334 (dwarf2out_init): Likewise.
25335 (mem_loc_descriptor): Likewise.
25336 (loc_descriptor): Likewise.
25337 (add_const_value_attribute): Likewise.
25338 (tree_add_const_value_attribute): Likewise.
25339 (comp_dir_string): Likewise.
25340 (dwarf2out_vms_debug_main_pointer): Likewise.
25341 (string_cst_pool_decl): Likewise.
25342 * emit-rtl.c (set_mem_attrs): Likewise.
25343 (get_reg_attrs): Likewise.
25344 (start_sequence): Likewise.
25345 (init_emit): Likewise.
25346 (init_emit_regs): Likewise.
25347 * except.c (init_eh_for_function): Likewise.
25348 (gen_eh_region): Likewise.
25349 (gen_eh_region_catch): Likewise.
25350 (gen_eh_landing_pad): Likewise.
25351 (add_call_site): Likewise.
25352 * function.c (add_frame_space): Likewise.
25353 (insert_temp_slot_address): Likewise.
25354 (assign_stack_temp_for_type): Likewise.
25355 (get_hard_reg_initial_val): Likewise.
25356 (allocate_struct_function): Likewise.
25357 (prepare_function_start): Likewise.
25358 (types_used_by_var_decl_insert): Likewise.
25359 * gengtype.c (variable_size_p): Remove function.
25360 (enum alloc_quantity): Remove enum.
25361 (write_typed_alloc_def): Remove function.
25362 (write_typed_struct_alloc_def): Likewise.
25363 (write_typed_typedef_alloc_def): Likewise.
25364 (write_typed_alloc_defns): Likewise.
25365 (main): Adjust.
25366 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
25367 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
25368 * ggc.h (ggc_alloc): new function.
25369 (ggc_cleared_alloc): Likewise.
25370 (ggc_vec_alloc): Template on type of vector element, and remove
25371 element size argument.
25372 (ggc_cleared_vec_alloc): Likewise.
25373 * gimple.c (gimple_build_omp_for): Adjust.
25374 (gimple_copy): Likewise.
25375 * ipa-cp.c (get_replacement_map): Likewise.
25376 (find_aggregate_values_for_callers_subset): Likewise.
25377 (known_aggs_to_agg_replacement_list): Likewise.
25378 * ipa-devirt.c (get_odr_type): Likewise.
25379 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
25380 (read_agg_replacement_chain): Likewise.
25381 * loop-iv.c (get_simple_loop_desc): Likewise.
25382 * lto-cgraph.c (input_node_opt_summary): Likewise.
25383 * lto-section-in.c (lto_new_in_decl_state): Likewise.
25384 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
25385 (input_eh_region): Likewise.
25386 (input_eh_lp): Likewise.
25387 (input_cfg): Likewise.
25388 * optabs.c (set_optab_libfunc): Likewise.
25389 (init_tree_optimization_optabs): Likewise.
25390 (set_conv_libfunc): Likewise.
25391 * passes.c (do_per_function_toporder): Likewise.
25392 * rtl.h: Don't use variable_size gty attribute.
25393 * sese.c (if_region_set_false_region): Adjust.
25394 * stringpool.c (gt_pch_save_stringpool): Likewise.
25395 * target-globals.c (save_target_globals): Likewise.
25396 * toplev.c (general_init): Likewise.
25397 * trans-mem.c (record_tm_replacement): Likewise.
25398 (split_bb_make_tm_edge): Likewise.
25399 * tree-cfg.c (move_sese_region_to_fn): Likewise.
25400 * tree-data-ref.h (lambda_vector_new): Likewise.
25401 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
25402 * tree-iterator.c (tsi_link_before): Likewise.
25403 (tsi_link_after): Likewise.
25404 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
25405 * tree-ssa-loop-niter.c (record_estimate): Likewise.
25406 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
25407 * tree-ssa-operands.h: Don't use variable_size gty attribute.
25408 * tree-ssa.c (init_tree_ssa): Adjust.
25409 * tree-ssanames.c (set_range_info): Likewise.
25410 (get_ptr_info): Likewise.
25411 (duplicate_ssa_name_ptr_info): Likewise.
25412 (duplicate_ssa_name_range_info): Likewise.
25413 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
25414 (unpack_ts_fixed_cst_value_fields): Likewise.
25415 * tree.c (build_fixed): Likewise.
25416 (build_real): Likewise.
25417 (build_string): Likewise.
25418 (decl_priority_info): Likewise.
25419 (decl_debug_expr_insert): Likewise.
25420 (decl_value_expr_insert): Likewise.
25421 (decl_debug_args_insert): Likewise.
25422 (type_hash_add): Likewise.
25423 (build_omp_clause): Likewise.
25424 * ubsan.c (decl_for_type_insert): Likewise.
25425 * varasm.c (get_unnamed_section): Likewise.
25426 (get_noswitch_section): Likewise.
25427 (get_section): Likewise.
25428 (get_block_for_section): Likewise.
25429 (create_block_symbol): Likewise.
25430 (build_constant_desc): Likewise.
25431 (create_constant_pool): Likewise.
25432 (force_const_mem): Likewise.
25433 (record_tm_clone_pair): Likewise.
25434 * varpool.c (varpool_create_empty_node): Likewise.
25435
25436 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
25437
25438 * dwarf2out.c (tree_add_const_value_attribute): Call
25439 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
25440 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
25441 instead of ggc_internal_<x>alloc_stat.
25442 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
25443 (ggc_realloc): Likewise.
25444 * ggc-none.c (ggc_internal_alloc): Likewise.
25445 (ggc_internal_cleared_alloc): Likewise.
25446 * ggc-page.c: Likewise.
25447 * ggc.h (ggc_internal_alloc_stat): Likewise.
25448 (ggc_internal_alloc): Remove macro.
25449 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
25450 (ggc_internal_cleared_alloc): Remove macro.
25451 (GGC_RESIZEVEC): Adjust.
25452 (ggc_resizevar): Remove macro.
25453 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
25454 (ggc_internal_cleared_vec_alloc_stat): Likewise.
25455 (ggc_internal_vec_cleared_alloc): Remove macro.
25456 (ggc_alloc_atomic_stat): Drop _stat suffix.
25457 (ggc_alloc_atomic): Remove macro.
25458 (ggc_alloc_cleared_atomic): Remove macro.
25459 (ggc_alloc_string_stat): Drop _stat suffix.
25460 (ggc_alloc_string): Remove macro.
25461 (ggc_alloc_rtx_def_stat): Adjust.
25462 (ggc_alloc_tree_node_stat): Likewise.
25463 (ggc_alloc_cleared_tree_node_stat): Likewise.
25464 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
25465 (ggc_alloc_cleared_simd_clone_stat): Likewise.
25466 * gimple.c (gimple_build_omp_for): Likewise.
25467 (gimple_copy): Likewise.
25468 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
25469 * toplev.c (realloc_for_line_map): Adjust.
25470 * tree-data-ref.h (lambda_vector_new): Likewise.
25471 * tree-phinodes.c (allocate_phi_node): Likewise.
25472 * tree.c (grow_tree_vec_stat): Likewise.
25473 * vec.h (va_gc::reserve): Adjust.
25474
25475 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
25476
25477 * config/microblaze/microblaze.c (break_handler): New Declaration.
25478 (microblaze_break_function_p,microblaze_is_break_handler): New.
25479 (compute_frame_size): Use microblaze_break_function_p.
25480 Add the test of break_handler.
25481 (microblaze_function_prologue) : Add the test of variable
25482 break_handler. Check the fnname by BREAK_HANDLER_NAME.
25483 (microblaze_function_epilogue) : Add the test of break_handler.
25484 (microblaze_globalize_label) : Add the test of break_handler.
25485 Check the name by BREAK_HANDLER_NAME.
25486
25487 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
25488
25489 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
25490 microblaze_is_break_handler test.
25491 (call_internal1,call_value_intern): Use microblaze_break_function_p.
25492 Use SYMBOL_REF_DECL.
25493
25494 * config/microblaze/microblaze-protos.h
25495 (microblaze_break_function_p,microblaze_is_break_handler):
25496 New Declaration.
25497
25498 * doc/extend.texi (MicroBlaze break_handler Functions): Document
25499 new MicroBlaze break_handler functions.
25500
25501 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
25502
25503 * doc/extend.texi (Size of an asm): Move node text according
25504 to its @menu entry position.
25505
25506 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
25507
25508 PR tree-optimization/61140
25509 PR tree-optimization/61150
25510 PR tree-optimization/61197
25511 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
25512
25513 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
25514
25515 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
25516
25517 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
25518
25519 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
25520 __SIZEOF_INT128__ is defined.
25521
25522 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
25523
25524 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
25525 (rs6000_delegitimize_address): Use it.
25526
25527 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
25528
25529 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
25530 inplace argument. Store the new address in the original MEM when true.
25531 * emit-rtl.c (change_address_1): Likewise.
25532 (adjust_address_1, adjust_automodify_address_1, offset_address):
25533 Update accordingly.
25534 * rtl.h (plus_constant): Add an inplace argument.
25535 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
25536 when true. Avoid generating (plus X (const_int 0)).
25537 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
25538 in-place. Pass true to plus_constant.
25539 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
25540
25541 2014-05-16 Dehao Chen <dehao@google.com>
25542
25543 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
25544
25545 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
25546
25547 PR target/54089
25548 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
25549 patterns.
25550 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
25551
25552 2014-05-16 Dehao Chen <dehao@google.com>
25553
25554 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
25555 optimize_function_for_size_p.
25556 * regs.h (REG_FREQ_FROM_BB): Likewise.
25557
25558 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
25559
25560 PR target/51244
25561 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
25562 negt_reg_operand cases.
25563 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
25564 predicate.
25565 * config/sh/predicates.md (cbranch_treg_value): Simplify.
25566
25567 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
25568
25569 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
25570 target variants.
25571
25572 2014-05-16 David Malcolm <dmalcolm@redhat.com>
25573
25574 Revert:
25575 2014-04-29 David Malcolm <dmalcolm@redhat.com>
25576
25577 * tree-cfg.c (dump_function_to_file): Dump the return type of
25578 functions, in a line to itself before the function body, mimicking
25579 the layout of a C function.
25580
25581 2014-05-16 Dehao Chen <dehao@google.com>
25582
25583 * cfghooks.c (make_forwarder_block): Use direct computation to
25584 get fall-through edge's count and frequency.
25585
25586 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
25587
25588 * config/arc/arc.c (arc_init): Fix typo in error message.
25589 * config/i386/i386.c (ix86_expand_builtin): Likewise.
25590 (split_stack_prologue_scratch_regno): Likewise.
25591 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
25592 word from error message.
25593
25594 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
25595
25596 * ira-costs.c: Fix typo in comment.
25597
25598 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
25599
25600 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
25601
25602 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
25603
25604 * varpool.c (dump_varpool_node): Dump write-only flag.
25605 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
25606 write-only flag.
25607 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
25608 write-only variables.
25609 * ipa.c (process_references): New function.
25610 (set_readonly_bit): New function.
25611 (set_writeonly_bit): New function.
25612 (clear_addressable_bit): New function.
25613 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
25614 fix handling of aliases.
25615 * cgraph.h (struct varpool_node): Add writeonly flag.
25616
25617 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
25618
25619 PR rtl-optimization/60969
25620 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
25621 Calculate costs for this case.
25622
25623 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
25624
25625 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
25626 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
25627
25628 2014-05-16 Richard Biener <rguenther@suse.de>
25629
25630 PR tree-optimization/61194
25631 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
25632 bool patterns ending in a COND_EXPR.
25633
25634 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25635
25636 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
25637
25638 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25639
25640 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
25641 where we were unable to cost an RTX.
25642
25643 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25644
25645 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
25646 HIGH, LO_SUM.
25647
25648 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25649 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25650
25651 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
25652
25653 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25654 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25655
25656 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
25657 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
25658
25659 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25660 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25661
25662 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
25663 operators.
25664
25665 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25666 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25667
25668 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25669 DIV/MOD.
25670
25671 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25672 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25673
25674 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
25675 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
25676
25677 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25678 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25679
25680 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25681 rotates and shifts.
25682
25683 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25684 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25685
25686 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
25687 ZERO_EXTEND and SIGN_EXTEND better.
25688
25689 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25690 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25691
25692 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
25693 logical operations.
25694
25695 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25696 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25697
25698 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
25699 costs when costing loads and stores to memory.
25700
25701 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25702 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
25703
25704 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
25705 for SET RTX.
25706
25707 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25708
25709 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
25710
25711 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25712 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25713
25714 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
25715 to...
25716 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
25717 well formed.
25718 (aarch64_rtx_mult_cost): New.
25719 (aarch64_rtx_costs): Use it, refactor as appropriate.
25720
25721 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25722 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25723
25724 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
25725 emit instructions, return number of instructions which would
25726 be emitted.
25727 (aarch64_add_constant): Update call to aarch64_build_constant.
25728 (aarch64_output_mi_thunk): Likewise.
25729 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
25730 a CONST_DOUBLE.
25731
25732 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25733
25734 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
25735 (TARGET_RTX_COSTS): Call it.
25736
25737 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25738
25739 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
25740 (cortexa57_vector_cost): Likewise.
25741 (cortexa57_tunings): Use them.
25742
25743 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25744
25745 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
25746 (cpu_addrcost_table): Use it.
25747 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
25748 (aarch64_address_cost): Rewrite using aarch64_classify_address,
25749 move it.
25750
25751 2014-05-16 Richard Biener <rguenther@suse.de>
25752
25753 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
25754 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
25755 (visit_phi): Ignore edges marked as not executable.
25756 (class cond_dom_walker): New.
25757 (cond_dom_walker::before_dom_children): Value-number
25758 control statements and mark successor edges as not
25759 executable if possible.
25760 (run_scc_vn): First walk all control statements in
25761 dominator order, marking edges as not executable.
25762 * tree-inline.c (copy_edges_for_bb): Be not confused
25763 about random edge flags.
25764
25765 2014-05-16 Richard Biener <rguenther@suse.de>
25766
25767 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
25768
25769 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
25770
25771 PR target/61193
25772 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
25773 (__TM_simple_begin): Use it.
25774 (__TM_begin): Likewise.
25775
25776 2014-05-15 Martin Jambor <mjambor@suse.cz>
25777
25778 PR ipa/61085
25779 * ipa-prop.c (update_indirect_edges_after_inlining): Check
25780 type_preserved flag when the indirect edge is polymorphic.
25781
25782 2014-05-15 Martin Jambor <mjambor@suse.cz>
25783
25784 PR tree-optimization/61090
25785 * tree-sra.c (sra_modify_expr): Pass the current gsi to
25786 build_ref_for_model.
25787
25788 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25789
25790 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
25791 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
25792
25793 2014-05-15 Jakub Jelinek <jakub@redhat.com>
25794
25795 PR tree-optimization/61158
25796 * fold-const.c (fold_binary_loc): If X is zero-extended and
25797 shiftc >= prec, make sure zerobits is all ones instead of
25798 invoking undefined behavior.
25799
25800 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25801
25802 * regcprop.h: New file.
25803 * regcprop.c (skip_debug_insn_p): New decl.
25804 (replace_oldest_value_reg): Check skip_debug_insn_p.
25805 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
25806 * shrink-wrap.c: Include regcprop.h.
25807 (prepare_shrink_wrap): Call
25808 copyprop_hardreg_forward_bb_without_debug_insn.
25809
25810 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25811
25812 * shrink-wrap.h: Update comment.
25813 * shrink-wrap.c: Update comment.
25814 (next_block_for_reg): Rename to live_edge_for_reg.
25815 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
25816 (move_insn_for_shrink_wrap): Split live_edge.
25817 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
25818
25819 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
25820
25821 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
25822 Delete.
25823 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
25824 * config/sparc/sparc.md (fptype_ut699): New attribute.
25825 (in_branch_delay): Return false if -mfix-ut699 is specified and
25826 fptype_ut699 is set to single.
25827 (truncdfsf2): Add fptype_ut699 attribute.
25828 (fix_truncdfsi2): Likewise.
25829 (floatsisf2): Change fptype attribute.
25830 (fix_truncsfsi2): Likewise.
25831 (negtf2_notv9): Delete.
25832 (negtf2_v9): Likewise.
25833 (negtf2_hq): New instruction.
25834 (negtf2): New instruction and splitter.
25835 (negdf2_notv9): Rewrite.
25836 (abstf2_notv9): Delete.
25837 (abstf2_hq_v9): Likewise.
25838 (abstf2_v9): Likewise.
25839 (abstf2_hq): New instruction.
25840 (abstf2): New instruction and splitter.
25841 (absdf2_notv9): Rewrite.
25842
25843 2014-05-14 Cary Coutant <ccoutant@google.com>
25844
25845 PR debug/61013
25846 * opts.c (common_handle_option): Don't special-case "-g".
25847 (set_debug_level): Default to at least level 2 with "-g".
25848
25849 2014-05-14 DJ Delorie <dj@redhat.com>
25850
25851 * config/msp430/msp430.c (msp430_builtin): Add
25852 MSP430_BUILTIN_DELAY_CYCLES.
25853 (msp430_init_builtins): Register void __delay_cycles(long long).
25854 (msp430_builtin_decl): Add it.
25855 (cg_magic_constant): New.
25856 (msp430_expand_delay_cycles): New.
25857 (msp430_expand_builtin): Call it.
25858 (msp430_print_operand_raw): Change integer printing from "int" to
25859 HOST_WIDE_INT.
25860 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
25861 (delay_cycles_start): New.
25862 (delay_cycles_end): New.
25863 (delay_cycles_32): New.
25864 (delay_cycles_32x): New.
25865 (delay_cycles_16): New.
25866 (delay_cycles_16x): New.
25867 (delay_cycles_2): New.
25868 (delay_cycles_1): New.
25869 * doc/extend.texi: Document __delay_cycles().
25870
25871 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
25872
25873 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
25874 length attribute computation.
25875
25876 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
25877
25878 PR debug/61188
25879 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
25880
25881 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
25882
25883 PR target/61084
25884 * config/sparc/sparc.md: Fix types of low and high in DI constant
25885 splitter. Use gen_int_mode in some other splitters.
25886
25887 2014-05-14 Martin Jambor <mjambor@suse.cz>
25888
25889 PR ipa/60897
25890 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
25891
25892 2014-05-14 James Norris <jnorris@codesourcery.com>
25893
25894 * omp-low.c (expand_parallel_call): Remove shadow variable.
25895 (expand_omp_taskreg): Likewise.
25896
25897 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
25898
25899 * common/config/i386/i386-common.c
25900 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
25901 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
25902 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
25903 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
25904 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
25905 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
25906 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
25907 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
25908 xsavecintrin.h, xsavesintrin.h.
25909 (x86_64-*-*): Ditto.
25910 * config/i386/clflushoptintrin.h: New.
25911 * config/i386/xsavecintrin.h: Ditto.
25912 * config/i386/xsavesintrin.h: Ditto.
25913 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
25914 (bit_XSAVES): Ditto.
25915 (bit_XSAVES): Ditto.
25916 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
25917 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
25918 -mno-clflushopt.
25919 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
25920 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
25921 OPTION_MASK_ISA_XSAVES.
25922 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
25923 -mxsavec, -mxsaves.
25924 (PTA_CLFLUSHOPT) Define.
25925 (PTA_XSAVEC): Ditto.
25926 (PTA_XSAVES): Ditto.
25927 (ix86_option_override_internal): Handle new options.
25928 (ix86_valid_target_attribute_inner_p): Ditto.
25929 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
25930 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
25931 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
25932 (bdesc_special_args): Add __builtin_ia32_xsaves,
25933 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
25934 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
25935 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
25936 (ix86_expand_builtin): Handle new builtins.
25937 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
25938 (TARGET_CLFLUSHOPT_P): Ditto.
25939 (TARGET_XSAVEC): Ditto.
25940 (TARGET_XSAVEC_P): Ditto.
25941 (TARGET_XSAVES): Ditto.
25942 (TARGET_XSAVES_P): Ditto.
25943 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
25944 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
25945 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
25946 (ANY_XRSTOR): New.
25947 (ANY_XRSTOR64): Ditto.
25948 (xrstor): Ditto.
25949 (xrstor): Change into <xrstor>.
25950 (xrstor_rex64): Change into <xrstor>_rex64.
25951 (xrstor64): Change into <xrstor>64
25952 (clflushopt): New.
25953 * config/i386/i386.opt (mclflushopt): New.
25954 (mxsavec): Ditto.
25955 (mxsaves): Ditto.
25956 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
25957 xsavecintrin.h.
25958 * doc/invoke.texi: Document new options.
25959
25960 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
25961
25962 PR rtl-optimization/60866
25963 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
25964 Default it to -1. Pass it down to init_simplejump_data.
25965 (init_simplejump_data): New parameter old_seqno. Pass it down
25966 to get_seqno_for_a_jump.
25967 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
25968 initializing new jump seqno as a last resort. Add comment.
25969 (sel_redirect_edge_and_branch): Save old seqno of the conditional
25970 jump and pass it down to sel_init_new_insn.
25971 (sel_redirect_edge_and_branch_force): Likewise.
25972
25973 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
25974
25975 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
25976 shifted values to avoid build warning.
25977
25978 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
25979
25980 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
25981 * cfgrtl.c (rtl_merge_blocks): Fix comment.
25982 (cfg_layout_merge_blocks): Likewise.
25983 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
25984
25985 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
25986
25987 PR rtl-optimization/60901
25988 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
25989 bb predecessor belongs to the same scheduling region. Adjust comment.
25990
25991 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
25992
25993 * doc/sourcebuild.texi: (dfp_hw): Document.
25994 (p8vector_hw): Likewise.
25995 (powerpc_eabi_ok): Likewise.
25996 (powerpc_elfv2): Likewise.
25997 (powerpc_htm_ok): Likewise.
25998 (ppc_recip_hw): Likewise.
25999 (vsx_hw): Likewise.
26000
26001 2014-05-13 Cary Coutant <ccoutant@google.com>
26002
26003 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
26004
26005 2014-05-13 David Malcolm <dmalcolm@redhat.com>
26006
26007 * gengtype-parse.c (require3): Eliminate in favor of...
26008 (require4): New.
26009 (require_template_declaration): Update to support optional single *
26010 on a type.
26011
26012 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
26013 (create_user_defined_type): Handle a single level of explicit
26014 pointerness within template arguments.
26015 (struct write_types_data): Add field "kind".
26016 (filter_type_name): Handle "*" character.
26017 (write_user_func_for_structure_ptr): Require a write_types_data
26018 rather than just a prefix string, so that we can look up the kind
26019 of the wtd and use it as an index into wrote_user_func_for_ptr,
26020 ensuring that such functions are written at most once. Support
26021 subclasses by invoking the marking function of the ultimate base class.
26022 (write_user_func_for_structure_body): Require a write_types_data
26023 rather than just a prefix string, so that we can pass this to
26024 write_user_func_for_structure_ptr.
26025 (write_func_for_structure): Likewise.
26026 (ggc_wtd): Add initializer of new "kind" field.
26027 (pch_wtd): Likewise.
26028
26029 * gengtype.h (enum write_types_kinds): New.
26030 (struct type): Add field wrote_user_func_for_ptr to the "s"
26031 union member.
26032
26033 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
26034
26035 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
26036 instead of const_binop.
26037 (fold_binary_loc): Likewise.
26038
26039 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
26040
26041 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
26042 calculation to match get_ref_base_and_extent.
26043
26044 2014-05-13 Catherine Moore <clm@codesourcery.com>
26045 Sandra Loosemore <sandra@codesourcery.com>
26046
26047 * configure.ac: Fix assembly for explicit JALR relocation check.
26048 * configure: Regenerate.
26049
26050 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26051
26052 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
26053 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
26054 Remove associated type declarations and initialisations.
26055 (arm_expand_neon_builtin): Likewise.
26056 (neon_emit_pair_result_insn): Delete.
26057 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
26058 * config/arm/neon.md (neon_vtrn<mode>): Delete.
26059 (neon_vzip<mode>): Likewise.
26060 (neon_vuzp<mode>): Likewise.
26061
26062 2014-05-13 Richard Biener <rguenther@suse.de>
26063
26064 PR ipa/60973
26065 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
26066 it needs revisiting whether the call still may be tail-called.
26067
26068 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26069
26070 * rtl.def (SYMBOL_REF): Remove middle "0" field.
26071 * rtl.h (block_symbol): Reduce number of fields to 2.
26072 (rtx_def): Add u2.symbol_ref_flags.
26073 (SYMBOL_REF_FLAGS): Use it.
26074 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
26075 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
26076 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
26077 Lower index of SYMBOL_REF_DATA.
26078 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
26079 Print SYMBOL_REF_FLAGS at the same time.
26080 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
26081
26082 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26083
26084 * rtl.def (VAR_LOCATION): Remove "i" field.
26085 * rtl.h (rtx_def): Add u2.var_location_status.
26086 (PAT_VAR_LOCATION_STATUS): Use it.
26087 (gen_rtx_VAR_LOCATION): Declare.
26088 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
26089 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
26090 * var-tracking.c (emit_note_insn_var_location): Remove casts.
26091
26092 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26093
26094 * rtl.def (scratch): Fix outdated comment and remove "0" field.
26095 * gengtype.c (adjust_field_rtx_def): Update accordingly.
26096
26097 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26098
26099 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
26100 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
26101 * rtl.h (rtx_def): Add insn_uid to u2 field.
26102 (RTX_FLAG_CHECK8): Delete in favor of...
26103 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
26104 (INSN_DELETED_P): Update accordingly.
26105 (INSN_UID): Use u2.insn_uid.
26106 (INSN_CHAIN_CODE_P): Define.
26107 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
26108 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
26109 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
26110 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
26111 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
26112 indices accordingly.
26113 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
26114 Update indices for insn-chain rtxes.
26115 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
26116 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
26117 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
26118 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
26119 * combine.c (try_combine): Likewise.
26120 * ira.c (setup_prohibited_mode_move_regs): Likewise.
26121
26122 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26123
26124 * rtl.def (REG): Remove middle field.
26125 * rtl.h (rtx_def): Add orignal_regno to u2.
26126 (ORIGINAL_REGNO): Use it instead of field 1.
26127 (REG_ATTRS): Lower field index accordingly.
26128 * gengtype.c (adjust_field_rtx_def): Remove handling of
26129 ORIGINAL_REGNO. Move REG_ATTRS index down.
26130 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
26131 code that prints the REGNO.
26132
26133 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26134
26135 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
26136 GENERATOR_FILE.
26137
26138 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26139
26140 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
26141
26142 2014-05-13 Bin Cheng <bin.cheng@arm.com>
26143
26144 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
26145 (alloc_iv): Lower base expressions containing ADDR_EXPR.
26146
26147 2014-05-13 Ian Bolton <ian.bolton@arm.com>
26148
26149 * config/aarch64/aarch64-protos.h
26150 (aarch64_hard_regno_caller_save_mode): New prototype.
26151 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
26152 New function.
26153 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
26154
26155 2014-05-13 Christian Bruel <christian.bruel@st.com>
26156
26157 * target.def (mode_switching): New hook vector.
26158 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
26159 (mode_exit, modepriority_to_mode): Likewise.
26160 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
26161 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26162 * target.h: Include tm.h and hard-reg-set.h.
26163 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
26164 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
26165 * doc/tm.texi Regenerate.
26166 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
26167 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26168 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
26169 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
26170 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
26171 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26172 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
26173 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
26174 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
26175 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
26176 (ix86_emit_mode_set): Hookify.
26177 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
26178 Delete.
26179 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26180 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
26181 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
26182 (epiphany_mode_priority_to_mode): Remove declaration.
26183 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
26184 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
26185 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
26186 Likewise.
26187 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
26188 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
26189 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
26190
26191 2014-05-13 Jakub Jelinek <jakub@redhat.com>
26192
26193 PR target/61060
26194 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
26195 is const0_rtx, return immediately. Don't test count == 0 when
26196 it is always true.
26197
26198 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
26199
26200 * Makefile.in: add shrink-wrap.o.
26201 * config/i386/i386.c: include "shrink-wrap.h"
26202 * function.c: Likewise.
26203 (requires_stack_frame_p, next_block_for_reg,
26204 move_insn_for_shrink_wrap, prepare_shrink_wrap,
26205 dup_block_and_redirect): Move to shrink-wrap.c
26206 (thread_prologue_and_epilogue_insns): Extract three code segments
26207 as functions in shrink-wrap.c
26208 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
26209 shrink-wrap.h
26210 * shrink-wrap.c: New file.
26211 * shrink-wrap.h: New file.
26212
26213 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
26214
26215 * doc/extend.texi: Reflect current numbers of pragmas. Remove
26216 reference to Solaris.
26217
26218 2014-05-12 Mike Stump <mikestump@comcast.net>
26219
26220 PR other/31778
26221 * genattrtab.c (filename): Add.
26222 (convert_set_attr_alternative): Improve error message.
26223 (check_defs): Restore read_md_filename for error messages.
26224 (gen_insn): Save filename.
26225
26226 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
26227
26228 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
26229 -fno-local-ivars and -fivar-visibility.
26230 * c-family/c.opt: Make -Wshadow also implicitly enable
26231 -Wshadow-ivar.
26232
26233 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
26234
26235 * doc/tm.texi: Remove reference to deleted macro.
26236 * doc/tm.texi.in: Likewise.
26237
26238 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
26239
26240 PR target/60991
26241 * config/avr/avr.c (avr_out_store_psi): Use correct constant
26242 to restore Y.
26243
26244 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
26245
26246 PR libgcc/61152
26247 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
26248 * config/arm/aout.h (License): Same.
26249 * config/arm/bpabi.h (License): Same.
26250 * config/arm/elf.h (License): Same.
26251 * config/arm/linux-elf.h (License): Same.
26252 * config/arm/linux-gas.h (License): Same.
26253 * config/arm/netbsd-elf.h (License): Same.
26254 * config/arm/uclinux-eabi.h (License): Same.
26255 * config/arm/uclinux-elf.h (License): Same.
26256 * config/arm/vxworks.h (License): Same.
26257
26258 2014-05-11 Jakub Jelinek <jakub@redhat.com>
26259
26260 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
26261 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
26262 number of operands to 3.
26263 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
26264 * tree-nested.c (convert_nonlocal_omp_clauses,
26265 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
26266 * gimplify.c (gimplify_scan_omp_clauses): Handle
26267 OMP_CLAUSE_LINEAR_STMT.
26268 * omp-low.c (lower_rec_input_clauses): Fix typo.
26269 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
26270 cast between Fortran boolean_type_node and C _Bool if
26271 needed.
26272
26273 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
26274
26275 PR tree-optimization/61136
26276 * wide-int.h (multiple_of_p): Define a version that doesn't return
26277 the quotient.
26278 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
26279 integer_zerop/const_binop pair.
26280 (multiple_of_p): Likewise, converting both operands to widest_int
26281 precision.
26282
26283 2014-05-09 Teresa Johnson <tejohnson@google.com>
26284
26285 * cgraphunit.c (analyze_functions): Use correct dump file.
26286
26287 2014-05-09 Florian Weimer <fweimer@redhat.com>
26288
26289 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
26290 expand_used_vars.
26291 (stack_protect_return_slot_p): New function.
26292 (expand_used_vars): Call stack_protect_decl_p and
26293 stack_protect_return_slot_p for -fstack-protector-strong.
26294
26295 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
26296 Andrew Haley <aph@redhat.com>
26297 Richard Sandiford <rdsandiford@googlemail.com>
26298
26299 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
26300 pages.
26301
26302 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
26303
26304 PR middle-end/61111
26305 * fold-const.c (fold_binary_loc): Changed width of mask.
26306
26307 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
26308
26309 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
26310 unsigned int initializers for regno_in, regno_out.
26311
26312 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
26313
26314 PR target/61055
26315 * config/avr/avr.md (cc): Add new attribute set_vzn.
26316 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
26317 Set cc insn attribute to set_vzn instead of set_zn for alternatives
26318 with INC, DEC or NEG.
26319 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
26320 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
26321 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
26322
26323 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26324
26325 Revert:
26326 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26327
26328 * wide-int.cc (UTItype): Define.
26329 (UDWtype): Define for appropriate W_TYPE_SIZE.
26330
26331 2014-05-09 Richard Biener <rguenther@suse.de>
26332
26333 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
26334 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
26335 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
26336 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
26337 ssa_propagate): Adjust.
26338
26339 2014-05-08 Jeff Law <law@redhat.com>
26340
26341 PR tree-optimization/61009
26342 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
26343 tri-state rather than a boolean. When a block is too big to
26344 thread through, inform caller via negative return value.
26345 (thread_across_edge): If a block was too big for normal threading,
26346 then it's too big for a joiner too, so remove temporary equivalences
26347 and return immediately.
26348
26349 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
26350 Matthias Klose <doko@ubuntu.com>
26351
26352 PR driver/61106
26353 * optc-gen.awk: Fix option handling for -Wunused-parameter.
26354
26355 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
26356
26357 PR target/59952
26358 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
26359
26360 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
26361
26362 PR target/61092
26363 * config/alpha/alpha.c: Include gimple-iterator.h.
26364 (alpha_gimple_fold_builtin): New function. Move
26365 ALPHA_BUILTIN_UMULH folding from ...
26366 (alpha_fold_builtin): ... here.
26367 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
26368
26369 2014-05-08 Wei Mi <wmi@google.com>
26370
26371 PR target/58066
26372 * config/i386/i386.c (ix86_compute_frame_layout): Update
26373 preferred_stack_boundary for call, expanded from tls descriptor.
26374 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
26375 to depend on SP register.
26376 (*tls_local_dynamic_base_32_gnu): Ditto.
26377 (*tls_local_dynamic_32_once): Ditto.
26378 (tls_global_dynamic_64_<mode>): Set
26379 ix86_tls_descriptor_calls_expanded_in_cfun.
26380 (tls_local_dynamic_base_64_<mode>): Ditto.
26381 (tls_global_dynamic_32): Set
26382 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
26383 to depend on SP register.
26384 (tls_local_dynamic_base_32): Ditto.
26385
26386 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26387
26388 * config/arm/arm_neon.h: Update comment.
26389 * config/arm/neon-docgen.ml: Delete.
26390 * config/arm/neon-gen.ml: Delete.
26391 * doc/arm-neon-intrinsics.texi: Update comment.
26392
26393 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26394
26395 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
26396 and v4sf versions.
26397 (vand, vorr, veor, vorn, vbic): Remove.
26398 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
26399 iterator.
26400 (neon_vsub_unspec): Likewise.
26401 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
26402
26403 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26404
26405 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
26406 (vadd_s16): Likewise.
26407 (vadd_s32): Likewise.
26408 (vadd_f32): Likewise.
26409 (vadd_u8): Likewise.
26410 (vadd_u16): Likewise.
26411 (vadd_u32): Likewise.
26412 (vadd_s64): Likewise.
26413 (vadd_u64): Likewise.
26414 (vaddq_s8): Likewise.
26415 (vaddq_s16): Likewise.
26416 (vaddq_s32): Likewise.
26417 (vaddq_s64): Likewise.
26418 (vaddq_f32): Likewise.
26419 (vaddq_u8): Likewise.
26420 (vaddq_u16): Likewise.
26421 (vaddq_u32): Likewise.
26422 (vaddq_u64): Likewise.
26423 (vmul_s8): Likewise.
26424 (vmul_s16): Likewise.
26425 (vmul_s32): Likewise.
26426 (vmul_f32): Likewise.
26427 (vmul_u8): Likewise.
26428 (vmul_u16): Likewise.
26429 (vmul_u32): Likewise.
26430 (vmul_p8): Likewise.
26431 (vmulq_s8): Likewise.
26432 (vmulq_s16): Likewise.
26433 (vmulq_s32): Likewise.
26434 (vmulq_f32): Likewise.
26435 (vmulq_u8): Likewise.
26436 (vmulq_u16): Likewise.
26437 (vmulq_u32): Likewise.
26438 (vsub_s8): Likewise.
26439 (vsub_s16): Likewise.
26440 (vsub_s32): Likewise.
26441 (vsub_f32): Likewise.
26442 (vsub_u8): Likewise.
26443 (vsub_u16): Likewise.
26444 (vsub_u32): Likewise.
26445 (vsub_s64): Likewise.
26446 (vsub_u64): Likewise.
26447 (vsubq_s8): Likewise.
26448 (vsubq_s16): Likewise.
26449 (vsubq_s32): Likewise.
26450 (vsubq_s64): Likewise.
26451 (vsubq_f32): Likewise.
26452 (vsubq_u8): Likewise.
26453 (vsubq_u16): Likewise.
26454 (vsubq_u32): Likewise.
26455 (vsubq_u64): Likewise.
26456 (vand_s8): Likewise.
26457 (vand_s16): Likewise.
26458 (vand_s32): Likewise.
26459 (vand_u8): Likewise.
26460 (vand_u16): Likewise.
26461 (vand_u32): Likewise.
26462 (vand_s64): Likewise.
26463 (vand_u64): Likewise.
26464 (vandq_s8): Likewise.
26465 (vandq_s16): Likewise.
26466 (vandq_s32): Likewise.
26467 (vandq_s64): Likewise.
26468 (vandq_u8): Likewise.
26469 (vandq_u16): Likewise.
26470 (vandq_u32): Likewise.
26471 (vandq_u64): Likewise.
26472 (vorr_s8): Likewise.
26473 (vorr_s16): Likewise.
26474 (vorr_s32): Likewise.
26475 (vorr_u8): Likewise.
26476 (vorr_u16): Likewise.
26477 (vorr_u32): Likewise.
26478 (vorr_s64): Likewise.
26479 (vorr_u64): Likewise.
26480 (vorrq_s8): Likewise.
26481 (vorrq_s16): Likewise.
26482 (vorrq_s32): Likewise.
26483 (vorrq_s64): Likewise.
26484 (vorrq_u8): Likewise.
26485 (vorrq_u16): Likewise.
26486 (vorrq_u32): Likewise.
26487 (vorrq_u64): Likewise.
26488 (veor_s8): Likewise.
26489 (veor_s16): Likewise.
26490 (veor_s32): Likewise.
26491 (veor_u8): Likewise.
26492 (veor_u16): Likewise.
26493 (veor_u32): Likewise.
26494 (veor_s64): Likewise.
26495 (veor_u64): Likewise.
26496 (veorq_s8): Likewise.
26497 (veorq_s16): Likewise.
26498 (veorq_s32): Likewise.
26499 (veorq_s64): Likewise.
26500 (veorq_u8): Likewise.
26501 (veorq_u16): Likewise.
26502 (veorq_u32): Likewise.
26503 (veorq_u64): Likewise.
26504 (vbic_s8): Likewise.
26505 (vbic_s16): Likewise.
26506 (vbic_s32): Likewise.
26507 (vbic_u8): Likewise.
26508 (vbic_u16): Likewise.
26509 (vbic_u32): Likewise.
26510 (vbic_s64): Likewise.
26511 (vbic_u64): Likewise.
26512 (vbicq_s8): Likewise.
26513 (vbicq_s16): Likewise.
26514 (vbicq_s32): Likewise.
26515 (vbicq_s64): Likewise.
26516 (vbicq_u8): Likewise.
26517 (vbicq_u16): Likewise.
26518 (vbicq_u32): Likewise.
26519 (vbicq_u64): Likewise.
26520 (vorn_s8): Likewise.
26521 (vorn_s16): Likewise.
26522 (vorn_s32): Likewise.
26523 (vorn_u8): Likewise.
26524 (vorn_u16): Likewise.
26525 (vorn_u32): Likewise.
26526 (vorn_s64): Likewise.
26527 (vorn_u64): Likewise.
26528 (vornq_s8): Likewise.
26529 (vornq_s16): Likewise.
26530 (vornq_s32): Likewise.
26531 (vornq_s64): Likewise.
26532 (vornq_u8): Likewise.
26533 (vornq_u16): Likewise.
26534 (vornq_u32): Likewise.
26535 (vornq_u64): Likewise.
26536
26537 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26538
26539 * wide-int.cc (UTItype): Define.
26540 (UDWtype): Define for appropriate W_TYPE_SIZE.
26541
26542 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
26543
26544 PR tree-optimization/59100
26545 * tree-ssa-phiopt.c: Include tree-inline.h.
26546 (neutral_element_p, absorbing_element_p): New functions.
26547 (value_replacement): Handle conditional binary operations with a
26548 neutral or absorbing element.
26549
26550 2014-05-08 Richard Biener <rguenther@suse.de>
26551
26552 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
26553 folding the expression.
26554 (valueize_expr): Remove.
26555 (visit_reference_op_load): Do not valueize the result of
26556 vn_get_expr_for.
26557 (simplify_binary_expression): Likewise.
26558 (simplify_unary_expression): Likewise.
26559
26560 2014-05-08 Richard Biener <rguenther@suse.de>
26561
26562 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
26563 looking at TYPE_ARG_TYPES.
26564
26565 2014-05-08 Richard Biener <rguenther@suse.de>
26566
26567 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
26568 pointer propagation special-case.
26569
26570 2014-05-08 Bin Cheng <bin.cheng@arm.com>
26571
26572 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
26573 core part of address expressions.
26574
26575 2014-05-08 Alan Modra <amodra@gmail.com>
26576
26577 PR target/60737
26578 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
26579 loads and stores when -mno-strict-align at any alignment.
26580 (expand_block_clear): Similarly. Also correct calculation of
26581 instruction count.
26582
26583 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
26584
26585 PR middle-end/39246
26586 * tree-complex.c (expand_complex_move): Keep line info when expanding
26587 complex move.
26588 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
26589 of complex expression. Use new argument to display correct location
26590 for values coming from phi statement.
26591 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
26592 (warn_uninitialized_phi): Pass location of phi argument to
26593 warn_uninit.
26594 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
26595 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
26596
26597 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
26598
26599 * config/rs6000/predicates.md (indexed_address_mem): New.
26600 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
26601 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
26602 fpstore_ux, fpstore_u.
26603 (sign_extend, indexed, update): New.
26604 (cell_micro): Adjust.
26605 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
26606 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
26607 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
26608 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
26609 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
26610 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
26611 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
26612 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
26613 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
26614 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
26615 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
26616 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
26617 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
26618 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
26619 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
26620
26621 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
26622 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
26623 *vsx_extract_<mode>_store): Adjust.
26624 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
26625 is_cracked_insn, insn_must_be_first_in_group,
26626 insn_must_be_last_in_group): Adjust.
26627
26628 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
26629 Adjust.
26630 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
26631 ppc440-fpstore): Adjust.
26632 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
26633 ppc476-fpstore): Adjust.
26634 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
26635 ppc601-fpstore): Adjust.
26636 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
26637 Adjust.
26638 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
26639 Adjust.
26640 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
26641 ppc7450-fpstore): Adjust.
26642 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
26643 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
26644 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
26645 Adjust.
26646 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
26647 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
26648 cell-fpstore, cell-fpstore-update): Adjust.
26649 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
26650 ppce300c3_store, ppce300c3_fpstore): Adjust.
26651 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
26652 e500mc_fpstore): Adjust.
26653 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
26654 e500mc64_store, e500mc64_fpstore): Adjust.
26655 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
26656 e5500_fpstore): Adjust.
26657 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
26658 e6500_fpstore): Adjust.
26659 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
26660 Adjust.
26661 * config/rs6000/power4.md (power4-load, power4-load-ext,
26662 power4-load-ext-update, power4-load-ext-update-indexed,
26663 power4-load-update-indexed, power4-load-update, power4-fpload,
26664 power4-fpload-update, power4-store, power4-store-update,
26665 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
26666 Adjust.
26667 * config/rs6000/power5.md (power5-load, power5-load-ext,
26668 power5-load-ext-update, power5-load-ext-update-indexed,
26669 power5-load-update-indexed, power5-load-update, power5-fpload,
26670 power5-fpload-update, power5-store, power5-store-update,
26671 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
26672 Adjust.
26673 * config/rs6000/power6.md (power6-load, power6-load-ext,
26674 power6-load-update, power6-load-update-indexed,
26675 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
26676 power6-fpload-update, power6-store, power6-store-update,
26677 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
26678 Adjust.
26679 * config/rs6000/power7.md (power7-load, power7-load-ext,
26680 power7-load-update, power7-load-update-indexed,
26681 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
26682 power7-fpload-update, power7-store, power7-store-update,
26683 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
26684 Adjust.
26685 * config/rs6000/power8.md (power8-load, power8-load-update,
26686 power8-load-ext, power8-load-ext-update, power8-fpload,
26687 power8-fpload-update, power8-store, power8-store-update-indexed,
26688 power8-fpstore, power8-fpstore-update): Adjust.
26689 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
26690 Adjust.
26691 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
26692 titan_lsu_store, titan_lsu_fpstore): Adjust.
26693 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
26694
26695 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
26696
26697 PR target/60884
26698 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
26699 unrolled byte insns. Emit address increments after move insns.
26700
26701 2014-05-07 David Malcolm <dmalcolm@redhat.com>
26702
26703 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
26704 const_gimple, rather than a gimple.
26705 (gimple_call_builtin_p): Likewise, for the three variants.
26706
26707 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
26708 (gimple_call_builtin_p): Likewise, for the three variants.
26709
26710 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
26711
26712 PR tree-optimization/61095
26713 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
26714
26715 2014-05-07 Richard Biener <rguenther@suse.de>
26716
26717 PR tree-optimization/61034
26718 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
26719 (maybe_skip_until): Use translate to take into account
26720 lattices when trying to do disambiguations.
26721 (get_continuation_for_phi_1): Likewise.
26722 (get_continuation_for_phi): Adjust for added translate arguments.
26723 (walk_non_aliased_vuses): Likewise.
26724 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
26725 (walk_non_aliased_vuses): Likewise.
26726 (call_may_clobber_ref_p_1): Declare.
26727 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
26728 calls. Stop early if we are only supposed to disambiguate.
26729 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
26730
26731 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
26732
26733 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
26734 Emit an error when the function has arguments.
26735
26736 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
26737
26738 * cfgloop.h (unswitch_loops): Remove.
26739 * doc/passes.texi: Remove references to loop-unswitch.c
26740 * timevar.def (TV_LOOP_UNSWITCH): Remove.
26741
26742 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
26743
26744 * tree-vect-data-refs.c (vect_grouped_load_supported): New
26745 check for loads group of length 3.
26746 (vect_permute_load_chain): New permutations for loads group of
26747 length 3.
26748 * tree-vect-stmts.c (vect_model_load_cost): Change cost
26749 of vec_perm_shuffle for the new permutations.
26750
26751 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
26752
26753 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
26754 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
26755 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
26756 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
26757 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
26758 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
26759 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
26760 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
26761
26762 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
26763
26764 * loop-unswitch.c: Delete.
26765
26766 2014-05-07 Richard Biener <rguenther@suse.de>
26767
26768 * config.gcc: Always set need_64bit_hwint to yes.
26769
26770 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
26771
26772 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
26773 of using optimize_size.
26774
26775 2014-05-06 Mike Stump <mikestump@comcast.net>
26776
26777 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
26778
26779 2014-05-06 Joseph Myers <joseph@codesourcery.com>
26780
26781 * config/i386/sse.md (*mov<mode>_internal)
26782 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
26783 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
26784 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
26785 (*<code><mode>3, *andnot<mode>3<mask_name>)
26786 (<mask_codefor><code><mode>3<mask_name>): Only consider
26787 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
26788
26789 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
26790
26791 Revert:
26792 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
26793
26794 * lra-constraints.c (valid_address_p): Move earlier in file.
26795 Add a constraint argument to the address_info version.
26796 (satisfies_memory_constraint_p): New function.
26797 (satisfies_address_constraint_p): Likewise.
26798 (process_alt_operands, curr_insn_transform): Use them.
26799 (process_address): Pass the constraint to valid_address_p when
26800 checking address operands.
26801
26802 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
26803
26804 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
26805 to their respective blocks. Fix inadvertent use of "node".
26806
26807 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
26808
26809 * emit-rtl.c (init_derived_machine_modes): New functionm, split
26810 out from...
26811 (init_emit_once): ...here.
26812 * rtl.h (init_derived_machine_modes): Declare.
26813 * toplev.c (do_compile): Call it even if no_backend.
26814
26815 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
26816 Mike Stump <mikestump@comcast.net>
26817 Richard Sandiford <rdsandiford@googlemail.com>
26818 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26819
26820 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
26821 (rtx_equal_for_memref_p): Update comment.
26822 (adjust_offset_for_component_ref): Use wide-int interfaces.
26823 * builtins.c (get_object_alignment_2): Likewise.
26824 (c_readstr): Likewise.
26825 (target_char_cast): Add comment.
26826 (determine_block_size): Use wide-int interfaces.
26827 (expand_builtin_signbit): Likewise.
26828 (fold_builtin_int_roundingfn): Likewise.
26829 (fold_builtin_bitop): Likewise.
26830 (fold_builtin_bswap): Likewise.
26831 (fold_builtin_logarithm): Use signop.
26832 (fold_builtin_pow): Likewise.
26833 (fold_builtin_memory_op): Use wide-int interfaces.
26834 (fold_builtin_object_size): Likewise.
26835 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
26836 nb_iterations_estimate.
26837 (record_niter_bound): Use wide-int interfaces.
26838 (get_estimated_loop_iterations_int): Likewise.
26839 (get_estimated_loop_iterations): Likewise.
26840 (get_max_loop_iterations): Likewise.
26841 * cfgloop.h: Include wide-int.h.
26842 (struct nb_iter_bound): Change bound to widest_int.
26843 (struct loop): Change nb_iterations_upper_bound and
26844 nb_iterations_estimate to widest_int.
26845 (record_niter_bound): Switch to use widest_int.
26846 (get_estimated_loop_iterations): Likewise.
26847 (get_max_loop_iterations): Likewise.
26848 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
26849 update for wide-int.
26850 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
26851 * combine.c (try_combine): Likewise.
26852 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
26853 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
26854 interfaces.
26855 (aarch64_float_const_representable_p): Likewise.
26856 * config/arc/arc.c: Include wide-int.h.
26857 (arc_can_use_doloop_p): Use wide-int interfaces.
26858 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
26859 (vfp3_const_double_index): Likewise.
26860 * config/avr/avr.c (avr_out_round): Likewise.
26861 (avr_fold_builtin): Likewise.
26862 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
26863 (bfin_can_use_doloop_p): Likewise.
26864 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
26865 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
26866 * config/i386/i386.c: Include wide-int.h.
26867 (ix86_data_alignment): Use wide-int interfaces.
26868 (ix86_local_alignment): Likewise.
26869 (ix86_emit_swsqrtsf): Update real_from_integer.
26870 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
26871 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
26872 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
26873 (zero_constant): Likewise.
26874 (input_operand): Likewise.
26875 (splat_input_operand): Likewise.
26876 (non_logical_cint_operand): Change const_double to const_wide_int.
26877 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
26878 (easy_altivec_constant): Remove comment.
26879 (paired_expand_vector_init): Use CONSTANT_P.
26880 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
26881 (rs6000_emit_move): Update checks.
26882 (rs6000_aggregate_candidate): Use wide-int interfaces.
26883 (rs6000_expand_ternop_builtin): Likewise.
26884 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
26885 (rs6000_assemble_integer): Likewise.
26886 (rs6000_hash_constant): Likewise.
26887 (output_toc): Likewise.
26888 (rs6000_rtx_costs): Likewise.
26889 (rs6000_emit_swrsqrt); Update call to real_from_integer.
26890 * config/rs6000/rs6000-c.c: Include wide-int.h.
26891 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
26892 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
26893 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
26894 Handle CONST_WIDE_INT.
26895 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
26896 Use tree_fits_uhwi_p.
26897 * config/sparc/sparc.c: Include wide-int.h.
26898 (sparc_fold_builtin): Use wide-int interfaces.
26899 * config/vax/vax.c: Include wide-int.h.
26900 (vax_float_literal): Use real_from_integer.
26901 * coretypes.h (struct hwivec_def): New.
26902 (hwivec): New.
26903 (const_hwivec): New.
26904 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
26905 (equiv_constant): Handle CONST_WIDE_INT.
26906 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
26907 (cselib_hash_rtx): Handle CONST_WIDE_INT.
26908 * dbxout.c (stabstr_U): Use wide-int interfaces.
26909 (dbxout_type): Update to use cst_fits_shwi_p.
26910 * defaults.h (LOG2_BITS_PER_UNIT): Define.
26911 (TARGET_SUPPORTS_WIDE_INT): Add default.
26912 * dfp.c: Include wide-int.h.
26913 (decimal_real_to_integer2): Use wide-int interfaces and rename to
26914 decimal_real_to_integer.
26915 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
26916 decimal_real_to_integer.
26917 * doc/generic.texi (Constant expressions): Update for wide_int.
26918 * doc/rtl.texi (const_double): Likewise.
26919 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
26920 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
26921 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
26922 (REAL_VALUE_FROM_INT): Remove.
26923 (TARGET_SUPPORTS_WIDE_INT): New.
26924 * doc/tm.texi: Regenerate.
26925 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
26926 * double-int.h: Include wide-int.h.
26927 (struct wi::int_traits): New.
26928 * dwarf2out.c (get_full_len): New.
26929 (dw_val_equal_p): Add case dw_val_class_wide_int.
26930 (size_of_loc_descr): Likewise.
26931 (output_loc_operands): Likewise.
26932 (insert_double): Remove.
26933 (insert_wide_int): New.
26934 (add_AT_wide): New.
26935 (print_die): Add case dw_val_class_wide_int.
26936 (attr_checksum): Likewise.
26937 (attr_checksum_ordered): Likewise.
26938 (same_dw_val_p): Likewise.
26939 (size_of_die): Likewise.
26940 (value_format): Likewise.
26941 (output_die): Likewise.
26942 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
26943 Use wide-int.
26944 (clz_loc_descriptor): Use wide-int interfaces.
26945 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
26946 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
26947 (round_up_to_align): Use wide-int interfaces.
26948 (field_byte_offset): Likewise.
26949 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
26950 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
26951 CONST_DOUBLE handling. Use wide-int interfaces.
26952 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
26953 (gen_enumeration_type_die): Use add_AT_wide.
26954 (hash_loc_operands): Add case dw_val_class_wide_int.
26955 (compare_loc_operands): Likewise.
26956 * dwarf2out.h: Include wide-int.h.
26957 (wide_int_ptr): New.
26958 (enum dw_val_class): Add dw_val_class_wide_int.
26959 (struct dw_val_struct): Add val_wide.
26960 * emit-rtl.c (const_wide_int_htab): New.
26961 (const_wide_int_htab_hash): New.
26962 (const_wide_int_htab_eq): New.
26963 (lookup_const_wide_int): New.
26964 (const_double_htab_hash): Use wide-int interfaces.
26965 (const_double_htab_eq): Likewise.
26966 (rtx_to_double_int): Conditionally compile for wide-int.
26967 (immed_double_int_const): Rename to immed_wide_int_const and
26968 update for wide-int.
26969 (immed_double_const): Conditionally compile for wide-int.
26970 (init_emit_once): Use wide-int interfaces.
26971 * explow.c (plus_constant): Likewise.
26972 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
26973 (lshift_value): Use wide-int interfaces.
26974 (expand_mult): Likewise.
26975 (choose_multiplier): Likewise.
26976 (expand_smod_pow2): Likewise.
26977 (make_tree): Likewise.
26978 * expr.c (convert_modes): Consolidate handling of constants.
26979 Use wide-int interfaces.
26980 (emit_group_load_1): Add note.
26981 (store_expr): Update comment.
26982 (get_inner_reference): Use wide-int interfaces.
26983 (expand_constructor): Update comment.
26984 (expand_expr_real_2): Use wide-int interfaces.
26985 (expand_expr_real_1): Likewise.
26986 (reduce_to_bit_field_precision): Likewise.
26987 (const_vector_from_tree): Likewise.
26988 * final.c: Include wide-int-print.h.
26989 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
26990 * fixed-value.c: Include wide-int.h.
26991 (fixed_from_string): Use wide-int interfaces.
26992 (fixed_to_decimal): Likewise.
26993 (fixed_convert_from_real): Likewise.
26994 (real_convert_from_fixed): Likewise.
26995 * fold-const.h (mem_ref_offset): Return an offset_int.
26996 (div_if_zero_remainder): Remove code parameter.
26997 * fold-const.c (div_if_zero_remainder): Remove code parameter.
26998 Use wide-int interfaces.
26999 (may_negate_without_overflow_p): Use wide-int interfaces.
27000 (negate_expr_p): Likewise.
27001 (fold_negate_expr): Likewise.
27002 (int_const_binop_1): Likewise.
27003 (const_binop): Likewise.
27004 (fold_convert_const_int_from_int): Likewise.
27005 (fold_convert_const_int_from_real): Likewise.
27006 (fold_convert_const_int_from_fixed): Likewise.
27007 (fold_convert_const_fixed_from_int): Likewise.
27008 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
27009 (sign_bit_p): Use wide-int interfaces.
27010 (make_range_step): Likewise.
27011 (build_range_check): Likewise. Pass an integer of the correct type
27012 instead of using integer_one_node.
27013 (range_predecessor): Pass an integer of the correct type instead
27014 of using integer_one_node.
27015 (range_successor): Likewise.
27016 (merge_ranges): Likewise.
27017 (unextend): Use wide-int interfaces.
27018 (extract_muldiv_1): Likewise.
27019 (fold_div_compare): Likewise.
27020 (fold_single_bit_test): Likewise.
27021 (fold_sign_changed_comparison): Likewise.
27022 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
27023 (fold_plusminus_mult_expr): Use wide-int interfaces.
27024 (native_encode_int): Likewise.
27025 (native_interpret_int): Likewise.
27026 (fold_unary_loc): Likewise.
27027 (pointer_may_wrap_p): Likewise.
27028 (size_low_cst): Likewise.
27029 (mask_with_tz): Likewise.
27030 (fold_binary_loc): Likewise.
27031 (fold_ternary_loc): Likewise.
27032 (multiple_of_p): Likewise.
27033 (tree_call_nonnegative_warnv_p): Update calls to
27034 tree_int_cst_min_precision and real_from_integer.
27035 (fold_negate_const): Use wide-int interfaces.
27036 (fold_abs_const): Likewise.
27037 (fold_relational_const): Use tree_int_cst_lt.
27038 (round_up_loc): Use wide-int interfaces.
27039 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
27040 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
27041 * gengtype.c: Remove include of double-int.h.
27042 (do_typedef): Use wide-int interfaces.
27043 (open_base_files): Add wide-int.h.
27044 (main): Add offset_int and widest_int typedefs.
27045 * gengtype-lex.l: Handle "^".
27046 (CXX_KEYWORD): Add "static".
27047 * gengtype-parse.c (require3): New.
27048 (require_template_declaration): Handle constant template arguments
27049 and nested templates.
27050 * gengtype-state.c: Don't include "double-int.h".
27051 * genpreds.c (write_one_predicate_function): Update comment.
27052 (write_tm_constrs_h): Add check for hval and lval use in
27053 CONST_WIDE_INT.
27054 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
27055 (add_to_sequence): Likewise.
27056 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
27057 and const_double_operand.
27058 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
27059 interfaces.
27060 * gimple-fold.c (get_base_constructor): Likewise.
27061 (fold_array_ctor_reference): Likewise.
27062 (fold_nonarray_ctor_reference): Likewise.
27063 (fold_const_aggregate_ref_1): Likewise.
27064 (gimple_val_nonnegative_real_p): Likewise.
27065 (gimple_fold_indirect_ref): Likewise.
27066 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
27067 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
27068 (struct slsr_cand_d): Change index to be widest_int.
27069 (struct incr_info_d): Change incr to be widest_int.
27070 (alloc_cand_and_find_basis): Use wide-int interfaces.
27071 (slsr_process_phi): Likewise.
27072 (backtrace_base_for_ref): Likewise. Return a widest_int.
27073 (restructure_reference): Take a widest_int instead of a double_int.
27074 (slsr_process_ref): Use wide-int interfaces.
27075 (create_mul_ssa_cand): Likewise.
27076 (create_mul_imm_cand): Likewise.
27077 (create_add_ssa_cand): Likewise.
27078 (create_add_imm_cand): Take a widest_int instead of a double_int.
27079 (slsr_process_add): Use wide-int interfaces.
27080 (slsr_process_cast): Likewise.
27081 (slsr_process_copy): Likewise.
27082 (dump_candidate): Likewise.
27083 (dump_incr_vec): Likewise.
27084 (replace_ref): Likewise.
27085 (cand_increment): Likewise. Return a widest_int.
27086 (cand_abs_increment): Likewise.
27087 (replace_mult_candidate): Take a widest_int instead of a double_int.
27088 (replace_unconditional_candidate): Use wide-int interfaces.
27089 (incr_vec_index): Take a widest_int instead of a double_int.
27090 (create_add_on_incoming_edge): Likewise.
27091 (create_phi_basis): Use wide-int interfaces.
27092 (replace_conditional_candidate): Likewise.
27093 (record_increment): Take a widest_int instead of a double_int.
27094 (record_phi_increments): Use wide-int interfaces.
27095 (phi_incr_cost): Take a widest_int instead of a double_int.
27096 (lowest_cost_path): Likewise.
27097 (total_savings): Likewise.
27098 (analyze_increments): Use wide-int interfaces.
27099 (ncd_with_phi): Take a widest_int instead of a double_int.
27100 (ncd_of_cand_and_phis): Likewise.
27101 (nearest_common_dominator_for_cands): Likewise.
27102 (insert_initializers): Use wide-int interfaces.
27103 (all_phi_incrs_profitable): Likewise.
27104 (replace_one_candidate): Likewise.
27105 (replace_profitable_candidates): Likewise.
27106 * godump.c: Include wide-int-print.h.
27107 (go_output_typedef): Use wide-int interfaces.
27108 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
27109 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
27110 (build_loop_iteration_domains): Likewise.
27111 * hooks.h: Include wide-int.h rather than double-int.h.
27112 (hook_bool_dint_dint_uint_bool_true): Delete.
27113 (hook_bool_wint_wint_uint_bool_true): Declare.
27114 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
27115 (hook_bool_wint_wint_uint_bool_true): New.
27116 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
27117 interfaces.
27118 (ubsan_expand_si_overflow_mul_check): Likewise.
27119 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
27120 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
27121 (get_ancestor_addr_info): Likewise.
27122 (ipa_modify_call_arguments): Likewise.
27123 * loop-doloop.c (doloop_modify): Likewise.
27124 (doloop_optimize): Likewise.
27125 * loop-iv.c (iv_number_of_iterations): Likewise.
27126 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
27127 (unroll_loop_constant_iterations): Likewise.
27128 (decide_unroll_runtime_iterations): Likewise.
27129 (unroll_loop_runtime_iterations): Likewise.
27130 (decide_peel_simple): Likewise.
27131 (decide_unroll_stupid): Likewise.
27132 * lto-streamer-in.c (streamer_read_wi): Add.
27133 (input_cfg): Use wide-int interfaces.
27134 (lto_input_tree_1): Likewise.
27135 * lto-streamer-out.c (streamer_write_wi): Add.
27136 (hash_tree): Use wide-int interfaces.
27137 (output_cfg): Likewise.
27138 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
27139 (GTFILES): Add wide-int.h and signop.h.
27140 (TAGS): Look for .cc files too.
27141 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
27142 * optabs.c (expand_subword_shift): Likewise.
27143 (expand_doubleword_shift): Likewise.
27144 (expand_absneg_bit): Likewise.
27145 (expand_copysign_absneg): Likewise.
27146 (expand_copysign_bit): Likewise.
27147 * postreload.c (reload_cse_simplify_set): Likewise.
27148 * predict.c (predict_iv_comparison): Likewise.
27149 * pretty-print.h: Include wide-int-print.h.
27150 (pp_wide_int) New.
27151 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
27152 * print-tree.c: Include wide-int-print.h.
27153 (print_node_brief): Use wide-int interfaces.
27154 (print_node): Likewise.
27155 * read-rtl.c (validate_const_wide_int): New.
27156 (read_rtx_code): Add CONST_WIDE_INT case.
27157 * real.c: Include wide-int.h.
27158 (real_to_integer2): Delete.
27159 (real_to_integer): New function, returning a wide_int.
27160 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
27161 (ten_to_ptwo): Update call to real_from_integer.
27162 (real_digit): Likewise.
27163 * real.h: Include signop.h, wide-int.h and insn-modes.h.
27164 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
27165 (REAL_VALUE_TO_INT): Delete.
27166 (real_to_integer): Declare a wide-int form.
27167 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
27168 * recog.c (const_int_operand): Improve comment.
27169 (const_scalar_int_operand): New.
27170 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
27171 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
27172 (split_double): Likewise.
27173 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
27174 (rtx_size): Likewise.
27175 (rtx_alloc_stat_v): New.
27176 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
27177 (cwi_output_hex): New.
27178 (iterative_hash_rtx): Handle CONST_WIDE_INT.
27179 (cwi_check_failed_bounds): New.
27180 * rtl.def (CONST_WIDE_INT): New.
27181 * rtl.h: Include <utility> and wide-int.h.
27182 (struct hwivec_def): New.
27183 (CWI_GET_NUM_ELEM): New.
27184 (CWI_PUT_NUM_ELEM): New.
27185 (struct rtx_def): Add num_elem and hwiv.
27186 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
27187 (CASE_CONST_UNIQUE): Likewise.
27188 (CASE_CONST_ANY): Likewise.
27189 (CONST_SCALAR_INT_P): Likewise.
27190 (CONST_WIDE_INT_P): New.
27191 (CWI_ELT): New.
27192 (HWIVEC_CHECK): New.
27193 (cwi_check_failed_bounds): New.
27194 (CWI_ELT): New.
27195 (HWIVEC_CHECK): New.
27196 (CONST_WIDE_INT_VEC) New.
27197 (CONST_WIDE_INT_NUNITS) New.
27198 (CONST_WIDE_INT_ELT) New.
27199 (rtx_mode_t): New type.
27200 (wi::int_traits <rtx_mode_t>): New.
27201 (wi::shwi): New.
27202 (wi::min_value): New.
27203 (wi::max_value): New.
27204 (rtx_alloc_v) New.
27205 (const_wide_int_alloc): New.
27206 (immed_wide_int_const): New.
27207 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
27208 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
27209 * signop.h: New file.
27210 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
27211 (simplify_const_unary_operation): Use wide-int interfaces.
27212 (simplify_binary_operation_1): Likewise.
27213 (simplify_const_binary_operation): Likewise.
27214 (simplify_const_relational_operation): Likewise.
27215 (simplify_immed_subreg): Likewise.
27216 * stmt.c (expand_case): Likewise.
27217 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
27218 signop rather than a bool.
27219 * stor-layout.c (layout_type): Use wide-int interfaces.
27220 (initialize_sizetypes): Update calls to
27221 set_min_and_max_values_for_integral_type.
27222 (set_min_and_max_values_for_integral_type): Take a signop rather
27223 than a bool. Use wide-int interfaces.
27224 (fixup_signed_type): Update accordingly. Remove
27225 HOST_BITS_PER_DOUBLE_INT limit.
27226 (fixup_unsigned_type): Likewise.
27227 * system.h (STATIC_CONSTANT_P): New.
27228 (STATIC_ASSERT): New.
27229 * target.def (can_use_doloop_p): Take widest_ints rather than
27230 double_ints.
27231 * target.h: Include wide-int.h rather than double-int.h.
27232 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
27233 than double_ints.
27234 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
27235 rather than INT_CST_LT_UNSIGNED.
27236 (can_use_doloop_if_innermost): Take widest_ints rather than
27237 double_ints.
27238 * tree-affine.c: Include wide-int-print.h.
27239 (double_int_ext_for_comb): Delete.
27240 (wide_int_ext_for_comb): New.
27241 (aff_combination_zero): Use wide-int interfaces.
27242 (aff_combination_const): Take a widest_int instead of a double_int.
27243 (aff_combination_elt): Use wide-int interfaces.
27244 (aff_combination_scale): Take a widest_int instead of a double_int.
27245 (aff_combination_add_elt): Likewise.
27246 (aff_combination_add_cst): Likewise.
27247 (aff_combination_add): Use wide-int interfaces.
27248 (aff_combination_convert): Likewise.
27249 (tree_to_aff_combination): Likewise.
27250 (add_elt_to_tree): Take a widest_int instead of a double_int.
27251 (aff_combination_to_tree): Use wide-int interfaces.
27252 (aff_combination_remove_elt): Likewise.
27253 (aff_combination_add_product): Take a widest_int instead of
27254 a double_int.
27255 (aff_combination_mult): Use wide-int interfaces.
27256 (aff_combination_expand): Likewise.
27257 (double_int_constant_multiple_p): Delete.
27258 (wide_int_constant_multiple_p): New.
27259 (aff_combination_constant_multiple_p): Take a widest_int pointer
27260 instead of a double_int pointer.
27261 (print_aff): Use wide-int interfaces.
27262 (get_inner_reference_aff): Take a widest_int pointer
27263 instead of a double_int pointer.
27264 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
27265 * tree-affine.h: Include wide-int.h.
27266 (struct aff_comb_elt): Change type of coef to widest_int.
27267 (struct affine_tree_combination): Change type of offset to widest_int.
27268 (double_int_ext_for_comb): Delete.
27269 (wide_int_ext_for_comb): New.
27270 (aff_combination_const): Use widest_int instead of double_int.
27271 (aff_combination_scale): Likewise.
27272 (aff_combination_add_elt): Likewise.
27273 (aff_combination_constant_multiple_p): Likewise.
27274 (get_inner_reference_aff): Likewise.
27275 (aff_comb_cannot_overlap_p): Likewise.
27276 (aff_combination_zero_p): Use wide-int interfaces.
27277 * tree.c: Include tree.h.
27278 (init_ttree): Use make_int_cst.
27279 (tree_code_size): Removed code for INTEGER_CST case.
27280 (tree_size): Add INTEGER_CST case.
27281 (make_node_stat): Update comment.
27282 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
27283 (build_int_cst_type): Use wide-int interfaces.
27284 (double_int_to_tree): Likewise.
27285 (double_int_fits_to_tree_p): Delete.
27286 (force_fit_type_double): Delete.
27287 (force_fit_type): New.
27288 (int_cst_hash_hash): Use wide-int interfaces.
27289 (int_cst_hash_eq): Likewise.
27290 (build_int_cst_wide): Delete.
27291 (wide_int_to_tree): New.
27292 (cache_integer_cst): Use wide-int interfaces.
27293 (build_low_bits_mask): Likewise.
27294 (cst_and_fits_in_hwi): Likewise.
27295 (real_value_from_int_cst): Likewise.
27296 (make_int_cst_stat): New.
27297 (integer_zerop): Use wide_int interfaces.
27298 (integer_onep): Likewise.
27299 (integer_all_onesp): Likewise.
27300 (integer_pow2p): Likewise.
27301 (integer_nonzerop): Likewise.
27302 (tree_log2): Likewise.
27303 (tree_floor_log2): Likewise.
27304 (tree_ctz): Likewise.
27305 (int_size_in_bytes): Likewise.
27306 (mem_ref_offset): Return an offset_int rather than a double_int.
27307 (build_type_attribute_qual_variant): Use wide_int interfaces.
27308 (type_hash_eq): Likewise
27309 (tree_int_cst_equal): Likewise.
27310 (tree_int_cst_lt): Delete.
27311 (tree_int_cst_compare): Likewise.
27312 (tree_fits_shwi_p): Use wide_int interfaces.
27313 (tree_fits_uhwi_p): Likewise.
27314 (tree_int_cst_sign_bit): Likewise.
27315 (tree_int_cst_sgn): Likewise.
27316 (tree_int_cst_min_precision): Take a signop rather than a bool.
27317 (simple_cst_equal): Use wide_int interfaces.
27318 (compare_tree_int): Likewise.
27319 (iterative_hash_expr): Likewise.
27320 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
27321 INT_CST_LT.
27322 (get_type_static_bounds): Use wide_int interfaces.
27323 (tree_int_cst_elt_check_failed): New.
27324 (build_common_tree_nodes): Reordered to set prec before filling in
27325 value.
27326 (int_cst_value): Check cst_and_fits_in_hwi.
27327 (widest_int_cst_value): Use wide_int interfaces.
27328 (upper_bound_in_type): Likewise.
27329 (lower_bound_in_type): Likewise.
27330 (num_ending_zeros): Likewise.
27331 (drop_tree_overflow): Likewise.
27332 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
27333 (gen_conditions_for_pow_cst_base): Likewise.
27334 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
27335 (group_case_labels_stmt): Use wide-int interfaces.
27336 (verify_gimple_assign_binary): Likewise.
27337 (print_loop): Likewise.
27338 * tree-chrec.c (tree_fold_binomial): Likewise.
27339 * tree-core.h (struct tree_base): Add int_length.
27340 (struct tree_int_cst): Change rep of value.
27341 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
27342 (dr_may_alias_p): Likewise.
27343 (max_stmt_executions_tree): Likewise.
27344 * tree.def (INTEGER_CST): Update comment.
27345 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
27346 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
27347 * tree-dump.c: Include wide-int.h and wide-int-print.h.
27348 (dequeue_and_dump): Use wide-int interfaces.
27349 * tree.h: Include wide-int.h.
27350 (NULL_TREE): Moved to earlier loc in file.
27351 (TREE_INT_CST_ELT_CHECK): New.
27352 (tree_int_cst_elt_check_failed): New.
27353 (TYPE_SIGN): New.
27354 (TREE_INT_CST): Delete.
27355 (TREE_INT_CST_LOW): Use wide-int interfaces.
27356 (TREE_INT_CST_HIGH): Delete.
27357 (TREE_INT_CST_NUNITS): New.
27358 (TREE_INT_CST_EXT_NUNITS): Likewise.
27359 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
27360 (TREE_INT_CST_ELT): Likewise.
27361 (INT_CST_LT): Delete.
27362 (tree_int_cst_elt_check): New (two forms).
27363 (type_code_size): Update comment.
27364 (make_int_cst_stat, make_int_cst): New.
27365 (tree_to_double_int): Delete.
27366 (double_int_fits_to_tree_p): Delete.
27367 (force_fit_type_double): Delete.
27368 (build_int_cstu): Replace with out-of-line function.
27369 (build_int_cst_wide): Delete.
27370 (tree_int_cst_lt): Define inline.
27371 (tree_int_cst_le): New.
27372 (tree_int_cst_compare): Define inline.
27373 (tree_int_cst_min_precision): Take a signop rather than a bool.
27374 (wi::int_traits <const_tree>): New.
27375 (wi::int_traits <tree>): New.
27376 (wi::extended_tree): New.
27377 (wi::int_traits <wi::extended_tree>): New.
27378 (wi::to_widest): New.
27379 (wi::to_offset): New.
27380 (wi::fits_to_tree_p): New.
27381 (wi::min_value): New.
27382 (wi::max_value): New.
27383 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
27384 (copy_tree_body_r): Likewise.
27385 * tree-object-size.c (compute_object_offset): Likewise.
27386 (addr_object_size): Likewise.
27387 * tree-predcom.c: Include wide-int-print.h.
27388 (struct dref_d): Change type of offset to widest_int.
27389 (dump_dref): Call wide-int printer.
27390 (aff_combination_dr_offset): Use wide-int interfaces.
27391 (determine_offset): Take a widest_int pointer rather than a
27392 double_int pointer.
27393 (split_data_refs_to_components): Use wide-int interfaces.
27394 (suitable_component_p): Likewise.
27395 (order_drefs): Likewise.
27396 (add_ref_to_chain): Likewise.
27397 (valid_initializer_p): Likewise.
27398 (determine_roots_comp): Likewise.
27399 * tree-pretty-print.c: Include wide-int-print.h.
27400 (dump_generic_node): Use wide-int interfaces.
27401 * tree-sra.c (sra_ipa_modify_expr): Likewise.
27402 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
27403 (move_fixed_address_to_symbol): Likewise.
27404 (move_hint_to_base): Likewise.
27405 (move_pointer_to_base): Likewise.
27406 (move_variant_to_index): Likewise.
27407 (most_expensive_mult_to_index): Likewise.
27408 (addr_to_parts): Likewise.
27409 (copy_ref_info): Likewise.
27410 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
27411 (indirect_refs_may_alias_p): Likewise.
27412 (stmt_kills_ref_p_1): Likewise.
27413 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
27414 * tree-ssa-ccp.c: Update comment at top of file. Include
27415 wide-int-print.h.
27416 (struct prop_value_d): Change type of mask to widest_int.
27417 (extend_mask): New function.
27418 (dump_lattice_value): Use wide-int interfaces.
27419 (get_default_value): Likewise.
27420 (set_constant_value): Likewise.
27421 (set_value_varying): Likewise.
27422 (valid_lattice_transition): Likewise.
27423 (set_lattice_value): Likewise.
27424 (value_to_double_int): Delete.
27425 (value_to_wide_int): New.
27426 (get_value_from_alignment): Use wide-int interfaces.
27427 (get_value_for_expr): Likewise.
27428 (do_dbg_cnt): Likewise.
27429 (ccp_finalize): Likewise.
27430 (ccp_lattice_meet): Likewise.
27431 (bit_value_unop_1): Use widest_ints rather than double_ints.
27432 (bit_value_binop_1): Likewise.
27433 (bit_value_unop): Use wide-int interfaces.
27434 (bit_value_binop): Likewise.
27435 (bit_value_assume_aligned): Likewise.
27436 (evaluate_stmt): Likewise.
27437 (ccp_fold_stmt): Likewise.
27438 (visit_cond_stmt): Likewise.
27439 (ccp_visit_stmt): Likewise.
27440 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
27441 (constant_pointer_difference): Likewise.
27442 (associate_pointerplus): Likewise.
27443 (combine_conversions): Likewise.
27444 * tree-ssa-loop.h: Include wide-int.h.
27445 (struct tree_niter_desc): Change type of max to widest_int.
27446 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
27447 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
27448 (remove_redundant_iv_tests): Likewise.
27449 (canonicalize_loop_induction_variables): Likewise.
27450 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
27451 (constant_multiple_of): Take a widest_int pointer instead of
27452 a double_int pointer.
27453 (get_computation_aff): Use wide-int interfaces.
27454 (ptr_difference_cost): Likewise.
27455 (difference_cost): Likewise.
27456 (get_loop_invariant_expr_id): Likewise.
27457 (get_computation_cost_at): Likewise.
27458 (iv_elimination_compare_lt): Likewise.
27459 (may_eliminate_iv): Likewise.
27460 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
27461 instead of double_int.
27462 (max_loop_iterations): Likewise.
27463 (max_stmt_executions): Likewise.
27464 (estimated_stmt_executions): Likewise.
27465 * tree-ssa-loop-niter.c: Include wide-int-print.h.
27466 (split_to_var_and_offset): Use wide-int interfaces.
27467 (determine_value_range): Likewise.
27468 (bound_difference_of_offsetted_base): Likewise.
27469 (bounds_add): Take a widest_int instead of a double_int.
27470 (number_of_iterations_ne_max): Use wide-int interfaces.
27471 (number_of_iterations_ne): Likewise.
27472 (number_of_iterations_lt_to_ne): Likewise.
27473 (assert_loop_rolls_lt): Likewise.
27474 (number_of_iterations_lt): Likewise.
27475 (number_of_iterations_le): Likewise.
27476 (number_of_iterations_cond): Likewise.
27477 (number_of_iterations_exit): Likewise.
27478 (finite_loop_p): Likewise.
27479 (derive_constant_upper_bound_assign): Likewise.
27480 (derive_constant_upper_bound): Return a widest_int.
27481 (derive_constant_upper_bound_ops): Likewise.
27482 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
27483 (record_estimate): Take a widest_int rather than a double_int.
27484 (record_nonwrapping_iv): Use wide-int interfaces.
27485 (double_int_cmp): Delete.
27486 (wide_int_cmp): New.
27487 (bound_index): Take a widest_int rather than a double_int.
27488 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
27489 (maybe_lower_iteration_bound): Likewise.
27490 (estimate_numbers_of_iterations_loop): Likewise.
27491 (estimated_loop_iterations): Take a widest_int pointer than than
27492 a double_int pointer.
27493 (estimated_loop_iterations_int): Use wide-int interfaces.
27494 (max_loop_iterations): Take a widest_int pointer than than
27495 a double_int pointer.
27496 (max_loop_iterations_int): Use wide-int interfaces.
27497 (max_stmt_executions): Take a widest_int pointer than than
27498 a double_int pointer.
27499 (estimated_stmt_executions): Likewise.
27500 (n_of_executions_at_most): Use wide-int interfaces.
27501 (scev_probably_wraps_p): Likewise.
27502 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
27503 to real_to_integer.
27504 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
27505 interfaces.
27506 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
27507 double_ints. Adjust for trailing_wide_ints <3> representation.
27508 (set_nonzero_bits): Likewise.
27509 (get_range_info): Return wide_ints rather than double_ints.
27510 Adjust for trailing_wide_ints <3> representation.
27511 (get_nonzero_bits): Likewise.
27512 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
27513 representation.
27514 * tree-ssanames.h (struct range_info_def): Replace min, max and
27515 nonzero_bits with a trailing_wide_ints <3>.
27516 (set_range_info): Use wide_int_refs rather than double_ints.
27517 (set_nonzero_bits): Likewise.
27518 (get_range_info): Return wide_ints rather than double_ints.
27519 (get_nonzero_bits): Likewise.
27520 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
27521 * tree-ssa-pre.c (phi_translate_1): Likewise.
27522 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
27523 (acceptable_pow_call): Likewise.
27524 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
27525 interfaces.
27526 (vn_reference_fold_indirect): Likewise.
27527 (vn_reference_maybe_forwprop_address): Likewise.
27528 (valueize_refs_1): Likewise.
27529 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
27530 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
27531 tree_int_cst_lt and tree_int_cst_le.
27532 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
27533 interfaces.
27534 (streamer_alloc_tree): Likewise.
27535 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
27536 (streamer_write_tree_header): Likewise.
27537 (streamer_write_integer_cst): Likewise.
27538 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
27539 (build_constructors): Likewise.
27540 (array_value_type): Likewise.
27541 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
27542 (vect_check_gather): Likewise.
27543 * tree-vect-generic.c (build_replicated_const): Likewise.
27544 (expand_vector_divmod): Likewise.
27545 * tree-vect-loop.c (vect_transform_loop): Likewise.
27546 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
27547 (vect_do_peeling_for_alignment): Likewise.
27548 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
27549 * tree-vrp.c: Include wide-int.h.
27550 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
27551 (extract_range_from_assert): Use wide-int interfaces.
27552 (vrp_int_const_binop): Likewise.
27553 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
27554 double_int pointers.
27555 (ranges_from_anti_range): Use wide-int interfaces.
27556 (quad_int_cmp): Delete.
27557 (quad_int_pair_sort): Likewise.
27558 (extract_range_from_binary_expr_1): Use wide-int interfaces.
27559 (extract_range_from_unary_expr_1): Likewise.
27560 (adjust_range_with_scev): Likewise.
27561 (masked_increment): Take and return wide_ints rather than double_ints.
27562 (register_edge_assert_for_2): Use wide-int interfaces.
27563 (check_array_ref): Likewise.
27564 (search_for_addr_array): Likewise.
27565 (maybe_set_nonzero_bits): Likewise.
27566 (union_ranges): Pass an integer of the correct type instead of
27567 using integer_one_node.
27568 (intersect_ranges): Likewise.
27569 (simplify_truth_ops_using_ranges): Likewise.
27570 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
27571 (range_fits_type_p): Likewise.
27572 (simplify_cond_using_ranges): Likewise. Take a signop rather than
27573 a bool.
27574 (simplify_conversion_using_ranges): Use wide-int interfaces.
27575 (simplify_float_conversion_using_ranges): Likewise.
27576 (vrp_finalize): Likewise.
27577 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
27578 (gimple_stringops_transform): Likewise.
27579 * varasm.c (decode_addr_const): Likewise.
27580 (const_hash_1): Likewise.
27581 (const_rtx_hash_1): Likewise
27582 (output_constant): Likewise.
27583 (array_size_for_constructor): Likewise.
27584 (output_constructor_regular_field): Likewise.
27585 (output_constructor_bitfield): Likewise.
27586 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
27587 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
27588 GENERATOR_FILEs.
27589 * gencheck.c: Define BITS_PER_UNIT.
27590 * wide-int.cc: New.
27591 * wide-int.h: New.
27592 * wide-int-print.cc: New.
27593 * wide-int-print.h: New.
27594
27595 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
27596
27597 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
27598
27599 2014-05-06 Richard Biener <rguenther@suse.de>
27600
27601 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
27602 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
27603 (TODO_verify_all): Adjust.
27604 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
27605 TODO_verify_stmts and TODO_verify_rtl_sharing.
27606 * bb-reorder.c: Likewise.
27607 * cfgexpand.c: Likewise.
27608 * cprop.c: Likewise.
27609 * cse.c: Likewise.
27610 * function.c: Likewise.
27611 * fwprop.c: Likewise.
27612 * gcse.c: Likewise.
27613 * gimple-ssa-isolate-paths.c: Likewise.
27614 * gimple-ssa-strength-reduction.c: Likewise.
27615 * ipa-split.c: Likewise.
27616 * loop-init.c: Likewise.
27617 * loop-unroll.c: Likewise.
27618 * lower-subreg.c: Likewise.
27619 * modulo-sched.c: Likewise.
27620 * postreload-gcse.c: Likewise.
27621 * predict.c: Likewise.
27622 * recog.c: Likewise.
27623 * sched-rgn.c: Likewise.
27624 * store-motion.c: Likewise.
27625 * tracer.c: Likewise.
27626 * trans-mem.c: Likewise.
27627 * tree-call-cdce.c: Likewise.
27628 * tree-cfg.c: Likewise.
27629 * tree-cfgcleanup.c: Likewise.
27630 * tree-complex.c: Likewise.
27631 * tree-eh.c: Likewise.
27632 * tree-emutls.c: Likewise.
27633 * tree-if-conv.c: Likewise.
27634 * tree-into-ssa.c: Likewise.
27635 * tree-loop-distribution.c: Likewise.
27636 * tree-object-size.c: Likewise.
27637 * tree-parloops.c: Likewise.
27638 * tree-pass.h: Likewise.
27639 * tree-sra.c: Likewise.
27640 * tree-ssa-ccp.c: Likewise.
27641 * tree-ssa-copy.c: Likewise.
27642 * tree-ssa-copyrename.c: Likewise.
27643 * tree-ssa-dce.c: Likewise.
27644 * tree-ssa-dom.c: Likewise.
27645 * tree-ssa-dse.c: Likewise.
27646 * tree-ssa-forwprop.c: Likewise.
27647 * tree-ssa-ifcombine.c: Likewise.
27648 * tree-ssa-loop-ch.c: Likewise.
27649 * tree-ssa-loop-ivcanon.c: Likewise.
27650 * tree-ssa-loop.c: Likewise.
27651 * tree-ssa-math-opts.c: Likewise.
27652 * tree-ssa-phiopt.c: Likewise.
27653 * tree-ssa-phiprop.c: Likewise.
27654 * tree-ssa-pre.c: Likewise.
27655 * tree-ssa-reassoc.c: Likewise.
27656 * tree-ssa-sink.c: Likewise.
27657 * tree-ssa-strlen.c: Likewise.
27658 * tree-ssa-tail-merge.c: Likewise.
27659 * tree-ssa-uncprop.c: Likewise.
27660 * tree-switch-conversion.c: Likewise.
27661 * tree-tailcall.c: Likewise.
27662 * tree-vect-generic.c: Likewise.
27663 * tree-vectorizer.c: Likewise.
27664 * tree-vrp.c: Likewise.
27665 * tsan.c: Likewise.
27666 * var-tracking.c: Likewise.
27667 * bt-load.c: Likewise.
27668 * cfgcleanup.c: Likewise.
27669 * combine-stack-adj.c: Likewise.
27670 * combine.c: Likewise.
27671 * compare-elim.c: Likewise.
27672 * config/epiphany/resolve-sw-modes.c: Likewise.
27673 * config/i386/i386.c: Likewise.
27674 * config/mips/mips.c: Likewise.
27675 * config/s390/s390.c: Likewise.
27676 * config/sh/sh_treg_combine.cc: Likewise.
27677 * config/sparc/sparc.c: Likewise.
27678 * dce.c: Likewise.
27679 * dse.c: Likewise.
27680 * final.c: Likewise.
27681 * ifcvt.c: Likewise.
27682 * mode-switching.c: Likewise.
27683 * passes.c: Likewise.
27684 * postreload.c: Likewise.
27685 * ree.c: Likewise.
27686 * reg-stack.c: Likewise.
27687 * regcprop.c: Likewise.
27688 * regrename.c: Likewise.
27689 * web.c: Likewise.
27690
27691 2014-05-06 Richard Biener <rguenther@suse.de>
27692
27693 PR middle-end/61070
27694 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
27695 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
27696
27697 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
27698
27699 PR ipa/60965
27700 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
27701
27702 2014-05-05 Radovan Obradovic <robradovic@mips.com>
27703 Tom de Vries <tom@codesourcery.com>
27704
27705 * target.def (call_fusage_contains_non_callee_clobbers): New
27706 DEFHOOKPOD.
27707 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
27708 Hooks to @menu.
27709 (@node Miscellaneous Register Hooks): New node.
27710 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
27711 * doc/tm.texi: Regenerate.
27712
27713 2014-05-05 Marek Polacek <polacek@redhat.com>
27714
27715 PR driver/61065
27716 * opts.c (common_handle_option): Call error_at instead of warning_at.
27717
27718 2014-05-05 Richard Biener <rguenther@suse.de>
27719
27720 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
27721 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
27722 under the TODO_verify_il umbrella.
27723
27724 2014-05-05 Richard Biener <rguenther@suse.de>
27725
27726 * passes.c (execute_function_todo): Move TODO_verify_flow under
27727 the TODO_verify_ul umbrella.
27728
27729 2014-05-05 Richard Biener <rguenther@suse.de>
27730
27731 PR middle-end/61010
27732 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
27733 X & CST away from a CST that is the mask of a mode.
27734
27735 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
27736
27737 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
27738 int argument to enum machine_mode.
27739 (picochip_class_max_nregs): Ditto.
27740 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
27741 (picochip_class_max_nregs): Ditto.
27742
27743 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27744
27745 * target.def: Add new target hook.
27746 * doc/tm.texi: Regenerate.
27747 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
27748 * targhooks.c (default_keep_leaf_when_profiled): New function.
27749
27750 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
27751 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
27752
27753 2014-05-05 Bin Cheng <bin.cheng@arm.com>
27754
27755 PR tree-optimization/60363
27756 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
27757 (copy_phi_args): New parameters. Call get_value_locus_in_path.
27758 (update_destination_phis): New parameter.
27759 (create_edge_and_update_destination_phis): Ditto.
27760 (ssa_fix_duplicate_block_edges): Pass new arguments.
27761 (thread_single_edge): Ditto.
27762
27763 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
27764
27765 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
27766 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
27767 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
27768 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
27769 Use RS6000_BTM_HARD_FLOAT.
27770 (BU_MISC_2): Likewise.
27771 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
27772 RS6000_BTM_HARD_FLOAT.
27773 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
27774 is explicitly used.
27775 (rs6000_invalid_builtin): Add hard floating builtin support.
27776 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
27777 hard float builtins.
27778 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
27779
27780 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27781
27782 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
27783 Add missing function* argument.
27784
27785 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
27786
27787 * lra-constraints.c (valid_address_p): Move earlier in file.
27788 Add a constraint argument to the address_info version.
27789 (satisfies_memory_constraint_p): New function.
27790 (satisfies_address_constraint_p): Likewise.
27791 (process_alt_operands, curr_insn_transform): Use them.
27792 (process_address): Pass the constraint to valid_address_p when
27793 checking address operands.
27794
27795 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
27796
27797 * config/mips/mips.c (mips_isa_rev): New variable.
27798 (mips_set_architecture): Set it.
27799 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
27800 from mips_isa_rev.
27801 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
27802 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
27803 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
27804 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
27805 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
27806 conditions in terms of mips_isa_rev.
27807 (mips_isa_rev): Declare.
27808
27809 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27810
27811 * config/sh/sh-mem.cc: Use tabs instead of spaces.
27812 (prob_unlikely, prob_likely): Make variables const.
27813
27814 2014-05-03 Denis Chertykov <chertykov@gmail.com>
27815
27816 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
27817
27818 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27819
27820 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
27821
27822 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27823
27824 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
27825 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
27826 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
27827 functions.
27828 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
27829 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
27830 sh_pass_in_reg_p.
27831 Replace usage of ROUND_REG with sh_round_reg.
27832 Use CEIL instead of ROUND_ADVANCE.
27833
27834 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27835
27836 PR target/61026
27837 * config/sh/sh.c: Include stdlib headers before everything else.
27838
27839 2014-05-02 Jakub Jelinek <jakub@redhat.com>
27840
27841 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
27842 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
27843 (gimplify_adjust_omp_clauses): Simd region is never
27844 directly nested in combined parallel. Instead, for linear
27845 with copyin/copyout, if in combined for simd loop, make decl
27846 firstprivate/lastprivate on OMP_FOR.
27847 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
27848 expand_omp_for_static_chunk): When setting endvar, also set
27849 fd->loop.v to the same value.
27850
27851 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
27852
27853 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
27854
27855 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
27856
27857 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
27858 expression.
27859
27860 2014-05-02 Marek Polacek <polacek@redhat.com>
27861
27862 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
27863
27864 2014-05-02 Kito Cheng <kito@0xlab.org>
27865
27866 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
27867 to a C expression marco.
27868 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
27869 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
27870 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
27871 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
27872 HONOR_REG_ALLOC_ORDER.
27873 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
27874
27875 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
27876
27877 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
27878
27879 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
27880
27881 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
27882
27883 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
27884
27885 * tree-if-conv.c (is_cond_scalar_reduction): New function.
27886 (convert_scalar_cond_reduction): Likewise.
27887 (predicate_scalar_phi): Add recognition and transformation
27888 of simple conditioanl reduction to be vectorizable.
27889
27890 2014-05-01 Marek Polacek <polacek@redhat.com>
27891
27892 PR c/43245
27893 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
27894
27895 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
27896
27897 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
27898 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
27899 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
27900 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
27901 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
27902 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
27903 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
27904 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
27905
27906 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
27907
27908 * config/arc/arc.opt (mlra): Move comment above option name
27909 to avoid mis-parsing as language options.
27910
27911 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27912
27913 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
27914 * config/sol2.h: ... here.
27915 * config/sol2-10.h: Remove.
27916
27917 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
27918 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
27919 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
27920 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
27921 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
27922 * config/sol2.h: ... here.
27923 (SECTION_NAME_FORMAT): Don't redefine.
27924 (STARTFILE_ARCH32_SPEC): Rename to ...
27925 (STARTFILE_ARCH_SPEC): ... this.
27926 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
27927 * config/sparc/sol2.h: ... here.
27928 (SECTION_NAME_FORMAT): Don't undef.
27929 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
27930 (SUBTARGET_EXTRA_SPECS): Remove.
27931 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
27932
27933 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
27934 (MD_STARTFILE_PREFIX): Remove.
27935 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
27936 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
27937 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
27938 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
27939 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
27940 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
27941 * config/i386/sol2.h: ... here.
27942 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
27943 * config/i386/sol2-bi.h: Remove.
27944 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
27945 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
27946
27947 * config/i386/t-sol2-64: Rename to ...
27948 * config/i386/t-sol2: ... this.
27949 * config/sparc/t-sol2-64: Rename to ...
27950 * config/sparc/t-sol2: ... this.
27951
27952 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
27953 sol2_tm_file_head, sol2_tm_file_tail.
27954 Include ${cpu_type}/sol2.h before sol2.h.
27955 Remove sol2-10.h.
27956 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
27957 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
27958 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
27959 Reflect i386/t-sol2-64 renaming.
27960 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
27961 Reflect sparc/t-sol2-64 renaming.
27962
27963 2014-04-30 Richard Biener <rguenther@suse.de>
27964
27965 * passes.c (execute_function_todo): Move TODO_verify_stmts
27966 and TODO_verify_ssa under the TODO_verify_il umbrella.
27967 * tree-ssa.h (verify_ssa): Adjust prototype.
27968 * tree-ssa.c (verify_ssa): Add parameter to tell whether
27969 we should verify SSA operands.
27970 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
27971 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
27972 whether we should verify whether not throwing stmts have EH info.
27973 * graphite-scop-detection.c (create_sese_edges): Adjust.
27974 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
27975 * tree-eh.c (lower_try_finally_switch): Do not add the
27976 default case label twice.
27977
27978 2014-04-30 Marek Polacek <polacek@redhat.com>
27979
27980 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
27981 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
27982 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
27983 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
27984
27985 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
27986
27987 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
27988 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
27989 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
27990 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
27991 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
27992 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
27993 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
27994 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
27995
27996 2014-04-29 David Malcolm <dmalcolm@redhat.com>
27997
27998 * tree-cfg.c (dump_function_to_file): Dump the return type of
27999 functions, in a line to itself before the function body, mimicking
28000 the layout of a C function.
28001
28002 2014-04-29 Jakub Jelinek <jakub@redhat.com>
28003
28004 PR tree-optimization/60971
28005 * tree-tailcall.c (process_assignment): Reject conversions which
28006 reduce precision.
28007
28008 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
28009
28010 * calls.c (initialize_argument_information): Always treat
28011 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
28012 (expand_call): Likewise.
28013 (emit_library_call_calue_1): Likewise.
28014 * expr.c (PUSH_ARGS_REVERSED): Do not define.
28015 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
28016 code accordingly.
28017
28018 2014-04-29 Nick Clifton <nickc@redhat.com>
28019
28020 * config/msp430/msp430.md (umulsidi): Fix typo.
28021 (mulhisi3): Enable even inside interrupt handlers.
28022 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
28023 bigger return address pushed in large mode.
28024
28025 2014-04-29 Nick Clifton <nickc@redhat.com>
28026
28027 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
28028 (arc_init_reg_tables): Use a machine_mode enum to iterate over
28029 available modes.
28030 * config/m32r/m32r.c (init_reg_tables): Likewise.
28031 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
28032 enum to hold the modes.
28033
28034 2014-04-29 Richard Biener <rguenther@suse.de>
28035
28036 * dominance.c (free_dominance_info): Add overload with
28037 function parameter.
28038 (dom_info_state): Likewise.
28039 (dom_info_available_p): Likewise.
28040 * basic-block.h (free_dominance_info, dom_info_state,
28041 dom_info_available_p): Declare overloads.
28042 * passes.c (execute_function_todo): Verify that verifiers
28043 don't change dominator info state. Drop dominator info
28044 for IPA pass invocations.
28045 * cgraph.c (release_function_body): Restore asserts that
28046 dominator information is released.
28047
28048 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
28049
28050 * doc/invoke.texi: Fix typo.
28051 * tree-vrp.c: Fix typos.
28052 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
28053
28054 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
28055
28056 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
28057
28058 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
28059
28060 * config/aarch64/aarch64-builtins.c
28061 (aarch64_types_storestruct_lane_qualifiers): New.
28062 (TYPES_STORESTRUCT_LANE): Likewise.
28063 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
28064 (st3_lane): Likewise.
28065 (st4_lane): Likewise.
28066 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
28067 (vec_store_lanesci_lane<mode>): Likewise.
28068 (vec_store_lanesxi_lane<mode>): Likewise.
28069 (aarch64_st2_lane<VQ:mode>): Likewise.
28070 (aarch64_st3_lane<VQ:mode>): Likewise.
28071 (aarch64_st4_lane<VQ:mode>): Likewise.
28072 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
28073 * config/aarch64/arm_neon.h
28074 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
28075 use new macro arguments.
28076 (__ST3_LANE_FUNC): Likewise.
28077 (__ST4_LANE_FUNC): Likewise.
28078 * config/aarch64/iterators.md (V_TWO_ELEM): New.
28079 (V_THREE_ELEM): Likewise.
28080 (V_FOUR_ELEM): Likewise.
28081
28082 2014-04-28 David Malcolm <dmalcolm@redhat.com>
28083
28084 * doc/gimple.texi: Replace the description of the now-defunct
28085 union gimple_statement_d with a diagram showing the
28086 gimple_statement_base class hierarchy and its relationships to
28087 the GSS_ and GIMPLE_ enums.
28088
28089 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
28090
28091 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
28092 * config/aarch64/aarch64.c
28093 (aarch64_cannot_change_mode_class): Weaken conditions.
28094 (aarch64_modes_tieable_p): New.
28095 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
28096
28097 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
28098
28099 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
28100 (loadsync_<mode>): Change mode.
28101 (load_quadpti, store_quadpti): New.
28102 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
28103 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
28104
28105 2014-04-28 Martin Jambor <mjambor@suse.cz>
28106
28107 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
28108 same alias type as the original statement.
28109 (subreplacement_assignment_data): New type.
28110 (handle_unscalarized_data_in_subtree): New type of parameter,
28111 generate new memory accesses with same alias type as the original
28112 statement.
28113 (load_assign_lhs_subreplacements): Likewise.
28114 (sra_modify_constructor_assign): Generate new memory accesses with
28115 same alias type as the original statement.
28116
28117 2014-04-28 Richard Biener <rguenther@suse.de>
28118
28119 * tree-pass.h (TODO_verify_il): Define.
28120 (TODO_verify_all): Complete properly.
28121 * passes.c (execute_function_todo): Move existing loop-closed
28122 SSA verification under TODO_verify_il.
28123 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
28124 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
28125 Fix tree sharing issue.
28126
28127 2014-04-28 Richard Biener <rguenther@suse.de>
28128
28129 PR middle-end/60092
28130 * builtins.def (DEF_C11_BUILTIN): Add.
28131 (BUILT_IN_ALIGNED_ALLOC): Likewise.
28132 * coretypes.h (enum function_class): Add function_c11_misc.
28133 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
28134 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
28135 (call_may_clobber_ref_p_1): Likewise.
28136 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
28137 (mark_all_reaching_defs_necessary_1): Likewise.
28138 (propagate_necessity): Likewise.
28139 (eliminate_unnecessary_stmts): Likewise.
28140 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
28141
28142 2014-04-28 Richard Biener <rguenther@suse.de>
28143
28144 * tree-vrp.c (vrp_var_may_overflow): Remove.
28145 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
28146 with overflow immediately bump to one before that value and
28147 let iteration figure out overflow status.
28148
28149 2014-04-28 Richard Biener <rguenther@suse.de>
28150
28151 * configure.ac: Do valgrind header checks unconditionally.
28152 Add --enable-valgrind-annotations.
28153 * system.h: Guard valgrind header inclusion with
28154 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
28155 * alloc-pool.c (pool_alloc, pool_free): Use
28156 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
28157 to guard possibly dead code.
28158 * config.in: Regenerated.
28159 * configure: Likewise.
28160
28161 2014-04-28 Jeff Law <law@redhat.com>
28162
28163 PR tree-optimization/60902
28164 * tree-ssa-threadedge.c
28165 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
28166 over real defs when invalidating outputs from statements that do not
28167 produce useful outputs for threading.
28168
28169 2014-04-28 Richard Biener <rguenther@suse.de>
28170
28171 PR tree-optimization/60979
28172 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
28173 SCOPs that end in a block with a successor with abnormal
28174 predecessors.
28175
28176 2014-04-28 Richard Biener <rguenther@suse.de>
28177
28178 * tree-pass.h (execute_pass_list): Adjust prototype.
28179 * passes.c (pass_manager::execute_early_local_passes): Adjust.
28180 (do_per_function): Change callback signature, push all actual
28181 work to the callbals.
28182 (do_per_function_toporder): Likewise.
28183 (execute_function_dump): Adjust.
28184 (execute_function_todo): Likewise.
28185 (clear_last_verified): Likewise.
28186 (verify_curr_properties): Likewise.
28187 (update_properties_after_pass): Likewise.
28188 (execute_pass_list_1): Split out from ...
28189 (execute_pass_list): ... here. Adjust.
28190 (execute_ipa_pass_list): Likewise.
28191 * cgraphunit.c (cgraph_add_new_function): Adjust.
28192 (analyze_function): Likewise.
28193 (expand_function): Likewise.
28194 * cgraph.c (release_function_body): Free dominance info
28195 here instead of asserting it was magically freed elsewhere.
28196
28197 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
28198
28199 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
28200 * configure: Regenerate.
28201 * config/sparc/sparc.opt (muser-mode): New option.
28202 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
28203 for LEON3.
28204 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
28205 * doc/invoke.texi (SPARC options): Document -muser-mode.
28206
28207 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
28208
28209 * cselib.c (find_slot_memmode): Delete.
28210 (cselib_hasher): Change compare_type to a struct.
28211 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
28212 constants.
28213 (preserve_constants_and_equivs): Adjust for new compare_type.
28214 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
28215 (wrap_constant): Delete.
28216 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
28217
28218 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
28219
28220 * doc/install.texi (Building with profile feedback): Remove
28221 outdated sentence.
28222
28223 2014-04-26 Tom de Vries <tom@codesourcery.com>
28224
28225 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
28226 array accesses.
28227
28228 2014-04-25 Cary Coutant <ccoutant@google.com>
28229
28230 PR debug/60929
28231 * dwarf2out.c (should_move_die_to_comdat): A type definition
28232 can contain a subprogram definition, but don't move it to a
28233 comdat unit.
28234 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
28235 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
28236 from original DIE.
28237 (clone_tree_hash): Rename to...
28238 (clone_tree_partial): ...this; change callers. Copy
28239 DW_TAG_subprogram DIEs as declarations.
28240 (copy_decls_walk): Don't copy children of a declaration into a
28241 type unit.
28242
28243 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
28244
28245 PR target/60969
28246 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
28247 alternative 12.
28248
28249 2014-04-25 Jiong Wang <jiong.wang@arm.com>
28250
28251 * config/arm/predicates.md (call_insn_operand): Add long_call check.
28252 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
28253 reg for long_call.
28254 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
28255 restriction.
28256
28257 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28258
28259 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
28260
28261 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28262
28263 PR tree-optimization/60930
28264 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
28265 creating a multiply candidate by folding two constant
28266 multiplicands when the result overflows.
28267
28268 2014-04-25 Jakub Jelinek <jakub@redhat.com>
28269
28270 PR tree-optimization/60960
28271 * tree-vect-generic.c (expand_vector_operation): Only call
28272 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
28273
28274 2014-04-25 Tom de Vries <tom@codesourcery.com>
28275
28276 * expr.c (clobber_reg_mode): New function.
28277 * expr.h (clobber_reg): New function.
28278
28279 2014-04-25 Tom de Vries <tom@codesourcery.com>
28280
28281 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
28282 clobbers.
28283
28284 2014-04-25 Radovan Obradovic <robradovic@mips.com>
28285 Tom de Vries <tom@codesourcery.com>
28286
28287 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
28288 handle.
28289 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
28290 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
28291 new argument to find_all_hard_reg_sets call.
28292
28293 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28294
28295 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
28296 Use HOST_WIDE_INT_C for mask literal.
28297 (aarch_rev16_shleft_mask_imm_p): Likewise.
28298
28299 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
28300
28301 PR target/60941
28302 * config/sparc/sparc.md (ashlsi3_extend): Delete.
28303
28304 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
28305
28306 PR preprocessor/56540
28307 * config/i386/i386-c.c (ix86_target_macros): Define
28308 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
28309
28310 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28311
28312 * configure.ac (tga_func): Remove.
28313 (LIB_TLS_SPEC): Remove.
28314 * configure: Regenerate.
28315 * config.in: Regenerate.
28316 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
28317
28318 2014-04-25 Richard Biener <rguenther@suse.de>
28319
28320 PR ipa/60912
28321 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
28322 call stmt use/clobber sets during stmt walk instead of
28323 walking the possibly incomplete set of caller edges.
28324
28325 2014-04-25 Richard Biener <rguenther@suse.de>
28326
28327 PR ipa/60911
28328 * passes.c (apply_ipa_transforms): Inline into only caller ...
28329 (execute_one_pass): ... here. Properly bring in function
28330 bodies for nodes we want to apply IPA transforms to.
28331
28332 2014-04-24 Cong Hou <congh@google.com>
28333
28334 PR tree-optimization/60896
28335 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
28336 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
28337 (vect_mark_pattern_stmts): Set the def type of all statements in
28338 PATTERN_DEF_SEQ as vect_internal_def.
28339
28340 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
28341
28342 * doc/extend.texi (PowerPC Built-in Functions): Document new
28343 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
28344 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
28345
28346 * config/rs6000/predicates.md (const_0_to_3_operand): New
28347 predicate to match 0..3 integer constants.
28348
28349 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
28350 to support adding miscellaneous builtin functions.
28351 (BU_DFP_MISC_2): Likewise.
28352 (BU_P7_MISC_1): Likewise.
28353 (BU_P7_MISC_2): Likewise.
28354 (BU_P8V_MISC_3): Likewise.
28355 (BU_MISC_1): Likewise.
28356 (BU_MISC_2): Likewise.
28357 (DIVWE): Add extended divide builtin functions.
28358 (DIVWEO): Likewise.
28359 (DIVWEU): Likewise.
28360 (DIVWEUO): Likewise.
28361 (DIVDE): Likewise.
28362 (DIVDEO): Likewise.
28363 (DIVDEU): Likewise.
28364 (DIVDEUO): Likewise.
28365 (DXEX): Add decimal floating-point builtin functions.
28366 (DXEXQ): Likewise.
28367 (DDEDPD): Likewise.
28368 (DDEDPDQ): Likewise.
28369 (DENBCD): Likewise.
28370 (DENBCDQ): Likewise.
28371 (DIEX): Likewise.
28372 (DIEXQ): Likewise.
28373 (DSCLI): Likewise.
28374 (DSCLIQ): Likewise.
28375 (DSCRI): Likewise.
28376 (DSCRIQ): Likewise.
28377 (CDTBCD): Add new BCD builtin functions.
28378 (CBCDTD): Likewise.
28379 (ADDG6S): Likewise.
28380 (BCDADD): Likewise.
28381 (BCDADD_LT): Likewise.
28382 (BCDADD_EQ): Likewise.
28383 (BCDADD_GT): Likewise.
28384 (BCDADD_OV): Likewise.
28385 (BCDSUB): Likewise.
28386 (BCDSUB_LT): Likewise.
28387 (BCDSUB_EQ): Likewise.
28388 (BCDSUB_GT): Likewise.
28389 (BCDSUB_OV): Likewise.
28390 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
28391 (UNPACK_TD): Likewise.
28392 (PACK_TF): Likewise.
28393 (UNPACK_TF): Likewise.
28394 (UNPACK_TF_0): Likewise.
28395 (UNPACK_TF_1): Likewise.
28396 (PACK_V1TI): Likewise.
28397 (UNPACK_V1TI): Likewise.
28398
28399 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
28400 support for decimal floating point builtin functions.
28401 (rs6000_expand_ternop_builtin): Add checks for the new builtin
28402 functions that take constant arguments.
28403 (rs6000_invalid_builtin): Add decimal floating point builtin support.
28404 (rs6000_init_builtins): Setup long double, _Decimal64, and
28405 _Decimal128 types for new builtin functions.
28406 (builtin_function_type): Set the unsigned flags appropriately for
28407 the new builtin functions.
28408 (rs6000_opt_masks): Add support for decimal floating point builtin
28409 functions.
28410
28411 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
28412 floating point builtin functions.
28413 (RS6000_BTM_COMMON): Likewise.
28414 (RS6000_BTI_long_double): Likewise.
28415 (RS6000_BTI_dfloat64): Likewise.
28416 (RS6000_BTI_dfloat128): Likewise.
28417 (long_double_type_internal_node): Likewise.
28418 (dfloat64_type_internal_node): Likewise.
28419 (dfloat128_type_internal_node): Likewise.
28420
28421 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
28422 2.07 bcd arithmetic instructions.
28423 (UNSPEC_BCDSUB): Likewise.
28424 (UNSPEC_BCD_OVERFLOW): Likewise.
28425 (UNSPEC_BCD_ADD_SUB): Likewise.
28426 (bcd_add_sub): Likewise.
28427 (BCD_TEST): Likewise.
28428 (bcd<bcd_add_sub>): Likewise.
28429 (bcd<bcd_add_sub>_test): Likewise.
28430 (bcd<bcd_add_sub>_test2): Likewise.
28431 (bcd<bcd_add_sub>_<code>): Likewise.
28432 (peephole2 for combined bcd ops): Likewise.
28433
28434 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
28435 decimal floating point builtin functions.
28436 (UNSPEC_DENBCD): Likewise.
28437 (UNSPEC_DXEX): Likewise.
28438 (UNSPEC_DIEX): Likewise.
28439 (UNSPEC_DSCLI): Likewise.
28440 (UNSPEC_DSCRI): Likewise.
28441 (D64_D128): Likewise.
28442 (dfp_suffix): Likewise.
28443 (dfp_ddedpd_<mode>): Likewise.
28444 (dfp_denbcd_<mode>): Likewise.
28445 (dfp_dxex_<mode>): Likewise.
28446 (dfp_diex_<mode>): Likewise.
28447 (dfp_dscli_<mode>): Likewise.
28448 (dfp_dscri_<mode>): Likewise.
28449
28450 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
28451 builtin functions.
28452 (UNSPEC_CDTBCD): Likewise.
28453 (UNSPEC_CBCDTD): Likewise.
28454 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
28455 (UNSPEC_DIVEO): Likewise.
28456 (UNSPEC_DIVEU): Likewise.
28457 (UNSPEC_DIVEUO): Likewise.
28458 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
28459 pack/unpack 128-bit types.
28460 (UNSPEC_PACK_128BIT): Likewise.
28461 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
28462 (udiv<mode>3): Use idiv_ldiv mode attribute.
28463 (div<mode>3): Likewise.
28464 (addg6s): Add new BCD builtin functions.
28465 (cdtbcd): Likewise.
28466 (cbcdtd): Likewise.
28467 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
28468 (div_extend): Likewise.
28469 (div<div_extend>_<mode>"): Likewise.
28470 (FP128_64): Add support for new builtin functions to pack/unpack
28471 128-bit types.
28472 (unpack<mode>): Likewise.
28473 (unpacktf_0): Likewise.
28474 (unpacktf_1): Likewise.
28475 (unpack<mode>_dm): Likewise.
28476 (unpack<mode>_nodm): Likewise.
28477 (pack<mode>): Likewise.
28478 (unpackv1ti): Likewise.
28479 (packv1ti): Likewise.
28480
28481 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
28482
28483 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
28484 is disabled.
28485
28486 2014-04-24 Jakub Jelinek <jakub@redhat.com>
28487
28488 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
28489 * gimplify.c (omp_is_private): Change last argument's type to int.
28490 Only diagnose lastprivate if the simd argument is 1, only diagnose
28491 linear if the simd argument is 2.
28492 (gimplify_omp_for): Adjust omp_is_private callers. When adding
28493 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
28494 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
28495 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
28496 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
28497 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
28498 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
28499 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
28500 * tree-nested.c (convert_nonlocal_omp_clauses,
28501 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
28502
28503 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
28504
28505 PR target/60822
28506 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
28507 operand 1.
28508
28509 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
28510
28511 * flag-types.h (enum ivar_visibility): Add.
28512
28513 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
28514
28515 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
28516 function * argument.
28517
28518 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
28519
28520 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
28521
28522 2014-04-24 Radovan Obradovic <robradovic@mips.com>
28523 Tom de Vries <tom@codesourcery.com>
28524
28525 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
28526 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
28527 reg-note.
28528 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
28529 * emit-rtl.c (try_split): Same.
28530
28531 2014-04-24 Radovan Obradovic <robradovic@mips.com>
28532 Tom de Vries <tom@codesourcery.com>
28533
28534 * common.opt (fuse-caller-save): New option.
28535
28536 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
28537
28538 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
28539 elements for big-endian.
28540
28541 2014-04-24 Richard Biener <rguenther@suse.de>
28542
28543 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
28544 during TER and instead use the sepops interface for expanding
28545 non-GIMPLE_SINGLE_RHS.
28546
28547 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28548
28549 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
28550 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
28551
28552 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28553
28554 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
28555 assembler 64-bit option.
28556 * configure: Regenerate.
28557
28558 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28559
28560 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
28561 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
28562 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
28563 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
28564 (TARGET_CRYPTO): Take TARGET_SIMD into account.
28565
28566 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28567
28568 * config/aarch64/aarch64-builtins.c
28569 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
28570 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
28571 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
28572 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
28573 builtins.
28574 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
28575 (Vrevsuff): New mode attribute.
28576
28577 2014-04-24 Terry Guo <terry.guo@arm.com>
28578
28579 * config/arm/arm.h (machine_function): Define variable
28580 after_arm_reorg here.
28581 * config/arm/arm.c (after_arm_reorg): Remove the definition.
28582 (arm_split_constant): Update the way to access variable
28583 after_arm_reorg.
28584 (arm_reorg): Ditto.
28585 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
28586
28587 2014-04-23 Tom de Vries <tom@codesourcery.com>
28588
28589 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
28590
28591 2014-04-23 David Malcolm <dmalcolm@redhat.com>
28592
28593 * is-a.h: Update comments to reflect the following changes to the
28594 "pointerness" of the API, making the template parameter match the
28595 return type, allowing use of is-a.h with typedefs of pointers.
28596 (is_a_helper::cast): Return a T rather then a pointer to a T, so
28597 that the return type matches the parameter to the is_a_helper.
28598 (as_a): Likewise.
28599 (dyn_cast): Likewise.
28600
28601 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
28602 pointer from the is-a.h API.
28603
28604 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
28605 (is_a_helper <cgraph_node *>::test): ...this, matching change to
28606 is-a.h API.
28607 (is_a_helper <varpool_node>::test): Likewise, convert to...
28608 (is_a_helper <varpool_node *>::test): ...this.
28609
28610 (varpool_first_variable): Update for removal of implicit pointer
28611 from the is-a.h API.
28612 (varpool_next_variable): Likewise.
28613 (varpool_first_static_initializer): Likewise.
28614 (varpool_next_static_initializer): Likewise.
28615 (varpool_first_defined_variable): Likewise.
28616 (varpool_next_defined_variable): Likewise.
28617 (cgraph_first_defined_function): Likewise.
28618 (cgraph_next_defined_function): Likewise.
28619 (cgraph_first_function): Likewise.
28620 (cgraph_next_function): Likewise.
28621 (cgraph_first_function_with_gimple_body): Likewise.
28622 (cgraph_next_function_with_gimple_body): Likewise.
28623 (cgraph_alias_target): Likewise.
28624 (varpool_alias_target): Likewise.
28625 (cgraph_function_or_thunk_node): Likewise.
28626 (varpool_variable_node): Likewise.
28627 (symtab_real_symbol_p): Likewise.
28628 * cgraphunit.c (referred_to_p): Likewise.
28629 (analyze_functions): Likewise.
28630 (handle_alias_pairs): Likewise.
28631 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
28632 * gimple-ssa.h (gimple_vuse_op): Likewise.
28633 (gimple_vdef_op): Likewise.
28634 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
28635 * gimple.c (gimple_build_asm_1): Likewise.
28636 (gimple_build_try): Likewise.
28637 (gimple_build_resx): Likewise.
28638 (gimple_build_eh_dispatch): Likewise.
28639 (gimple_build_omp_for): Likewise.
28640 (gimple_omp_for_set_clauses): Likewise.
28641
28642 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
28643 (is_a_helper <gimple_statement_asm *>::test): ...this.
28644 (is_a_helper <gimple_statement_bind>::test): Convert to...
28645 (is_a_helper <gimple_statement_bind *>::test): ...this.
28646 (is_a_helper <gimple_statement_call>::test): Convert to...
28647 (is_a_helper <gimple_statement_call *>::test): ...this.
28648 (is_a_helper <gimple_statement_catch>::test): Convert to...
28649 (is_a_helper <gimple_statement_catch *>::test): ...this.
28650 (is_a_helper <gimple_statement_resx>::test): Convert to...
28651 (is_a_helper <gimple_statement_resx *>::test): ...this.
28652 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
28653 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
28654 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
28655 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
28656 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
28657 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
28658 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
28659 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
28660 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
28661 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
28662 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
28663 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
28664 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
28665 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
28666 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
28667 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
28668 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
28669 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
28670 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
28671 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
28672 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
28673 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
28674 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
28675 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
28676 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
28677 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
28678 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
28679 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
28680 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
28681 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
28682 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
28683 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
28684 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
28685 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
28686 (is_a_helper <gimple_statement_phi>::test): Convert to...
28687 (is_a_helper <gimple_statement_phi *>::test): ...this.
28688 (is_a_helper <gimple_statement_transaction>::test): Convert to...
28689 (is_a_helper <gimple_statement_transaction *>::test): ...this.
28690 (is_a_helper <gimple_statement_try>::test): Convert to...
28691 (is_a_helper <gimple_statement_try *>::test): ...this.
28692 (is_a_helper <gimple_statement_wce>::test): Convert to...
28693 (is_a_helper <gimple_statement_wce *>::test): ...this.
28694 (is_a_helper <const gimple_statement_asm>::test): Convert to...
28695 (is_a_helper <const gimple_statement_asm *>::test): ...this.
28696 (is_a_helper <const gimple_statement_bind>::test): Convert to...
28697 (is_a_helper <const gimple_statement_bind *>::test): ...this.
28698 (is_a_helper <const gimple_statement_call>::test): Convert to...
28699 (is_a_helper <const gimple_statement_call *>::test): ...this.
28700 (is_a_helper <const gimple_statement_catch>::test): Convert to...
28701 (is_a_helper <const gimple_statement_catch *>::test): ...this.
28702 (is_a_helper <const gimple_statement_resx>::test): Convert to...
28703 (is_a_helper <const gimple_statement_resx *>::test): ...this.
28704 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
28705 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
28706 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
28707 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
28708 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
28709 Convert to...
28710 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
28711 ...this.
28712 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
28713 Convert to...
28714 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
28715 ...this.
28716 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
28717 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
28718 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
28719 to...
28720 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
28721 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
28722 to...
28723 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
28724 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
28725 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
28726 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
28727 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
28728 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
28729 to...
28730 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
28731 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
28732 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
28733 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
28734 to...
28735 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
28736 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
28737 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
28738 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
28739 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
28740 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
28741 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
28742 (is_a_helper <const gimple_statement_phi>::test): Convert to...
28743 (is_a_helper <const gimple_statement_phi *>::test): ...this.
28744 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
28745 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
28746 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
28747 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
28748 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
28749 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
28750 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
28751 to...
28752 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
28753 ...this.
28754 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
28755 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
28756
28757 (gimple_use_ops): Update for removal of implicit pointer from the
28758 is-a.h API.
28759 (gimple_set_use_ops): Likewise.
28760 (gimple_vuse): Likewise.
28761 (gimple_vdef): Likewise.
28762 (gimple_vuse_ptr): Likewise.
28763 (gimple_vdef_ptr): Likewise.
28764 (gimple_set_vuse): Likewise.
28765 (gimple_set_vdef): Likewise.
28766 (gimple_omp_return_set_lhs): Likewise.
28767 (gimple_omp_return_lhs): Likewise.
28768 (gimple_omp_return_lhs_ptr): Likewise.
28769 (gimple_call_fntype): Likewise.
28770 (gimple_call_set_fntype): Likewise.
28771 (gimple_call_set_internal_fn): Likewise.
28772 (gimple_call_use_set): Likewise.
28773 (gimple_call_clobber_set): Likewise.
28774 (gimple_bind_vars): Likewise.
28775 (gimple_bind_set_vars): Likewise.
28776 (gimple_bind_body_ptr): Likewise.
28777 (gimple_bind_set_body): Likewise.
28778 (gimple_bind_add_stmt): Likewise.
28779 (gimple_bind_block): Likewise.
28780 (gimple_bind_set_block): Likewise.
28781 (gimple_asm_ninputs): Likewise.
28782 (gimple_asm_noutputs): Likewise.
28783 (gimple_asm_nclobbers): Likewise.
28784 (gimple_asm_nlabels): Likewise.
28785 (gimple_asm_input_op): Likewise.
28786 (gimple_asm_input_op_ptr): Likewise.
28787 (gimple_asm_output_op): Likewise.
28788 (gimple_asm_output_op_ptr): Likewise.
28789 (gimple_asm_set_output_op): Likewise.
28790 (gimple_asm_clobber_op): Likewise.
28791 (gimple_asm_set_clobber_op): Likewise.
28792 (gimple_asm_label_op): Likewise.
28793 (gimple_asm_set_label_op): Likewise.
28794 (gimple_asm_string): Likewise.
28795 (gimple_catch_types): Likewise.
28796 (gimple_catch_types_ptr): Likewise.
28797 (gimple_catch_handler_ptr): Likewise.
28798 (gimple_catch_set_types): Likewise.
28799 (gimple_catch_set_handler): Likewise.
28800 (gimple_eh_filter_types): Likewise.
28801 (gimple_eh_filter_types_ptr): Likewise.
28802 (gimple_eh_filter_failure_ptr): Likewise.
28803 (gimple_eh_filter_set_types): Likewise.
28804 (gimple_eh_filter_set_failure): Likewise.
28805 (gimple_eh_must_not_throw_fndecl): Likewise.
28806 (gimple_eh_must_not_throw_set_fndecl): Likewise.
28807 (gimple_eh_else_n_body_ptr): Likewise.
28808 (gimple_eh_else_e_body_ptr): Likewise.
28809 (gimple_eh_else_set_n_body): Likewise.
28810 (gimple_eh_else_set_e_body): Likewise.
28811 (gimple_try_eval_ptr): Likewise.
28812 (gimple_try_cleanup_ptr): Likewise.
28813 (gimple_try_set_eval): Likewise.
28814 (gimple_try_set_cleanup): Likewise.
28815 (gimple_wce_cleanup_ptr): Likewise.
28816 (gimple_wce_set_cleanup): Likewise.
28817 (gimple_phi_capacity): Likewise.
28818 (gimple_phi_num_args): Likewise.
28819 (gimple_phi_result): Likewise.
28820 (gimple_phi_result_ptr): Likewise.
28821 (gimple_phi_set_result): Likewise.
28822 (gimple_phi_arg): Likewise.
28823 (gimple_phi_set_arg): Likewise.
28824 (gimple_resx_region): Likewise.
28825 (gimple_resx_set_region): Likewise.
28826 (gimple_eh_dispatch_region): Likewise.
28827 (gimple_eh_dispatch_set_region): Likewise.
28828 (gimple_omp_critical_name): Likewise.
28829 (gimple_omp_critical_name_ptr): Likewise.
28830 (gimple_omp_critical_set_name): Likewise.
28831 (gimple_omp_for_clauses): Likewise.
28832 (gimple_omp_for_clauses_ptr): Likewise.
28833 (gimple_omp_for_set_clauses): Likewise.
28834 (gimple_omp_for_collapse): Likewise.
28835 (gimple_omp_for_index): Likewise.
28836 (gimple_omp_for_index_ptr): Likewise.
28837 (gimple_omp_for_set_index): Likewise.
28838 (gimple_omp_for_initial): Likewise.
28839 (gimple_omp_for_initial_ptr): Likewise.
28840 (gimple_omp_for_set_initial): Likewise.
28841 (gimple_omp_for_final): Likewise.
28842 (gimple_omp_for_final_ptr): Likewise.
28843 (gimple_omp_for_set_final): Likewise.
28844 (gimple_omp_for_incr): Likewise.
28845 (gimple_omp_for_incr_ptr): Likewise.
28846 (gimple_omp_for_set_incr): Likewise.
28847 (gimple_omp_for_pre_body_ptr): Likewise.
28848 (gimple_omp_for_set_pre_body): Likewise.
28849 (gimple_omp_parallel_clauses): Likewise.
28850 (gimple_omp_parallel_clauses_ptr): Likewise.
28851 (gimple_omp_parallel_set_clauses): Likewise.
28852 (gimple_omp_parallel_child_fn): Likewise.
28853 (gimple_omp_parallel_child_fn_ptr): Likewise.
28854 (gimple_omp_parallel_set_child_fn): Likewise.
28855 (gimple_omp_parallel_data_arg): Likewise.
28856 (gimple_omp_parallel_data_arg_ptr): Likewise.
28857 (gimple_omp_parallel_set_data_arg): Likewise.
28858 (gimple_omp_task_clauses): Likewise.
28859 (gimple_omp_task_clauses_ptr): Likewise.
28860 (gimple_omp_task_set_clauses): Likewise.
28861 (gimple_omp_task_child_fn): Likewise.
28862 (gimple_omp_task_child_fn_ptr): Likewise.
28863 (gimple_omp_task_set_child_fn): Likewise.
28864 (gimple_omp_task_data_arg): Likewise.
28865 (gimple_omp_task_data_arg_ptr): Likewise.
28866 (gimple_omp_task_set_data_arg): Likewise.
28867 (gimple_omp_taskreg_clauses): Likewise.
28868 (gimple_omp_taskreg_clauses_ptr): Likewise.
28869 (gimple_omp_taskreg_set_clauses): Likewise.
28870 (gimple_omp_taskreg_child_fn): Likewise.
28871 (gimple_omp_taskreg_child_fn_ptr): Likewise.
28872 (gimple_omp_taskreg_set_child_fn): Likewise.
28873 (gimple_omp_taskreg_data_arg): Likewise.
28874 (gimple_omp_taskreg_data_arg_ptr): Likewise.
28875 (gimple_omp_taskreg_set_data_arg): Likewise.
28876 (gimple_omp_task_copy_fn): Likewise.
28877 (gimple_omp_task_copy_fn_ptr): Likewise.
28878 (gimple_omp_task_set_copy_fn): Likewise.
28879 (gimple_omp_task_arg_size): Likewise.
28880 (gimple_omp_task_arg_size_ptr): Likewise.
28881 (gimple_omp_task_set_arg_size): Likewise.
28882 (gimple_omp_task_arg_align): Likewise.
28883 (gimple_omp_task_arg_align_ptr): Likewise.
28884 (gimple_omp_task_set_arg_align): Likewise.
28885 (gimple_omp_single_clauses): Likewise.
28886 (gimple_omp_single_clauses_ptr): Likewise.
28887 (gimple_omp_single_set_clauses): Likewise.
28888 (gimple_omp_target_clauses): Likewise.
28889 (gimple_omp_target_clauses_ptr): Likewise.
28890 (gimple_omp_target_set_clauses): Likewise.
28891 (gimple_omp_target_child_fn): Likewise.
28892 (gimple_omp_target_child_fn_ptr): Likewise.
28893 (gimple_omp_target_set_child_fn): Likewise.
28894 (gimple_omp_target_data_arg): Likewise.
28895 (gimple_omp_target_data_arg_ptr): Likewise.
28896 (gimple_omp_target_set_data_arg): Likewise.
28897 (gimple_omp_teams_clauses): Likewise.
28898 (gimple_omp_teams_clauses_ptr): Likewise.
28899 (gimple_omp_teams_set_clauses): Likewise.
28900 (gimple_omp_sections_clauses): Likewise.
28901 (gimple_omp_sections_clauses_ptr): Likewise.
28902 (gimple_omp_sections_set_clauses): Likewise.
28903 (gimple_omp_sections_control): Likewise.
28904 (gimple_omp_sections_control_ptr): Likewise.
28905 (gimple_omp_sections_set_control): Likewise.
28906 (gimple_omp_for_set_cond): Likewise.
28907 (gimple_omp_for_cond): Likewise.
28908 (gimple_omp_atomic_store_set_val): Likewise.
28909 (gimple_omp_atomic_store_val): Likewise.
28910 (gimple_omp_atomic_store_val_ptr): Likewise.
28911 (gimple_omp_atomic_load_set_lhs): Likewise.
28912 (gimple_omp_atomic_load_lhs): Likewise.
28913 (gimple_omp_atomic_load_lhs_ptr): Likewise.
28914 (gimple_omp_atomic_load_set_rhs): Likewise.
28915 (gimple_omp_atomic_load_rhs): Likewise.
28916 (gimple_omp_atomic_load_rhs_ptr): Likewise.
28917 (gimple_omp_continue_control_def): Likewise.
28918 (gimple_omp_continue_control_def_ptr): Likewise.
28919 (gimple_omp_continue_set_control_def): Likewise.
28920 (gimple_omp_continue_control_use): Likewise.
28921 (gimple_omp_continue_control_use_ptr): Likewise.
28922 (gimple_omp_continue_set_control_use): Likewise.
28923 (gimple_transaction_body_ptr): Likewise.
28924 (gimple_transaction_label): Likewise.
28925 (gimple_transaction_label_ptr): Likewise.
28926 (gimple_transaction_set_body): Likewise.
28927 (gimple_transaction_set_label): Likewise.
28928
28929 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
28930 * ipa-inline-analysis.c (inline_write_summary): Likewise.
28931 * ipa-ref.c (ipa_record_reference): Likewise.
28932 * ipa-reference.c (analyze_function): Likewise.
28933 (ipa_reference_write_optimization_summary): Likewise.
28934 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
28935 (address_taken_from_non_vtable_p): Likewise.
28936 (comdat_can_be_unshared_p_1): Likewise.
28937 * lto-cgraph.c (lto_output_ref): Likewise.
28938 (add_references): Likewise.
28939 (compute_ltrans_boundary): Likewise.
28940 (output_symtab): Likewise.
28941 (input_ref): Likewise.
28942 (input_cgraph_1): Likewise.
28943 (output_cgraph_opt_summary): Likewise.
28944 * lto-streamer-out.c (lto_output): Likewise.
28945 (output_symbol_p): Likewise.
28946 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
28947 (lsei_start_function_in_partition): Likewise.
28948 (lsei_next_variable_in_partition): Likewise.
28949 (lsei_start_variable_in_partition): Likewise.
28950 * symtab.c (insert_to_assembler_name_hash): Likewise.
28951 (unlink_from_assembler_name_hash): Likewise.
28952 (symtab_unregister_node): Likewise.
28953 (symtab_remove_node): Likewise.
28954 (dump_symtab_node): Likewise.
28955 (verify_symtab_base): Likewise.
28956 (verify_symtab_node): Likewise.
28957 (symtab_make_decl_local): Likewise.
28958 (symtab_alias_ultimate_target): Likewise.
28959 (symtab_resolve_alias): Likewise.
28960 (symtab_get_symbol_partitioning_class): Likewise.
28961 * tree-phinodes.c (allocate_phi_node): Likewise.
28962 (reserve_phi_args_for_new_edge): Likewise.
28963 (remove_phi_args): Likewise.
28964 * varpool.c (varpool_node_for_asm): Likewise.
28965 (varpool_remove_unreferenced_decls): Likewise.
28966
28967 2014-04-23 Jeff Law <law@redhat.com>
28968
28969 PR tree-optimization/60902
28970 * tree-ssa-threadedge.c
28971 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
28972 invalidate outputs from statements that do not produce useful
28973 outputs for threading.
28974
28975 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
28976
28977 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
28978 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
28979 machine descriptions for Stack Smashing Protector.
28980
28981 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
28982
28983 * aarch64.md (<optab>_rol<mode>3): New pattern.
28984 (<optab>_rolsi3_uxtw): Likewise.
28985 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
28986
28987 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
28988
28989 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
28990 (arm_cortex_a12_tune): Likewise.
28991
28992 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28993
28994 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
28995
28996 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28997
28998 * config/arm/arm.md (arm_rev16si2): New pattern.
28999 (arm_rev16si2_alt): Likewise.
29000 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
29001
29002 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29003
29004 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
29005 (rev16<mode>2_alt): Likewise.
29006 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
29007 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
29008 (aarch_rev16_shleft_mask_imm_p): Likewise.
29009 (aarch_rev16_p_1): Likewise.
29010 (aarch_rev16_p): Likewise.
29011 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
29012 (aarch_rev16_shright_mask_imm_p): Likewise.
29013 (aarch_rev16_shleft_mask_imm_p): Likewise.
29014
29015 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29016
29017 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
29018 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
29019 rev cost.
29020 (cortex_a53_extra_costs): Likewise.
29021 (cortex_a57_extra_costs): Likewise.
29022 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
29023 (cortexa7_extra_costs): Likewise.
29024 (cortexa8_extra_costs): Likewise.
29025 (cortexa12_extra_costs): Likewise.
29026 (cortexa15_extra_costs): Likewise.
29027 (v7m_extra_costs): Likewise.
29028 (arm_new_rtx_costs): Handle BSWAP.
29029
29030 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29031
29032 * config/arm/arm.c (cortexa8_extra_costs): New table.
29033 (arm_cortex_a8_tune): New tuning struct.
29034 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
29035
29036 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29037
29038 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
29039
29040 2014-04-23 Richard Biener <rguenther@suse.de>
29041
29042 * Makefile.in (OBJS): Remove loop-unswitch.o.
29043 * tree-pass.h (make_pass_rtl_unswitch): Remove.
29044 * passes.def (pass_rtl_unswitch): Likewise.
29045 * loop-init.c (gate_rtl_unswitch): Likewise.
29046 (rtl_unswitch): Likewise.
29047 (pass_data_rtl_unswitch): Likewise.
29048 (pass_rtl_unswitch): Likewise.
29049 (make_pass_rtl_unswitch): Likewise.
29050 * rtl.h (reversed_condition): Likewise.
29051 (compare_and_jump_seq): Likewise.
29052 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
29053 and make static.
29054 * loop-unroll.c (compare_and_jump_seq): Likewise.
29055
29056 2014-04-23 Richard Biener <rguenther@suse.de>
29057
29058 PR tree-optimization/60903
29059 * tree-ssa-loop-im.c (analyze_memory_references): Remove
29060 commented code block.
29061 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
29062 loop flags to newly created BBs and edges.
29063
29064 2014-04-23 Nick Clifton <nickc@redhat.com>
29065
29066 * config/msp430/msp430.c (msp430_handle_option): Move function
29067 to msp430-common.c
29068 (msp430_option_override): Simplify mcu and mcpu option handling.
29069 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
29070 support for -mhwmult command line option.
29071 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
29072 -mhwmult command line option.
29073 (msp430_hwmult_enabled): Delete.
29074 (msp43o_output_labelref): Add support for -mhwmult command line option.
29075 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
29076 (umulsidi3): Likewise.
29077 * config/msp430/msp430.opt (mmcu): Add Report attribute.
29078 (mcpu, mlarge, msmall): Likewise.
29079 (mhwmult): New option.
29080 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
29081 prototype.
29082 (msp430_is_f5_mcu): Remove prototype.
29083 (msp430_use_f5_series_hwmult): Add prototype.
29084 * config/msp430/msp430-opts.h: New file.
29085 * common/config/msp430: New directory.
29086 * common/config/msp430/msp430-common.c: New file.
29087 * config.gcc (msp430): Remove target_has_targetm_common.
29088 * doc/invoke.texi: Document -mhwmult command line option.
29089
29090 2014-04-23 Nick Clifton <nickc@redhat.com>
29091
29092 * config/i386/cygwin.h (ENDFILE_SPEC): Include
29093 default-manifest.o if it can be found in the search path.
29094 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
29095
29096 2014-04-23 Terry Guo <terry.guo@arm.com>
29097
29098 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
29099
29100 2014-04-23 Richard Biener <rguenther@suse.de>
29101
29102 PR middle-end/60895
29103 * tree-inline.c (declare_return_variable): Use mark_addressable.
29104
29105 2014-04-23 Richard Biener <rguenther@suse.de>
29106
29107 PR middle-end/60891
29108 * loop-init.c (loop_optimizer_init): Make sure to apply
29109 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
29110
29111 2014-04-22 Jakub Jelinek <jakub@redhat.com>
29112
29113 PR sanitizer/60275
29114 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
29115 New options.
29116 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
29117 if flag_sanitize_undefined_trap_on_error.
29118 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
29119 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
29120 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
29121 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
29122 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
29123 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
29124 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
29125 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
29126 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
29127 * ubsan.c (ubsan_instrument_unreachable): Return
29128 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
29129 (ubsan_expand_null_ifn): Emit __builtin_trap ()
29130 if flag_sanitize_undefined_trap_on_error and
29131 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
29132 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
29133 instrument_bool_enum_load): Emit __builtin_trap () if
29134 flag_sanitize_undefined_trap_on_error and
29135 __builtin_handle_*_abort () if !flag_sanitize_recover.
29136 * doc/invoke.texi (-fsanitize-recover,
29137 -fsanitize-undefined-trap-on-error): Document.
29138
29139 2014-04-22 Christian Bruel <christian.bruel@st.com>
29140
29141 * config/sh/sh.md (mov<mode>): Replace movQIHI.
29142 Force immediates to SImode.
29143
29144 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
29145
29146 * config/nios2/nios2.md (UNSPEC_ROUND): New.
29147 (lroundsfsi2): New.
29148 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
29149 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
29150 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
29151 (nios2_fpu_insn): Add entry for round.
29152 (N2FPU_NO_ERRNO_P): Define.
29153 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
29154 flag_errno_math.
29155 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
29156
29157 2014-04-22 Richard Henderson <rth@redhat.com>
29158
29159 * config/aarch64/aarch64 (addti3, subti3): New expanders.
29160 (add<GPI>3_compare0): Remove leading * from name.
29161 (add<GPI>3_carryin): Likewise.
29162 (sub<GPI>3_compare0): Likewise.
29163 (sub<GPI>3_carryin): Likewise.
29164 (<su_optab>mulditi3): New expander.
29165 (multi3): New expander.
29166 (madd<GPI>): Remove leading * from name.
29167
29168 2014-04-22 Martin Jambor <mjambor@suse.cz>
29169
29170 * cgraphclones.c (cgraph_function_versioning): Copy
29171 ipa_transforms_to_apply instead of asserting it is empty.
29172
29173 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
29174
29175 PR target/60868
29176 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
29177 on count_exp to get mode.
29178
29179 2014-04-22 Andrew Pinski <apinski@cavium.com>
29180
29181 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
29182 Handle TLS for ILP32.
29183 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
29184 (tlsie_small_<mode>): this and handle PTR.
29185 (tlsie_small_sidi): New pattern.
29186 (tlsle_small): Change to an expand to handle ILP32.
29187 (tlsle_small_<mode>): New pattern.
29188 (tlsdesc_small): Rename to ...
29189 (tlsdesc_small_<mode>): this and handle PTR.
29190
29191 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29192
29193 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
29194
29195 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
29196
29197 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
29198 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
29199 (aarch64_types_signed_poly_qualifiers): Likewise.
29200 (aarch64_types_unsigned_signed_qualifiers): Likewise.
29201 (aarch64_types_poly_signed_qualifiers): Likewise.
29202 (TYPES_REINTERP_SS): Type macro added.
29203 (TYPES_REINTERP_SU): Likewise.
29204 (TYPES_REINTERP_SP): Likewise.
29205 (TYPES_REINTERP_US): Likewise.
29206 (TYPES_REINTERP_PS): Likewise.
29207 (aarch64_fold_builtin): New expression folding added.
29208 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
29209 Declarations removed.
29210 (REINTERP_SS): Declarations added.
29211 (REINTERP_US): Likewise.
29212 (REINTERP_PS): Likewise.
29213 (REINTERP_SU): Likewise.
29214 (REINTERP_SP): Likewise.
29215 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
29216 (vreinterpretq_p8_f64): Likewise.
29217 (vreinterpret_p16_f64): Likewise.
29218 (vreinterpretq_p16_f64): Likewise.
29219 (vreinterpret_f32_f64): Likewise.
29220 (vreinterpretq_f32_f64): Likewise.
29221 (vreinterpret_f64_f32): Likewise.
29222 (vreinterpret_f64_p8): Likewise.
29223 (vreinterpret_f64_p16): Likewise.
29224 (vreinterpret_f64_s8): Likewise.
29225 (vreinterpret_f64_s16): Likewise.
29226 (vreinterpret_f64_s32): Likewise.
29227 (vreinterpret_f64_s64): Likewise.
29228 (vreinterpret_f64_u8): Likewise.
29229 (vreinterpret_f64_u16): Likewise.
29230 (vreinterpret_f64_u32): Likewise.
29231 (vreinterpret_f64_u64): Likewise.
29232 (vreinterpretq_f64_f32): Likewise.
29233 (vreinterpretq_f64_p8): Likewise.
29234 (vreinterpretq_f64_p16): Likewise.
29235 (vreinterpretq_f64_s8): Likewise.
29236 (vreinterpretq_f64_s16): Likewise.
29237 (vreinterpretq_f64_s32): Likewise.
29238 (vreinterpretq_f64_s64): Likewise.
29239 (vreinterpretq_f64_u8): Likewise.
29240 (vreinterpretq_f64_u16): Likewise.
29241 (vreinterpretq_f64_u32): Likewise.
29242 (vreinterpretq_f64_u64): Likewise.
29243 (vreinterpret_s64_f64): Likewise.
29244 (vreinterpretq_s64_f64): Likewise.
29245 (vreinterpret_u64_f64): Likewise.
29246 (vreinterpretq_u64_f64): Likewise.
29247 (vreinterpret_s8_f64): Likewise.
29248 (vreinterpretq_s8_f64): Likewise.
29249 (vreinterpret_s16_f64): Likewise.
29250 (vreinterpretq_s16_f64): Likewise.
29251 (vreinterpret_s32_f64): Likewise.
29252 (vreinterpretq_s32_f64): Likewise.
29253 (vreinterpret_u8_f64): Likewise.
29254 (vreinterpretq_u8_f64): Likewise.
29255 (vreinterpret_u16_f64): Likewise.
29256 (vreinterpretq_u16_f64): Likewise.
29257 (vreinterpret_u32_f64): Likewise.
29258 (vreinterpretq_u32_f64): Likewise.
29259
29260 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
29261
29262 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
29263 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
29264 (vreinterpret_p8_s8): Likewise.
29265 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
29266 (vreinterpret_p8_s16): Likewise.
29267 (vreinterpret_p8_s32): Likewise.
29268 (vreinterpret_p8_s64): Likewise.
29269 (vreinterpret_p8_f32): Likewise.
29270 (vreinterpret_p8_u8): Likewise.
29271 (vreinterpret_p8_u16): Likewise.
29272 (vreinterpret_p8_u32): Likewise.
29273 (vreinterpret_p8_u64): Likewise.
29274 (vreinterpret_p8_p16): Likewise.
29275 (vreinterpretq_p8_s8): Likewise.
29276 (vreinterpretq_p8_s16): Likewise.
29277 (vreinterpretq_p8_s32): Likewise.
29278 (vreinterpretq_p8_s64): Likewise.
29279 (vreinterpretq_p8_f32): Likewise.
29280 (vreinterpretq_p8_u8): Likewise.
29281 (vreinterpretq_p8_u16): Likewise.
29282 (vreinterpretq_p8_u32): Likewise.
29283 (vreinterpretq_p8_u64): Likewise.
29284 (vreinterpretq_p8_p16): Likewise.
29285 (vreinterpret_p16_s8): Likewise.
29286 (vreinterpret_p16_s16): Likewise.
29287 (vreinterpret_p16_s32): Likewise.
29288 (vreinterpret_p16_s64): Likewise.
29289 (vreinterpret_p16_f32): Likewise.
29290 (vreinterpret_p16_u8): Likewise.
29291 (vreinterpret_p16_u16): Likewise.
29292 (vreinterpret_p16_u32): Likewise.
29293 (vreinterpret_p16_u64): Likewise.
29294 (vreinterpret_p16_p8): Likewise.
29295 (vreinterpretq_p16_s8): Likewise.
29296 (vreinterpretq_p16_s16): Likewise.
29297 (vreinterpretq_p16_s32): Likewise.
29298 (vreinterpretq_p16_s64): Likewise.
29299 (vreinterpretq_p16_f32): Likewise.
29300 (vreinterpretq_p16_u8): Likewise.
29301 (vreinterpretq_p16_u16): Likewise.
29302 (vreinterpretq_p16_u32): Likewise.
29303 (vreinterpretq_p16_u64): Likewise.
29304 (vreinterpretq_p16_p8): Likewise.
29305 (vreinterpret_f32_s8): Likewise.
29306 (vreinterpret_f32_s16): Likewise.
29307 (vreinterpret_f32_s32): Likewise.
29308 (vreinterpret_f32_s64): Likewise.
29309 (vreinterpret_f32_u8): Likewise.
29310 (vreinterpret_f32_u16): Likewise.
29311 (vreinterpret_f32_u32): Likewise.
29312 (vreinterpret_f32_u64): Likewise.
29313 (vreinterpret_f32_p8): Likewise.
29314 (vreinterpret_f32_p16): Likewise.
29315 (vreinterpretq_f32_s8): Likewise.
29316 (vreinterpretq_f32_s16): Likewise.
29317 (vreinterpretq_f32_s32): Likewise.
29318 (vreinterpretq_f32_s64): Likewise.
29319 (vreinterpretq_f32_u8): Likewise.
29320 (vreinterpretq_f32_u16): Likewise.
29321 (vreinterpretq_f32_u32): Likewise.
29322 (vreinterpretq_f32_u64): Likewise.
29323 (vreinterpretq_f32_p8): Likewise.
29324 (vreinterpretq_f32_p16): Likewise.
29325 (vreinterpret_s64_s8): Likewise.
29326 (vreinterpret_s64_s16): Likewise.
29327 (vreinterpret_s64_s32): Likewise.
29328 (vreinterpret_s64_f32): Likewise.
29329 (vreinterpret_s64_u8): Likewise.
29330 (vreinterpret_s64_u16): Likewise.
29331 (vreinterpret_s64_u32): Likewise.
29332 (vreinterpret_s64_u64): Likewise.
29333 (vreinterpret_s64_p8): Likewise.
29334 (vreinterpret_s64_p16): Likewise.
29335 (vreinterpretq_s64_s8): Likewise.
29336 (vreinterpretq_s64_s16): Likewise.
29337 (vreinterpretq_s64_s32): Likewise.
29338 (vreinterpretq_s64_f32): Likewise.
29339 (vreinterpretq_s64_u8): Likewise.
29340 (vreinterpretq_s64_u16): Likewise.
29341 (vreinterpretq_s64_u32): Likewise.
29342 (vreinterpretq_s64_u64): Likewise.
29343 (vreinterpretq_s64_p8): Likewise.
29344 (vreinterpretq_s64_p16): Likewise.
29345 (vreinterpret_u64_s8): Likewise.
29346 (vreinterpret_u64_s16): Likewise.
29347 (vreinterpret_u64_s32): Likewise.
29348 (vreinterpret_u64_s64): Likewise.
29349 (vreinterpret_u64_f32): Likewise.
29350 (vreinterpret_u64_u8): Likewise.
29351 (vreinterpret_u64_u16): Likewise.
29352 (vreinterpret_u64_u32): Likewise.
29353 (vreinterpret_u64_p8): Likewise.
29354 (vreinterpret_u64_p16): Likewise.
29355 (vreinterpretq_u64_s8): Likewise.
29356 (vreinterpretq_u64_s16): Likewise.
29357 (vreinterpretq_u64_s32): Likewise.
29358 (vreinterpretq_u64_s64): Likewise.
29359 (vreinterpretq_u64_f32): Likewise.
29360 (vreinterpretq_u64_u8): Likewise.
29361 (vreinterpretq_u64_u16): Likewise.
29362 (vreinterpretq_u64_u32): Likewise.
29363 (vreinterpretq_u64_p8): Likewise.
29364 (vreinterpretq_u64_p16): Likewise.
29365 (vreinterpret_s8_s16): Likewise.
29366 (vreinterpret_s8_s32): Likewise.
29367 (vreinterpret_s8_s64): Likewise.
29368 (vreinterpret_s8_f32): Likewise.
29369 (vreinterpret_s8_u8): Likewise.
29370 (vreinterpret_s8_u16): Likewise.
29371 (vreinterpret_s8_u32): Likewise.
29372 (vreinterpret_s8_u64): Likewise.
29373 (vreinterpret_s8_p8): Likewise.
29374 (vreinterpret_s8_p16): Likewise.
29375 (vreinterpretq_s8_s16): Likewise.
29376 (vreinterpretq_s8_s32): Likewise.
29377 (vreinterpretq_s8_s64): Likewise.
29378 (vreinterpretq_s8_f32): Likewise.
29379 (vreinterpretq_s8_u8): Likewise.
29380 (vreinterpretq_s8_u16): Likewise.
29381 (vreinterpretq_s8_u32): Likewise.
29382 (vreinterpretq_s8_u64): Likewise.
29383 (vreinterpretq_s8_p8): Likewise.
29384 (vreinterpretq_s8_p16): Likewise.
29385 (vreinterpret_s16_s8): Likewise.
29386 (vreinterpret_s16_s32): Likewise.
29387 (vreinterpret_s16_s64): Likewise.
29388 (vreinterpret_s16_f32): Likewise.
29389 (vreinterpret_s16_u8): Likewise.
29390 (vreinterpret_s16_u16): Likewise.
29391 (vreinterpret_s16_u32): Likewise.
29392 (vreinterpret_s16_u64): Likewise.
29393 (vreinterpret_s16_p8): Likewise.
29394 (vreinterpret_s16_p16): Likewise.
29395 (vreinterpretq_s16_s8): Likewise.
29396 (vreinterpretq_s16_s32): Likewise.
29397 (vreinterpretq_s16_s64): Likewise.
29398 (vreinterpretq_s16_f32): Likewise.
29399 (vreinterpretq_s16_u8): Likewise.
29400 (vreinterpretq_s16_u16): Likewise.
29401 (vreinterpretq_s16_u32): Likewise.
29402 (vreinterpretq_s16_u64): Likewise.
29403 (vreinterpretq_s16_p8): Likewise.
29404 (vreinterpretq_s16_p16): Likewise.
29405 (vreinterpret_s32_s8): Likewise.
29406 (vreinterpret_s32_s16): Likewise.
29407 (vreinterpret_s32_s64): Likewise.
29408 (vreinterpret_s32_f32): Likewise.
29409 (vreinterpret_s32_u8): Likewise.
29410 (vreinterpret_s32_u16): Likewise.
29411 (vreinterpret_s32_u32): Likewise.
29412 (vreinterpret_s32_u64): Likewise.
29413 (vreinterpret_s32_p8): Likewise.
29414 (vreinterpret_s32_p16): Likewise.
29415 (vreinterpretq_s32_s8): Likewise.
29416 (vreinterpretq_s32_s16): Likewise.
29417 (vreinterpretq_s32_s64): Likewise.
29418 (vreinterpretq_s32_f32): Likewise.
29419 (vreinterpretq_s32_u8): Likewise.
29420 (vreinterpretq_s32_u16): Likewise.
29421 (vreinterpretq_s32_u32): Likewise.
29422 (vreinterpretq_s32_u64): Likewise.
29423 (vreinterpretq_s32_p8): Likewise.
29424 (vreinterpretq_s32_p16): Likewise.
29425 (vreinterpret_u8_s8): Likewise.
29426 (vreinterpret_u8_s16): Likewise.
29427 (vreinterpret_u8_s32): Likewise.
29428 (vreinterpret_u8_s64): Likewise.
29429 (vreinterpret_u8_f32): Likewise.
29430 (vreinterpret_u8_u16): Likewise.
29431 (vreinterpret_u8_u32): Likewise.
29432 (vreinterpret_u8_u64): Likewise.
29433 (vreinterpret_u8_p8): Likewise.
29434 (vreinterpret_u8_p16): Likewise.
29435 (vreinterpretq_u8_s8): Likewise.
29436 (vreinterpretq_u8_s16): Likewise.
29437 (vreinterpretq_u8_s32): Likewise.
29438 (vreinterpretq_u8_s64): Likewise.
29439 (vreinterpretq_u8_f32): Likewise.
29440 (vreinterpretq_u8_u16): Likewise.
29441 (vreinterpretq_u8_u32): Likewise.
29442 (vreinterpretq_u8_u64): Likewise.
29443 (vreinterpretq_u8_p8): Likewise.
29444 (vreinterpretq_u8_p16): Likewise.
29445 (vreinterpret_u16_s8): Likewise.
29446 (vreinterpret_u16_s16): Likewise.
29447 (vreinterpret_u16_s32): Likewise.
29448 (vreinterpret_u16_s64): Likewise.
29449 (vreinterpret_u16_f32): Likewise.
29450 (vreinterpret_u16_u8): Likewise.
29451 (vreinterpret_u16_u32): Likewise.
29452 (vreinterpret_u16_u64): Likewise.
29453 (vreinterpret_u16_p8): Likewise.
29454 (vreinterpret_u16_p16): Likewise.
29455 (vreinterpretq_u16_s8): Likewise.
29456 (vreinterpretq_u16_s16): Likewise.
29457 (vreinterpretq_u16_s32): Likewise.
29458 (vreinterpretq_u16_s64): Likewise.
29459 (vreinterpretq_u16_f32): Likewise.
29460 (vreinterpretq_u16_u8): Likewise.
29461 (vreinterpretq_u16_u32): Likewise.
29462 (vreinterpretq_u16_u64): Likewise.
29463 (vreinterpretq_u16_p8): Likewise.
29464 (vreinterpretq_u16_p16): Likewise.
29465 (vreinterpret_u32_s8): Likewise.
29466 (vreinterpret_u32_s16): Likewise.
29467 (vreinterpret_u32_s32): Likewise.
29468 (vreinterpret_u32_s64): Likewise.
29469 (vreinterpret_u32_f32): Likewise.
29470 (vreinterpret_u32_u8): Likewise.
29471 (vreinterpret_u32_u16): Likewise.
29472 (vreinterpret_u32_u64): Likewise.
29473 (vreinterpret_u32_p8): Likewise.
29474 (vreinterpret_u32_p16): Likewise.
29475 (vreinterpretq_u32_s8): Likewise.
29476 (vreinterpretq_u32_s16): Likewise.
29477 (vreinterpretq_u32_s32): Likewise.
29478 (vreinterpretq_u32_s64): Likewise.
29479 (vreinterpretq_u32_f32): Likewise.
29480 (vreinterpretq_u32_u8): Likewise.
29481 (vreinterpretq_u32_u16): Likewise.
29482 (vreinterpretq_u32_u64): Likewise.
29483 (vreinterpretq_u32_p8): Likewise.
29484 (vreinterpretq_u32_p16): Likewise.
29485
29486 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
29487
29488 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
29489 Pattern extended.
29490 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
29491 (sqabs): Likewise.
29492 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
29493 (vqnegd_s64): Likewise.
29494 (vqabs_s64): Likewise.
29495 (vqabsd_s64): Likewise.
29496
29497 2014-04-22 Richard Henderson <rth@redhat.com>
29498
29499 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
29500 computation to the top of the loop.
29501
29502 2014-04-22 Renlin <renlin.li@arm.com>
29503 Jiong Wang <jiong.wang@arm.com>
29504
29505 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
29506 * config/aarch64/aarch64.c (aarch64_layout_frame)
29507 (aarch64_initial_elimination_offset): Likewise.
29508
29509 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
29510
29511 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
29512 Fix indentation.
29513
29514 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
29515
29516 * machmode.h (bitwise_mode_for_mode): Declare.
29517 * stor-layout.h (bitwise_type_for_mode): Likewise.
29518 * stor-layout.c (bitwise_mode_for_mode): New function.
29519 (bitwise_type_for_mode): Likewise.
29520 * builtins.c (fold_builtin_memory_op): Use it instead of
29521 int_mode_for_mode and build_nonstandard_integer_type.
29522
29523 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29524
29525 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
29526 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
29527 (*-*-solaris2*): Simplify.
29528 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
29529 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
29530 *-*-solaris2.9* handling.
29531
29532 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
29533 as bug.
29534 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
29535 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
29536 handling, simplify.
29537 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
29538 * configure: Regenerate.
29539
29540 * config/i386/sol2-9.h: Remove.
29541
29542 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
29543 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
29544 Remove Solaris 9 references.
29545
29546 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
29547
29548 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
29549 (floatuns<GPI:mode><GPF:mode>2): Remove.
29550 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
29551 and floatuns conversions.
29552 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
29553 and floatuns conversions.
29554 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
29555 (w1,w2): New mode attributes for inequal width conversions.
29556
29557 2014-04-22 Renlin Li <Renlin.Li@arm.com>
29558
29559 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
29560 the output asm format.
29561
29562 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
29563
29564 * config/aarch64/aarch64-simd.md
29565 (aarch64_cm<optab>di): Always split.
29566 (*aarch64_cm<optab>di): New.
29567 (aarch64_cmtstdi): Always split.
29568 (*aarch64_cmtstdi): New.
29569
29570 2014-04-22 Jakub Jelinek <jakub@redhat.com>
29571
29572 PR tree-optimization/60823
29573 * omp-low.c (ipa_simd_modify_function_body): Go through
29574 all SSA_NAMEs and for those refering to vector arguments
29575 which are going to be replaced adjust SSA_NAME_VAR and,
29576 if it is a default definition, change it into a non-default
29577 definition assigned at the beginning of function from new_decl.
29578 (ipa_simd_modify_stmt_ops): Rewritten.
29579 * tree-dfa.c (set_ssa_default_def): When removing default def,
29580 check for NULL loc instead of NULL *loc.
29581
29582 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29583
29584 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
29585 restrictions on core registers for DImode values in Thumb2.
29586
29587 2014-04-22 Ian Bolton <ian.bolton@arm.com>
29588
29589 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
29590 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
29591
29592 2014-04-22 Ian Bolton <ian.bolton@arm.com>
29593
29594 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
29595 (*iordi_notzesidi_di): Likewise.
29596 (*iordi_notsesidi_di): Likewise.
29597
29598 2014-04-22 Ian Bolton <ian.bolton@arm.com>
29599
29600 * config/arm/arm-protos.h (tune_params): New struct members.
29601 * config/arm/arm.c: Initialise tune_params per processor.
29602 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
29603 for speed, based on new tune_params.
29604
29605 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
29606
29607 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
29608 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
29609 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
29610 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
29611 * config/aarch64/arm_neon.h (vrnd_f64): Added.
29612 (vrnda_f64): Likewise.
29613 (vrndi_f64): Likewise.
29614 (vrndm_f64): Likewise.
29615 (vrndn_f64): Likewise.
29616 (vrndp_f64): Likewise.
29617 (vrndx_f64): Likewise.
29618
29619 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
29620
29621 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
29622 GET_MODE_SIZE argument is enum machine_mode.
29623
29624 2014-04-22 Jakub Jelinek <jakub@redhat.com>
29625
29626 PR target/60910
29627 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
29628 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
29629
29630 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
29631
29632 PR middle-end/60281
29633 * asan.c (asan_emit_stack_protection): Force the base to align to
29634 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
29635 appropriate bits if STRICT_ALIGNMENT.
29636 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
29637 when asan is on.
29638 (expand_used_vars): Leave a space in the stack frame for alignment
29639 if STRICT_ALIGNMENT.
29640
29641 2014-04-21 David Malcolm <dmalcolm@redhat.com>
29642
29643 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
29644 than a gimple.
29645 (gimple_store_p): Likewise.
29646 (gimple_assign_load_p): Likewise.
29647 (gimple_assign_cast_p): Likewise.
29648 (gimple_clobber_p): Likewise.
29649
29650 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
29651 rather than a gimple.
29652 (gimple_assign_cast_p): Likewise.
29653
29654 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
29655
29656 PR target/60735
29657 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
29658 If mode is DDmode and TARGET_E500_DOUBLE allow move.
29659
29660 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
29661 more debug information for E500 if -mdebug=reg.
29662
29663 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
29664
29665 PR target/60909
29666 * config/i386/i386.c (ix86_expand_builtin)
29667 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
29668 register for target RTX.
29669 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
29670
29671 2014-04-18 Cong Hou <congh@google.com>
29672
29673 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
29674 the widen-mult pattern by handling two operands with different sizes,
29675 and operands whose size is smaller than half of the result type.
29676
29677 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
29678
29679 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
29680 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
29681 (do_estimate_edge_time): Compute it.
29682 * ipa-inline.c (want_inline_small_function_p): Bypass
29683 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
29684
29685 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
29686
29687 * ipa-inline.c (spec_rem): New static variable.
29688 (dump_overall_stats): New function.
29689 (dump_inline_stats): New function.
29690
29691 2014-04-18 Richard Henderson <rth@redhat.com>
29692
29693 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
29694 to GET_MODE_SIZE, not a reg_class_t.
29695
29696 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29697
29698 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
29699 (vsx_xxmrglw_<mode>): Likewise.
29700
29701 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
29702
29703 PR target/60876
29704 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
29705 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
29706 (rs6000_init_hard_regno_mode_ok): Likewise.
29707
29708 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
29709
29710 * ipa-inline.c (inline_small_functions): Account only non-cold
29711 functions.
29712 * doc/invoke.texi (inline-unit-growth): Update documentation.
29713
29714 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
29715
29716 * config/rs6000/rs6000.md (addti3, subti3): New.
29717
29718 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
29719
29720 PR target/60863
29721 * config/i386/i386.c (ix86_expand_clear): Remove outdated
29722 comment. Check optimize_insn_for_size_p instead of
29723 optimize_insn_for_speed_p.
29724
29725 2014-04-17 Martin Jambor <mjambor@suse.cz>
29726
29727 * gimple-iterator.c (gsi_start_edge): New function.
29728 * gimple-iterator.h (gsi_start_edge): Declare.
29729 * tree-sra.c (single_non_eh_succ): New function.
29730 (disqualify_ops_if_throwing_stmt): Renamed to
29731 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
29732 having one non-EH successor BB.
29733 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
29734 generate loads into replacements.
29735 (sra_modify_assign): Likewise and and also use the simple path for
29736 such statements.
29737 (sra_modify_function_body): Commit statements on edges.
29738
29739 2014-04-17 Richard Biener <rguenther@suse.de>
29740
29741 PR middle-end/60849
29742 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
29743 comparison results and add clarifying comment.
29744
29745 2014-04-17 Jakub Jelinek <jakub@redhat.com>
29746
29747 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
29748 (blank_mode): Initialize it.
29749 (emit_mode_size_inline, emit_mode_nunits_inline,
29750 emit_mode_inner_inline): New functions.
29751 (emit_insn_modes_h): Call them and surround their output with
29752 #if GCC_VERSION >= 4001 ... #endif.
29753 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
29754 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
29755 mode_* arrays if the argument is __builtin_constant_p.
29756 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
29757 is enum machine_mode.
29758
29759 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29760
29761 * passes.c (opt_pass::execute): Adjust.
29762 (pass_manager::execute_pass_mode_switching): Likewise.
29763 (early_local_passes::execute): Likewise.
29764 (execute_one_pass): Pass cfun to the pass's execute method.
29765 * tree-pass.h (opt_pass::execute): Add function * argument.
29766 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29767 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29768 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29769 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29770 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29771 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
29772 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
29773 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29774 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29775 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
29776 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
29777 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
29778 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
29779 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
29780 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29781 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29782 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29783 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
29784 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
29785 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29786 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29787 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29788 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29789 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29790 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29791 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29792 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29793 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29794 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29795 Adjust.
29796
29797 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29798
29799 * passes.c (opt_pass::gate): Take function * argument.
29800 (gate_all_early_local_passes): Merge into
29801 (early_local_passes::gate): this.
29802 (gate_all_early_optimizations): Merge into
29803 (all_early_optimizations::gate): this.
29804 (gate_all_optimizations): Mege into
29805 (all_optimizations::gate): this.
29806 (gate_all_optimizations_g): Merge into
29807 (all_optimizations_g::gate): this.
29808 (gate_rest_of_compilation): Mege into
29809 (rest_of_compilation::gate): this.
29810 (gate_postreload): Merge into
29811 (postreload::gate): this.
29812 (dump_one_pass): Pass cfun to the pass's gate method.
29813 (execute_ipa_summary_passes): Likewise.
29814 (execute_one_pass): Likewise.
29815 (ipa_write_summaries_2): Likewise.
29816 (ipa_write_optimization_summaries_1): Likewise.
29817 (ipa_read_summaries_1): Likewise.
29818 (ipa_read_optimization_summaries_1): Likewise.
29819 (execute_ipa_stmt_fixups): Likewise.
29820 * tree-pass.h (opt_pass::gate): Add function * argument.
29821 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
29822 combine-stack-adj.c, combine.c, compare-elim.c,
29823 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29824 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
29825 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
29826 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
29827 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29828 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29829 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29830 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
29831 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
29832 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
29833 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29834 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29835 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
29836 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29837 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29838 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29839 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29840 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29841 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29842 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29843 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29844 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29845 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
29846 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
29847 var-tracking.c, vtable-verify.c, web.c: Adjust.
29848
29849 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29850
29851 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
29852 * configure: Regenerate.
29853
29854 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29855
29856 * passes.c (dump_one_pass): don't check pass->has_gate.
29857 (execute_ipa_summary_passes): Likewise.
29858 (execute_one_pass): Likewise.
29859 (ipa_write_summaries_2): Likewise.
29860 (ipa_write_optimization_summaries_1): Likewise.
29861 (ipa_read_optimization_summaries_1): Likewise.
29862 (execute_ipa_stmt_fixups): Likewise.
29863 * tree-pass.h (pass_data::has_gate): Remove.
29864 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29865 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29866 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29867 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29868 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29869 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
29870 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
29871 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
29872 gimple-low.c, gimple-ssa-isolate-paths.c,
29873 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
29874 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
29875 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29876 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
29877 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
29878 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
29879 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
29880 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
29881 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
29882 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29883 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29884 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29885 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29886 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29887 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29888 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29889 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29890 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29891 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29892 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29893 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29894 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29895 Adjust.
29896
29897 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29898
29899 * pass_manager.h (pass_manager::register_dump_files_1): Remove
29900 declaration.
29901 * passes.c (pass_manager::register_dump_files_1): Merge into
29902 (pass_manager::register_dump_files): this, and remove its handling of
29903 properties since the pass always has the properties anyway.
29904 (pass_manager::pass_manager): Adjust.
29905
29906 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29907
29908 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
29909 * passes.c (pass_manager::register_dump_files_1): Remove dead code
29910 dealing with properties.
29911 (pass_manager::register_dump_files): Adjust.
29912
29913 2014-03-20 Mark Wielaard <mjw@redhat.com>
29914
29915 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
29916 then represent the bound as normal constant value.
29917
29918 2014-04-17 Jakub Jelinek <jakub@redhat.com>
29919
29920 PR target/60847
29921 Forward port from 4.8 branch
29922 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
29923
29924 * config/i386/bmiintrin.h (_blsi_u32): New.
29925 (_blsi_u64): Ditto.
29926 (_blsr_u32): Ditto.
29927 (_blsr_u64): Ditto.
29928 (_blsmsk_u32): Ditto.
29929 (_blsmsk_u64): Ditto.
29930 (_tzcnt_u32): Ditto.
29931 (_tzcnt_u64): Ditto.
29932
29933 2014-04-17 Kito Cheng <kito@0xlab.org>
29934
29935 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
29936
29937 2014-04-17 Richard Biener <rguenther@suse.de>
29938
29939 PR middle-end/60849
29940 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
29941 boolean results for comparisons.
29942
29943 2014-04-17 Richard Biener <rguenther@suse.de>
29944
29945 PR tree-optimization/60836
29946 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
29947 initial PHI args to be gimple values.
29948
29949 2014-04-17 Richard Biener <rguenther@suse.de>
29950
29951 PR tree-optimization/60841
29952 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
29953 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
29954 of stmts to SLP build.
29955 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
29956 (vect_analyze_slp): Likewise.
29957 (vect_analyze_slp_instance): Likewise.
29958 (vect_build_slp_tree): Limit overall SLP tree growth.
29959 * tree-vectorizer.h (vect_analyze_data_refs,
29960 vect_analyze_slp): Adjust prototypes.
29961
29962 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
29963
29964 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
29965 Silvermont.
29966
29967 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
29968
29969 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
29970 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
29971 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
29972 for TARGET_SLOW_PSHUFB
29973
29974 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
29975
29976 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
29977 * config/i386/i386.c (intel_cost): Ditto.
29978
29979 2014-04-17 Joey Ye <joey.ye@arm.com>
29980
29981 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
29982
29983 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
29984
29985 * opts.c (common_handle_option): Disable -fipa-reference coorectly
29986 with -fuse-profile.
29987
29988 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
29989
29990 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
29991 (type_all_derivations_known_p): New predicate.
29992 (type_all_ctors_visible_p): New predicate.
29993 (type_possibly_instantiated_p): New predicate.
29994 (get_odr_type): Compute all_derivations_known.
29995 (dump_odr_type): Dump the flag.
29996 (maybe_record_type): Cleanup.
29997 (record_target_from_binfo): Add bases_to_consider array;
29998 record bases for types w/o instances and skip CXX destructor.
29999 (possible_polymorphic_call_targets_1): Add bases_to_consider
30000 and consider_construction parameters; check if type may have instance.
30001 (get_polymorphic_call_info): Set maybe_in_construction to true
30002 when we know nothing.
30003 (record_targets_from_bases): Skip CXX destructors; they are
30004 never called for types in construction.
30005 (possible_polymorphic_call_targets): Do not record target when
30006 type may not have instance.
30007
30008 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
30009
30010 PR ipa/60854
30011 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
30012 external aliases alive, too.
30013
30014 2014-04-16 Andrew Pinski <apinski@cavium.com>
30015
30016 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
30017 definition.
30018
30019 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
30020
30021 * final.c (compute_alignments): Do not apply loop alignment to a block
30022 falling through to the exit.
30023
30024 2014-04-16 Catherine Moore <clm@codesourcery.com>
30025
30026 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
30027 Adjust constraints for microMIPS store patterns.
30028
30029 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
30030
30031 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
30032
30033 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
30034
30035 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
30036 (append_use): Run at -O0.
30037 (append_vdef): Likewise.
30038 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
30039 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
30040
30041 2014-04-16 Jakub Jelinek <jakub@redhat.com>
30042
30043 PR tree-optimization/60844
30044 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
30045 (propagate_op_to_single_use, remove_visited_stmt_chain,
30046 linearize_expr, repropagate_negates, reassociate_bb): Use it
30047 instead of gsi_remove.
30048
30049 2014-04-16 Martin Jambor <mjambor@suse.cz>
30050
30051 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
30052 ipa_transforms_to_apply.
30053 (cgraph_function_versioning): Assert that old_node has empty
30054 ipa_transforms_to_apply.
30055 * trans-mem.c (ipa_tm_create_version): Likewise.
30056 * tree-inline.c (tree_function_versioning): Do not duplicate
30057 ipa_transforms_to_apply.
30058
30059 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30060
30061 PR target/60817
30062 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
30063 x86_64-*-* cases.
30064 Pass necessary as flags on 64-bit Solaris/x86.
30065 Use lowercase relocs for x86_64-*-*.
30066 * configure: Regenerate.
30067
30068 2014-04-15 Jan Hubicka <jh@suse.cz>
30069
30070 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
30071 (maybe_record_node, likely_target_p): Use it.
30072
30073 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30074
30075 PR target/60839
30076 Revert following patch
30077
30078 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
30079
30080 PR target/60735
30081 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30082 software floating point or no floating point registers, do not
30083 allow any type in the FPRs. Eliminate a test for SPE SIMD types
30084 in GPRs that occurs after we tested for GPRs that would never be
30085 true.
30086
30087 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30088 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30089 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
30090 specifically allow DDmode, since that does not use the SPE SIMD
30091 instructions.
30092
30093 2014-03-21 Mark Wielaard <mjw@redhat.com>
30094
30095 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
30096 as unsigned or int depending on type and value used.
30097
30098 2014-04-15 Richard Biener <rguenther@suse.de>
30099
30100 PR rtl-optimization/56965
30101 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
30102 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
30103 ... here.
30104 * alias.c (true_dependence_1): Do not call
30105 nonoverlapping_component_refs_p.
30106 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
30107 nonoverlapping_component_refs_p.
30108 (indirect_refs_may_alias_p): Likewise.
30109
30110 2014-04-15 Teresa Johnson <tejohnson@google.com>
30111
30112 * cfg.c (dump_bb_info): Fix flags check.
30113 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
30114
30115 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30116
30117 PR rtl-optimization/60663
30118 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
30119 avoid 0 cost.
30120
30121 2014-04-15 Richard Biener <rguenther@suse.de>
30122
30123 * lto-streamer.h (LTO_major_version): Bump to 4.
30124
30125 2014-04-15 Richard Biener <rguenther@suse.de>
30126
30127 * common.opt (lto_partition_model): New enum.
30128 (flto-partition=): Merge separate options with a single with argument,
30129 add -flto-partition=one support.
30130 * flag-types.h (enum lto_partition_model): Declare.
30131 * opts.c (finish_options): Remove duplicate -flto-partition=
30132 option check.
30133 * lto-wrapper.c (run_gcc): Adjust.
30134
30135 2014-04-15 Richard Biener <rguenther@suse.de>
30136
30137 * alias.c (ncr_compar): New function.
30138 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
30139
30140 2014-04-15 Richard Biener <rguenther@suse.de>
30141
30142 * alias.c (record_component_aliases): Do not walk BINFOs.
30143
30144 2014-04-15 Richard Biener <rguenther@suse.de>
30145
30146 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
30147 Add struct function argument and adjust.
30148 (find_func_aliases_for_call): Likewise.
30149 (find_func_aliases): Likewise.
30150 (find_func_clobbers): Likewise.
30151 (intra_create_variable_infos): Likewise.
30152 (compute_points_to_sets): Likewise.
30153 (ipa_pta_execute): Adjust. Do not push/pop cfun.
30154
30155 2014-04-15 Richard Biener <rguenther@suse.de>
30156
30157 * tree.c (iterative_hash_expr): Use enum tree_code_class
30158 to store TREE_CODE_CLASS.
30159 (tree_block): Likewise.
30160 (tree_set_block): Likewise.
30161 * tree.h (fold_build_pointer_plus_loc): Use
30162 convert_to_ptrofftype_loc.
30163
30164 2014-04-15 Jakub Jelinek <jakub@redhat.com>
30165
30166 PR plugins/59335
30167 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
30168 added in 4.9.
30169
30170 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
30171
30172 * cfgloop.h (struct loop): Move force_vectorize down.
30173 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
30174 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
30175 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
30176 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
30177 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
30178 * tree-core.h (enum annot_expr_kind): Add new kind values.
30179 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
30180 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
30181 kinds.
30182 * tree.def (ANNOTATE_EXPR): Tweak comment.
30183
30184 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
30185
30186 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
30187 cxa_pure_virtual).
30188
30189 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
30190
30191 * tree.h (TYPE_IDENTIFIER): Declare.
30192 * tree.c (subrange_type_for_debug_p): Use it.
30193 * godump.c (go_format_type): Likewise.
30194 * dwarf2out.c (is_cxx_auto, modified_type_die,
30195 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
30196 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
30197
30198 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
30199
30200 PR lto/60820
30201 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
30202
30203 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
30204
30205 * config/i386/i386.c (examine_argument): Return bool. Return true if
30206 parameter should be passed in memory.
30207 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
30208 (construct_container): Update calls to examine_argument.
30209 (function_arg_advance_64): Ditto.
30210 (return_in_memory_32): Merge with ix86_return_in_memory.
30211 (return_in_memory_64): Ditto.
30212 (return_in_memory_ms_64): Ditto.
30213
30214 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
30215
30216 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
30217 * coverage.c (coverage_compute_profile_id): Handle externally visible
30218 symbols.
30219
30220 2014-04-14 Martin Jambor <mjambor@suse.cz>
30221
30222 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
30223 DECL_DISREGARD_INLINE_LIMITS functions.
30224
30225 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
30226
30227 PR target/60827
30228 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
30229
30230 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
30231
30232 PR target/60827
30233 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
30234 optimize_insn_for_speed_p instead of
30235 optimize_function_for_speed_p.
30236
30237 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
30238
30239 * doc/invoke.texi (free): Document AArch64.
30240
30241 2014-04-14 Richard Biener <rguenther@suse.de>
30242
30243 PR tree-optimization/60042
30244 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
30245 (insert_into_preds_of_block): Do not prevent PHI insertion
30246 for REFERENCE exprs here ...
30247 (eliminate_dom_walker::before_dom_children): ... but prevent
30248 their use here under similar conditions when applied to the
30249 IL after PRE optimizations.
30250
30251 2014-04-14 Richard Biener <rguenther@suse.de>
30252
30253 * passes.def: Move early points-to after early SRA.
30254
30255 2014-04-14 Richard Biener <rguenther@suse.de>
30256
30257 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
30258 check for which sign-changes we allow when forwarding
30259 a converted value into a switch.
30260
30261 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
30262
30263 * stor-layout.c (place_field): Finalize non-constant offset for the
30264 field, if any.
30265
30266 2014-04-14 Richard Biener <rguenther@suse.de>
30267
30268 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
30269 as argument.
30270 (expand_switch_using_bit_tests_p): Likewise.
30271 (process_switch): Compute and pass on speed_p based on the
30272 switch stmt.
30273 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
30274 optimize_bb_for_speed_p.
30275
30276 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
30277
30278 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
30279 * function.h (struct function): Rename has_force_vect_loops into
30280 has_force_vectorize_loops.
30281 * lto-streamer-in.c (input_cfg): Adjust for renaming.
30282 (input_struct_function_base): Likewise.
30283 * lto-streamer-out.c (output_cfg): Likewise.
30284 (output_struct_function_base): Likewise.
30285 * omp-low.c (expand_omp_simd): Likewise.
30286 * tree-cfg.c (move_sese_region_to_fn): Likewise.
30287 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
30288 (version_loop_for_if_conversion): Likewise.
30289 (tree_if_conversion): Likewise.
30290 (main_tree_if_conversion): Likewise.
30291 (gate_tree_if_conversion): Likewise.
30292 * tree-inline.c (copy_loops): Likewise.
30293 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
30294 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
30295 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
30296 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
30297 * tree-vectorizer.c (vectorize_loops): Likewise.
30298 * tree-vectorizer.h (unlimited_cost_model): Likewise.
30299
30300 2014-04-14 Richard Biener <rguenther@suse.de>
30301
30302 PR lto/60720
30303 * lto-streamer-out.c (wrap_refs): New function.
30304 (lto_output): Wrap symbol references in global initializes in
30305 type-preserving MEM_REFs.
30306
30307 2014-04-14 Christian Bruel <christian.bruel@st.com>
30308
30309 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
30310
30311 2014-04-14 Christian Bruel <christian.bruel@st.com>
30312
30313 * config/sh/sh.md (setmemqi): New expand pattern.
30314 * config/sh/sh.h (CLEAR_RATIO): Define.
30315 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
30316 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
30317
30318 2014-04-14 Richard Biener <rguenther@suse.de>
30319
30320 PR middle-end/55022
30321 * fold-const.c (negate_expr_p): Don't negate directional rounding
30322 division.
30323 (fold_negate_expr): Likewise.
30324
30325 2014-04-14 Richard Biener <rguenther@suse.de>
30326
30327 PR tree-optimization/59817
30328 PR tree-optimization/60453
30329 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
30330 recursion to catch all CHRECs in the scalar evolution and restrict
30331 the predicate for the remains appropriately.
30332
30333 2014-04-12 Catherine Moore <clm@codesourcery.com>
30334
30335 * config/mips/constraints.md: Add new register constraint "kb".
30336 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
30337 (*movhi_internal): Likewise.
30338 (*movqi_internal): Likewise.
30339 * config/mips/mips.h (M16_STORE_REGS): New register class.
30340 (REG_CLASS_NAMES): Add M16_STORE_REGS.
30341 (REG_CLASS_CONTENTS): Likewise.
30342 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
30343
30344 2014-04-11 Tobias Burnus <burnus@net-b.de>
30345
30346 PR c/60194
30347 * doc/invoke.texi (-Wformat-signedness): Document it.
30348 (Wformat=2): Mention that this enables -Wformat-signedness.
30349
30350 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
30351
30352 * common/config/epiphany/epiphany-common.c
30353 (epiphany_option_optimization_table): Enable section anchors by
30354 default at -O1 or higher.
30355 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
30356 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
30357 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
30358 carries no extra cost.
30359 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
30360 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
30361 * config/epiphany/predicates.md (memclob_operand): New predicate.
30362 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
30363 Use memclob_operand predicate and X constraint for operand 3.
30364
30365 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
30366
30367 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
30368 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
30369 its operands.
30370
30371 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
30372
30373 PR rtl-optimization/60651
30374 * mode-switching.c (optimize_mode_switching): Make sure to emit
30375 sets of a lower numbered entity before sets of a higher numbered
30376 entity to a mode of the same or lower priority.
30377 When creating a seginfo for a basic block that starts with a code
30378 label, move the insertion point past the code label.
30379 (new_seginfo): Document and enforce requirement that
30380 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
30381 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
30382 * doc/tm.texi: Regenerate.
30383
30384 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
30385
30386 PR target/60811
30387 * config/arc/arc.c (arc_save_restore): Fix assert typo.
30388
30389 2013-04-11 Jakub Jelinek <jakub@redhat.com>
30390
30391 * BASE-VER: Set to 4.10.0.
30392
30393 2014-04-11 Tobias Burnus <burnus@net-b.de>
30394
30395 PR other/59055
30396 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
30397 * doc/gcc.texi (Service): Update description in the @menu
30398 * doc/invoke.texi (Option Summary): Remove misplaced and
30399 duplicated @menu.
30400
30401 2014-04-11 Steve Ellcey <sellcey@mips.com>
30402 Jakub Jelinek <jakub@redhat.com>
30403
30404 PR middle-end/60556
30405 * expr.c (convert_move): Use emit_store_flag_force instead of
30406 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
30407 argument to it.
30408
30409 2014-04-11 Richard Biener <rguenther@suse.de>
30410
30411 PR middle-end/60797
30412 * varasm.c (assemble_alias): Avoid endless error reporting
30413 recursion by setting TREE_ASM_WRITTEN.
30414
30415 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30416
30417 * config/s390/s390.md: Add a splitter for NOT rtx.
30418
30419 2014-04-11 Jakub Jelinek <jakub@redhat.com>
30420
30421 PR rtl-optimization/60663
30422 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
30423
30424 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
30425 Jakub Jelinek <jakub@redhat.com>
30426
30427 PR lto/60567
30428 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
30429 flag from decl_node to node.
30430
30431 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30432
30433 PR debug/60655
30434 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
30435 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
30436 ameliorating the cases where it can be.
30437
30438 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
30439
30440 Revert
30441 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
30442
30443 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
30444 (loadsync_<mode>): Change mode.
30445 (load_quadpti, store_quadpti): New.
30446 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
30447 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
30448 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
30449
30450 2014-04-09 Cong Hou <congh@google.com>
30451
30452 PR testsuite/60773
30453 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
30454 documentation.
30455
30456 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30457
30458 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
30459 instead of vnor to exploit possible fusion opportunity in the
30460 future.
30461 (altivec_expand_vec_perm_const_le): Likewise.
30462
30463 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
30464
30465 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
30466 (loadsync_<mode>): Change mode.
30467 (load_quadpti, store_quadpti): New.
30468 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
30469 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
30470
30471 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
30472
30473 PR target/60763
30474 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
30475 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
30476 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
30477
30478 2014-04-08 Richard Biener <rguenther@suse.de>
30479
30480 PR middle-end/60706
30481 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
30482 a 64bit widest int print double-int similar to on HWI64 hosts.
30483
30484 2014-04-08 Richard Biener <rguenther@suse.de>
30485
30486 PR tree-optimization/60785
30487 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
30488 default defs properly.
30489
30490 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
30491
30492 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
30493 (Weffc++): Likewise.
30494
30495 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
30496
30497 * ipa-devirt.c (maybe_record_node): When node is not recorded,
30498 set completep to false rather than true.
30499
30500 2014-04-07 Douglas B Rupp <rupp@adacore.com>
30501
30502 PR target/60504
30503 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
30504 ARM_TARGET2_DWARF_FORMAT.
30505
30506 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
30507
30508 PR target/60609
30509 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
30510 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
30511 ADDR_DIFF_VEC.
30512
30513 2014-04-07 Richard Biener <rguenther@suse.de>
30514
30515 PR tree-optimization/60766
30516 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
30517 (may_eliminate_iv): Convert cand_value_at result to desired type.
30518
30519 2014-04-07 Jason Merrill <jason@redhat.com>
30520
30521 PR c++/60731
30522 * common.opt (-fno-gnu-unique): Add.
30523 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
30524
30525 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30526
30527 * haifa-sched.c: Fix outdated function reference and minor
30528 grammar errors in introductory comment.
30529
30530 2014-04-07 Richard Biener <rguenther@suse.de>
30531
30532 PR middle-end/60750
30533 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
30534 for noreturn calls.
30535 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
30536
30537 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
30538
30539 PR debug/55794
30540 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
30541 size accounting for thunks.
30542 (pa_asm_output_mi_thunk): Use final_start_function() and
30543 final_end_function() to output function start and end directives.
30544
30545 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
30546
30547 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
30548 device specific ISA/ feature information. Remove short_sp and
30549 errata_skip ds. Add avr_device_specific_features enum to have device
30550 specific info.
30551 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
30552 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
30553 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
30554 updated device specific info.
30555 * config/avr/avr-mcus.def: Merge device specific details to
30556 dev_attribute field.
30557 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
30558 errata_skip.
30559 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
30560 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
30561 assembler if RMW isa supported by current device.
30562 * config/avr/genmultilib.awk: Update as device info structure changed.
30563 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
30564
30565 2014-04-04 Cong Hou <congh@google.com>
30566
30567 PR tree-optimization/60656
30568 * tree-vect-stmts.c (supportable_widening_operation):
30569 Fix a bug that elements in a vector with vect_used_by_reduction
30570 property are incorrectly reordered when the operation on it is not
30571 consistant with the one in reduction operation.
30572
30573 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
30574
30575 PR rtl-optimization/60155
30576 * gcse.c (record_set_data): New function.
30577 (single_set_gcse): New function.
30578 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
30579 (hoist_code): Likewise.
30580 (get_pressure_class_and_nregs): Likewise.
30581
30582 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
30583
30584 * explow.c (probe_stack_range): Emit a final optimization blockage.
30585
30586 2014-04-04 Anthony Green <green@moxielogic.com>
30587
30588 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
30589 typos.
30590
30591 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
30592
30593 PR ipa/59626
30594 * lto-cgraph.c (input_overwrite_node): Check that partitioning
30595 flags are set only during streaming.
30596 * ipa.c (process_references, walk_polymorphic_call_targets,
30597 symtab_remove_unreachable_nodes): Drop bodies of always inline
30598 after early inlining.
30599 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
30600
30601 2014-04-04 Jakub Jelinek <jakub@redhat.com>
30602 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30603
30604 PR debug/60655
30605 * dwarf2out.c (const_ok_for_output_1): Reject expressions
30606 containing a NOT.
30607
30608 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30609
30610 PR bootstrap/60743
30611 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
30612 duration.
30613 (cortex_a53_fdivd): Likewise.
30614
30615 2014-04-04 Martin Jambor <mjambor@suse.cz>
30616
30617 PR ipa/60640
30618 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
30619 Adjust all callers.
30620 * cgraph.c (clone_of_p): Also return true if thunks match.
30621 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
30622 cgraph_function_or_thunk_node and an obsolete comment.
30623 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
30624 file.
30625 (build_function_decl_skip_args): Likewise.
30626 (set_new_clone_decl_and_node_flags): New function.
30627 (duplicate_thunk_for_node): Likewise.
30628 (redirect_edge_duplicating_thunks): Likewise.
30629 (cgraph_clone_node): New parameter args_to_skip, pass it to
30630 redirect_edge_duplicating_thunks which is called instead of
30631 cgraph_redirect_edge_callee.
30632 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
30633 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
30634
30635 2014-04-04 Jeff Law <law@redhat.com>
30636
30637 PR target/60657
30638 * config/arm/predicates.md (const_int_I_operand): New predicate.
30639 (const_int_M_operand): Similarly.
30640 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
30641 const_int_operand.
30642 (insv_t2, extv_reg, extzv_t2): Likewise.
30643 (load_multiple_with_writeback): Similarly for const_int_I_operand.
30644 (pop_multiple_with_writeback_and_return): Likewise.
30645 (vfp_pop_multiple_with_writeback): Likewise
30646
30647 2014-04-04 Richard Biener <rguenther@suse.de>
30648
30649 PR ipa/60746
30650 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
30651 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
30652 non-GIMPLE_LABELs.
30653 * gimplify.h (gimple_add_tmp_var_fn): Declare.
30654 * gimplify.c (gimple_add_tmp_var_fn): New function.
30655 * gimple-expr.h (create_tmp_reg_fn): Declare.
30656 * gimple-expr.c (create_tmp_reg_fn): New function.
30657 * gimple-low.c (record_vars_into): Don't change cfun.
30658 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
30659 code generation without cfun.
30660
30661 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
30662
30663 PR bootstrap/60719
30664 * Makefile.in (install-driver): Fix shell scripting.
30665
30666 2014-04-03 Cong Hou <congh@google.com>
30667
30668 PR tree-optimization/60505
30669 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
30670 threshold of number of iterations below which no vectorization
30671 will be done.
30672 * tree-vect-loop.c (new_loop_vec_info):
30673 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
30674 * tree-vect-loop.c (vect_analyze_loop_operations):
30675 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
30676 * tree-vect-loop.c (vect_transform_loop):
30677 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
30678 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
30679 of iterations of the loop and see if we should build the epilogue.
30680
30681 2014-04-03 Richard Biener <rguenther@suse.de>
30682
30683 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
30684 (streamer_tree_cache_create): Adjust.
30685 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
30686 to allow optional nodes array.
30687 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
30688 (streamer_tree_cache_append): Likewise.
30689 (streamer_tree_cache_create): Create nodes array optionally
30690 as specified by parameter.
30691 * lto-streamer-out.c (create_output_block): Avoid maintaining
30692 the node array in the writer cache.
30693 (DFS_write_tree): Remove assertion.
30694 (produce_asm_for_decls): Free the out decl state hash table early.
30695 * lto-streamer-in.c (lto_data_in_create): Adjust for
30696 streamer_tree_cache_create prototype change.
30697
30698 2014-04-03 Richard Biener <rguenther@suse.de>
30699
30700 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
30701 set TREE_CHAIN to NULL_TREE.
30702
30703 2014-04-03 Richard Biener <rguenther@suse.de>
30704
30705 PR tree-optimization/60740
30706 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
30707 over all GIMPLE_COND operands.
30708
30709 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
30710
30711 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
30712 (Weffc++): Remove Scott's numbering, merge lists and reference
30713 Wnon-virtual-dtor.
30714
30715 2014-04-03 Nick Clifton <nickc@redhat.com>
30716
30717 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
30718 properly.
30719
30720 2014-04-03 Martin Jambor <mjambor@suse.cz>
30721
30722 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
30723 mention gcc_unreachable before failing.
30724 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
30725 removed symbols.
30726
30727 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
30728
30729 PR ipa/60659
30730 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
30731 inconsistent code and instead mark the context inconsistent.
30732 (possible_polymorphic_call_targets): For inconsistent contexts
30733 return empty complete list.
30734
30735 2014-04-02 Anthony Green <green@moxielogic.com>
30736
30737 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
30738 (extendqisi2, extendhisi2): Define.
30739 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
30740 (WCHAR_TYPE): Change to unsigned int.
30741
30742 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30743
30744 PR tree-optimization/60733
30745 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
30746 insertion point for PHI candidates to be the end of the feeding
30747 block for the PHI argument.
30748
30749 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
30750
30751 PR rtl-optimization/60650
30752 * lra-constraints.c (process_alt_operands): Decrease reject for
30753 earlyclobber matching.
30754
30755 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30756
30757 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
30758
30759 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30760
30761 * config/spu/spu.c (pad_bb): Do not crash when the last
30762 insn is CODE_FOR_blockage.
30763
30764 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30765
30766 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
30767 lies outside the target mode.
30768
30769 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
30770
30771 PR target/60735
30772 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30773 software floating point or no floating point registers, do not
30774 allow any type in the FPRs. Eliminate a test for SPE SIMD types
30775 in GPRs that occurs after we tested for GPRs that would never be
30776 true.
30777
30778 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30779 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30780 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
30781 specifically allow DDmode, since that does not use the SPE SIMD
30782 instructions.
30783
30784 2014-04-02 Richard Biener <rguenther@suse.de>
30785
30786 PR middle-end/60729
30787 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
30788 MODE_INTs. Properly use negv_optab.
30789 (expand_abs): Likewise.
30790
30791 2014-04-02 Richard Biener <rguenther@suse.de>
30792
30793 PR bootstrap/60719
30794 * Makefile.in (install-driver): Guard extra installs with special
30795 names properly.
30796
30797 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
30798
30799 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30800 Document vec_vgbbd.
30801
30802 2014-04-01 Richard Henderson <rth@redhat.com>
30803
30804 PR target/60704
30805 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
30806 alternative enabled before register allocation.
30807
30808 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
30809
30810 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
30811 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
30812 typo.
30813 (nios2_large_got_address): Remove unneeded 'sym' parameter.
30814 (nios2_got_address): Update nios2_large_got_address call site.
30815 (nios2_delegitimize_address): New function.
30816 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
30817 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
30818 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
30819
30820 2014-04-01 Martin Husemann <martin@duskware.de>
30821
30822 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
30823 for -mabi=32.
30824
30825 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
30826
30827 PR rtl-optimization/60604
30828 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
30829 check from register_operand.
30830 (register_operand): Redefine in terms of general_operand.
30831 (nonmemory_operand): Use register_operand for the non-constant cases.
30832
30833 2014-04-01 Richard Biener <rguenther@suse.de>
30834
30835 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
30836
30837 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
30838
30839 * doc/invoke.texi (mapp-regs): Clarify.
30840
30841 2014-03-31 Ulrich Drepper <drepper@gmail.com>
30842
30843 * config/i386/avx512fintrin.h (__v32hi): Define type.
30844 (__v64qi): Likewise.
30845 (_mm512_set1_epi8): Define.
30846 (_mm512_set1_epi16): Define.
30847 (_mm512_set4_epi32): Define.
30848 (_mm512_set4_epi64): Define.
30849 (_mm512_set4_pd): Define.
30850 (_mm512_set4_ps): Define.
30851 (_mm512_setr4_epi64): Define.
30852 (_mm512_setr4_epi32): Define.
30853 (_mm512_setr4_pd): Define.
30854 (_mm512_setr4_ps): Define.
30855 (_mm512_setzero_epi32): Define.
30856
30857 2014-03-31 Martin Jambor <mjambor@suse.cz>
30858
30859 PR middle-end/60647
30860 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
30861 callsite_arguments_match_p. Updated all callers. Also check types of
30862 corresponding formal parameters and actual arguments.
30863 (not_all_callers_have_enough_arguments_p) Renamed to
30864 some_callers_have_mismatched_arguments_p.
30865
30866 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
30867
30868 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
30869
30870 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
30871
30872 PR target/60034
30873 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
30874 section anchor.
30875
30876 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
30877
30878 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
30879 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
30880 Split out
30881 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
30882 Use FMAMODE_NOVF512 mode iterator.
30883 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
30884 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
30885 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
30886 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
30887 Split out
30888 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
30889 Use VF_128_256 mode iterator.
30890 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
30891 Ditto.
30892
30893 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
30894
30895 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
30896 static chain if needed.
30897
30898 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
30899
30900 PR target/60697
30901 * lra-constraints.c (index_part_to_reg): New.
30902 (process_address): Use it.
30903
30904 2014-03-27 Jeff Law <law@redhat.com>
30905 Jakub Jelinek <jakub@redhat.com>
30906
30907 PR target/60648
30908 * expr.c (do_tablejump): Use simplify_gen_binary rather than
30909 gen_rtx_{PLUS,MULT} to build up the address expression.
30910
30911 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
30912 creating non-canonical RTL.
30913
30914 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
30915
30916 PR ipa/60243
30917 * ipa-inline.c (want_inline_small_function_p): Short circuit large
30918 functions; reorganize to make cheap checks first.
30919 (inline_small_functions): Do not estimate growth when dumping;
30920 it is expensive.
30921 * ipa-inline.h (inline_summary): Add min_size.
30922 (growth_likely_positive): New function.
30923 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
30924 (set_cond_stmt_execution_predicate): Cleanup.
30925 (estimate_edge_size_and_time): Compute min_size.
30926 (estimate_calls_size_and_time): Likewise.
30927 (estimate_node_size_and_time): Likewise.
30928 (inline_update_overall_summary): Update min_size.
30929 (do_estimate_edge_time): Likewise.
30930 (do_estimate_edge_size): Update.
30931 (do_estimate_edge_hints): Update.
30932 (growth_likely_positive): New function.
30933
30934 2014-03-28 Jakub Jelinek <jakub@redhat.com>
30935
30936 PR target/60693
30937 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
30938 also if addr has VOIDmode.
30939
30940 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30941
30942 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
30943 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
30944 Declare extern.
30945 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
30946 instructions as well as AdvancedSIMD loads.
30947
30948 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30949
30950 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
30951 Use crypto_aese type.
30952 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
30953 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
30954 crypto_aese, crypto_aesmc. Move to types.md.
30955 * config/arm/types.md (crypto_aes): Split into crypto_aese,
30956 crypto_aesmc.
30957 * config/arm/iterators.md (crypto_type): Likewise.
30958
30959 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
30960
30961 * cgraph.c: Include expr.h and tree-dfa.h.
30962 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
30963 remove LHS.
30964
30965 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
30966
30967 PR target/60675
30968 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
30969 regs from checking multi-reg pseudos.
30970
30971 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30972
30973 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
30974
30975 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30976
30977 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
30978 if it would clobber the stack pointer, even temporarily.
30979
30980 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
30981
30982 * mode-switching.c: Make small adjustments to the top comment.
30983
30984 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
30985
30986 * config/rs6000/constraints.md (wD constraint): New constraint to
30987 match the constant integer to get the top DImode/DFmode out of a
30988 vector in a VSX register.
30989
30990 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
30991 match the constant integer to get the top DImode/DFmode out of a
30992 vector in a VSX register.
30993
30994 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
30995 for ISA 2.07.
30996
30997 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30998 vbpermq builtins.
30999
31000 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
31001 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
31002
31003 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
31004 Optimize vec_extract of 64-bit values, where the value being
31005 extracted is in the top word, where we can use scalar
31006 instructions. Add direct move and store support. Combine the big
31007 endian/little endian vector select load support into a single insn.
31008 (vsx_extract_<mode>_internal1): Likewise.
31009 (vsx_extract_<mode>_internal2): Likewise.
31010 (vsx_extract_<mode>_load): Likewise.
31011 (vsx_extract_<mode>_store): Likewise.
31012 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
31013 combined into vsx_extract_<mode>_load.
31014 (vsx_extract_<mode>_one_le): Likewise.
31015
31016 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
31017 define the top 64-bit vector element.
31018
31019 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
31020 constraint.
31021
31022 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31023 Document vec_vbpermq builtin.
31024
31025 PR target/60672
31026 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
31027 enable use of xxsldwi and xxpermdi builtin functions.
31028 (vec_xxpermdi): Likewise.
31029
31030 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31031 Document use of vec_xxsldwi and vec_xxpermdi builtins.
31032
31033 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
31034
31035 PR rtl-optimization/60650
31036 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
31037 first_p. Use it.
31038 (find_spills_for): New.
31039 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
31040 Spill all pseudos on the second iteration.
31041
31042 2014-03-27 Marek Polacek <polacek@redhat.com>
31043
31044 PR c/50347
31045 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
31046 types.
31047
31048 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31049
31050 * config/s390/s390.c (s390_can_use_return_insn): Check for
31051 call-saved FPRs on 31 bit.
31052
31053 2014-03-27 Jakub Jelinek <jakub@redhat.com>
31054
31055 PR middle-end/60682
31056 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
31057 if they need regimplification, just drop them instead of
31058 calling gimple_regimplify_operands on them.
31059
31060 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
31061
31062 PR target/60580
31063 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
31064 (aarch64_frame_pointer_required): Adjust logic.
31065 (aarch64_can_eliminate): Adjust logic.
31066 (aarch64_override_options_after_change): Adjust logic.
31067
31068 2014-03-27 Dehao Chen <dehao@google.com>
31069
31070 * ipa-inline.c (early_inliner): Update node's inline info.
31071
31072 2014-03-26 Dehao Chen <dehao@google.com>
31073
31074 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
31075 compiler inserted conditional jumps for NAN float check.
31076
31077 2014-03-26 Jakub Jelinek <jakub@redhat.com>
31078
31079 * ubsan.h (ubsan_create_data): Change second argument's type
31080 to const location_t *.
31081 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
31082 _("<unknown>").
31083 (ubsan_create_data): Change second argument to const location_t *PLOC.
31084 Create Loc field whenever PLOC is non-NULL.
31085 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
31086 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
31087 callers.
31088
31089 PR other/59545
31090 * real.c (real_to_integer2): Change type of low to UHWI.
31091
31092 2014-03-26 Tobias Burnus <burnus@net-b.de>
31093
31094 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
31095 (CILK_SELF_SPECS): New define.
31096 (driver_self_specs): Use it.
31097
31098 2014-03-26 Richard Biener <rguenther@suse.de>
31099
31100 * tree-pretty-print.c (percent_K_format): Implement special
31101 case for LTO and its stripped down BLOCK tree.
31102
31103 2014-03-26 Jakub Jelinek <jakub@redhat.com>
31104
31105 PR sanitizer/60636
31106 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
31107
31108 * tree-vrp.c (simplify_internal_call_using_ranges): If only
31109 one range is range_int_cst_p, but not both, at least optimize
31110 addition/subtraction of 0 and multiplication by 0 or 1.
31111 * gimple-fold.c (gimple_fold_call): Fold
31112 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
31113 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
31114 INTEGER_CSTs, try to fold at least x * 0 and y - y.
31115
31116 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
31117
31118 PR rtl-optimization/60452
31119 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
31120 <case REG>: Return 1 for invalid offsets from the frame pointer.
31121
31122 2014-03-26 Marek Polacek <polacek@redhat.com>
31123
31124 PR c/37428
31125 * doc/extend.texi (C Extensions): Mention variable-length arrays in
31126 a structure/union.
31127
31128 2014-03-26 Marek Polacek <polacek@redhat.com>
31129
31130 PR c/39525
31131 * doc/extend.texi (Designated Inits): Describe what happens to omitted
31132 field members.
31133
31134 2014-03-26 Marek Polacek <polacek@redhat.com>
31135
31136 PR other/59545
31137 * ira-color.c (update_conflict_hard_regno_costs): Perform the
31138 multiplication in unsigned type.
31139
31140 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
31141
31142 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
31143
31144 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
31145
31146 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
31147
31148 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
31149
31150 PR ipa/60315
31151 * cif-code.def (UNREACHABLE) New code.
31152 * ipa-inline.c (inline_small_functions): Skip edges to
31153 __builtlin_unreachable.
31154 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
31155 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
31156 predicate to __bulitin_unreachable.
31157 (set_cond_stmt_execution_predicate): Fix issue when
31158 invert_tree_comparison returns ERROR_MARK.
31159 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
31160 propagate to inline clones.
31161 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
31162 to unreachable.
31163 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
31164 * cgraphclones.c (cgraph_clone_node): If call destination is already
31165 ureachable, do not redirect it back.
31166 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
31167 unreachable.
31168
31169 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
31170
31171 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
31172 Do not modify inline clones.
31173
31174 2014-03-25 Jakub Jelinek <jakub@redhat.com>
31175
31176 * config/i386/i386.md (general_sext_operand): New mode attr.
31177 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
31178 don't generate (sign_extend (const_int)).
31179 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
31180 operands[2]. Use We constraint instead of <i> and
31181 <general_sext_operand> predicate instead of <general_operand>.
31182 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
31183 * config/i386/constraints.md (We): New constraint.
31184 * config/i386/predicates.md (x86_64_sext_operand,
31185 sext_operand): New predicates.
31186
31187 2014-03-25 Martin Jambor <mjambor@suse.cz>
31188
31189 PR ipa/60600
31190 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
31191 inconsistent devirtualizations to __builtin_unreachable.
31192
31193 2014-03-25 Marek Polacek <polacek@redhat.com>
31194
31195 PR c/35449
31196 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
31197
31198 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
31199
31200 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
31201 order of elements for big-endian.
31202
31203 2014-03-25 Richard Biener <rguenther@suse.de>
31204
31205 PR middle-end/60635
31206 * gimplify-me.c (gimple_regimplify_operands): Update the
31207 re-gimplifed stmt.
31208
31209 2014-03-25 Martin Jambor <mjambor@suse.cz>
31210
31211 PR ipa/59176
31212 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
31213 (lto_output_varpool_node): Likewise.
31214 (input_overwrite_node): Likewise.
31215 (input_varpool_node): Likewise.
31216
31217 2014-03-25 Richard Biener <rguenther@suse.de>
31218
31219 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
31220 (run_gcc): Likewise.
31221
31222 2014-03-25 Jakub Jelinek <jakub@redhat.com>
31223
31224 * combine.c (simplify_compare_const): Add MODE argument.
31225 Handle mode_width 0 as very large mode_width.
31226 (try_combine, simplify_comparison): Adjust callers.
31227
31228 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
31229 type to avoid signed integer overflow.
31230 * explow.c (plus_constant): Likewise.
31231
31232 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
31233
31234 * doc/generic.texi: Correct typos.
31235
31236 2014-03-24 Tobias Burnus <burnus@net-b.de>
31237
31238 * doc/invoke.texi (-flto): Expand section about
31239 using static libraries with LTO.
31240
31241 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31242
31243 PR rtl-optimization/60501
31244 * optabs.def (addptr3_optab): New optab.
31245 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
31246 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
31247 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
31248
31249 * lra.c (emit_add3_insn): Use the addptr pattern if available.
31250
31251 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
31252
31253 2014-03-24 Ulrich Drepper <drepper@gmail.com>
31254
31255 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
31256 _mm512_set1_pd.
31257
31258 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
31259 (_mm256_undefined_ps): Define.
31260 (_mm256_undefined_pd): Define.
31261 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
31262 (_mm_undefined_pd): Define.
31263 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
31264 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
31265 (_mm512_undefined_ps): Define.
31266 (_mm512_undefined_pd): Define.
31267 Use _mm*_undefined_*.
31268 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
31269
31270 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
31271
31272 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
31273 (lshr_simd): DI mode added.
31274 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
31275 (aarch64_ushr_simddi): Likewise.
31276 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
31277 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
31278 (vshrd_n_u64): Likewise.
31279
31280 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31281
31282 * Makefile.in (s-macro_list): Depend on cc1.
31283
31284 2014-03-23 Teresa Johnson <tejohnson@google.com>
31285
31286 * ipa-utils.c (ipa_print_order): Use specified dump file.
31287
31288 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
31289
31290 PR rtl-optimization/60601
31291 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
31292
31293 * gcc.c (eval_spec_function): Initialize save_growing_value.
31294
31295 2014-03-22 Jakub Jelinek <jakub@redhat.com>
31296
31297 PR sanitizer/60613
31298 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
31299 code == MINUS_EXPR, never swap op0 with op1.
31300
31301 * toplev.c (init_local_tick): Avoid signed integer multiplication
31302 overflow.
31303 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
31304 shift by first operand's bitsize.
31305
31306 2014-03-21 Jakub Jelinek <jakub@redhat.com>
31307
31308 PR target/60610
31309 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
31310 redefine to 1 or 0.
31311 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
31312 TARGET_ISA_64BIT_P(x).
31313
31314 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31315
31316 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
31317 pattern for vector nor instead of subtract from splat(-1).
31318 (altivec_expand_vec_perm_const_le): Likewise.
31319
31320 2014-03-21 Richard Henderson <rth@twiddle.net>
31321
31322 PR target/60598
31323 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
31324 related insns after epilogue_completed.
31325
31326 2014-03-21 Martin Jambor <mjambor@suse.cz>
31327
31328 PR ipa/59176
31329 * cgraph.h (symtab_node): New flag body_removed.
31330 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
31331 when removing bodies.
31332 * symtab.c (dump_symtab_base): Dump body_removed flag.
31333 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
31334 had their bodies removed.
31335
31336 2014-03-21 Martin Jambor <mjambor@suse.cz>
31337
31338 PR ipa/60419
31339 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
31340 in the border.
31341
31342 2014-03-21 Richard Biener <rguenther@suse.de>
31343
31344 PR tree-optimization/60577
31345 * tree-core.h (struct tree_base): Document nothrow_flag use
31346 in DECL_NONALIASED.
31347 * tree.h (DECL_NONALIASED): New.
31348 (may_be_aliased): Adjust.
31349 * coverage.c (build_var): Set DECL_NONALIASED.
31350
31351 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
31352
31353 * expr.c (expand_expr_real_1): Remove outdated comment.
31354
31355 2014-03-20 Jakub Jelinek <jakub@redhat.com>
31356
31357 PR middle-end/60597
31358 * ira.c (adjust_cleared_regs): Call copy_rtx on
31359 *reg_equiv[REGNO (loc)].src_p before passing it to
31360 simplify_replace_fn_rtx.
31361
31362 PR target/60568
31363 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
31364 into CONST, put pic register as first operand of PLUS. Use
31365 gen_const_mem for both 32-bit and 64-bit PIC got loads.
31366
31367 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31368
31369 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
31370
31371 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
31372
31373 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
31374 around for store forwarding issue in the FPU on the UT699.
31375 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
31376 loads and operations if -mfix-ut699 is specified.
31377 (divtf3_hq): Tweak attribute.
31378 (sqrttf2_hq): Likewise.
31379
31380 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
31381
31382 * calls.c (store_one_arg): Remove incorrect const qualification on the
31383 type of the temporary.
31384 * cfgexpand.c (expand_return): Likewise.
31385 * expr.c (expand_constructor): Likewise.
31386 (expand_expr_real_1): Likewise.
31387
31388 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
31389
31390 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
31391 of parts.
31392
31393 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
31394
31395 PR target/60039
31396 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
31397
31398 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
31399
31400 * config/arm/aarch-common-protos.h
31401 (alu_cost_table): Fix spelling of "extend".
31402 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
31403
31404 2014-03-19 Richard Biener <rguenther@suse.de>
31405
31406 PR middle-end/60553
31407 * tree-core.h (tree_type_common): Re-order pointer members
31408 to reduce recursion depth during GC walks.
31409
31410 2014-03-19 Marek Polacek <polacek@redhat.com>
31411
31412 PR sanitizer/60569
31413 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
31414 before accessing it.
31415
31416 2014-03-19 Richard Biener <rguenther@suse.de>
31417
31418 PR lto/59543
31419 * lto-streamer-in.c (input_function): In WPA stage do not drop
31420 debug stmts.
31421
31422 2014-03-19 Jakub Jelinek <jakub@redhat.com>
31423
31424 PR tree-optimization/60559
31425 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
31426 with build_zero_cst assignment.
31427
31428 2014-03-18 Kai Tietz <ktietz@redhat.com>
31429
31430 PR rtl-optimization/56356
31431 * sdbout.c (sdbout_parms): Verify that parms'
31432 incoming argument is valid.
31433 (sdbout_reg_parms): Likewise.
31434
31435 2014-03-18 Richard Henderson <rth@redhat.com>
31436
31437 PR target/60562
31438 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
31439 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
31440 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
31441
31442 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
31443
31444 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
31445 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
31446 Italicize plugin event names in description. Explain that
31447 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
31448 Remind that no GCC functions should be called after PLUGIN_FINISH.
31449 Explain what pragmas with expansion are.
31450
31451 2014-03-18 Martin Liska <mliska@suse.cz>
31452
31453 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
31454 gimple call statement is update.
31455 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
31456 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
31457
31458 2014-03-18 Jakub Jelinek <jakub@redhat.com>
31459
31460 PR sanitizer/60557
31461 * ubsan.c (ubsan_instrument_unreachable): Call
31462 initialize_sanitizer_builtins.
31463 (ubsan_pass): Likewise.
31464
31465 PR sanitizer/60535
31466 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
31467 varpool_finalize_decl instead of rest_of_decl_compilation.
31468
31469 2014-03-18 Richard Biener <rguenther@suse.de>
31470
31471 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
31472 by using bitmap_and_compl instead of bitmap_and_compl_into.
31473 (df_rd_transfer_function): Likewise.
31474
31475 2014-03-18 Richard Biener <rguenther@suse.de>
31476
31477 * doc/lto.texi (fresolution): Fix typo.
31478
31479 2014-03-18 Richard Biener <rguenther@suse.de>
31480
31481 * doc/invoke.texi (flto): Update for changes in 4.9.
31482
31483 2014-03-18 Richard Biener <rguenther@suse.de>
31484
31485 * doc/loop.texi: Remove section on the removed lambda framework.
31486 Update loop docs with recent changes in preserving loop structure.
31487
31488 2014-03-18 Richard Biener <rguenther@suse.de>
31489
31490 * doc/lto.texi (-fresolution): Document.
31491
31492 2014-03-18 Richard Biener <rguenther@suse.de>
31493
31494 * doc/contrib.texi: Adjust my name.
31495
31496 2014-03-18 Jakub Jelinek <jakub@redhat.com>
31497
31498 PR ipa/58721
31499 * internal-fn.c: Include diagnostic-core.h.
31500 (expand_BUILTIN_EXPECT): New function.
31501 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
31502 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
31503 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
31504 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
31505 IFN_BUILTIN_EXPECT.
31506 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
31507 Revert 3 argument __builtin_expect code.
31508 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
31509 * gimple-fold.c (gimple_fold_call): Likewise.
31510 * tree.h (fold_builtin_expect): New prototype.
31511 * builtins.c (build_builtin_expect_predicate): Add predictor
31512 argument, if non-NULL, create 3 argument __builtin_expect.
31513 (fold_builtin_expect): No longer static. Add ARG2 argument,
31514 pass it through to build_builtin_expect_predicate.
31515 (fold_builtin_2): Adjust caller.
31516 (fold_builtin_3): Handle BUILT_IN_EXPECT.
31517 * internal-fn.def (BUILTIN_EXPECT): New.
31518
31519 2014-03-18 Tobias Burnus <burnus@net-b.de>
31520
31521 PR ipa/58721
31522 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
31523 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
31524 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
31525
31526 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
31527
31528 PR ipa/58721
31529 * predict.c (combine_predictions_for_bb): Fix up formatting.
31530 (expr_expected_value_1, expr_expected_value): Add predictor argument,
31531 fill what it points to if non-NULL.
31532 (tree_predict_by_opcode): Adjust caller, use the predictor.
31533 * predict.def (PRED_COMPARE_AND_SWAP): Add.
31534
31535 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
31536
31537 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
31538 proper constant for the store mode.
31539
31540 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
31541
31542 * symtab.c (change_decl_assembler_name): Fix transparent alias
31543 chain construction.
31544
31545 2014-03-16 Renlin Li <Renlin.Li@arm.com>
31546
31547 * config/aarch64/aarch64.c: Correct the comments about the
31548 aarch64 stack layout.
31549
31550 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
31551
31552 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
31553 check for GF_OMP_FOR_KIND_FOR.
31554
31555 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
31556
31557 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
31558 ymm and zmm register names.
31559
31560 2014-03-17 Jakub Jelinek <jakub@redhat.com>
31561
31562 PR target/60516
31563 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
31564 note creation for the 2010-08-31 changes.
31565
31566 2014-03-17 Marek Polacek <polacek@redhat.com>
31567
31568 PR middle-end/60534
31569 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
31570 as -fno-tree-loop-vectorize.
31571 (expand_omp_simd): Likewise.
31572
31573 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
31574
31575 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
31576 (eligible_for_call_delay): New prototype.
31577 * config/sparc/sparc.c (tls_call_delay): Rename into...
31578 (eligible_for_call_delay): ...this. Return false if the instruction
31579 cannot be put in the delay slot of a branch.
31580 (eligible_for_restore_insn): Simplify.
31581 (eligible_for_return_delay): Return false if the instruction cannot be
31582 put in the delay slot of a branch and simplify.
31583 (eligible_for_sibcall_delay): Return false if the instruction cannot be
31584 put in the delay slot of a branch.
31585 * config/sparc/sparc.md (fix_ut699): New attribute.
31586 (tls_call_delay): Delete.
31587 (in_call_delay): Reimplement.
31588 (eligible_for_sibcall_delay): Rename into...
31589 (in_sibcall_delay): ...this.
31590 (eligible_for_return_delay): Rename into...
31591 (in_return_delay): ...this.
31592 (in_branch_delay): Reimplement.
31593 (in_uncond_branch_delay): Delete.
31594 (in_annul_branch_delay): Delete.
31595
31596 2014-03-14 Richard Henderson <rth@redhat.com>
31597
31598 PR target/60525
31599 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
31600 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
31601 (*floathi<X87MODEF>2_i387_with_temp): Remove.
31602 (floathi splitters): Remove.
31603 (float<SWI48x>xf2): New pattern.
31604 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
31605 code that tried to handle DImode for 32-bit, but which was excluded
31606 by the pattern's condition. Drop allocation of stack temporary.
31607 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
31608 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
31609 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
31610 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
31611 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
31612 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
31613 (*float<SWI48><MODEF>2_sse_interunit): Remove.
31614 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
31615 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
31616 (*float<SWI48x><X87MODEF>2_i387): Remove.
31617 (all float _with_temp splitters): Remove.
31618 (*float<SWI48x><MODEF>2_i387): New pattern.
31619 (*float<SWI48><MODEF>2_sse): New pattern.
31620 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
31621 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
31622
31623 2014-03-14 Jakub Jelinek <jakub@redhat.com>
31624 Marek Polacek <polacek@redhat.com>
31625
31626 PR middle-end/60484
31627 * common.opt (dump_base_name_prefixed): New Variable.
31628 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
31629 if x_dump_base_name_prefixed is already set, set it at the end.
31630
31631 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
31632
31633 PR rtl-optimization/60508
31634 * lra-constraints.c (get_reload_reg): Add new parameter
31635 in_subreg_p.
31636 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
31637 Pass the new parameter values.
31638
31639 2014-03-14 Richard Biener <rguenther@suse.de>
31640
31641 * common.opt: Revert unintented changes from r205065.
31642 * opts.c: Likewise.
31643
31644 2014-03-14 Richard Biener <rguenther@suse.de>
31645
31646 PR middle-end/60518
31647 * cfghooks.c (split_block): Properly adjust all loops the
31648 block was a latch of.
31649
31650 2014-03-14 Martin Jambor <mjambor@suse.cz>
31651
31652 PR lto/60461
31653 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
31654 and simplify it.
31655
31656 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
31657
31658 PR target/59396
31659 * config/avr/avr.c (avr_set_current_function): Pass function name
31660 through default_strip_name_encoding before sanity checking instead
31661 of skipping the first char of the assembler name.
31662
31663 2014-03-13 Richard Henderson <rth@redhat.com>
31664
31665 PR debug/60438
31666 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
31667 (ix86_force_to_memory, ix86_free_from_memory): Remove.
31668 * config/i386/i386-protos.h: Likewise.
31669 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
31670 in the expander instead of a splitter.
31671 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
31672 any possibility of requiring a memory.
31673 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
31674 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
31675 (fp branch splitters): Update for ix86_split_fp_branch.
31676 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
31677 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
31678 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
31679 (*fop_<MODEF>_2_i387): Remove f/r alternative.
31680 (*fop_<MODEF>_3_i387): Likewise.
31681 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
31682 (splitters for the fop_* register patterns): Remove.
31683 (fscalexf4_i387): Rename from *fscalexf4_i387.
31684 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
31685
31686 2014-03-13 Jakub Jelinek <jakub@redhat.com>
31687
31688 PR tree-optimization/59779
31689 * tree-dfa.c (get_ref_base_and_extent): Use double_int
31690 type for bitsize and maxsize instead of HOST_WIDE_INT.
31691
31692 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
31693
31694 PR rtl-optimization/57320
31695 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
31696 the CFG after thread_prologue_and_epilogue_insns.
31697
31698 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
31699
31700 PR rtl-optimization/57189
31701 * lra-constraints.c (process_alt_operands): Disfavor spilling
31702 vector pseudos.
31703
31704 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
31705
31706 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
31707
31708 2014-03-13 Jakub Jelinek <jakub@redhat.com>
31709
31710 PR tree-optimization/59025
31711 PR middle-end/60418
31712 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
31713 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
31714
31715 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
31716
31717 PR target/60486
31718 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
31719 calls of avr_out_plus_1.
31720
31721 2014-03-13 Bin Cheng <bin.cheng@arm.com>
31722
31723 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
31724 BB's single pred and update the father loop's latch info later.
31725
31726 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
31727
31728 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
31729 (VEC_M): Likewise.
31730 (VEC_N): Likewise.
31731 (VEC_R): Likewise.
31732 (VEC_base): Likewise.
31733 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
31734 registers, we need to swap double words in little endian mode.
31735
31736 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
31737 to be a container mode for 128-bit integer operations added in ISA
31738 2.07. Unlike TImode and PTImode, the preferred register set is
31739 the Altivec/VMX registers for the 128-bit operations.
31740
31741 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
31742 declarations.
31743 (rs6000_split_128bit_ok_p): Likewise.
31744
31745 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
31746 macros for creating ISA 2.07 normal and overloaded builtin
31747 functions with 3 arguments.
31748 (BU_P8V_OVERLOAD_3): Likewise.
31749 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
31750 for use as overloaded functions.
31751 (VPERM_1TI_UNS): Likewise.
31752 (VSEL_1TI): Likewise.
31753 (VSEL_1TI_UNS): Likewise.
31754 (ST_INTERNAL_1ti): Likewise.
31755 (LD_INTERNAL_1ti): Likewise.
31756 (XXSEL_1TI): Likewise.
31757 (XXSEL_1TI_UNS): Likewise.
31758 (VPERM_1TI): Likewise.
31759 (VPERM_1TI_UNS): Likewise.
31760 (XXPERMDI_1TI): Likewise.
31761 (SET_1TI): Likewise.
31762 (LXVD2X_V1TI): Likewise.
31763 (STXVD2X_V1TI): Likewise.
31764 (VEC_INIT_V1TI): Likewise.
31765 (VEC_SET_V1TI): Likewise.
31766 (VEC_EXT_V1TI): Likewise.
31767 (EQV_V1TI): Likewise.
31768 (NAND_V1TI): Likewise.
31769 (ORC_V1TI): Likewise.
31770 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
31771 added in ISA 2.07. Add both normal 'altivec' builtins, and the
31772 overloaded builtin.
31773 (VADDUQM): Likewise.
31774 (VSUBCUQ): Likewise.
31775 (VADDEUQM): Likewise.
31776 (VADDECUQ): Likewise.
31777 (VSUBEUQM): Likewise.
31778 (VSUBECUQ): Likewise.
31779
31780 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
31781 __int128_t and __uint128_t types.
31782 (__uint128_type): Likewise.
31783 (altivec_categorize_keyword): Add support for vector __int128_t,
31784 vector __uint128_t, vector __int128, and vector unsigned __int128
31785 as a container type for TImode operations that need to be done in
31786 VSX/Altivec registers.
31787 (rs6000_macro_to_expand): Likewise.
31788 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
31789 to support 128-bit integer instructions vaddcuq, vadduqm,
31790 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
31791 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
31792
31793 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
31794 for V1TImode, and set up preferences to use VSX/Altivec registers.
31795 Setup VSX reload handlers.
31796 (rs6000_debug_reg_global): Likewise.
31797 (rs6000_init_hard_regno_mode_ok): Likewise.
31798 (rs6000_preferred_simd_mode): Likewise.
31799 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
31800 (easy_altivec_constant): Likewise.
31801 (output_vec_const_move): Likewise.
31802 (rs6000_expand_vector_set): Convert V1TImode set and extract to
31803 simple move.
31804 (rs6000_expand_vector_extract): Likewise.
31805 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
31806 addressing.
31807 (rs6000_const_vec): Add support for V1TImode.
31808 (rs6000_emit_le_vsx_load): Swap double words when loading or
31809 storing TImode/V1TImode.
31810 (rs6000_emit_le_vsx_store): Likewise.
31811 (rs6000_emit_le_vsx_move): Likewise.
31812 (rs6000_emit_move): Add support for V1TImode.
31813 (altivec_expand_ld_builtin): Likewise.
31814 (altivec_expand_st_builtin): Likewise.
31815 (altivec_expand_vec_init_builtin): Likewise.
31816 (altivec_expand_builtin): Likewise.
31817 (rs6000_init_builtins): Add support for V1TImode type. Add
31818 support for ISA 2.07 128-bit integer builtins. Define type names
31819 for the VSX/Altivec vector types.
31820 (altivec_init_builtins): Add support for overloaded vector
31821 functions with V1TImode type.
31822 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
31823 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
31824 external function.
31825 (rs6000_split_128bit_ok_p): Likewise.
31826 (rs6000_handle_altivec_attribute): Create V1TImode from vector
31827 __int128_t and vector __uint128_t.
31828
31829 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
31830 and mode attributes.
31831 (VSX_M): Likewise.
31832 (VSX_M2): Likewise.
31833 (VSm): Likewise.
31834 (VSs): Likewise.
31835 (VSr): Likewise.
31836 (VSv): Likewise.
31837 (VS_scalar): Likewise.
31838 (VS_double): Likewise.
31839 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
31840
31841 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
31842 we support the ISA 2.07 128-bit integer arithmetic instructions.
31843 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
31844 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
31845 and TImode types for use with the builtin functions.
31846 (V1TI_type_node): Likewise.
31847 (unsigned_V1TI_type_node): Likewise.
31848 (intTI_type_internal_node): Likewise.
31849 (uintTI_type_internal_node): Likewise.
31850
31851 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
31852 128-bit builtin functions.
31853 (UNSPEC_VADDEUQM): Likewise.
31854 (UNSPEC_VADDECUQ): Likewise.
31855 (UNSPEC_VSUBCUQ): Likewise.
31856 (UNSPEC_VSUBEUQM): Likewise.
31857 (UNSPEC_VSUBECUQ): Likewise.
31858 (VM): Add V1TImode to vector mode iterators.
31859 (VM2): Likewise.
31860 (VI_unit): Likewise.
31861 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
31862 (altivec_vaddcuq): Likewise.
31863 (altivec_vsubuqm): Likewise.
31864 (altivec_vsubcuq): Likewise.
31865 (altivec_vaddeuqm): Likewise.
31866 (altivec_vaddecuq): Likewise.
31867 (altivec_vsubeuqm): Likewise.
31868 (altivec_vsubecuq): Likewise.
31869
31870 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
31871 mode iterators.
31872 (BOOL_128): Likewise.
31873 (BOOL_REGS_OUTPUT): Likewise.
31874 (BOOL_REGS_OP1): Likewise.
31875 (BOOL_REGS_OP2): Likewise.
31876 (BOOL_REGS_UNARY): Likewise.
31877 (BOOL_REGS_AND_CR0): Likewise.
31878
31879 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
31880 128-bit integer builtin support.
31881 (vec_vadduqm): Likewise.
31882 (vec_vaddecuq): Likewise.
31883 (vec_vaddeuqm): Likewise.
31884 (vec_vsubecuq): Likewise.
31885 (vec_vsubeuqm): Likewise.
31886 (vec_vsubcuq): Likewise.
31887 (vec_vsubuqm): Likewise.
31888
31889 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31890 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
31891 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
31892 128-bit integer add/subtract to ISA 2.07.
31893
31894 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
31895
31896 * config/arc/arc.c (arc_predicate_delay_insns):
31897 Fix third argument passed to conditionalize_nonjump.
31898
31899 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
31900
31901 * config/aarch64/aarch64-builtins.c
31902 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
31903 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
31904 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
31905 instead of __builtin_lfloor.
31906 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
31907
31908 2014-03-12 Jakub Jelinek <jakub@redhat.com>
31909
31910 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
31911 (tree_ssa_ifcombine_bb_1): New function.
31912 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
31913 is an empty forwarder block to then_bb or vice versa and then_bb
31914 and else_bb are effectively swapped.
31915
31916 2014-03-12 Christian Bruel <christian.bruel@st.com>
31917
31918 PR target/60264
31919 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
31920 REG_CFA_DEF_CFA note.
31921 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
31922 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
31923
31924 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
31925
31926 PR tree-optimization/60454
31927 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
31928
31929 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31930
31931 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
31932 Do not define target_cpu_default2 to generic.
31933 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
31934 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
31935 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
31936
31937 2014-03-12 Jakub Jelinek <jakub@redhat.com>
31938 Marc Glisse <marc.glisse@inria.fr>
31939
31940 PR tree-optimization/60502
31941 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
31942 instead of build_low_bits_mask.
31943
31944 2014-03-12 Jakub Jelinek <jakub@redhat.com>
31945
31946 PR middle-end/60482
31947 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
31948 if there are multiple uses, but op doesn't live on E edge.
31949 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
31950 clobber stmts before __builtin_unreachable.
31951
31952 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
31953
31954 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
31955 hard_frame_pointer_rtx.
31956 * cse.c (cse_insn): Remove volatile check.
31957 * cselib.c (cselib_process_insn): Likewise.
31958 * dse.c (scan_insn): Likewise.
31959
31960 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
31961
31962 * config/arc/arc.c (conditionalize_nonjump): New function,
31963 broken out of ...
31964 (arc_ifcvt): ... this.
31965 (arc_predicate_delay_insns): Use it.
31966
31967 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
31968
31969 * config/arc/predicates.md (extend_operand): During/after reload,
31970 allow const_int_operand.
31971 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
31972 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
31973 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
31974 to "i".
31975 (umulsi3_highpart_i): Likewise.
31976
31977 2014-03-11 Richard Biener <rguenther@suse.de>
31978
31979 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
31980 Add asserts to guard possible wrong-code bugs.
31981
31982 2014-03-11 Richard Biener <rguenther@suse.de>
31983
31984 PR tree-optimization/60429
31985 PR tree-optimization/60485
31986 * tree-ssa-structalias.c (set_union_with_increment): Properly
31987 take into account all fields that overlap the shifted vars.
31988 (do_sd_constraint): Likewise.
31989 (do_ds_constraint): Likewise.
31990 (get_constraint_for_ptr_offset): Likewise.
31991
31992 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
31993
31994 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
31995 (nios2_compute_frame_layout):
31996 Add calculation of cfun->machine->fp_save_offset.
31997 (nios2_expand_prologue): Correct setting of frame pointer register
31998 in prologue.
31999 (nios2_expand_epilogue): Update recovery of stack pointer from
32000 frame pointer accordingly.
32001 (nios2_initial_elimination_offset): Update calculation of offset
32002 for eliminating to HARD_FRAME_POINTER_REGNUM.
32003
32004 2014-03-10 Jakub Jelinek <jakub@redhat.com>
32005
32006 PR ipa/60457
32007 * ipa.c (symtab_remove_unreachable_nodes): Don't call
32008 cgraph_get_create_node on VAR_DECLs.
32009
32010 2014-03-10 Richard Biener <rguenther@suse.de>
32011
32012 PR middle-end/60474
32013 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
32014
32015 2014-03-08 Douglas B Rupp <rupp@gnat.com>
32016
32017 * config/vms/vms.opt (vms_float_format): New variable.
32018
32019 2014-03-08 Tobias Burnus <burnus@net-b.de>
32020
32021 * doc/invoke.texi (-fcilkplus): Update implementation status.
32022
32023 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
32024 Richard Biener <rguenther@suse.de>
32025
32026 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
32027 consistently accross all TUs.
32028 (run_gcc): Enable -fshort-double automatically at link at link-time
32029 and disallow override.
32030
32031 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
32032
32033 PR target/58271
32034 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
32035 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
32036 if they can't be used.
32037
32038 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32039
32040 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
32041 for Solaris 11/x86 ld.
32042 * configure: Regenerate.
32043
32044 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32045
32046 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
32047 (LIB_TLS_SPEC): Save as ld_tls_libs.
32048 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
32049 (HAVE_AS_IX86_TLSLDM): New test.
32050 * configure, config.in: Regenerate.
32051 * config/i386/i386.c (legitimize_tls_address): Fall back to
32052 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
32053 cannot support TLS_MODEL_LOCAL_DYNAMIC.
32054 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
32055 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
32056
32057 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
32058
32059 * common.opt (fira-loop-pressure): Mark as optimization.
32060
32061 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
32062
32063 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
32064 an OpenMP mappable type.
32065
32066 2014-03-06 Matthias Klose <doko@ubuntu.com>
32067
32068 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
32069 MULTILIB_OSDIRNAMES is not defined.
32070
32071 2014-03-06 Jakub Jelinek <jakub@redhat.com>
32072 Meador Inge <meadori@codesourcery.com>
32073
32074 PR target/58595
32075 * config/arm/arm.c (arm_tls_symbol_p): Remove.
32076 (arm_legitimize_address): Call legitimize_tls_address for any
32077 arm_tls_referenced_p expression, handle constant addend. Call it
32078 before testing for !TARGET_ARM.
32079 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
32080
32081 2014-03-06 Richard Biener <rguenther@suse.de>
32082
32083 PR middle-end/60445
32084 PR lto/60424
32085 PR lto/60427
32086 Revert
32087 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
32088
32089 * tree-streamer.c (record_common_node): Assert we don't record
32090 nodes with type double.
32091 (preload_common_node): Skip type double, complex double and double
32092 pointer since it is now frontend dependent due to fshort-double option.
32093
32094 2014-03-06 Richard Biener <rguenther@suse.de>
32095
32096 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
32097 or -fno-lto is specified and the linker has full plugin support.
32098 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
32099 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
32100 * lto-wrapper.c (merge_and_complain): Merge compile-time
32101 optimization levels.
32102 (run_gcc): And pass it through to the link options.
32103
32104 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
32105
32106 PR debug/60381
32107 Revert:
32108 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
32109 PR debug/59992
32110 * cselib.c (remove_useless_values): Skip to avoid quadratic
32111 behavior if the condition moved from...
32112 (cselib_process_insn): ... here holds.
32113
32114 2014-03-05 Jakub Jelinek <jakub@redhat.com>
32115
32116 PR plugins/59335
32117 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
32118 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
32119
32120 PR plugins/59335
32121 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
32122 (TM_H): Add x86-tune.def.
32123
32124 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32125
32126 * config/aarch64/aarch64.c (generic_tunings):
32127 Use cortexa57_extra_costs.
32128
32129 2014-03-05 Jakub Jelinek <jakub@redhat.com>
32130
32131 PR lto/60404
32132 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
32133 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
32134 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
32135 cost for in_lto_p.
32136
32137 2014-03-04 Heiher <r@hev.cc>
32138
32139 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
32140 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
32141
32142 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
32143
32144 * config/i386/predicates.md (const2356_operand): Change to ...
32145 (const2367_operand): ... this.
32146 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
32147 const2367_operand.
32148 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32149 (*avx512pf_scatterpf<mode>sf): Ditto.
32150 (avx512pf_scatterpf<mode>df): Ditto.
32151 (*avx512pf_scatterpf<mode>df_mask): Ditto.
32152 (*avx512pf_scatterpf<mode>df): Ditto.
32153 * config/i386/i386.c (ix86_expand_builtin): Update
32154 incorrect hint operand error message.
32155
32156 2014-03-04 Richard Biener <rguenther@suse.de>
32157
32158 * lto-section-in.c (lto_get_section_data): Fix const cast.
32159
32160 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
32161
32162 * tree-streamer.c (record_common_node): Assert we don't record
32163 nodes with type double.
32164 (preload_common_node): Skip type double, complex double and double
32165 pointer since it is now frontend dependent due to fshort-double option.
32166
32167 2014-03-04 Richard Biener <rguenther@suse.de>
32168
32169 PR lto/60405
32170 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
32171 (lto_input_toplevel_asms): Likewise.
32172 * lto-section-in.c (lto_get_section_data): Instead do it here
32173 for every section.
32174
32175 2014-03-04 Richard Biener <rguenther@suse.de>
32176
32177 PR tree-optimization/60382
32178 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
32179 dead PHIs a reduction.
32180
32181 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
32182
32183 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
32184 hint value.
32185 (_mm_prefetch): Move out of GCC target("sse") pragma.
32186 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
32187 GCC target("prfchw") pragma.
32188 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
32189 for locality <= 2.
32190 * config/i386/i386.c (ix86_option_override_internal): Enable
32191 -mprfchw with -mprefetchwt1.
32192
32193 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
32194
32195 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
32196 Mark as varying.
32197
32198 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
32199
32200 * opts.h (CL_PCH_IGNORE): Define.
32201 * targhooks.c (option_affects_pch_p):
32202 Return false for options that have CL_PCH_IGNORE set.
32203 * opt-functions.awk: Process PchIgnore.
32204 * doc/options.texi: Document PchIgnore.
32205
32206 * config/arc/arc.opt (misize): Add PchIgnore property.
32207
32208 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32209
32210 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
32211 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
32212 constraint on constants to permit them being loaded into
32213 GENERAL_REGS or BASE_REGS.
32214
32215 2014-03-03 Nick Clifton <nickc@redhat.com>
32216
32217 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
32218 anti-cacnonical alternatives.
32219 (negandhi3_real): New pattern.
32220 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
32221
32222 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
32223
32224 * config/avr/avr-mcus.def: Remove atxmega16x1.
32225 * config/avr/avr-tables.opt: Regenerate.
32226 * config/avr/t-multilib: Regenerate.
32227 * doc/avr-mmcu.texi: Regenerate.
32228
32229 2014-03-03 Tobias Grosser <tobias@grosser.es>
32230 Mircea Namolaru <mircea.namolaru@inria.fr>
32231
32232 PR tree-optimization/58028
32233 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
32234 scalar dimensions.
32235
32236 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
32237
32238 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
32239 not handled by recognizers.
32240
32241 2014-03-03 Jakub Jelinek <jakub@redhat.com>
32242
32243 PR middle-end/60175
32244 * function.c (expand_function_end): Don't emit
32245 clobber_return_register sequence if clobber_after is a BARRIER.
32246 * cfgexpand.c (construct_exit_block): Append instructions before
32247 return_label to prev_bb.
32248
32249 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32250
32251 * config/rs6000/constraints.md: Document reserved use of "wc".
32252
32253 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
32254
32255 PR ipa/60150
32256 * ipa.c (function_and_variable_visibility): When dissolving comdat
32257 group, also set all symbols to local.
32258
32259 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
32260
32261 PR ipa/60306
32262
32263 Revert:
32264 2013-12-14 Jan Hubicka <jh@suse.cz>
32265 PR middle-end/58477
32266 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
32267
32268 2014-03-02 Jon Beniston <jon@beniston.com>
32269
32270 PR bootstrap/48230
32271 PR bootstrap/50927
32272 PR bootstrap/52466
32273 PR target/46898
32274 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
32275 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
32276 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
32277 (simple_return, *simple_return): New patterns
32278 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
32279 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
32280
32281 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
32282
32283 * dwarf2out.c (gen_subprogram_die): Tidy.
32284
32285 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
32286
32287 PR target/60071
32288 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
32289 (*mov_t_msb_neg_negc): ... this new insn.
32290
32291 2014-02-28 Jason Merrill <jason@redhat.com>
32292
32293 PR c++/58678
32294 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
32295 function.
32296
32297 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
32298
32299 PR c++/60314
32300 * dwarf2out.c (decltype_auto_die): New static.
32301 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
32302 (gen_type_die_with_usage): Handle 'decltype(auto)'.
32303 (is_cxx_auto): Likewise.
32304
32305 2014-02-28 Ian Bolton <ian.bolton@arm.com>
32306
32307 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
32308 we are not using general regs only.
32309
32310 2014-02-28 Richard Biener <rguenther@suse.de>
32311
32312 PR target/60280
32313 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
32314 previous fix and only allow to remove trivial pre-headers
32315 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
32316 (remove_forwarder_block): Properly update the latch of a loop.
32317
32318 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
32319
32320 PR debug/59992
32321 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
32322 (cselib_preserved_hash_table): New.
32323 (preserve_constants_and_equivs): Move preserved vals to it.
32324 (cselib_find_slot): Look it up first.
32325 (cselib_init): Initialize it.
32326 (cselib_finish): Release it.
32327 (dump_cselib_table): Dump it.
32328
32329 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
32330
32331 PR debug/59992
32332 * cselib.c (remove_useless_values): Skip to avoid quadratic
32333 behavior if the condition moved from...
32334 (cselib_process_insn): ... here holds.
32335
32336 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
32337
32338 PR debug/57232
32339 * var-tracking.c (vt_initialize): Apply the same condition to
32340 preserve the CFA base value.
32341
32342 2014-02-28 Joey Ye <joey.ye@arm.com>
32343
32344 PR target/PR60169
32345 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
32346 if reload in progress or completed.
32347
32348 2014-02-28 Tobias Burnus <burnus@net-b.de>
32349
32350 PR middle-end/60147
32351 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
32352 NAMELIST_DECL.
32353
32354 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
32355
32356 * doc/tm.texi.in (Condition Code Status): Update documention for
32357 relative locations of cc0-setter and cc0-user.
32358
32359 2014-02-27 Jeff Law <law@redhat.com>
32360
32361 PR rtl-optimization/52714
32362 * combine.c (try_combine): When splitting an unrecognized PARALLEL
32363 into two independent simple sets, if I3 is a jump, ensure the
32364 pattern we place into I3 is a (set (pc) ...).
32365
32366 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
32367 Jeff Law <law@redhat.com>
32368
32369 PR rtl-optimization/49847
32370 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
32371 are in different blocks.
32372 * doc/tm.texi (Condition Code Status): Update documention for
32373 relative locations of cc0-setter and cc0-user.
32374
32375 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
32376
32377 PR target/59222
32378 * lra.c (lra_emit_add): Check SUBREG too.
32379
32380 2014-02-27 Andreas Schwab <schwab@suse.de>
32381
32382 * config/m68k/m68k.c (m68k_option_override): Disable
32383 -flive-range-shrinkage for classic m68k.
32384 (m68k_override_options_after_change): Likewise.
32385
32386 2014-02-27 Marek Polacek <polacek@redhat.com>
32387
32388 PR middle-end/59223
32389 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
32390 -Wmaybe-uninitialized.
32391
32392 2014-02-27 Alan Modra <amodra@gmail.com>
32393
32394 PR target/57936
32395 * reload1.c (emit_input_reload_insns): When reload_override_in,
32396 set old to rl->in_reg when rl->in_reg is a subreg.
32397
32398 2014-02-26 Richard Biener <rguenther@suse.de>
32399
32400 PR bootstrap/60343
32401 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
32402
32403 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
32404
32405 * common/config/i386/predicates.md (const1256_operand): Remove.
32406 (const2356_operand): New.
32407 (const_1_to_2_operand): Remove.
32408 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
32409 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
32410 (*avx512pf_gatherpf<mode>sf): Ditto.
32411 (avx512pf_gatherpf<mode>df): Ditto.
32412 (*avx512pf_gatherpf<mode>df_mask): Ditto.
32413 (*avx512pf_gatherpf<mode>df): Ditto.
32414 (avx512pf_scatterpf<mode>sf): Ditto.
32415 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32416 (*avx512pf_scatterpf<mode>sf): Ditto.
32417 (avx512pf_scatterpf<mode>df): Ditto.
32418 (*avx512pf_scatterpf<mode>df_mask): Ditto.
32419 (*avx512pf_scatterpf<mode>df): Ditto.
32420 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
32421
32422 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
32423
32424 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
32425 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
32426 (_mm512_mask_testn_epi64_mask): Move to ...
32427 * config/i386/avx512cdintrin.h: Here.
32428 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
32429 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
32430 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
32431 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
32432 TARGET_AVX512F from TARGET_AVX512CD.
32433
32434 2014-02-26 Richard Biener <rguenther@suse.de>
32435
32436 PR ipa/60327
32437 * ipa.c (walk_polymorphic_call_targets): Properly guard
32438 call to inline_update_overall_summary.
32439
32440 2014-02-26 Bin Cheng <bin.cheng@arm.com>
32441
32442 PR target/60280
32443 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
32444 and latches only if requested. Fix latch if it is removed.
32445 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
32446 LOOPS_HAVE_PREHEADERS.
32447
32448 2014-02-25 Andrew Pinski <apinski@cavium.com>
32449
32450 * builtins.c (expand_builtin_thread_pointer): Create a new target
32451 when the target is NULL.
32452
32453 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
32454
32455 PR rtl-optimization/60317
32456 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
32457 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
32458 * lra-assigns.c: Include params.h.
32459 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
32460 other reload pseudos considerations.
32461
32462 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32463
32464 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
32465 to use canonical form for nor<mode>3.
32466
32467 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32468
32469 PR target/55426
32470 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
32471 conversions.
32472
32473 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
32474
32475 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
32476 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
32477 (ix86_handle_option): Handle OPT_mprefetchwt1.
32478 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
32479 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
32480 PREFETCHWT1 CPUID.
32481 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
32482 OPTION_MASK_ISA_PREFETCHWT1.
32483 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
32484 (PTA_PREFETCHWT1): New.
32485 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
32486 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
32487 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
32488 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
32489 (*prefetch_avx512pf_<mode>_: Change into ...
32490 (*prefetch_prefetchwt1_<mode>: This.
32491 * config/i386/i386.opt (mprefetchwt1): New.
32492 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
32493 (_mm_prefetch): Handle intent to write.
32494 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
32495
32496 2014-02-25 Richard Biener <rguenther@suse.de>
32497
32498 PR middle-end/60291
32499 * emit-rtl.c (mem_attrs_htab): Remove.
32500 (mem_attrs_htab_hash): Likewise.
32501 (mem_attrs_htab_eq): Likewise.
32502 (set_mem_attrs): Always allocate new mem-attrs when something changed.
32503 (init_emit_once): Do not allocate mem_attrs_htab.
32504
32505 2014-02-25 Richard Biener <rguenther@suse.de>
32506
32507 PR lto/60319
32508 * lto-opts.c (lto_write_options): Output non-explicit conservative
32509 -fwrapv, -fno-trapv and -fno-strict-overflow.
32510 * lto-wrapper.c (merge_and_complain): Handle merging those options.
32511 (run_gcc): And pass them through.
32512
32513 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
32514
32515 * sel-sched.c (calculate_new_fences): New parameter ptime.
32516 Calculate it as a maximum over all fence cycles.
32517 (sel_sched_region_2): Adjust the call to calculate_new_fences.
32518 Print the final schedule timing when sched_verbose.
32519
32520 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
32521
32522 PR rtl-optimization/60292
32523 * sel-sched.c (fill_vec_av_set): Do not reset target availability
32524 bit fot the fence instruction.
32525
32526 2014-02-24 Alangi Derick <alangiderick@gmail.com>
32527
32528 * calls.h: Fix typo in comment.
32529
32530 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
32531
32532 * config/pa/pa.c (pa_output_move_double): Don't valididate when
32533 adjusting offsetable addresses.
32534
32535 2014-02-24 Guozhi Wei <carrot@google.com>
32536
32537 * sparseset.h (sparseset_pop): Fix the wrong index.
32538
32539 2014-02-24 Walter Lee <walt@tilera.com>
32540
32541 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
32542 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
32543 triplet.
32544 * common/config/tilegx/tilegx-common.c
32545 (TARGET_DEFAULT_TARGET_FLAGS): Define.
32546 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
32547 (LINK_SPEC): Ditto.
32548 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
32549 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
32550 (tilegx_gimplify_va_arg_expr): Handle big endian.
32551 (tilegx_expand_unaligned_load): Ditto.
32552 (tilegx_expand_unaligned_store): Ditto.
32553 (TARGET_RETURN_IN_MSB): New.
32554 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
32555 (TARGET_ENDIAN_DEFAULT): New.
32556 (TARGET_BIG_ENDIAN): Handle big endian.
32557 (BYTES_BIG_ENDIAN): Ditto.
32558 (WORDS_BIG_ENDIAN): Ditto.
32559 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
32560 (ENDIAN_SPEC): New.
32561 (EXTRA_SPECS): New.
32562 * config/tilegx/tilegx.md (extv): Handle big endian.
32563 (extzv): Ditto.
32564 (insn_st<n>): Ditto.
32565 (insn_st<n>_add<bitsuffix>): Ditto.
32566 (insn_stnt<n>): Ditto.
32567 (insn_stnt<n>_add<bitsuffix>):Ditto.
32568 (vec_interleave_highv8qi): Handle big endian.
32569 (vec_interleave_highv8qi_be): New.
32570 (vec_interleave_highv8qi_le): New.
32571 (insn_v1int_h): Handle big endian.
32572 (vec_interleave_lowv8qi): Handle big endian.
32573 (vec_interleave_lowv8qi_be): New.
32574 (vec_interleave_lowv8qi_le): New.
32575 (insn_v1int_l): Handle big endian.
32576 (vec_interleave_highv4hi): Handle big endian.
32577 (vec_interleave_highv4hi_be): New.
32578 (vec_interleave_highv4hi_le): New.
32579 (insn_v2int_h): Handle big endian.
32580 (vec_interleave_lowv4hi): Handle big endian.
32581 (vec_interleave_lowv4hi_be): New.
32582 (vec_interleave_lowv4hi_le): New.
32583 (insn_v2int_l): Handle big endian.
32584 (vec_interleave_highv2si): Handle big endian.
32585 (vec_interleave_highv2si_be): New.
32586 (vec_interleave_highv2si_le): New.
32587 (insn_v4int_h): Handle big endian.
32588 (vec_interleave_lowv2si): Handle big endian.
32589 (vec_interleave_lowv2si_be): New.
32590 (vec_interleave_lowv2si_le): New.
32591 (insn_v4int_l): Handle big endian.
32592 * config/tilegx/tilegx.opt (mbig-endian): New option.
32593 (mlittle-endian): New option.
32594 * doc/install.texi: Document tilegxbe-linux.
32595 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
32596
32597 2014-02-24 Martin Jambor <mjambor@suse.cz>
32598
32599 PR ipa/60266
32600 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
32601 there are no parameter descriptors.
32602
32603 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
32604
32605 PR rtl-optimization/60268
32606 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
32607 initialization to ...
32608 (sched_rgn_init): ... here.
32609 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
32610
32611 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
32612
32613 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
32614 names.
32615
32616 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
32617
32618 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
32619 definition.
32620
32621 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
32622
32623 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
32624 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
32625
32626 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
32627
32628 * config/microblaze/predicates.md: Add cmp_op predicate.
32629 * config/microblaze/microblaze.md: Add branch_compare instruction
32630 which uses cmp_op predicate and emits cmp insn before branch.
32631 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
32632 to microblaze_expand_conditional_branch and consolidate logic.
32633 (microblaze_expand_conditional_branch): emit branch_compare
32634 insn instead of handling cmp op separate from branch insn.
32635
32636 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32637
32638 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
32639 to permit subregs.
32640
32641 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32642
32643 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
32644 define_insn with define_expand and new define_insn
32645 *altivec_lve<VI_char>x_internal.
32646 (altivec_stve<VI_char>x): Replace define_insn with define_expand
32647 and new define_insn *altivec_stve<VI_char>x_internal.
32648 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
32649 prototype.
32650 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
32651 lve*x built-ins.
32652 (altivec_expand_stvex_be): New function.
32653
32654 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
32655
32656 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
32657 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
32658 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
32659 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
32660
32661 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
32662
32663 PR target/60298
32664 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
32665 instead of emit_move_insn.
32666
32667 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32668
32669 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
32670 vspltw with vsldoi.
32671 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
32672 gen_altivec_vsumsws.
32673
32674 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32675
32676 * config/rs6000/altivec.md (altivec_lvxl): Rename as
32677 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
32678 (altivec_lvxl_<mode>): New define_expand incorporating
32679 -maltivec=be semantics where needed.
32680 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
32681 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
32682 semantics where needed.
32683 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
32684 (altivec_stvx_<mode>): New define_expand incorporating
32685 -maltivec=be semantics where needed.
32686 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
32687 VM2 iterator instead of V4SI.
32688 (altivec_stvxl_<mode>): New define_expand incorporating
32689 -maltivec=be semantics where needed.
32690 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
32691 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
32692 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
32693 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
32694 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
32695 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
32696 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
32697 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
32698 ALTIVEC_BUILTIN_STVXL.
32699 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
32700 (altivec_expand_stvx_be): Likewise.
32701 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
32702 (altivec_expand_lvx_be): Likewise.
32703 (altivec_expand_stvx_be): Likewise.
32704 (altivec_expand_builtin): Add cases for
32705 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
32706 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
32707 (altivec_init_builtins): Add definitions for
32708 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
32709 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
32710
32711 2014-02-21 Catherine Moore <clm@codesourcery.com>
32712
32713 * doc/invoke.texi (mvirt, mno-virt): Document.
32714 * config/mips/mips.opt (mvirt): New option.
32715 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
32716
32717 2014-02-21 Richard Biener <rguenther@suse.de>
32718
32719 PR tree-optimization/60276
32720 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
32721 (STMT_VINFO_MIN_NEG_DIST): New macro.
32722 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
32723 STMT_VINFO_MIN_NEG_DIST.
32724 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
32725 made for negative dependence distances still hold.
32726
32727 2014-02-21 Richard Biener <rguenther@suse.de>
32728
32729 PR middle-end/60291
32730 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
32731 DECL_INITIAL for globals not in the current function context.
32732
32733 2014-02-21 Jakub Jelinek <jakub@redhat.com>
32734
32735 PR tree-optimization/56490
32736 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
32737 * tree-ssa-uninit.c: Include params.h.
32738 (compute_control_dep_chain): Add num_calls argument, return false
32739 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
32740 num_calls to recursive call.
32741 (find_predicates): Change dep_chain into normal array,
32742 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
32743 variable and adjust compute_control_dep_chain caller.
32744 (find_def_preds): Likewise.
32745
32746 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
32747
32748 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
32749 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
32750
32751 2014-02-21 Nick Clifton <nickc@redhat.com>
32752
32753 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
32754 (pushhi1): Likewise.
32755 (popqi1): Add mode to pre_dec.
32756 (pophi1): Likewise.
32757
32758 2014-02-21 Jakub Jelinek <jakub@redhat.com>
32759
32760 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
32761 mode for mask of V8SFmode permutation.
32762
32763 2014-02-20 Richard Henderson <rth@redhat.com>
32764
32765 PR c++/60272
32766 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
32767 a new pseudo for OLDVAL.
32768
32769 2014-02-20 Jakub Jelinek <jakub@redhat.com>
32770
32771 PR target/57896
32772 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
32773 gen_reg_rtx if d->testing_p.
32774 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
32775 if d->testing_p and we will certainly return true.
32776 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
32777 if d->testing_p.
32778
32779 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
32780
32781 * emit-rtl.c (gen_reg_rtx): Assert that
32782 crtl->emit.regno_pointer_align_length is non-zero.
32783
32784 2014-02-20 Richard Henderson <rth@redhat.com>
32785
32786 PR c++/60272
32787 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
32788 on failure the store back into EXPECT.
32789
32790 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
32791 Sandra Loosemore <sandra@codesourcery.com>
32792
32793 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
32794 * config/nios2/nios2.c (nios2_function_profiler): Add
32795 -fPIC (flag_pic == 2) support.
32796 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
32797 (nios2_large_offset_p): New function.
32798 (nios2_unspec_reloc_p): Move up position, update to use
32799 nios2_large_offset_p.
32800 (nios2_unspec_address): Remove function.
32801 (nios2_unspec_offset): New function.
32802 (nios2_large_got_address): New function.
32803 (nios2_got_address): Add large offset support.
32804 (nios2_legitimize_tls_address): Update usage of removed and new
32805 functions.
32806 (nios2_symbol_binds_local_p): New function.
32807 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
32808 (nios2_legitimize_address): Update to use nios2_large_offset_p.
32809 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
32810 (nios2_print_operand): Merge H/L processing, add hiadj/lo
32811 processing for (const (unspec ...)).
32812 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
32813
32814 2014-02-20 Richard Biener <rguenther@suse.de>
32815
32816 * tree-cfg.c (replace_uses_by): Mark altered BBs before
32817 doing the substitution.
32818 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
32819
32820 2014-02-20 Martin Jambor <mjambor@suse.cz>
32821
32822 PR ipa/55260
32823 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
32824 info when checking whether lattices are bottom.
32825
32826 2014-02-20 Richard Biener <rguenther@suse.de>
32827
32828 PR middle-end/60221
32829 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
32830 regions at -O0.
32831
32832 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
32833
32834 PR ipa/58555
32835 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
32836 parameter specifying the scaling.
32837 (inline_call): Update.
32838 (want_inline_recursively): Guard division by zero.
32839 (recursive_inlining): Update.
32840 * ipa-inline.h (clone_inlined_nodes): Update.
32841
32842 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
32843
32844 PR target/60204
32845 * config/i386/i386.c (classify_argument): Pass structures of size
32846 64 bytes or less in register.
32847
32848 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
32849 Kirill Yukhin <kirill.yukhin@intel.com>
32850
32851 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
32852 (_mm_rcp28_round_ss): Ditto.
32853 (_mm_rsqrt28_round_sd): Ditto.
32854 (_mm_rsqrt28_round_ss): Ditto.
32855 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
32856 (_mm_rcp14_round_ss): Ditto.
32857 (_mm_rsqrt14_round_sd): Ditto.
32858 (_mm_rsqrt14_round_ss): Ditto.
32859 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
32860 the first input operand, get rid of match_dup.
32861 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
32862 attribute to sse.
32863 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
32864 Ditto.
32865 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
32866 operand as the first input operand, set type attribute.
32867 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
32868 Set type attribute.
32869 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
32870 operand as the first input operand, set type attribute.
32871
32872 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32873
32874 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
32875 bit of zero.
32876
32877 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
32878
32879 PR target/60207
32880 * config/i386/i386.c (construct_container): Remove TFmode check
32881 for X86_64_INTEGER_CLASS.
32882
32883 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
32884
32885 PR target/59794
32886 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
32887 only when -Wpsabi is enabled.
32888
32889 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
32890
32891 PR target/59799
32892 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
32893 passing arrays in registers are the same as for structs, so remove the
32894 special case for them.
32895
32896 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
32897
32898 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
32899 destination type, extract only the valid bits if the source type is not
32900 integral and has a different mode.
32901
32902 2014-02-19 Richard Biener <rguenther@suse.de>
32903
32904 PR ipa/60243
32905 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
32906 for all calls.
32907
32908 2014-02-19 Richard Biener <rguenther@suse.de>
32909
32910 PR ipa/60243
32911 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
32912 (ipa_modify_call_arguments): Emit an argument load explicitely and
32913 preserve virtual SSA form there and for the replacement call.
32914 Do not update SSA form nor free dominance info.
32915
32916 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
32917
32918 * ipa.c (function_and_variable_visibility): Also clear WEAK
32919 flag when disolving COMDAT_GROUP.
32920
32921 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
32922
32923 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
32924 * ipa-prop.c (ipa_set_jf_known_type): Return early when
32925 not devirtualizing.
32926 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
32927 do more sanity checks.
32928 (detect_type_change): Return true when giving up early.
32929 (compute_complex_assign_jump_func): Fix type parameter of
32930 ipa_set_ancestor_jf.
32931 (compute_complex_ancestor_jump_func): Likewise.
32932 (update_jump_functions_after_inlining): Fix updating of
32933 ancestor function.
32934 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
32935
32936 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
32937
32938 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
32939 inline clones when edge disappears.
32940
32941 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
32942
32943 PR target/60203
32944 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
32945 Split 64-bit moves into 2 patterns. Do not allow the use of
32946 direct move for TDmode in little endian, since the decimal value
32947 has little endian bytes within a word, but the 64-bit pieces are
32948 ordered in a big endian fashion, and normal subreg's of TDmode are
32949 not allowed.
32950 (mov<mode>_64bit_dm): Likewise.
32951 (movtd_64bit_nodm): Likewise.
32952
32953 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
32954
32955 PR tree-optimization/60174
32956 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
32957 statement of an SSA_NAME that occurs in an abnormal PHI node.
32958
32959 2014-02-18 Jakub Jelinek <jakub@redhat.com>
32960
32961 PR sanitizer/60142
32962 * final.c (SEEN_BB): Remove.
32963 (SEEN_NOTE, SEEN_EMITTED): Renumber.
32964 (final_scan_insn): Don't force_source_line on second
32965 NOTE_INSN_BASIC_BLOCK.
32966
32967 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
32968
32969 PR target/60205
32970 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
32971 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
32972 (type_natural_mode): Warn ABI change when %zmm register is not
32973 available for AVX512F vector value passing.
32974
32975 2014-02-18 Kai Tietz <ktietz@redhat.com>
32976
32977 PR target/60193
32978 * config/i386/i386.c (ix86_expand_prologue): Use value in
32979 rax register as displacement when restoring %r10 or %rax.
32980 Fix wrong offset when restoring both registers.
32981
32982 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
32983
32984 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
32985 assertion with conditional return.
32986
32987 2014-02-18 Jakub Jelinek <jakub@redhat.com>
32988 Uros Bizjak <ubizjak@gmail.com>
32989
32990 PR driver/60233
32991 * config/i386/driver-i386.c (host_detect_local_cpu): If
32992 YMM state is not saved by the OS, also clear has_f16c. Move
32993 CPUID 0x80000001 handling before YMM state saving checking.
32994
32995 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
32996
32997 PR rtl-optimization/58960
32998 * haifa-sched.c (alloc_global_sched_pressure_data): New,
32999 factored out from ...
33000 (sched_init): ... here.
33001 (free_global_sched_pressure_data): New, factored out from ...
33002 (sched_finish): ... here.
33003 * sched-int.h (free_global_sched_pressure_data): Declare.
33004 * sched-rgn.c (nr_regions_initial): New static global.
33005 (haifa_find_rgns): Initialize it.
33006 (schedule_region): Disable sched-pressure for the newly
33007 generated regions.
33008
33009 2014-02-17 Richard Biener <rguenther@suse.de>
33010
33011 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
33012 release SSA defs of pattern stmts.
33013
33014 2014-02-17 Richard Biener <rguenther@suse.de>
33015
33016 * tree-inline.c (expand_call_inline): Release the virtual
33017 operand defined by the call we are about to inline.
33018
33019 2014-02-17 Richard Biener <rguenther@suse.de>
33020
33021 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
33022
33023 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
33024 Ilya Tocar <ilya.tocar@intel.com>
33025
33026 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
33027 arguments order in builtin.
33028 (_mm512_permutexvar_epi64): Ditto.
33029 (_mm512_mask_permutexvar_epi64): Ditto
33030 (_mm512_maskz_permutexvar_epi32): Ditto
33031 (_mm512_permutexvar_epi32): Ditto
33032 (_mm512_mask_permutexvar_epi32): Ditto
33033
33034 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33035
33036 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
33037 (p8_vmrgow): Likewise.
33038
33039 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33040
33041 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
33042 endian targets.
33043
33044 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
33045
33046 PR target/60203
33047 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
33048 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
33049 into 64-bit and 32-bit moves. On 64-bit moves, add support for
33050 using direct move instructions on ISA 2.07. Also adjust
33051 instruction length for 64-bit.
33052 (mov<mode>_64bit, TFmode/TDmode): Likewise.
33053 (mov<mode>_32bit, TFmode/TDmode): Likewise.
33054
33055 2014-02-15 Alan Modra <amodra@gmail.com>
33056
33057 PR target/58675
33058 PR target/57935
33059 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
33060 find_replacement on parts of insn rtl that might be reloaded.
33061
33062 2014-02-15 Richard Biener <rguenther@suse.de>
33063
33064 PR tree-optimization/60183
33065 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
33066 (tree_ssa_phiprop): Calculate and free post-dominators.
33067
33068 2014-02-14 Jeff Law <law@redhat.com>
33069
33070 PR rtl-optimization/60131
33071 * ree.c (get_extended_src_reg): New function.
33072 (combine_reaching_defs): Use it rather than assuming location of REG.
33073 (find_and_remove_re): Verify first operand of extension is
33074 a REG before adding the insns to the copy list.
33075
33076 2014-02-14 Roland McGrath <mcgrathr@google.com>
33077
33078 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
33079 * configure: Regenerated.
33080 * config.in: Regenerated.
33081 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
33082 instead of ASM_SHORT.
33083
33084 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
33085 Richard Earnshaw <rearnsha@arm.com>
33086
33087 PR rtl-optimization/59535
33088 * lra-constraints.c (process_alt_operands): Encourage alternative
33089 when unassigned pseudo class is superset of the alternative class.
33090 (inherit_reload_reg): Don't inherit when optimizing for code size.
33091 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
33092 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
33093 modes not less than 4 for Thumb1.
33094
33095 2014-02-14 Kyle McMartin <kyle@redhat.com>
33096
33097 PR pch/60010
33098 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
33099
33100 2014-02-14 Richard Biener <rguenther@suse.de>
33101
33102 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
33103 (get_frame_arg): Drop the assert with langhook types_compatible_p.
33104 Do not strip INDIRECT_REFs.
33105
33106 2014-02-14 Richard Biener <rguenther@suse.de>
33107
33108 PR lto/60179
33109 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
33110 DECL_FUNCTION_SPECIFIC_TARGET.
33111 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
33112 * tree-streamer-out.c (pack_ts_target_option): Remove.
33113 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
33114 (write_ts_function_decl_tree_pointers): Do not stream
33115 DECL_FUNCTION_SPECIFIC_TARGET.
33116 * tree-streamer-in.c (unpack_ts_target_option): Remove.
33117 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
33118 (lto_input_ts_function_decl_tree_pointers): Do not stream
33119 DECL_FUNCTION_SPECIFIC_TARGET.
33120
33121 2014-02-14 Jakub Jelinek <jakub@redhat.com>
33122
33123 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
33124 (get_initial_def_for_induction, vectorizable_induction): Ignore
33125 debug stmts when looking for exit_phi.
33126 (vectorizable_live_operation): Fix up condition.
33127
33128 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
33129
33130 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
33131 nreverse() because it changes the content of original tree list.
33132
33133 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
33134
33135 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
33136 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
33137
33138 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
33139
33140 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
33141 GNU coding standards.
33142
33143 2014-02-13 Jakub Jelinek <jakub@redhat.com>
33144
33145 PR debug/60152
33146 * dwarf2out.c (gen_subprogram_die): Don't call
33147 add_calling_convention_attribute if subr_die is old_die.
33148
33149 2014-02-13 Sharad Singhai <singhai@google.com>
33150
33151 * doc/optinfo.texi: Fix order of nodes.
33152
33153 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
33154
33155 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
33156 operands[2], not operands[3].
33157
33158 2014-02-13 Richard Biener <rguenther@suse.de>
33159
33160 PR bootstrap/59878
33161 * doc/install.texi (ISL): Update recommended version to 0.12.2,
33162 mention the possibility of an in-tree build.
33163 (CLooG): Update recommended version to 0.18.1, mention the
33164 possibility of an in-tree build and clarify that the ISL
33165 bundled with CLooG does not work.
33166
33167 2014-02-13 Jakub Jelinek <jakub@redhat.com>
33168
33169 PR target/43546
33170 * expr.c (compress_float_constant): If x is a hard register,
33171 extend into a pseudo and then move to x.
33172
33173 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
33174
33175 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
33176 caused by bad second argument to warning_at() with -mhotpatch and
33177 nested functions (e.g. with gfortran).
33178
33179 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
33180
33181 * opts.c (option_name): Remove "enabled by default" rider.
33182
33183 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
33184
33185 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
33186
33187 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
33188 Uros Bizjak <ubizjak@gmail.com>
33189
33190 PR target/60151
33191 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
33192 * configure: Regenerated.
33193
33194 2014-02-12 Richard Biener <rguenther@suse.de>
33195
33196 * vec.c (vec_prefix::calculate_allocation): Move as
33197 inline variant to vec.h.
33198 (vec_prefix::calculate_allocation_1): New out-of-line version.
33199 * vec.h (vec_prefix::calculate_allocation_1): Declare.
33200 (vec_prefix::m_has_auto_buf): Rename to ...
33201 (vec_prefix::m_using_auto_storage): ... this.
33202 (vec_prefix::calculate_allocation): Inline the easy cases
33203 and dispatch to calculate_allocation_1 which doesn't need the
33204 prefix address.
33205 (va_heap::reserve): Use gcc_checking_assert.
33206 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
33207 m_using_auto_storage.
33208 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
33209 member and adjust.
33210 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
33211 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
33212 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
33213
33214 2014-02-12 Richard Biener <rguenther@suse.de>
33215
33216 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
33217 when we found a dependence.
33218
33219 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
33220
33221 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
33222 common code...
33223 (maybe_fold_stmt): ... into this new function.
33224 * omp-low.c (lower_omp): Update comment.
33225
33226 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
33227 last use.
33228
33229 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
33230 dereference.
33231
33232 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
33233
33234 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
33235 identifiers in comments.
33236 (cortexa53_extra_costs): Likewise.
33237 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
33238 (cortexa7_extra_costs): Likewise.
33239 (cortexa12_extra_costs): Likewise.
33240 (cortexa15_extra_costs): Likewise.
33241 (v7m_extra_costs): Likewise.
33242
33243 2014-02-12 Richard Biener <rguenther@suse.de>
33244
33245 PR middle-end/60092
33246 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
33247 of posix_memalign being successful.
33248 (lower_stmt): Restrict lowering of posix_memalign to when
33249 -ftree-bit-ccp is enabled.
33250
33251 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33252
33253 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
33254 arg_loc.
33255 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
33256
33257 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
33258
33259 PR rtl-optimization/60116
33260 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
33261 other_insn once the combination has been validated.
33262
33263 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
33264
33265 PR lto/59468
33266 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
33267 and wrapper.
33268 * ipa-devirt.c: Include demangle.h
33269 (odr_violation_reported): New static variable.
33270 (add_type_duplicate): Update odr_violations.
33271 (maybe_record_node): Add completep parameter; update it.
33272 (record_target_from_binfo): Add COMPLETEP parameter;
33273 update it as needed.
33274 (possible_polymorphic_call_targets_1): Likewise.
33275 (struct polymorphic_call_target_d): Add nonconstruction_targets;
33276 rename FINAL to COMPLETE.
33277 (record_targets_from_bases): Sanity check we found the binfo;
33278 fix COMPLETEP updating.
33279 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
33280 parameter, fix computing of COMPLETEP.
33281 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
33282 at LTO time do demangling.
33283 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
33284 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
33285 parameter.
33286 (gimple_get_virt_method_for_binfo): Likewise.
33287 * gimple-fold.h (gimple_get_virt_method_for_binfo,
33288 gimple_get_virt_method_for_vtable): Update prototypes.
33289
33290 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
33291
33292 PR target/49008
33293 * genautomata.c (add_presence_absence): Fix typo with
33294 {final_}presence_list.
33295
33296 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
33297
33298 PR target/60137
33299 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
33300 for VSX/Altivec vectors that land in GPR registers.
33301
33302 2014-02-11 Richard Henderson <rth@redhat.com>
33303 Jakub Jelinek <jakub@redhat.com>
33304
33305 PR debug/59776
33306 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
33307 around drhs if type conversion to lacc->type is not useless.
33308
33309 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33310
33311 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
33312 tuning struct.
33313 (cortex-a57.cortex-a53): Likewise.
33314 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
33315
33316 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33317
33318 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
33319 arm_restrict_it.
33320
33321 2014-02-11 Renlin Li <Renlin.Li@arm.com>
33322
33323 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
33324 add_options_for_arm_vfp3.
33325
33326 2014-02-11 Jeff Law <law@redhat.com>
33327
33328 PR middle-end/54041
33329 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
33330 object with an undesirable mode.
33331
33332 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33333
33334 PR libgomp/60107
33335 * config/i386/sol2-9.h: New file.
33336 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
33337 *-*-solaris2.9*): Use it.
33338
33339 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
33340
33341 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
33342 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
33343
33344 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
33345
33346 * config/microblaze/microblaze.c: Extend mcpu version format
33347
33348 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
33349
33350 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
33351
33352 2014-02-10 Richard Henderson <rth@redhat.com>
33353
33354 PR target/59927
33355 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
33356 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
33357 ms-abi vs -mno-accumulate-outgoing-args.
33358 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
33359 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
33360 respect to ms-abi.
33361
33362 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
33363
33364 PR middle-end/60080
33365 * cfgexpand.c (expand_asm_operands): Attach source location to
33366 ASM_INPUT rtx objects.
33367 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
33368
33369 2014-02-10 Nick Clifton <nickc@redhat.com>
33370
33371 * config/mn10300/mn10300.c (popcount): New function.
33372 (mn10300_expand_prologue): Include saved registers in stack usage
33373 count.
33374
33375 2014-02-10 Jeff Law <law@redhat.com>
33376
33377 PR middle-end/52306
33378 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
33379 when changing the SET_DEST of a prior insn to avoid an input reload.
33380
33381 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
33382
33383 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
33384 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
33385 -mcall-openbsd, or -mcall-linux.
33386 (CC1_ENDIAN_BIG_SPEC): Remove.
33387 (CC1_ENDIAN_LITTLE_SPEC): Remove.
33388 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
33389 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
33390 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
33391 and %cc1_endian_default.
33392 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
33393
33394 2014-02-10 Richard Biener <rguenther@suse.de>
33395
33396 PR tree-optimization/60115
33397 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
33398 MEM_REF handling. Properly verify that the accesses are not
33399 out of the objects bound.
33400
33401 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33402
33403 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
33404 coretex to cortex.
33405
33406 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
33407
33408 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
33409 proper constants and fix formatting.
33410 (possible_polymorphic_call_targets): Fix formatting.
33411
33412 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
33413 Ilya Tocar <ilya.tocar@intel.com>
33414
33415 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
33416 (_mm512_loadu_epi32): Renamed into...
33417 (_mm512_loadu_si512): This.
33418 (_mm512_storeu_epi32): Renamed into...
33419 (_mm512_storeu_si512): This.
33420 (_mm512_maskz_ceil_ps): Removed.
33421 (_mm512_maskz_ceil_pd): Ditto.
33422 (_mm512_maskz_floor_ps): Ditto.
33423 (_mm512_maskz_floor_pd): Ditto.
33424 (_mm512_floor_round_ps): Ditto.
33425 (_mm512_floor_round_pd): Ditto.
33426 (_mm512_ceil_round_ps): Ditto.
33427 (_mm512_ceil_round_pd): Ditto.
33428 (_mm512_mask_floor_round_ps): Ditto.
33429 (_mm512_mask_floor_round_pd): Ditto.
33430 (_mm512_mask_ceil_round_ps): Ditto.
33431 (_mm512_mask_ceil_round_pd): Ditto.
33432 (_mm512_maskz_floor_round_ps): Ditto.
33433 (_mm512_maskz_floor_round_pd): Ditto.
33434 (_mm512_maskz_ceil_round_ps): Ditto.
33435 (_mm512_maskz_ceil_round_pd): Ditto.
33436 (_mm512_expand_pd): Ditto.
33437 (_mm512_expand_ps): Ditto.
33438 * config/i386/i386.c (ix86_builtins): Remove
33439 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
33440 (bdesc_args): Ditto.
33441 * config/i386/predicates.md (const1256_operand): New.
33442 (const_1_to_2_operand): Ditto.
33443 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
33444 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
33445 (*avx512pf_gatherpf<mode>sf): Ditto.
33446 (avx512pf_gatherpf<mode>df): Ditto.
33447 (*avx512pf_gatherpf<mode>df_mask): Ditto.
33448 (*avx512pf_gatherpf<mode>df): Ditto.
33449 (avx512pf_scatterpf<mode>sf): Ditto.
33450 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
33451 (*avx512pf_scatterpf<mode>sf): Ditto.
33452 (avx512pf_scatterpf<mode>df): Ditto.
33453 (*avx512pf_scatterpf<mode>df_mask): Ditto.
33454 (*avx512pf_scatterpf<mode>df): Ditto.
33455 (avx512f_expand<mode>): Removed.
33456 (<shift_insn><mode>3<mask_name>): Change predicate type.
33457
33458 2014-02-08 Jakub Jelinek <jakub@redhat.com>
33459
33460 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
33461 not at the end of datarefs vector use ordered_remove to avoid
33462 reordering datarefs vector.
33463
33464 PR c/59984
33465 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
33466 mark local addressable non-static vars as GOVD_PRIVATE
33467 instead of GOVD_LOCAL.
33468 * omp-low.c (lower_omp_for): Move gimple_bind_vars
33469 and BLOCK_VARS of gimple_bind_block to new_stmt rather
33470 than copying them.
33471
33472 PR middle-end/60092
33473 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
33474 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
33475 assume_aligned or alloc_align attributes.
33476 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
33477 arguments. Handle also assume_aligned and alloc_align attributes.
33478 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
33479 calls to functions with assume_aligned or alloc_align attributes.
33480 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
33481
33482 2014-02-08 Terry Guo <terry.guo@arm.com>
33483
33484 * doc/invoke.texi: Document ARM -march=armv7e-m.
33485
33486 2014-02-08 Jakub Jelinek <jakub@redhat.com>
33487
33488 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
33489 flag on __cilkrts_rethrow builtin.
33490
33491 PR ipa/60026
33492 * ipa-cp.c (determine_versionability): Fail at -O0
33493 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
33494 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
33495
33496 Revert:
33497 2014-02-04 Jakub Jelinek <jakub@redhat.com>
33498
33499 PR ipa/60026
33500 * tree-inline.c (copy_forbidden): Fail for
33501 __attribute__((optimize (0))) functions.
33502
33503 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
33504
33505 * varpool.c: Include pointer-set.h.
33506 (varpool_remove_unreferenced_decls): Variables in other partitions
33507 will not be output; be however careful to not lose information
33508 about partitioning.
33509
33510 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
33511
33512 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
33513 lookup in the vtable constructor.
33514
33515 2014-02-07 Jeff Law <law@redhat.com>
33516
33517 PR target/40977
33518 * config/m68k/m68k.md (ashldi_extsi): Turn into a
33519 define_insn_and_split.
33520
33521 * ipa-inline.c (inline_small_functions): Fix typos.
33522
33523 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
33524
33525 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
33526 (s390_can_use_return_insn): Declare.
33527 * config/s390/s390.h (EPILOGUE_USES): Define.
33528 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
33529 instructions.
33530 (s390_chunkify_start): Handle return JUMP_LABELs.
33531 (s390_early_mach): Emit a main_pool instruction on the entry edge.
33532 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
33533 (s390_can_use_return_insn): New functions.
33534 (s390_fix_long_loop_prediction): Handle conditional returns.
33535 (TARGET_SET_UP_BY_PROLOGUE): Define.
33536 * config/s390/s390.md (ANY_RETURN): New code iterator.
33537 (*creturn, *csimple_return, return, simple_return): New patterns.
33538
33539 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
33540
33541 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
33542 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
33543 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
33544 REG_CFA_RESTORE list when deciding not to restore a register.
33545
33546 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
33547
33548 * config/s390/s390.c: Include tree-pass.h and context.h.
33549 (s390_early_mach): New function, split out from...
33550 (s390_emit_prologue): ...here.
33551 (pass_data_s390_early_mach): New pass structure.
33552 (pass_s390_early_mach): New class.
33553 (s390_option_override): Create and register early_mach pass.
33554 Move to end of file.
33555
33556 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
33557
33558 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
33559 to match for the exit block.
33560
33561 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33562
33563 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
33564 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
33565 Reject misaligned operands.
33566
33567 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33568
33569 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
33570
33571 2014-02-07 Richard Biener <rguenther@suse.de>
33572
33573 PR middle-end/60092
33574 * gimple-low.c (lower_builtin_posix_memalign): New function.
33575 (lower_stmt): Call it to lower posix_memalign in a way
33576 to make alignment info accessible.
33577
33578 2014-02-07 Jakub Jelinek <jakub@redhat.com>
33579
33580 PR c++/60082
33581 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
33582 __builtin_setjmp_receiver.
33583
33584 2014-02-07 Richard Biener <rguenther@suse.de>
33585
33586 PR middle-end/60092
33587 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
33588 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
33589 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
33590 Handle BUILT_IN_POSIX_MEMALIGN.
33591 (find_func_clobbers): Likewise.
33592 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
33593 (call_may_clobber_ref_p_1): Likewise.
33594
33595 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
33596
33597 PR ipa/59918
33598 * ipa-devirt.c (record_target_from_binfo): Remove overactive
33599 sanity check.
33600
33601 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
33602
33603 PR ipa/59469
33604 * lto-cgraph.c (lto_output_node): Use
33605 symtab_get_symbol_partitioning_class.
33606 (lto_output_varpool_node): likewise.
33607 (symtab_get_symbol_partitioning_class): Move here from
33608 lto/lto-partition.c
33609 * cgraph.h (symbol_partitioning_class): Likewise.
33610 (symtab_get_symbol_partitioning_class): Declare.
33611
33612 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
33613
33614 * ggc.h (ggc_internal_cleared_alloc): New macro.
33615 * vec.h (vec_safe_copy): Handle memory stats.
33616 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
33617 * target-globals.c (save_target_globals): Likewise.
33618
33619 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
33620
33621 PR target/60077
33622 * expr.c (emit_move_resolve_push): Export; be bit more selective
33623 on when to clear alias set.
33624 * expr.h (emit_move_resolve_push): Declare.
33625 * function.h (struct function): Add tail_call_marked.
33626 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
33627 * config/i386/i386-protos.h (ix86_expand_push): Remove.
33628 * config/i386/i386.md (TImode move expander): De not call
33629 ix86_expand_push.
33630 (FP push expanders): Preserve memory attributes.
33631 * config/i386/sse.md (push<mode>1): Remove.
33632 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
33633 (ix86_expand_push): Remove.
33634 * config/i386/mmx.md (push<mode>1): Remove.
33635
33636 2014-02-06 Jakub Jelinek <jakub@redhat.com>
33637
33638 PR rtl-optimization/60030
33639 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
33640 lopart with paradoxical subreg before shifting it up by hprec.
33641
33642 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33643
33644 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
33645 Remove extra newline at end of file.
33646 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
33647 (arm_issue_rate): Handle cortexa57.
33648 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
33649 (cortex-a57.cortex-a53): Likewise.
33650
33651 2014-02-06 Jakub Jelinek <jakub@redhat.com>
33652
33653 PR target/59575
33654 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
33655 don't record in REG_FRAME_RELATED_EXPR registers not set in that
33656 bitmask.
33657 (arm_expand_prologue): Adjust all callers.
33658 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
33659 info, registers also at the lowest numbered registers side. Use
33660 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
33661 XEXP.
33662
33663 PR debug/59992
33664 * var-tracking.c (adjust_mems): Before adding a SET to
33665 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
33666
33667 2014-02-06 Alan Modra <amodra@gmail.com>
33668
33669 PR target/60032
33670 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
33671 change SDmode to DDmode when lra_in_progress.
33672
33673 2014-02-06 Jakub Jelinek <jakub@redhat.com>
33674
33675 PR middle-end/59150
33676 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
33677 free_data_ref on the dr first, and before goto again also set dr
33678 to the next dr. For simd_lane_access, free old datarefs[i] before
33679 overwriting it. For get_vectype_for_scalar_type failure, don't
33680 free_data_ref if simd_lane_access.
33681
33682 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
33683
33684 PR target/60062
33685 * tree.h (opts_for_fn): New inline function.
33686 (opt_for_fn): Define.
33687 * config/i386/i386.c (ix86_function_regparm): Use
33688 opt_for_fn (decl, optimize) instead of optimize.
33689
33690 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
33691
33692 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
33693 for SYMBOL_REF in large memory model.
33694
33695 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33696
33697 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
33698 and crypto support.
33699 (cortex-a57): Likewise.
33700 (cortex-a57.cortex-a53): Likewise.
33701
33702 2014-02-06 Yury Gribov <y.gribov@samsung.com>
33703 Kugan Vivekanandarajah <kuganv@linaro.org>
33704
33705 * config/arm/arm.c (arm_vector_alignment_reachable): Check
33706 unaligned_access.
33707 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
33708
33709 2014-02-06 Richard Biener <rguenther@suse.de>
33710
33711 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
33712 set_loop_copy and initialize_original_copy_tables.
33713
33714 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
33715
33716 * config/aarch64/aarch64-simd.md
33717 (aarch64_ashr_simddi): Change QI to SI.
33718
33719 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
33720 Jakub Jelinek <jakub@redhat.com>
33721
33722 PR middle-end/60013
33723 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
33724 of the dataflow.
33725
33726 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33727
33728 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
33729 CODE_FOR_altivec_vpku[hw]um to
33730 CODE_FOR_altivec_vpku[hw]um_direct.
33731 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
33732 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
33733 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
33734 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
33735
33736 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33737
33738 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
33739 generation for -maltivec=be.
33740 (altivec_vsumsws): Simplify redundant test.
33741
33742 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33743
33744 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
33745 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
33746 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
33747 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
33748 gen_altivec_vpkuwum.
33749 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
33750 BYTES_BIG_ENDIAN.
33751 (altivec_vpks<VI_char>ss): Likewise.
33752 (altivec_vpks<VI_char>us): Likewise.
33753 (altivec_vpku<VI_char>us): Likewise.
33754 (altivec_vpku<VI_char>um): Likewise.
33755 (altivec_vpku<VI_char>um_direct): New (copy of
33756 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
33757 internal use).
33758 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
33759 target is little endian and -maltivec=be is not specified.
33760 (*altivec_vupkhs<VU_char>_direct): New (copy of
33761 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
33762 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
33763 target is little endian and -maltivec=be is not specified.
33764 (*altivec_vupkls<VU_char>_direct): New (copy of
33765 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
33766 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
33767 little endian and -maltivec=be is not specified.
33768 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
33769 little endian and -maltivec=be is not specified.
33770
33771 2014-02-05 Richard Henderson <rth@redhat.com>
33772
33773 PR debug/52727
33774 * combine-stack-adj.c: Revert r206943.
33775 * sched-int.h (struct deps_desc): Add last_args_size.
33776 * sched-deps.c (init_deps): Initialize it.
33777 (sched_analyze_insn): Add OUTPUT dependencies between insns that
33778 contain REG_ARGS_SIZE notes.
33779
33780 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
33781
33782 * lto-cgraph.c (asm_nodes_output): Make global.
33783 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
33784 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
33785 (driver_handle_option): Handle OPT_fwpa.
33786
33787 2014-02-05 Jakub Jelinek <jakub@redhat.com>
33788
33789 PR ipa/59947
33790 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
33791 a comment typo and formatting issue. If odr_hash hasn't been
33792 created, return vNULL and set *completep to false.
33793
33794 PR middle-end/57499
33795 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
33796 bb with no successors.
33797
33798 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
33799
33800 PR target/59718
33801 * doc/invoke.texi (-march): Clarify documentation for ARM.
33802 (-mtune): Likewise.
33803 (-mcpu): Likewise.
33804
33805 2014-02-05 Richard Biener <rguenther@suse.de>
33806
33807 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
33808 when not vectorizing because of too many alias checks.
33809 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
33810 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
33811
33812 2014-02-05 Nick Clifton <nickc@redhat.com>
33813
33814 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
33815 accept extended registers in any mode when compiling for the MN10300.
33816
33817 2014-02-05 Yury Gribov <y.gribov@samsung.com>
33818
33819 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
33820 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
33821 sanitization attributes.
33822 (can_inline_edge_p): Likewise.
33823 (sanitize_attrs_match_for_inline_p): New function.
33824
33825 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
33826
33827 * ipa-prop.c (detect_type_change): Shor circuit testing of
33828 type changes on THIS pointer.
33829
33830 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
33831
33832 PR target/59777
33833 * config/pa/pa.c (legitimize_tls_address): Return original address
33834 if not passed a SYMBOL_REF rtx.
33835 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
33836 addresses.
33837 (pa_emit_move_sequence): Simplify TLS source operands.
33838 (pa_legitimate_constant_p): Reject all TLS constants.
33839 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
33840 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
33841
33842 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
33843
33844 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
33845 groups when we know they are controlled by LTO.
33846 * varasm.c (default_binds_local_p_1): If object is in other partition,
33847 it will be resolved locally.
33848
33849 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
33850
33851 * config/host-linux.c (linux_gt_pch_use_address): Don't
33852 use SSIZE_MAX because it is not always defined.
33853
33854 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
33855
33856 PR bootstrap/59913
33857 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
33858 threshold for pseudo splitting.
33859 (update_ebb_live_info): Process call argument hard registers and
33860 hard registers from insn definition too.
33861 (max_small_class_regs_num): New constant.
33862 (inherit_in_ebb): Update live hard regs through EBBs. Update
33863 reloads_num only for small register classes. Don't split for
33864 outputs of jumps.
33865
33866 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
33867
33868 PR ipa/60058
33869 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
33870 is non-null.
33871
33872 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
33873
33874 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
33875 visibility is safe.
33876
33877 2014-02-04 Marek Polacek <polacek@redhat.com>
33878
33879 * gdbinit.in (pel): Define.
33880
33881 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
33882
33883 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
33884 behavior.
33885
33886 2014-02-04 Richard Biener <rguenther@suse.de>
33887
33888 PR lto/59723
33889 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
33890 in function context local.
33891 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
33892 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
33893 similar to LTO_imported_decl_ref.
33894
33895 2014-02-04 Jakub Jelinek <jakub@redhat.com>
33896
33897 PR tree-optimization/60002
33898 * cgraphclones.c (build_function_decl_skip_args): Clear
33899 DECL_LANG_SPECIFIC.
33900
33901 PR tree-optimization/60023
33902 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
33903 false to gsi_replace.
33904 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
33905 has been in some EH region and vec_stmt could throw, add
33906 vec_stmt into the same EH region.
33907 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
33908 has no lhs, ignore it.
33909 * internal-fn.c (expand_MASK_LOAD): Likewise.
33910
33911 PR ipa/60026
33912 * tree-inline.c (copy_forbidden): Fail for
33913 __attribute__((optimize (0))) functions.
33914
33915 PR other/58712
33916 * omp-low.c (simd_clone_struct_copy): If from->inbranch
33917 is set, copy one less argument.
33918 (expand_simd_clones): Don't subtract clone_info->inbranch
33919 from simd_clone_struct_alloc argument.
33920
33921 PR rtl-optimization/57915
33922 * recog.c (simplify_while_replacing): If all unary/binary/relational
33923 operation arguments are constant, attempt to simplify those.
33924
33925 PR middle-end/59261
33926 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
33927 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
33928
33929 2014-02-04 Richard Biener <rguenther@suse.de>
33930
33931 PR tree-optimization/60012
33932 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
33933 TBAA disambiguation to all DDRs.
33934
33935 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33936
33937 PR target/59788
33938 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
33939 (LINK_SPEC): Use it for -shared, -shared-libgcc.
33940
33941 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33942
33943 PR ipa/59882
33944 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
33945
33946 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33947
33948 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
33949 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
33950
33951 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33952
33953 PR ipa/59831
33954 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
33955 to figure out targets of polymorphic calls with known decl.
33956 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33957 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
33958 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
33959 (get_polymorphic_call_info): ... here.
33960 (get_polymorphic_call_info_from_invariant): New function.
33961
33962 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33963
33964 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
33965 lookup via vtable pointer; check for type consistency
33966 and turn inconsitent facts into UNREACHABLE.
33967 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33968 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
33969 type inconsistent querries; return UNREACHABLE instead.
33970
33971 2014-02-03 Richard Henderson <rth@twiddle.net>
33972
33973 PR tree-opt/59924
33974 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
33975 already processed this node.
33976 (normalize_one_pred_1): Pass along mark_set.
33977 (normalize_one_pred): Create and destroy a pointer_set_t.
33978 (normalize_one_pred_chain): Likewise.
33979
33980 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
33981
33982 PR gcov-profile/58602
33983 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
33984
33985 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33986
33987 PR ipa/59831
33988 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
33989 -fno-devirtualize; try to devirtualize by the knowledge of
33990 virtual table pointer given by aggregate propagation.
33991 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33992 (ipa_print_node_jump_functions): Dump also offset that
33993 is relevant for polymorphic calls.
33994 (determine_known_aggregate_parts): Add arg_type parameter; use it
33995 instead of determining the type from pointer type.
33996 (ipa_compute_jump_functions_for_edge): Update call of
33997 determine_known_aggregate_parts.
33998 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
33999 (gimple_get_virt_method_for_binfo): ... here; simplify using
34000 vtable_pointer_value_to_vtable.
34001 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
34002 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
34003 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
34004 (vtable_pointer_value_to_vtable): Break out from ...; handle also
34005 POINTER_PLUS_EXPR.
34006 (vtable_pointer_value_to_binfo): ... here.
34007 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
34008
34009 2014-02-03 Teresa Johnson <tejohnson@google.com>
34010
34011 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
34012 redef of outer loop index variable.
34013
34014 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
34015
34016 PR c++/53017
34017 PR c++/59211
34018 * doc/extend.texi (Function Attributes): Typo.
34019
34020 2014-02-03 Cong Hou <congh@google.com>
34021
34022 PR tree-optimization/60000
34023 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
34024 if the vectorized statement is a store. A store statement can only
34025 appear at the end of pattern statements.
34026
34027 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
34028
34029 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
34030 (ix86_option_override_internal): Default long double to 64-bit for
34031 32-bit Bionic and to 128-bit for 64-bit Bionic.
34032
34033 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
34034 TARGET_LONG_DOUBLE_128 is true.
34035 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
34036
34037 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
34038 (mlong-double-64): Negate -mlong-double-128.
34039 (mlong-double-128): New option.
34040
34041 * config/i386/i386-c.c (ix86_target_macros): Define
34042 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
34043
34044 * doc/invoke.texi: Document -mlong-double-128.
34045
34046 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
34047
34048 PR rtl-optimization/60024
34049 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
34050
34051 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
34052
34053 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
34054
34055 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
34056
34057 PR rtl-optimization/57662
34058 * sel-sched.c (code_motion_path_driver): Do not mark already not
34059 existing blocks in the visiting bitmap.
34060
34061 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
34062
34063 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
34064 on the insn being emitted.
34065
34066 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
34067 Will Deacon <will.deacon@arm.com>
34068
34069 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
34070
34071 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34072
34073 * config/arm/arm-tables.opt: Regenerate.
34074
34075 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34076
34077 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
34078 for vector types other than V16QImode.
34079 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
34080 define_expand, and call altivec_expand_vec_perm_le when producing
34081 code with little endian element order.
34082 (*altivec_vperm_<mode>_internal): New insn having previous
34083 behavior of altivec_vperm_<mode>.
34084 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
34085 altivec_expand_vec_perm_le when producing code with little endian
34086 element order.
34087 (*altivec_vperm_<mode>_uns_internal): New insn having previous
34088 behavior of altivec_vperm_<mode>_uns.
34089
34090 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34091
34092 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
34093 (altivec_vsumsws): Add handling for -maltivec=be with a little
34094 endian target.
34095 (altivec_vsumsws_direct): New.
34096 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
34097 gen_altivec_vsumsws.
34098
34099 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
34100
34101 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
34102 vtable_pointer_value_to_binfo): New functions.
34103 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
34104 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
34105
34106 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
34107
34108 * config/nios2/nios2.md (load_got_register): Initialize GOT
34109 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
34110 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
34111
34112 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
34113
34114 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
34115 preserverd by passthrough, do not propagate the type.
34116
34117 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
34118
34119 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
34120 (mips_atomic_assign_expand_fenv): New function.
34121 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
34122
34123 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
34124
34125 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
34126 (__builtin_mips_set_fcsr): Likewise.
34127 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
34128 MIPS_USI_FTYPE_VOID.
34129 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
34130 (mips16_expand_set_fcsr): Likewise.
34131 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
34132 (mips16_set_fcsr_stub): Likewise.
34133 (mips16_get_fcsr_one_only_stub): New class.
34134 (mips16_set_fcsr_one_only_stub): Likewise.
34135 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
34136 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
34137 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
34138 (hard_float): New availability predicate.
34139 (mips_builtins): Add get_fcsr and set_fcsr.
34140 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
34141 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
34142 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
34143 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
34144 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
34145 patterns.
34146
34147 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
34148
34149 * config/mips/mips.c (mips_one_only_stub): New class.
34150 (mips_need_mips16_rdhwr_p): Replace with...
34151 (mips16_rdhwr_stub): ...this new variable.
34152 (mips16_stub_call_address): New function.
34153 (mips16_rdhwr_one_only_stub): New class.
34154 (mips_expand_thread_pointer): Use mips16_stub_call_address.
34155 (mips_output_mips16_rdhwr): Delete.
34156 (mips_finish_stub): New function.
34157 (mips_code_end): Use it to handle rdhwr stubs.
34158
34159 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
34160
34161 PR target/60017
34162 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
34163 when calculating size of integer atomic types.
34164
34165 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
34166
34167 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
34168
34169 2014-02-01 Jakub Jelinek <jakub@redhat.com>
34170
34171 PR tree-optimization/60003
34172 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
34173 * profile.c (branch_prob): Use gimple_call_builtin_p
34174 to check for BUILT_IN_SETJMP_RECEIVER.
34175 * tree-inline.c (copy_bb): Call notice_special_calls.
34176
34177 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
34178
34179 PR bootstrap/59985
34180 * lra-constraints.c (process_alt_operands): Update reload_sum only
34181 on the first pass.
34182
34183 2014-01-31 Richard Henderson <rth@redhat.com>
34184
34185 PR middle-end/60004
34186 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
34187 until after else_eh is processed.
34188
34189 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
34190
34191 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
34192 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
34193 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
34194 in smmintrin.h, remove them.
34195 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
34196 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
34197 * config/i386/i386.md (ROUND_SAE): Fix value.
34198 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
34199 (const48_operand): New.
34200 * config/i386/subst.md (round), (round_expand): Use
34201 const_4_or_8_to_11_operand.
34202 (round_saeonly), (round_saeonly_expand): Use const48_operand.
34203
34204 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
34205
34206 * config/i386/constraints.md (Yk): Swap meaning with k.
34207 * config/i386/i386.md (movhi_internal): Change Yk to k.
34208 (movqi_internal): Ditto.
34209 (*k<logic><mode>): Ditto.
34210 (*andhi_1): Ditto.
34211 (*andqi_1): Ditto.
34212 (kandn<mode>): Ditto.
34213 (*<code>hi_1): Ditto.
34214 (*<code>qi_1): Ditto.
34215 (kxnor<mode>): Ditto.
34216 (kortestzhi): Ditto.
34217 (kortestchi): Ditto.
34218 (kunpckhi): Ditto.
34219 (*one_cmplhi2_1): Ditto.
34220 (*one_cmplqi2_1): Ditto.
34221 * config/i386/sse.md (): Change k to Yk.
34222 (avx512f_load<mode>_mask): Ditto.
34223 (avx512f_blendm<mode>): Ditto.
34224 (avx512f_store<mode>_mask): Ditto.
34225 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
34226 (avx512f_storedqu<mode>_mask): Ditto.
34227 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
34228 Ditto.
34229 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
34230 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
34231 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
34232 (avx512f_maskcmp<mode>3): Ditto.
34233 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
34234 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
34235 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
34236 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
34237 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
34238 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
34239 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
34240 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
34241 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
34242 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
34243 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
34244 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
34245 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
34246 (vec_extract_lo_<mode>_maskm): Ditto.
34247 (vec_extract_hi_<mode>_maskm): Ditto.
34248 (avx512f_vternlog<mode>_mask): Ditto.
34249 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
34250 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
34251 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
34252 (avx512f_<code>v8div16qi2_mask): Ditto.
34253 (avx512f_<code>v8div16qi2_mask_store): Ditto.
34254 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
34255 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
34256 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
34257 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
34258 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
34259 (*avx512pf_gatherpf<mode>df_mask): Ditto.
34260 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
34261 (*avx512pf_scatterpf<mode>df_mask): Ditto.
34262 (avx512cd_maskb_vec_dupv8di): Ditto.
34263 (avx512cd_maskw_vec_dupv16si): Ditto.
34264 (avx512f_vpermi2var<mode>3_maskz): Ditto.
34265 (avx512f_vpermi2var<mode>3_mask): Ditto.
34266 (avx512f_vpermi2var<mode>3_mask): Ditto.
34267 (avx512f_vpermt2var<mode>3_maskz): Ditto.
34268 (*avx512f_gathersi<mode>): Ditto.
34269 (*avx512f_gathersi<mode>_2): Ditto.
34270 (*avx512f_gatherdi<mode>): Ditto.
34271 (*avx512f_gatherdi<mode>_2): Ditto.
34272 (*avx512f_scattersi<mode>): Ditto.
34273 (*avx512f_scatterdi<mode>): Ditto.
34274 (avx512f_compress<mode>_mask): Ditto.
34275 (avx512f_compressstore<mode>_mask): Ditto.
34276 (avx512f_expand<mode>_mask): Ditto.
34277 * config/i386/subst.md (mask): Change k to Yk.
34278 (mask_scalar_merge): Ditto.
34279 (sd): Ditto.
34280
34281 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
34282
34283 * doc/extend.texi (Vector Extensions): Document ?: in C++.
34284
34285 2014-01-31 Richard Biener <rguenther@suse.de>
34286
34287 PR middle-end/59990
34288 * builtins.c (fold_builtin_memory_op): Make sure to not
34289 use a floating-point mode or a boolean or enumeral type for
34290 the copy operation.
34291
34292 2014-01-30 DJ Delorie <dj@redhat.com>
34293
34294 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
34295 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
34296 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
34297 whenever main() has an epilogue.
34298
34299 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34300
34301 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
34302 unused variable "field".
34303 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
34304 (vsx_mergeh_<mode>): Likewise.
34305 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
34306 (altivec_vmrghh): Likewise.
34307 (altivec_vmrghw): Likewise.
34308 (altivec_vmrglb): Likewise.
34309 (altivec_vmrglh): Likewise.
34310 (altivec_vmrglw): Likewise.
34311 (altivec_vspltb): Add missing uses.
34312 (altivec_vsplth): Likewise.
34313 (altivec_vspltw): Likewise.
34314 (altivec_vspltsf): Likewise.
34315
34316 2014-01-30 Jakub Jelinek <jakub@redhat.com>
34317
34318 PR target/59923
34319 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
34320 frame related instructions.
34321
34322 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
34323
34324 PR rtl-optimization/59959
34325 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
34326 any reload of register whose subreg is invalid.
34327
34328 2014-01-30 Jakub Jelinek <jakub@redhat.com>
34329
34330 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
34331 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
34332 Add missing return type - void.
34333
34334 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34335
34336 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
34337 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
34338 remove element index adjustment for endian (now handled in vsx.md
34339 and altivec.md).
34340 (altivec_expand_vec_perm_const): Use
34341 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
34342 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
34343 (vsx_xxspltw_<mode>): Adjust element index for little endian.
34344 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
34345 define_expand and a new define_insn *altivec_vspltb_internal;
34346 adjust for -maltivec=be on a little endian target.
34347 (altivec_vspltb_direct): New.
34348 (altivec_vsplth): Divide into a define_expand and a new
34349 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
34350 little endian target.
34351 (altivec_vsplth_direct): New.
34352 (altivec_vspltw): Divide into a define_expand and a new
34353 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
34354 little endian target.
34355 (altivec_vspltw_direct): New.
34356 (altivec_vspltsf): Divide into a define_expand and a new
34357 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
34358 a little endian target.
34359
34360 2014-01-30 Richard Biener <rguenther@suse.de>
34361
34362 PR tree-optimization/59993
34363 * tree-ssa-forwprop.c (associate_pointerplus): Check we
34364 can propagate form the earlier stmt and avoid the transform
34365 when the intermediate result is needed.
34366
34367 2014-01-30 Alangi Derick <alangiderick@gmail.com>
34368
34369 * README.Portability: Fix typo.
34370
34371 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
34372
34373 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
34374 comparison_operator with ordered_comparison_operator.
34375
34376 2014-01-30 Nick Clifton <nickc@redhat.com>
34377
34378 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
34379 Rename to mn10300_store_multiple_regs.
34380 * config/mn10300/mn10300.c: Likewise.
34381 * config/mn10300/mn10300.md (store_movm): Fix typo: call
34382 store_multiple_regs.
34383 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
34384 Call mn10300_store_multiple_regs.
34385
34386 2014-01-30 Nick Clifton <nickc@redhat.com>
34387 DJ Delorie <dj@redhat.com>
34388
34389 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
34390 %fp 2 to keep registers after it properly word-aligned.
34391 (rl78_alloc_physical_registers_umul): Handle the case where both
34392 input operands are the same.
34393
34394 2014-01-30 Richard Biener <rguenther@suse.de>
34395
34396 PR tree-optimization/59903
34397 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
34398 check properly.
34399
34400 2014-01-30 Jason Merrill <jason@redhat.com>
34401
34402 PR c++/59633
34403 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
34404
34405 PR c++/59645
34406 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
34407
34408 2014-01-30 Richard Biener <rguenther@suse.de>
34409
34410 PR tree-optimization/59951
34411 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
34412
34413 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
34414
34415 PR target/59784
34416 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
34417 SFmode to DFmode case.
34418
34419 2014-01-29 DJ Delorie <dj@redhat.com>
34420
34421 * config/msp430/msp430.opt (-minrt): New.
34422 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
34423 if -minrt given.
34424 (ENDFILE_SPEC): Likewise.
34425
34426 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
34427
34428 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
34429 (estimate_function_body_sizes): Use it.
34430
34431 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
34432
34433 PR c++/58561
34434 * dwarf2out.c (is_cxx_auto): New.
34435 (is_base_type): Use it.
34436 (gen_type_die_with_usage): Likewise.
34437
34438 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34439
34440 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
34441 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
34442 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
34443 -maltivec=be with LE targets.
34444 (vsx_mergeh_<mode>): Likewise.
34445 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
34446 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
34447 (altivec_vmrghb): Replace with define_expand and new
34448 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
34449 (altivec_vmrghb_direct): New define_insn.
34450 (altivec_vmrghh): Replace with define_expand and new
34451 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
34452 (altivec_vmrghh_direct): New define_insn.
34453 (altivec_vmrghw): Replace with define_expand and new
34454 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
34455 (altivec_vmrghw_direct): New define_insn.
34456 (*altivec_vmrghsf): Adjust for endianness.
34457 (altivec_vmrglb): Replace with define_expand and new
34458 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
34459 (altivec_vmrglb_direct): New define_insn.
34460 (altivec_vmrglh): Replace with define_expand and new
34461 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
34462 (altivec_vmrglh_direct): New define_insn.
34463 (altivec_vmrglw): Replace with define_expand and new
34464 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
34465 (altivec_vmrglw_direct): New define_insn.
34466 (*altivec_vmrglsf): Adjust for endianness.
34467 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
34468 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
34469 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
34470 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
34471 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
34472 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
34473 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
34474 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
34475
34476 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
34477
34478 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
34479 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
34480 whitespace.
34481
34482 2014-01-29 Richard Biener <rguenther@suse.de>
34483
34484 PR tree-optimization/58742
34485 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
34486 associate_pointerplus_align.
34487 (associate_pointerplus_diff): New function.
34488 (associate_pointerplus): Likewise. Call associate_pointerplus_align
34489 and associate_pointerplus_diff.
34490
34491 2014-01-29 Richard Biener <rguenther@suse.de>
34492
34493 * lto-streamer.h (LTO_major_version): Bump to 3.
34494 (LTO_minor_version): Reset to 0.
34495
34496 2014-01-29 Renlin Li <Renlin.Li@arm.com>
34497
34498 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
34499 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
34500 (arm_file_start): Generate correct asm header for armv7ve.
34501 * config/arm/bpabi.h: Add multilib support for armv7ve.
34502 * config/arm/driver-arm.c: Change the architectures of cortex-a7
34503 and cortex-a15 to armv7ve.
34504 * config/arm/t-aprofile: Add multilib support for armv7ve.
34505 * doc/invoke.texi: Document -march=armv7ve.
34506
34507 2014-01-29 Richard Biener <rguenther@suse.de>
34508
34509 PR tree-optimization/58742
34510 * tree-ssa-forwprop.c (associate_plusminus): Return true
34511 if we changed sth, defer EH cleanup to ...
34512 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
34513 (simplify_mult): New function.
34514
34515 2014-01-29 Jakub Jelinek <jakub@redhat.com>
34516
34517 PR middle-end/59917
34518 PR tree-optimization/59920
34519 * tree.c (build_common_builtin_nodes): Remove
34520 __builtin_setjmp_dispatcher initialization.
34521 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
34522 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
34523 instead of gsi_after_labels + manually skipping debug stmts.
34524 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
34525 ignore bbs with IFN_ABNORMAL_DISPATCHER.
34526 * tree-inline.c (copy_edges_for_bb): Remove
34527 can_make_abnormal_goto argument, instead add abnormal_goto_dest
34528 argument. Ignore computed_goto_p stmts. Don't call
34529 make_abnormal_goto_edges. If a call might need abnormal edges
34530 for non-local gotos, see if it already has an edge to
34531 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
34532 with true argument, don't do anything then, otherwise add
34533 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
34534 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
34535 caller.
34536 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
34537 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
34538 (lower_stmt): Don't set data->calls_builtin_setjmp.
34539 (lower_builtin_setjmp): Adjust comment.
34540 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
34541 * tree-cfg.c (found_computed_goto): Remove.
34542 (factor_computed_gotos): Remove.
34543 (make_goto_expr_edges): Return bool, true for computed gotos.
34544 Don't call make_abnormal_goto_edges.
34545 (build_gimple_cfg): Don't set found_computed_goto, don't call
34546 factor_computed_gotos.
34547 (computed_goto_p): No longer static.
34548 (make_blocks): Don't set found_computed_goto.
34549 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
34550 (make_edges): If make_goto_expr_edges returns true, push bb
34551 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
34552 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
34553 vector. Record mapping between bbs and OpenMP regions if there
34554 are any, adjust make_gimple_omp_edges caller. Call
34555 handle_abnormal_edges.
34556 (make_abnormal_goto_edges): Remove.
34557 * tree-cfg.h (make_abnormal_goto_edges): Remove.
34558 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
34559 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
34560 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
34561 * internal-fn.def (ABNORMAL_DISPATCHER): New.
34562 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
34563 filling *region also set *region_idx to (*region)->entry->index.
34564
34565 PR other/58712
34566 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
34567 For REGs set ORIGINAL_REGNO.
34568
34569 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
34570
34571 * doc/md.texi: Mention that a target shouldn't implement
34572 vec_widen_(s|u)mul_even/odd pair if it is less efficient
34573 than hi/lo pair.
34574
34575 2014-01-29 Jakub Jelinek <jakub@redhat.com>
34576
34577 PR tree-optimization/59594
34578 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
34579 a copy of the datarefs vector rather than the vector itself.
34580
34581 2014-01-28 Jason Merrill <jason@redhat.com>
34582
34583 PR c++/53756
34584 * dwarf2out.c (auto_die): New static.
34585 (gen_type_die_with_usage): Handle C++1y 'auto'.
34586 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
34587 on definition.
34588
34589 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
34590
34591 PR target/59672
34592 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
34593 (SPEC_X32): Likewise.
34594 (SPEC_64): Likewise.
34595 * config/i386/i386.c (ix86_option_override_internal): Turn off
34596 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
34597 for TARGET_16BIT.
34598 (x86_file_start): Output .code16gcc for TARGET_16BIT.
34599 * config/i386/i386.h (TARGET_16BIT): New macro.
34600 (TARGET_16BIT_P): Likewise.
34601 * config/i386/i386.opt: Add m16.
34602 * doc/invoke.texi: Document -m16.
34603
34604 2014-01-28 Jakub Jelinek <jakub@redhat.com>
34605
34606 PR preprocessor/59935
34607 * input.c (location_get_source_line): Bail out on when line number
34608 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
34609
34610 2014-01-28 Richard Biener <rguenther@suse.de>
34611
34612 PR tree-optimization/58742
34613 * tree-ssa-forwprop.c (associate_plusminus): Handle
34614 pointer subtraction of the form (T)(P + A) - (T)P.
34615
34616 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34617
34618 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
34619 at const_int_cost.
34620
34621 2014-01-28 Richard Biener <rguenther@suse.de>
34622
34623 Revert
34624 2014-01-28 Richard Biener <rguenther@suse.de>
34625
34626 PR rtl-optimization/45364
34627 PR rtl-optimization/59890
34628 * var-tracking.c (local_get_addr_clear_given_value): Handle
34629 already cleared slot.
34630 (val_reset): Handle not allocated local_get_addr_cache.
34631 (vt_find_locations): Use post-order on the inverted CFG.
34632
34633 2014-01-28 Richard Biener <rguenther@suse.de>
34634
34635 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
34636
34637 2014-01-28 Richard Biener <rguenther@suse.de>
34638
34639 PR rtl-optimization/45364
34640 PR rtl-optimization/59890
34641 * var-tracking.c (local_get_addr_clear_given_value): Handle
34642 already cleared slot.
34643 (val_reset): Handle not allocated local_get_addr_cache.
34644 (vt_find_locations): Use post-order on the inverted CFG.
34645
34646 2014-01-28 Alan Modra <amodra@gmail.com>
34647
34648 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
34649 * configure.ac <recursive call for build != host>: Define
34650 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
34651 and LD_FOR_BUILD too.
34652 * configure: Regenerate.
34653
34654 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
34655
34656 * config/i386/i386.c (get_builtin_code_for_version): Separate
34657 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
34658 Broadwell from Haswell.
34659
34660 2014-01-27 Steve Ellcey <sellcey@mips.com>
34661
34662 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
34663 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
34664 * config/mips/mips.c (mips_option_override): Change setting
34665 of TARGET_DSP.
34666 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
34667 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
34668 Change from Mask to Var.
34669
34670 2014-01-27 Jeff Law <law@redhat.com>
34671
34672 * ipa-inline.c (inline_small_functions): Fix typo.
34673
34674 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
34675
34676 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
34677 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
34678 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
34679 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
34680 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
34681 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
34682 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
34683 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
34684 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
34685 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
34686 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
34687 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
34688 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
34689 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
34690 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
34691 (_mm512_storeu_epi64): Ditto.
34692 (_mm512_cmpge_epi32_mask): Ditto.
34693 (_mm512_cmpge_epu32_mask): Ditto.
34694 (_mm512_cmpge_epi64_mask): Ditto.
34695 (_mm512_cmpge_epu64_mask): Ditto.
34696 (_mm512_cmple_epi32_mask): Ditto.
34697 (_mm512_cmple_epu32_mask): Ditto.
34698 (_mm512_cmple_epi64_mask): Ditto.
34699 (_mm512_cmple_epu64_mask): Ditto.
34700 (_mm512_cmplt_epi32_mask): Ditto.
34701 (_mm512_cmplt_epu32_mask): Ditto.
34702 (_mm512_cmplt_epi64_mask): Ditto.
34703 (_mm512_cmplt_epu64_mask): Ditto.
34704 (_mm512_cmpneq_epi32_mask): Ditto.
34705 (_mm512_cmpneq_epu32_mask): Ditto.
34706 (_mm512_cmpneq_epi64_mask): Ditto.
34707 (_mm512_cmpneq_epu64_mask): Ditto.
34708 (_mm512_expand_pd): Ditto.
34709 (_mm512_expand_ps): Ditto.
34710 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
34711 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
34712 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
34713 * config/i386/i386.c (ix86_builtins): Add
34714 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
34715 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
34716 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
34717 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
34718 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
34719 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
34720 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
34721 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
34722 IX86_BUILTIN_PMOVUSQW512_MEM.
34723 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
34724 __builtin_ia32_pmovsqd512mem_mask,
34725 __builtin_ia32_pmovqd512mem_mask,
34726 __builtin_ia32_pmovusqw512mem_mask,
34727 __builtin_ia32_pmovsqw512mem_mask,
34728 __builtin_ia32_pmovqw512mem_mask,
34729 __builtin_ia32_pmovusdw512mem_mask,
34730 __builtin_ia32_pmovsdw512mem_mask,
34731 __builtin_ia32_pmovdw512mem_mask,
34732 __builtin_ia32_pmovqb512mem_mask,
34733 __builtin_ia32_pmovusqb512mem_mask,
34734 __builtin_ia32_pmovsqb512mem_mask,
34735 __builtin_ia32_pmovusdb512mem_mask,
34736 __builtin_ia32_pmovsdb512mem_mask,
34737 __builtin_ia32_pmovdb512mem_mask.
34738 (bdesc_args): Add __builtin_ia32_expanddf512,
34739 __builtin_ia32_expandsf512.
34740 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
34741 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
34742 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
34743 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
34744 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
34745 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
34746 (avx512f_<code>v8div16qi2_mask_store): This.
34747 (avx512f_expand<mode>): New.
34748
34749 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
34750
34751 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
34752 New.
34753 (_mm512_mask_prefetch_i64gather_pd): Ditto.
34754 (_mm512_prefetch_i32scatter_pd): Ditto.
34755 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
34756 (_mm512_prefetch_i64scatter_pd): Ditto.
34757 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
34758 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
34759 (_mm512_mask_prefetch_i64gather_ps): Ditto.
34760 (_mm512_prefetch_i32scatter_ps): Ditto.
34761 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
34762 (_mm512_prefetch_i64scatter_ps): Ditto.
34763 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
34764 * config/i386/i386-builtin-types.def: Define
34765 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
34766 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
34767 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
34768 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
34769 IX86_BUILTIN_SCATTERPFQPD.
34770 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
34771 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
34772 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
34773 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
34774 __builtin_ia32_scatterpfqps.
34775 (ix86_expand_builtin): Expand new built-ins.
34776 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
34777 fix memory access data type.
34778 (*avx512pf_gatherpf<mode>_mask): Ditto.
34779 (*avx512pf_gatherpf<mode>): Ditto.
34780 (avx512pf_scatterpf<mode>): Ditto.
34781 (*avx512pf_scatterpf<mode>_mask): Ditto.
34782 (*avx512pf_scatterpf<mode>): Ditto.
34783 (GATHER_SCATTER_SF_MEM_MODE): New.
34784 (avx512pf_gatherpf<mode>df): Ditto.
34785 (*avx512pf_gatherpf<mode>df_mask): Ditto.
34786 (*avx512pf_scatterpf<mode>df): Ditto.
34787
34788 2014-01-27 Jakub Jelinek <jakub@redhat.com>
34789
34790 PR bootstrap/59934
34791 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
34792 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
34793 reached.
34794
34795 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
34796
34797 * common/config/arm/arm-common.c
34798 (arm_rewrite_mcpu): Handle multiple names.
34799 * config/arm/arm.h
34800 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34801
34802 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
34803
34804 * gimple-builder.h (create_gimple_tmp): Delete.
34805
34806 2014-01-27 Christian Bruel <christian.bruel@st.com>
34807
34808 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
34809 words comparisons.
34810
34811 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
34812
34813 * config/pa/pa.md (call): Generate indirect long calls to non-local
34814 functions when outputing 32-bit code.
34815 (call_value): Likewise except for special call to buggy powf function.
34816
34817 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
34818 portable runtime and PIC indirect calls.
34819 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
34820 and PIC call sequences. Use ldo instead of blr to set return register
34821 in PIC call sequence.
34822
34823 2014-01-25 Walter Lee <walt@tilera.com>
34824
34825 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
34826 avoid clobbering a live register.
34827
34828 2014-01-25 Walter Lee <walt@tilera.com>
34829
34830 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
34831 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
34832 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
34833 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
34834
34835 2014-01-25 Walter Lee <walt@tilera.com>
34836
34837 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
34838 arguments on even registers.
34839 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
34840 STACK_BOUNDARY.
34841 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
34842 (BIGGEST_ALIGNMENT): Ditto.
34843 (BIGGEST_FIELD_ALIGNMENT): Ditto.
34844
34845 2014-01-25 Walter Lee <walt@tilera.com>
34846
34847 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
34848 insns before bundling.
34849 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
34850
34851 2014-01-25 Walter Lee <walt@tilera.com>
34852
34853 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
34854 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
34855 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
34856
34857 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
34858
34859 * config/mips/constraints.md (kl): Delete.
34860 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
34861 define expands, using...
34862 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
34863 instructions for MIPS16.
34864 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
34865 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
34866
34867 2014-01-25 Walter Lee <walt@tilera.com>
34868
34869 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
34870 (clzdi2): Ditto.
34871 (ffsdi2): Ditto.
34872
34873 2014-01-25 Walter Lee <walt@tilera.com>
34874
34875 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
34876 (TARGET_EXPAND_TO_RTL_HOOK): Define.
34877
34878 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
34879
34880 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
34881 Handle XOR.
34882
34883 2014-01-25 Jakub Jelinek <jakub@redhat.com>
34884
34885 * print-rtl.c (in_call_function_usage): New var.
34886 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
34887 EXPR_LIST mode as mode and not as reg note name.
34888
34889 PR middle-end/59561
34890 * cfgloopmanip.c (copy_loop_info): If
34891 loop->warned_aggressive_loop_optimizations, make sure
34892 the flag is set in target loop too.
34893
34894 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
34895
34896 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
34897 flag_cilkplus.
34898 * builtins.def: Likewise.
34899 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
34900 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
34901 * ira.c (ira_setup_eliminable_regset): Likewise.
34902 * omp-low.c (gate_expand_omp): Likewise.
34903 (execute_lower_omp): Likewise.
34904 (diagnose_sb_0): Likewise.
34905 (gate_diagnose_omp_blocks): Likewise.
34906 (simd_clone_clauses_extract): Likewise.
34907 (gate): Likewise.
34908
34909 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34910
34911 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
34912 correction for little endian...
34913 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
34914 here.
34915
34916 2014-01-24 Jeff Law <law@redhat.com>
34917
34918 PR tree-optimization/59919
34919 * tree-vrp.c (find_assert_locations_1): Do not register asserts
34920 for non-returning calls.
34921
34922 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
34923
34924 * common/config/aarch64/aarch64-common.c
34925 (aarch64_rewrite_mcpu): Handle multiple names.
34926 * config/aarch64/aarch64.h
34927 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34928
34929 2014-01-24 Dodji Seketeli <dodji@redhat.com>
34930
34931 * input.c (add_file_to_cache_tab): Handle the case where fopen
34932 returns NULL.
34933
34934 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
34935
34936 PR target/59929
34937 * config/i386/i386.md (pushsf splitter): Get stack adjustment
34938 from push operand if code of push isn't PRE_DEC.
34939
34940 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
34941
34942 PR target/59909
34943 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
34944 -mquad-memory-atomic. Update -mquad-memory documentation to say
34945 it is only used for non-atomic loads/stores.
34946
34947 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
34948 -mquad-memory or -mquad-memory-atomic switches.
34949
34950 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
34951 -mquad-memory-atomic to ISA 2.07 support.
34952
34953 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
34954 to separate support of normal quad word memory operations (ldq, stq)
34955 from the atomic quad word memory operations.
34956
34957 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34958 support to separate non-atomic quad word operations from atomic
34959 quad word operations. Disable non-atomic quad word operations in
34960 little endian mode so that we don't have to swap words after the
34961 load and before the store.
34962 (quad_load_store_p): Add comment about atomic quad word support.
34963 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
34964 options printed with -mdebug=reg.
34965
34966 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
34967 -mquad-memory-atomic as the test for whether we have quad word
34968 atomic instructions.
34969 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
34970 or -mp8-vector are used, allow byte/half-word atomic operations.
34971
34972 * config/rs6000/sync.md (load_lockedti): Insure that the address
34973 is a proper indexed or indirect address for the lqarx instruction.
34974 On little endian systems, swap the hi/lo registers after the lqarx
34975 instruction.
34976 (load_lockedpti): Use indexed_or_indirect_operand predicate to
34977 insure the address is valid for the lqarx instruction.
34978 (store_conditionalti): Insure that the address is a proper indexed
34979 or indirect address for the stqcrx. instruction. On little endian
34980 systems, swap the hi/lo registers before doing the stqcrx.
34981 instruction.
34982 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
34983 insure the address is valid for the stqcrx. instruction.
34984
34985 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
34986 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
34987 type of quad memory support is available.
34988
34989 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
34990
34991 PR regression/59915
34992 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
34993 there is a danger of looping.
34994
34995 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
34996
34997 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
34998 force flag_ira_loop_pressure if set via command line.
34999
35000 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
35001
35002 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
35003 (ashr_simd): New builtin handling DI mode.
35004 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
35005 (aarch64_sshr_simddi): New match pattern.
35006 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
35007 (vshrd_n_s64): Likewise.
35008 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
35009
35010 2014-01-23 Nick Clifton <nickc@redhat.com>
35011
35012 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
35013 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
35014 favour of mcu specific scripts.
35015 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
35016 430x multilibs.
35017
35018 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
35019 Alex Velenko <Alex.Velenko@arm.com>
35020
35021 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
35022 (vaddv_s16): Likewise.
35023 (vaddv_s32): Likewise.
35024 (vaddv_u8): Likewise.
35025 (vaddv_u16): Likewise.
35026 (vaddv_u32): Likewise.
35027 (vaddvq_s8): Likewise.
35028 (vaddvq_s16): Likewise.
35029 (vaddvq_s32): Likewise.
35030 (vaddvq_s64): Likewise.
35031 (vaddvq_u8): Likewise.
35032 (vaddvq_u16): Likewise.
35033 (vaddvq_u32): Likewise.
35034 (vaddvq_u64): Likewise.
35035 (vaddv_f32): Likewise.
35036 (vaddvq_f32): Likewise.
35037 (vaddvq_f64): Likewise.
35038 (vmaxv_f32): Likewise.
35039 (vmaxv_s8): Likewise.
35040 (vmaxv_s16): Likewise.
35041 (vmaxv_s32): Likewise.
35042 (vmaxv_u8): Likewise.
35043 (vmaxv_u16): Likewise.
35044 (vmaxv_u32): Likewise.
35045 (vmaxvq_f32): Likewise.
35046 (vmaxvq_f64): Likewise.
35047 (vmaxvq_s8): Likewise.
35048 (vmaxvq_s16): Likewise.
35049 (vmaxvq_s32): Likewise.
35050 (vmaxvq_u8): Likewise.
35051 (vmaxvq_u16): Likewise.
35052 (vmaxvq_u32): Likewise.
35053 (vmaxnmv_f32): Likewise.
35054 (vmaxnmvq_f32): Likewise.
35055 (vmaxnmvq_f64): Likewise.
35056 (vminv_f32): Likewise.
35057 (vminv_s8): Likewise.
35058 (vminv_s16): Likewise.
35059 (vminv_s32): Likewise.
35060 (vminv_u8): Likewise.
35061 (vminv_u16): Likewise.
35062 (vminv_u32): Likewise.
35063 (vminvq_f32): Likewise.
35064 (vminvq_f64): Likewise.
35065 (vminvq_s8): Likewise.
35066 (vminvq_s16): Likewise.
35067 (vminvq_s32): Likewise.
35068 (vminvq_u8): Likewise.
35069 (vminvq_u16): Likewise.
35070 (vminvq_u32): Likewise.
35071 (vminnmv_f32): Likewise.
35072 (vminnmvq_f32): Likewise.
35073 (vminnmvq_f64): Likewise.
35074
35075 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
35076
35077 * config/aarch64/aarch64-simd.md
35078 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
35079 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
35080 (*aarch64_mul3_elt<mode>): Likewise.
35081 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
35082 (*aarch64_mul3_elt_to_64v2df): Likewise.
35083 (*aarch64_mla_elt<mode>): Likewise.
35084 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
35085 (*aarch64_mls_elt<mode>): Likewise.
35086 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
35087 (*aarch64_fma4_elt<mode>): Likewise.
35088 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
35089 (*aarch64_fma4_elt_to_64v2df): Likewise.
35090 (*aarch64_fnma4_elt<mode>): Likewise.
35091 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
35092 (*aarch64_fnma4_elt_to_64v2df): Likewise.
35093 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
35094 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
35095 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
35096 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
35097 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
35098 (aarch64_sqdmull_lane<mode>_internal): Likewise.
35099 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
35100
35101 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
35102
35103 * config/aarch64/aarch64-simd.md
35104 (aarch64_be_checked_get_lane<mode>): New define_expand.
35105 * config/aarch64/aarch64-simd-builtins.def
35106 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
35107 New builtin definition.
35108 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
35109 Use new safe be builtin.
35110
35111 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
35112
35113 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
35114 New define_insn.
35115 (aarch64_be_st1<mode>): Likewise.
35116 (aarch_ld1<VALL:mode>): Define_expand modified.
35117 (aarch_st1<VALL:mode>): Likewise.
35118 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
35119 (UNSPEC_ST1): Likewise.
35120
35121 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
35122
35123 * config/microblaze/microblaze.md: Add trap insn and attribute
35124
35125 2014-01-23 Dodji Seketeli <dodji@redhat.com>
35126
35127 PR preprocessor/58580
35128 * input.h (location_get_source_line): Take an additional line_size
35129 parameter.
35130 (void diagnostics_file_cache_fini): Declare new function.
35131 * input.c (struct fcache): New type.
35132 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
35133 New static constants.
35134 (diagnostic_file_cache_init, total_lines_num)
35135 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
35136 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
35137 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
35138 (get_next_line, read_next_line, goto_next_line, read_line_num):
35139 New static function definitions.
35140 (diagnostic_file_cache_fini): New function.
35141 (location_get_source_line): Take an additional output line_len
35142 parameter. Re-write using lookup_or_add_file_to_cache_tab and
35143 read_line_num.
35144 * diagnostic.c (diagnostic_finish): Call
35145 diagnostic_file_cache_fini.
35146 (adjust_line): Take an additional input parameter for the length
35147 of the line, rather than calculating it with strlen.
35148 (diagnostic_show_locus): Adjust the use of
35149 location_get_source_line and adjust_line with respect to their new
35150 signature. While displaying a line now, do not stop at the first
35151 null byte. Rather, display the zero byte as a space and keep
35152 going until we reach the size of the line.
35153 * Makefile.in: Add vec.o to OBJS-libcommon
35154
35155 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
35156 Ilya Tocar <ilya.tocar@intel.com>
35157
35158 * config/i386/avx512fintrin.h (_mm512_kmov): New.
35159 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
35160 (__builtin_ia32_kmov16): Ditto.
35161 * config/i386/i386.md (UNSPEC_KMOV): New.
35162 (kmovw): Ditto.
35163
35164 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
35165
35166 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
35167 (_mm512_storeu_si512): Ditto.
35168
35169 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
35170
35171 PR target/52125
35172 * rtl.h (get_referenced_operands): Declare.
35173 * recog.c (get_referenced_operands): New function.
35174 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
35175 operands have been referenced when recording LO_SUM references.
35176
35177 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
35178
35179 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
35180
35181 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
35182
35183 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
35184 Enable for generic and recent AMD targets.
35185
35186 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
35187
35188 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
35189 ARG_SIZE note when adjustment was eliminated.
35190
35191 2014-01-22 Jeff Law <law@redhat.com>
35192
35193 PR tree-optimization/59597
35194 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
35195 in file. Accept new argument REGISTERING and use it to modify
35196 dump output appropriately.
35197 (register_jump_thread): Corresponding changes.
35198 (mark_threaded_blocks): Reinstate code to cancel unprofitable
35199 thread paths involving joiner blocks. Add code to dump cancelled
35200 jump threading paths.
35201
35202 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
35203
35204 PR rtl-optimization/59477
35205 * lra-constraints.c (inherit_in_ebb): Process call for living hard
35206 regs. Update reloads_num and potential_reload_hard_regs for all insns.
35207
35208 2014-01-22 Tom Tromey <tromey@redhat.com>
35209
35210 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
35211 PARAMS.
35212 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
35213
35214 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
35215
35216 PR rtl-optimization/59896
35217 * lra-constraints.c (process_alt_operands): Check unused note for
35218 matched operands of insn with no output reloads.
35219
35220 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
35221
35222 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
35223 (mips_move_from_gpr_cost): Likewise.
35224
35225 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
35226
35227 PR rtl-optimization/59858
35228 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
35229 ira_class_hard_regs_num.
35230 (process_alt_operands): Increase reject for dying matched operand.
35231
35232 2014-01-21 Jakub Jelinek <jakub@redhat.com>
35233
35234 PR target/59003
35235 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
35236 smaller than size, perform several stores or loads and stores
35237 at dst + count - size to store or copy all of size bytes, rather
35238 than just last modesize bytes.
35239
35240 2014-01-20 DJ Delorie <dj@redhat.com>
35241
35242 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
35243 that CLOBBERs are REGs before propogating their values.
35244
35245 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
35246
35247 PR middle-end/59789
35248 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
35249 (cgraph_inline_failed_type): New function.
35250 * cgraph.h (DEFCIFCODE): Add type.
35251 (cgraph_inline_failed_type_t): New enum.
35252 (cgraph_inline_failed_type): New prototype.
35253 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
35254 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
35255 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
35256 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
35257 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
35258 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
35259 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
35260 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
35261 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
35262 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
35263 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
35264 OPTIMIZATION_MISMATCH.
35265 * tree-inline.c (expand_call_inline): Emit errors during
35266 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
35267
35268 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
35269
35270 PR target/59685
35271 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
35272 mode attribute in insn output.
35273
35274 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
35275
35276 * output.h (output_constant): Delete.
35277 * varasm.c (output_constant): Make private.
35278
35279 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
35280
35281 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
35282
35283 2014-01-20 Jakub Jelinek <jakub@redhat.com>
35284
35285 PR middle-end/59860
35286 * tree.h (fold_builtin_strcat): New prototype.
35287 * builtins.c (fold_builtin_strcat): No longer static. Add len
35288 argument, if non-NULL, don't call c_strlen. Optimize
35289 directly into __builtin_memcpy instead of __builtin_strcpy.
35290 (fold_builtin_2): Adjust fold_builtin_strcat caller.
35291 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
35292
35293 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
35294
35295 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
35296 for SImode_address_operand operands, having only a REG argument.
35297
35298 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
35299
35300 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
35301 loader name using mbig-endian.
35302 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
35303
35304 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
35305
35306 * doc/invoke.texi (-march): Clarify documentation for AArch64.
35307 (-mtune): Likewise.
35308 (-mcpu): Likewise.
35309
35310 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
35311
35312 * config/aarch64/aarch64-protos.h
35313 (aarch64_cannot_change_mode_class_ptr): Declare.
35314 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
35315 aarch64_cannot_change_mode_class_ptr): New.
35316 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
35317 backend hook aarch64_cannot_change_mode_class.
35318
35319 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
35320
35321 * common/config/aarch64/aarch64-common.c
35322 (aarch64_handle_option): Don't handle any option order logic here.
35323 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
35324 selected_cpu, warn on architecture version mismatch.
35325 (aarch64_override_options): Fix parsing order for option strings.
35326
35327 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
35328 Iain Sandoe <iain@codesourcery.com>
35329
35330 PR bootstrap/59496
35331 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
35332 warning. Amend comment to reflect current functionality.
35333
35334 2014-01-20 Richard Biener <rguenther@suse.de>
35335
35336 PR middle-end/59860
35337 * builtins.c (fold_builtin_strcat): Remove case better handled
35338 by tree-ssa-strlen.c.
35339
35340 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
35341
35342 * config/aarch64/aarch64.opt
35343 (mcpu, march, mtune): Make case-insensitive.
35344
35345 2014-01-20 Jakub Jelinek <jakub@redhat.com>
35346
35347 PR target/59880
35348 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
35349 if operands[1] is a REG or ZERO_EXTEND of a REG.
35350
35351 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
35352
35353 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
35354
35355 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
35356
35357 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
35358 long non-pic millicode calls.
35359
35360 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
35361
35362 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
35363
35364 2014-01-19 Kito Cheng <kito@0xlab.org>
35365
35366 * builtins.c (expand_movstr): Check movstr expand done or fail.
35367
35368 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
35369 H.J. Lu <hongjiu.lu@intel.com>
35370
35371 PR target/59379
35372 * config/i386/i386.md (*lea<mode>): Zero-extend return register
35373 to DImode for zero-extended addresses.
35374
35375 2014-01-19 Jakub Jelinek <jakub@redhat.com>
35376
35377 PR rtl-optimization/57763
35378 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
35379 on the new indirect jump_insn and increment LABEL_NUSES (label).
35380
35381 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
35382
35383 PR bootstrap/59580
35384 PR bootstrap/59583
35385 * config.gcc (x86_archs): New variable.
35386 (x86_64_archs): Likewise.
35387 (x86_cpus): Likewise.
35388 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
35389 --with-arch/--with-cpu= options.
35390 Support --with-arch=/--with-cpu={nehalem,westmere,
35391 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
35392
35393 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
35394
35395 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
35396 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
35397
35398 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
35399
35400 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
35401
35402 2014-01-18 Jakub Jelinek <jakub@redhat.com>
35403
35404 PR target/58944
35405 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
35406 clear cpp_get_options (parse_in)->warn_unused_macros for
35407 ix86_target_macros_internal with cpp_define.
35408
35409 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
35410
35411 * jump.c (delete_related_insns): Keep (use (insn))s.
35412 * reorg.c (redundant_insn): Check for barriers too.
35413
35414 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
35415
35416 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
35417
35418 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
35419
35420 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
35421 call to $$dyncall when TARGET_LONG_CALLS is true.
35422
35423 2014-01-17 Jeff Law <law@redhat.com>
35424
35425 * ree.c (combine_set_extension): Temporarily disable test for
35426 changing number of hard registers.
35427
35428 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
35429
35430 PR middle-end/58125
35431 * ipa-inline-analysis.c (inline_free_summary):
35432 Do not free summary of aliases.
35433
35434 2014-01-17 Jakub Jelinek <jakub@redhat.com>
35435
35436 PR middle-end/59706
35437 * gimplify.c (gimplify_expr): Use create_tmp_var
35438 instead of create_tmp_var_raw. If cond doesn't have
35439 integral type, don't add the IFN_ANNOTATE builtin at all.
35440
35441 2014-01-17 Martin Jambor <mjambor@suse.cz>
35442
35443 PR ipa/59736
35444 * ipa-cp.c (prev_edge_clone): New variable.
35445 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
35446 Also resize prev_edge_clone vector.
35447 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
35448 (ipcp_edge_removal_hook): New function.
35449 (ipcp_driver): Register ipcp_edge_removal_hook.
35450
35451 2014-01-17 Andrew Pinski <apinski@cavium.com>
35452 Steve Ellcey <sellcey@mips.com>
35453
35454 PR target/59462
35455 * config/mips/mips.c (mips_print_operand): Check operand mode instead
35456 of operator mode.
35457
35458 2014-01-17 Jeff Law <law@redhat.com>
35459
35460 PR middle-end/57904
35461 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
35462 so that pass_ccp runs first.
35463
35464 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
35465
35466 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
35467 (ix86_adjust_cost): Use !TARGET_XXX.
35468 (do_reorder_for_imul): Likewise.
35469 (swap_top_of_ready_list): Likewise.
35470 (ix86_sched_reorder): Likewise.
35471
35472 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
35473
35474 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
35475 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
35476 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
35477 (intel_memset): New. Duplicate slm_memset.
35478 (intel_cost): New. Duplicate slm_cost.
35479 (m_INTEL): New macro.
35480 (processor_target_table): Add "intel".
35481 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
35482 with PROCESSOR_INTEL for "intel".
35483 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
35484 PROCESSOR_SILVERMONT.
35485 (ix86_issue_rate): Likewise.
35486 (ix86_adjust_cost): Likewise.
35487 (ia32_multipass_dfa_lookahead): Likewise.
35488 (swap_top_of_ready_list): Likewise.
35489 (ix86_sched_reorder): Likewise.
35490 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
35491 instead of TARGET_OPT_AGU.
35492 * config/i386/i386.h (TARGET_INTEL): New.
35493 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
35494 (processor_type): Add PROCESSOR_INTEL.
35495 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
35496 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
35497
35498 2014-01-17 Marek Polacek <polacek@redhat.com>
35499
35500 PR c/58346
35501 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
35502 size is zero.
35503
35504 2014-01-17 Richard Biener <rguenther@suse.de>
35505
35506 PR tree-optimization/46590
35507 * opts.c (default_options_table): Add entries for
35508 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
35509 all enabled at -O1 but not for -Og.
35510 * common.opt (fbranch-count-reg): Remove Init(1).
35511 (fmove-loop-invariants): Likewise.
35512 (ftree-pta): Likewise.
35513
35514 2014-01-17 Jakub Jelinek <jakub@redhat.com>
35515
35516 * config/i386/i386.c (ix86_data_alignment): For compatibility with
35517 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
35518 decls to at least the GCC 4.8 used alignments.
35519
35520 PR fortran/59440
35521 * tree-nested.c (convert_nonlocal_reference_stmt,
35522 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
35523 of GIMPLE_BIND stmts, adjust associated decls.
35524
35525 2014-01-17 Richard Biener <rguenther@suse.de>
35526
35527 PR tree-optimization/46590
35528 * vec.h (vec<>::bseach): New member function implementing
35529 binary search according to C89 bsearch.
35530 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
35531 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
35532 bitmap pointer again. Make accesses_in_loop a flat array.
35533 (mem_ref_obstack): New global.
35534 (outermost_indep_loop): Adjust for mem_ref->stored changes.
35535 (mark_ref_stored): Likewise.
35536 (ref_indep_loop_p_2): Likewise.
35537 (set_ref_stored_in_loop): New helper function.
35538 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
35539 (memref_free): Adjust.
35540 (record_mem_ref_loc): Simplify.
35541 (gather_mem_refs_stmt): Adjust.
35542 (sort_locs_in_loop_postorder_cmp): New function.
35543 (analyze_memory_references): Sort accesses_in_loop after
35544 loop postorder number.
35545 (find_ref_loc_in_loop_cmp): New function.
35546 (for_all_locs_in_loop): Find relevant cluster of locs in
35547 accesses_in_loop and iterate without recursion.
35548 (execute_sm): Avoid uninit warning.
35549 (struct ref_always_accessed): Simplify.
35550 (ref_always_accessed::operator ()): Likewise.
35551 (ref_always_accessed_p): Likewise.
35552 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
35553 loop postorder numbers here.
35554 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
35555 numbers.
35556
35557 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
35558
35559 PR c++/57945
35560 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
35561 on decls for which assemble_alias has been called.
35562
35563 2014-01-17 Nick Clifton <nickc@redhat.com>
35564
35565 * config/msp430/msp430.opt: (mcpu): New option.
35566 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
35567 (msp430_option_override): Parse target_cpu. If the MCU name
35568 matches a generic string, clear target_mcu.
35569 (msp430_attr): Allow numeric interrupt values up to 63.
35570 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
35571 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
35572 option.
35573 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
35574 Add mcpu matches.
35575 * config/msp430/msp430.md (popm): Use %J rather than %I.
35576 (addsi3): Use msp430_nonimmediate_operand for operand 2.
35577 (addhi_cy_i): Use immediate_operand for operand 2.
35578 * doc/invoke.texi: Document -mcpu option.
35579
35580 2014-01-17 Richard Biener <rguenther@suse.de>
35581
35582 PR rtl-optimization/38518
35583 * df.h (df_analyze_loop): Declare.
35584 * df-core.c: Include cfgloop.h.
35585 (df_analyze_1): Split out main part of df_analyze.
35586 (df_analyze): Adjust.
35587 (loop_inverted_post_order_compute): New function.
35588 (loop_post_order_compute): Likewise.
35589 (df_analyze_loop): New function avoiding whole-function
35590 postorder computes.
35591 * loop-invariant.c (find_defs): Use df_analyze_loop.
35592 (find_invariants): Adjust.
35593 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
35594
35595 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
35596
35597 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
35598 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
35599
35600 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
35601
35602 * ipa-ref.c (ipa_remove_stmt_references): Fix references
35603 traversal when removing references.
35604
35605 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
35606
35607 PR ipa/59775
35608 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
35609
35610 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
35611
35612 PR middle-end/56791
35613 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
35614 pushing a reload for an autoinc when we had previously reloaded an
35615 inner part of the address.
35616
35617 2014-01-16 Jakub Jelinek <jakub@redhat.com>
35618
35619 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
35620 field.
35621 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
35622 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
35623 when not giving up or versioning for alias only because of
35624 loop->safelen.
35625 (vect_analyze_data_ref_dependences): Set to true.
35626 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
35627 is a GIMPLE_PHI.
35628 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
35629 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
35630 to the condition.
35631
35632 PR middle-end/58344
35633 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
35634
35635 PR target/59839
35636 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
35637 operand 0 predicate for gathers, use a new pseudo as subtarget.
35638
35639 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
35640
35641 PR middle-end/59609
35642 * lra-constraints.c (process_alt_operands): Add printing debug info.
35643 Check absence of input/output reloads for matched operands too.
35644
35645 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
35646
35647 PR rtl-optimization/59835
35648 * ira.c (ira_init_register_move_cost): Increase cost for
35649 impossible modes.
35650
35651 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
35652
35653 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
35654
35655 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
35656
35657 PR target/59780
35658 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
35659 non-register objects. Use gen_(high/low)part more consistently.
35660 Fix assertions.
35661
35662 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
35663
35664 PR target/59844
35665 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
35666 endian support, remove tests for WORDS_BIG_ENDIAN.
35667 (p8_mfvsrd_3_<mode>): Likewise.
35668 (reload_gpr_from_vsx<mode>): Likewise.
35669 (reload_gpr_from_vsxsf): Likewise.
35670 (p8_mfvsrd_4_disf): Likewise.
35671
35672 2014-01-16 Richard Biener <rguenther@suse.de>
35673
35674 PR rtl-optimization/46590
35675 * lcm.c (compute_antinout_edge): Use postorder iteration.
35676 (compute_laterin): Use inverted postorder iteration.
35677
35678 2014-01-16 Nick Clifton <nickc@redhat.com>
35679
35680 PR middle-end/28865
35681 * varasm.c (output_constant): Return the number of bytes actually
35682 emitted.
35683 (output_constructor_array_range): Update the field size with the
35684 number of bytes emitted by output_constant.
35685 (output_constructor_regular_field): Likewise. Also do not
35686 complain if the total number of bytes emitted is now greater
35687 than the expected fieldpos.
35688 * output.h (output_constant): Update prototype and descriptive comment.
35689
35690 2014-01-16 Marek Polacek <polacek@redhat.com>
35691
35692 PR middle-end/59827
35693 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
35694 it is error_mark_node.
35695
35696 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
35697
35698 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
35699 VALID_AVX256_REG_OR_OI_MODE.
35700
35701 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
35702
35703 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
35704 current procedure should be profiled.
35705
35706 2014-01-15 Andrew Pinski <apinski@cavium.com>
35707
35708 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
35709 of moving from/to the STACK_REG register class.
35710
35711 2014-01-15 Richard Henderson <rth@redhat.com>
35712
35713 PR debug/54694
35714 * reginfo.c (global_regs_decl): Globalize.
35715 * rtl.h (global_regs_decl): Declare.
35716 * ira.c (do_reload): Diagnose frame_pointer_needed and it
35717 reserved via global_regs.
35718
35719 2014-01-15 Teresa Johnson <tejohnson@google.com>
35720
35721 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
35722
35723 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
35724
35725 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
35726 and vmulosh rather than call gen_vec_widen_smult_*.
35727 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
35728 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
35729 (vec_widen_smult_even_v16qi): Likewise.
35730 (vec_widen_umult_even_v8hi): Likewise.
35731 (vec_widen_smult_even_v8hi): Likewise.
35732 (vec_widen_umult_odd_v16qi): Likewise.
35733 (vec_widen_smult_odd_v16qi): Likewise.
35734 (vec_widen_umult_odd_v8hi): Likewise.
35735 (vec_widen_smult_odd_v8hi): Likewise.
35736 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
35737 vmuloub rather than call gen_vec_widen_umult_*.
35738 (vec_widen_umult_lo_v16qi): Likewise.
35739 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
35740 vmulosb rather than call gen_vec_widen_smult_*.
35741 (vec_widen_smult_lo_v16qi): Likewise.
35742 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
35743 rather than call gen_vec_widen_umult_*.
35744 (vec_widen_umult_lo_v8hi): Likewise.
35745 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
35746 rather than call gen_vec_widen_smult_*.
35747 (vec_widen_smult_lo_v8hi): Likewise.
35748
35749 2014-01-15 Jeff Law <law@redhat.com>
35750
35751 PR tree-optimization/59747
35752 * ree.c (find_and_remove_re): Properly handle case where a second
35753 eliminated extension requires widening a copy created for elimination
35754 of a prior extension.
35755 (combine_set_extension): Ensure that the number of hard regs needed
35756 for a destination register does not change when we widen it.
35757
35758 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
35759
35760 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
35761 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
35762 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
35763 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
35764 (avr-*-rtems*): Likewise.
35765 (bfin*-rtems*): Likewise.
35766 (moxie-*-rtems*): Likewise.
35767 (h8300-*-rtems*): Likewise.
35768 (i[34567]86-*-rtems*): Likewise.
35769 (lm32-*-rtems*): Likewise.
35770 (m32r-*-rtems*): Likewise.
35771 (m68k-*-rtems*): Likewise.
35772 (microblaze*-*-rtems*): Likewise.
35773 (mips*-*-rtems*): Likewise.
35774 (powerpc-*-rtems*): Likewise.
35775 (sh-*-rtems*): Likewise.
35776 (sparc-*-rtems*): Likewise.
35777 (sparc64-*-rtems*): Likewise.
35778 (v850-*-rtems*): Likewise.
35779 (m32c-*-rtems*): Likewise.
35780
35781 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
35782
35783 PR rtl-optimization/59511
35784 * ira.c (ira_init_register_move_cost): Use memory costs for some
35785 cases of register move cost calculations.
35786 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
35787 instead of BB frequency.
35788 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
35789 * lra-assigns.c (find_hard_regno_for): Ditto.
35790
35791 2014-01-15 Richard Biener <rguenther@suse.de>
35792
35793 PR tree-optimization/59822
35794 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
35795 (vectorizable_load): Use it to hoist defs of uses of invariant
35796 loads out of the loop.
35797
35798 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
35799 Kugan Vivekanandarajah <kuganv@linaro.org>
35800
35801 PR target/59695
35802 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
35803 truncation.
35804
35805 2014-01-15 Richard Biener <rguenther@suse.de>
35806
35807 PR rtl-optimization/59802
35808 * lcm.c (compute_available): Use inverted postorder to seed
35809 the initial worklist.
35810
35811 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35812
35813 PR target/59803
35814 * config/s390/s390.c (s390_preferred_reload_class): Don't return
35815 ADDR_REGS for invalid symrefs in non-PIC code.
35816
35817 2014-01-15 Jakub Jelinek <jakub@redhat.com>
35818
35819 PR other/58712
35820 * builtins.c (determine_block_size): Initialize *probable_max_size
35821 even if len_rtx is CONST_INT.
35822
35823 2014-01-14 Andrew Pinski <apinski@cavium.com>
35824
35825 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
35826 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
35827 (cortexa53_tunings): Likewise.
35828 (aarch64_sched_issue_rate): New function.
35829 (TARGET_SCHED_ISSUE_RATE): Define.
35830
35831 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
35832
35833 * ira-costs.c (find_costs_and_classes): Add missed
35834 ira_init_register_move_cost_if_necessary.
35835
35836 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
35837
35838 PR target/59787
35839 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
35840
35841 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
35842
35843 PR target/59794
35844 * config/i386/i386.c (type_natural_mode): Add a bool parameter
35845 to indicate if type is used for function return value. Warn ABI
35846 change if the vector mode isn't available for function return value.
35847 (ix86_function_arg_advance): Pass false to type_natural_mode.
35848 (ix86_function_arg): Likewise.
35849 (ix86_gimplify_va_arg): Likewise.
35850 (function_arg_32): Don't warn ABI change.
35851 (ix86_function_value): Pass true to type_natural_mode.
35852 (ix86_return_in_memory): Likewise.
35853 (ix86_struct_value_rtx): Removed.
35854 (TARGET_STRUCT_VALUE_RTX): Likewise.
35855
35856 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
35857
35858 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
35859 converting a conditional jump into a conditional return.
35860
35861 2014-01-14 Richard Biener <rguenther@suse.de>
35862
35863 PR tree-optimization/58921
35864 PR tree-optimization/59006
35865 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
35866 hoisting invariant stmts.
35867 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
35868 invariant loads on the preheader edge if possible.
35869
35870 2014-01-14 Joey Ye <joey.ye@arm.com>
35871
35872 * doc/plugin.texi (Building GCC plugins): Update to C++.
35873
35874 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
35875
35876 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
35877 (_mm_rcp28_round_ss): Ditto.
35878 (_mm_rsqrt28_round_sd): Ditto.
35879 (_mm_rsqrt28_round_ss): Ditto.
35880 (_mm_rcp28_sd): Ditto.
35881 (_mm_rcp28_ss): Ditto.
35882 (_mm_rsqrt28_sd): Ditto.
35883 (_mm_rsqrt28_ss): Ditto.
35884 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
35885 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
35886 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
35887 (IX86_BUILTIN_RCP28SD): Ditto.
35888 (IX86_BUILTIN_RCP28SS): Ditto.
35889 (IX86_BUILTIN_RSQRT28SD): Ditto.
35890 (IX86_BUILTIN_RSQRT28SS): Ditto.
35891 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
35892 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
35893 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
35894 (ix86_expand_special_args_builtin): Expand new FTYPE.
35895 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
35896 (srcp14<mode>): Make insn unary.
35897 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
35898 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
35899 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
35900 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
35901 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
35902 Fix rounding: make it SAE only.
35903 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
35904 Ditto.
35905 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
35906 Ditto.
35907 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
35908 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
35909 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
35910 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
35911 (round_saeonly_mask_scalar_operand4): Ditto.
35912 (round_saeonly_mask_scalar_op3): Ditto.
35913 (round_saeonly_mask_scalar_op4): Ditto.
35914
35915 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35916
35917 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
35918 Implement -maltivec=be for vec_insert and vec_extract.
35919
35920 2014-01-10 DJ Delorie <dj@redhat.com>
35921
35922 * config/msp430/msp430.md (call_internal): Don't allow memory
35923 references with SP as the base register.
35924 (call_value_internal): Likewise.
35925 * config/msp430/constraints.md (Yc): New. For memory references
35926 that don't use SP as a base register.
35927
35928 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
35929 "an integer without a # prefix"
35930 * config/msp430/msp430.md (epilogue_helper): Use it.
35931
35932 2014-01-13 Jakub Jelinek <jakub@redhat.com>
35933
35934 PR target/59617
35935 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
35936 AVX512F gather builtins.
35937 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
35938 on gather decls with INTEGER_TYPE masktype.
35939 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
35940 directly into the builtin rather than hoisting it before loop.
35941
35942 PR tree-optimization/59387
35943 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
35944 (scev_const_prop): If folded_casts and type has undefined overflow,
35945 use force_gimple_operand instead of force_gimple_operand_gsi and
35946 for each added stmt if it is assign with
35947 arith_code_with_undefined_signed_overflow, call
35948 rewrite_to_defined_overflow.
35949 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
35950 gimple-fold.h instead.
35951 (arith_code_with_undefined_signed_overflow,
35952 rewrite_to_defined_overflow): Moved to ...
35953 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
35954 rewrite_to_defined_overflow): ... here. No longer static.
35955 Include gimplify-me.h.
35956 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
35957 rewrite_to_defined_overflow): New prototypes.
35958
35959 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35960
35961 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
35962
35963 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
35964
35965 * builtins.c (get_object_alignment_2): Minor tweak.
35966 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
35967
35968 2014-01-13 Christian Bruel <christian.bruel@st.com>
35969
35970 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
35971 optimized non constant lengths.
35972
35973 2014-01-13 Jakub Jelinek <jakub@redhat.com>
35974
35975 PR libgomp/59194
35976 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
35977 load as __atomic_load_N if possible.
35978
35979 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
35980
35981 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
35982 target parameter.
35983 (rs6000_expand_builtin): Adjust call.
35984
35985 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
35986
35987 PR target/58115
35988 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
35989 * config/rs6000/rs6000.c: Include target-globals.h.
35990 (rs6000_set_current_function): Instead of doing target_reinit
35991 unconditionally, use save_target_globals_default_opts and
35992 restore_target_globals.
35993
35994 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
35995 FPSCR.
35996 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
35997 (rs6000_expand_builtin): Handle mffs and mtfsf.
35998 (rs6000_init_builtins): Define mffs and mtfsf.
35999 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
36000 (rs6000_mffs): New pattern.
36001 (rs6000_mtfsf): New pattern.
36002
36003 2014-01-11 Bin Cheng <bin.cheng@arm.com>
36004
36005 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
36006 Start narrowing with START. Apply candidate-use pair
36007 and check overall cost in narrowing.
36008 (iv_ca_prune): Pass new argument.
36009
36010 2014-01-10 Jeff Law <law@redhat.com>
36011
36012 PR middle-end/59743
36013 * ree.c (combine_reaching_defs): Ensure the defining statement
36014 occurs before the extension when optimizing extensions with
36015 different source and destination hard registers.
36016
36017 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
36018
36019 PR ipa/58585
36020 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
36021 vtables into the type inheritance graph.
36022
36023 2014-01-10 Jakub Jelinek <jakub@redhat.com>
36024
36025 PR rtl-optimization/59754
36026 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
36027 modes in the REGNO != REGNO case.
36028
36029 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36030
36031 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
36032
36033 2014-01-10 Jakub Jelinek <jakub@redhat.com>
36034
36035 PR tree-optimization/59745
36036 * tree-predcom.c (tree_predictive_commoning_loop): Call
36037 free_affine_expand_cache if giving up because components is NULL.
36038
36039 * target-globals.c (save_target_globals): Allocate < 4KB structs using
36040 GC in payload of target_globals struct instead of allocating them on
36041 the heap and the larger structs separately using GC.
36042 * target-globals.h (struct target_globals): Make regs, hard_regs,
36043 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
36044 of GTY((skip)) and change type to void *.
36045 (reset_target_globals): Cast loads from those fields to corresponding
36046 types.
36047
36048 2014-01-10 Steve Ellcey <sellcey@mips.com>
36049
36050 PR plugins/59335
36051 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
36052 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
36053 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
36054
36055 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
36056
36057 PR target/59744
36058 * aarch64-modes.def (CC_Zmode): New flags mode.
36059 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
36060 represents an equality.
36061 (aarch64_get_condition_code): Handle CC_Zmode.
36062 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
36063
36064 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
36065
36066 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
36067 extraction in good case.
36068
36069 2014-01-10 Richard Biener <rguenther@suse.de>
36070
36071 PR tree-optimization/59374
36072 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
36073 checking after SLP discovery. Mark stmts not participating
36074 in any SLP instance properly.
36075
36076 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36077
36078 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
36079 when handling a SET rtx.
36080
36081 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36082
36083 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
36084 (cortex-a57): Likewise.
36085 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
36086
36087 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36088
36089 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
36090 non-iwmmxt builtins.
36091
36092 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
36093
36094 PR ipa/58252
36095 PR ipa/59226
36096 * ipa-devirt.c record_target_from_binfo): Take as argument
36097 stack of binfos and lookup matching one for virtual inheritance.
36098 (possible_polymorphic_call_targets_1): Update.
36099
36100 2014-01-10 Huacai Chen <chenhc@lemote.com>
36101
36102 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
36103 kernel strings for Loongson-2E/2F/3A.
36104
36105 2014-01-10 Jakub Jelinek <jakub@redhat.com>
36106
36107 PR middle-end/59670
36108 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
36109 is_gimple_call before calling gimple_call_internal_p.
36110
36111 2014-01-09 Steve Ellcey <sellcey@mips.com>
36112
36113 * Makefile.in (TREE_FLOW_H): Remove.
36114 (TREE_SSA_H): Add file names from tree-flow.h.
36115 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
36116 * tree.h: Remove tree-flow.h reference.
36117 * hash-table.h: Remove tree-flow.h reference.
36118 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
36119 reference with tree-ssa-loop.h.
36120
36121 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36122
36123 * doc/invoke.texi: Add -maltivec={be,le} options, and document
36124 default element-order behavior for -maltivec.
36125 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
36126 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
36127 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
36128 when targeting big endian, at least for now.
36129 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
36130
36131 2014-01-09 Jakub Jelinek <jakub@redhat.com>
36132
36133 PR middle-end/47735
36134 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
36135 var satisfies use_register_for_decl, just take into account type
36136 alignment, rather than decl alignment.
36137
36138 PR tree-optimization/59622
36139 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
36140 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
36141 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
36142 Don't devirtualize for inplace at all. For targets.length () == 1,
36143 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
36144
36145 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
36146
36147 * config/i386/i386.md (cpu): Remove the unused btver1.
36148
36149 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
36150
36151 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
36152
36153 2014-01-09 Jakub Jelinek <jakub@redhat.com>
36154
36155 PR target/58115
36156 * tree-core.h (struct target_globals): New forward declaration.
36157 (struct tree_target_option): Add globals field.
36158 * tree.h (TREE_TARGET_GLOBALS): Define.
36159 (prepare_target_option_nodes_for_pch): New prototype.
36160 * target-globals.h (struct target_globals): Define even if
36161 !SWITCHABLE_TARGET.
36162 * tree.c (prepare_target_option_node_for_pch,
36163 prepare_target_option_nodes_for_pch): New functions.
36164 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
36165 * config/i386/i386.c: Include target-globals.h.
36166 (ix86_set_current_function): Instead of doing target_reinit
36167 unconditionally, use save_target_globals_default_opts and
36168 restore_target_globals.
36169
36170 2014-01-09 Richard Biener <rguenther@suse.de>
36171
36172 PR tree-optimization/59715
36173 * tree-cfg.h (split_critical_edges): Declare.
36174 * tree-cfg.c (split_critical_edges): Export.
36175 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
36176
36177 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
36178
36179 * cfgexpand.c (expand_stack_vars): Optionally disable
36180 asan stack protection.
36181 (expand_used_vars): Likewise.
36182 (partition_stack_vars): Likewise.
36183 * asan.c (asan_emit_stack_protection): Optionally disable
36184 after return stack usage.
36185 (instrument_derefs): Optionally disable memory access instrumentation.
36186 (instrument_builtin_call): Likewise.
36187 (instrument_strlen_call): Likewise.
36188 (asan_protect_global): Optionally disable global variables protection.
36189 * doc/invoke.texi: Added doc for new options.
36190 * params.def: Added new options.
36191 * params.h: Likewise.
36192
36193 2014-01-09 Jakub Jelinek <jakub@redhat.com>
36194
36195 PR rtl-optimization/59724
36196 * ifcvt.c (cond_exec_process_if_block): Don't call
36197 flow_find_head_matching_sequence with 0 longest_match.
36198 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
36199 non-active insns if !stop_after.
36200 (try_head_merge_bb): Revert 2014-01-07 changes.
36201
36202 2014-01-08 Jeff Law <law@redhat.com>
36203
36204 * ree.c (get_sub_rtx): New function, extracted from...
36205 (merge_def_and_ext): Here.
36206 (combine_reaching_defs): Use get_sub_rtx.
36207
36208 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
36209
36210 * cgraph.h (varpool_variable_node): Do not choke on null node.
36211
36212 2014-01-08 Catherine Moore <clm@codesourcery.com>
36213
36214 * config/mips/mips.md (simple_return): Attempt to use JRC
36215 for microMIPS.
36216 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
36217
36218 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
36219
36220 PR rtl-optimization/59137
36221 * reorg.c (steal_delay_list_from_target): Call update_block for
36222 elided insns.
36223 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
36224
36225 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36226
36227 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
36228 two duplicate entries.
36229
36230 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
36231
36232 Revert:
36233 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
36234
36235 * config/mips/mips.c (mips_truncated_op_cost): New function.
36236 (mips_rtx_costs): Adjust test for BADDU.
36237 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
36238
36239 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
36240
36241 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
36242 (*baddu_si): ...this new pattern.
36243
36244 2014-01-08 Jakub Jelinek <jakub@redhat.com>
36245
36246 PR ipa/59722
36247 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
36248
36249 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
36250
36251 PR middle-end/57748
36252 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
36253 inner_reference_p.
36254 (expand_expr, expand_normal): Adjust.
36255 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
36256 inner_reference_p. Use inner_reference_p to expand inner references.
36257 (store_expr): Adjust.
36258 * cfgexpand.c (expand_call_stmt): Adjust.
36259
36260 2014-01-08 Rong Xu <xur@google.com>
36261
36262 * gcov-io.c (gcov_var): Move from gcov-io.h.
36263 (gcov_position): Ditto.
36264 (gcov_is_error): Ditto.
36265 (gcov_rewrite): Ditto.
36266 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
36267 only part to libgcc/libgcov.h.
36268
36269 2014-01-08 Marek Polacek <polacek@redhat.com>
36270
36271 PR middle-end/59669
36272 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
36273
36274 2014-01-08 Marek Polacek <polacek@redhat.com>
36275
36276 PR sanitizer/59667
36277 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
36278
36279 2014-01-08 Jakub Jelinek <jakub@redhat.com>
36280
36281 PR rtl-optimization/59649
36282 * stor-layout.c (get_mode_bounds): For BImode return
36283 0 and STORE_FLAG_VALUE.
36284
36285 2014-01-08 Richard Biener <rguenther@suse.de>
36286
36287 PR middle-end/59630
36288 * gimple.h (is_gimple_builtin_call): Remove.
36289 (gimple_builtin_call_types_compatible_p): New.
36290 (gimple_call_builtin_p): New overload.
36291 * gimple.c (is_gimple_builtin_call): Remove.
36292 (validate_call): Rename to ...
36293 (gimple_builtin_call_types_compatible_p): ... this and export. Also
36294 check return types.
36295 (validate_type): New static function.
36296 (gimple_call_builtin_p): New overload and adjust.
36297 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
36298 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
36299 (gimple_fold_stmt_to_constant_1): Likewise.
36300 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
36301
36302 2014-01-08 Richard Biener <rguenther@suse.de>
36303
36304 PR middle-end/59471
36305 * gimplify.c (gimplify_expr): Gimplify register-register type
36306 VIEW_CONVERT_EXPRs to separate stmts.
36307
36308 2014-01-07 Jeff Law <law@redhat.com>
36309
36310 PR middle-end/53623
36311 * ree.c (combine_set_extension): Handle case where source
36312 and destination registers in an extension insn are different.
36313 (combine_reaching_defs): Allow source and destination registers
36314 in extension to be different under limited circumstances.
36315 (add_removable_extension): Remove restriction that the
36316 source and destination registers in the extension are the same.
36317 (find_and_remove_re): Emit a copy from the extension's
36318 destination to its source after the defining insn if
36319 the source and destination registers are different.
36320
36321 PR middle-end/59285
36322 * ifcvt.c (merge_if_block): If we are merging a block with more than
36323 one successor with a block with no successors, remove any BARRIER
36324 after the second block.
36325
36326 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
36327
36328 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
36329
36330 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
36331
36332 PR target/59652
36333 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
36334 for 14-bit register offsets when INT14_OK_STRICT is false.
36335
36336 2014-01-07 Roland Stigge <stigge@antcom.de>
36337 Michael Meissner <meissner@linux.vnet.ibm.com>
36338
36339 PR 57386/target
36340 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
36341 Only check TFmode for SPE constants. Don't check TImode or TDmode.
36342
36343 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
36344
36345 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
36346 -mcpu.
36347
36348 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
36349
36350 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
36351 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
36352 rtx is const0_rtx or not.
36353
36354 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
36355
36356 PR target/58115
36357 * target-globals.c (save_target_globals): Remove this_fn_optab
36358 handling.
36359 * toplev.c: Include optabs.h.
36360 (target_reinit): Temporarily restore the global options if another
36361 set of options are in force.
36362
36363 2014-01-07 Jakub Jelinek <jakub@redhat.com>
36364
36365 PR rtl-optimization/58668
36366 * cfgcleanup.c (flow_find_cross_jump): Don't count
36367 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
36368 to determine what is counted.
36369 (flow_find_head_matching_sequence): Use active_insn_p to determine
36370 what is counted.
36371 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
36372 counting change.
36373 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
36374 determine what is counted.
36375
36376 PR tree-optimization/59643
36377 * tree-predcom.c (split_data_refs_to_components): If one dr is
36378 read and one write, determine_offset fails and the write isn't
36379 in the bad component, just put the read into the bad component.
36380
36381 2014-01-07 Mike Stump <mikestump@comcast.net>
36382 Jakub Jelinek <jakub@redhat.com>
36383
36384 PR pch/59436
36385 * tree-core.h (struct tree_optimization_option): Change optabs
36386 type from unsigned char * to void *.
36387 * optabs.c (init_tree_optimization_optabs): Adjust
36388 TREE_OPTIMIZATION_OPTABS initialization.
36389
36390 2014-01-06 Jakub Jelinek <jakub@redhat.com>
36391
36392 PR target/59644
36393 * config/i386/i386.h (struct machine_function): Add
36394 no_drap_save_restore field.
36395 * config/i386/i386.c (ix86_save_reg): Use
36396 !cfun->machine->no_drap_save_restore instead of
36397 crtl->stack_realign_needed.
36398 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
36399 this function clears frame_pointer_needed. Set
36400 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
36401 and DRAP reg is needed.
36402
36403 2014-01-06 Marek Polacek <polacek@redhat.com>
36404
36405 PR c/57773
36406 * doc/implement-c.texi: Mention that other integer types are
36407 permitted as bit-field types in strictly conforming mode.
36408
36409 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
36410
36411 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
36412 is newly allocated.
36413
36414 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
36415
36416 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
36417
36418 2014-01-06 Martin Jambor <mjambor@suse.cz>
36419
36420 PR ipa/59008
36421 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
36422 to int.
36423 * ipa-prop.c (ipa_print_node_params): Fix indentation.
36424
36425 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
36426
36427 PR debug/59350
36428 PR debug/59510
36429 * var-tracking.c (add_stores): Preserve the value of the source even if
36430 we don't record the store.
36431
36432 2014-01-06 Terry Guo <terry.guo@arm.com>
36433
36434 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
36435
36436 2014-01-05 Iain Sandoe <iain@codesourcery.com>
36437
36438 PR bootstrap/59541
36439 * config/darwin.c (darwin_function_section): Adjust return values to
36440 correspond to optimisation changes made in r206070.
36441
36442 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
36443
36444 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
36445 from prefetch_block tune setting.
36446 (nocona_cost): Correct size of prefetch block to 64.
36447
36448 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
36449
36450 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
36451 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
36452 used to save the static chain register in the computation of the offset
36453 from which the FP registers need to be restored.
36454
36455 2014-01-04 Jakub Jelinek <jakub@redhat.com>
36456
36457 PR tree-optimization/59519
36458 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
36459 ICE if get_current_def (current_new_name) is already non-NULL, as long
36460 as it is a phi result of some other phi in *new_exit_bb that has
36461 the same argument.
36462
36463 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
36464 or vmovdqu* for misaligned_operand.
36465 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
36466 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
36467 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
36468 aligned_mem for AVX512F masked aligned load and store builtins and for
36469 non-temporal moves.
36470
36471 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
36472
36473 PR tree-optimization/59651
36474 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
36475 Address range for negative step should be added by TYPE_SIZE_UNIT.
36476
36477 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
36478
36479 * config/m68k/m68k.c (handle_move_double): Handle pushes with
36480 overlapping registers also for registers other than the stack pointer.
36481
36482 2014-01-03 Marek Polacek <polacek@redhat.com>
36483
36484 PR other/59661
36485 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
36486 __builtin_FILE.
36487
36488 2014-01-03 Jakub Jelinek <jakub@redhat.com>
36489
36490 PR target/59625
36491 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
36492 asm goto as jump.
36493
36494 * config/i386/i386.md (MODE_SIZE): New mode attribute.
36495 (push splitter): Use <P:MODE_SIZE> instead of
36496 GET_MODE_SIZE (<P:MODE>mode).
36497 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
36498 (mov -1, reg peephole2): Likewise.
36499 * config/i386/sse.md (*mov<mode>_internal,
36500 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
36501 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
36502 *<code><mode>3, *andnot<mode>3<mask_name>,
36503 <mask_codefor><code><mode>3<mask_name>): Likewise.
36504 * config/i386/subst.md (mask_mode512bit_condition,
36505 sd_mask_mode512bit_condition): Likewise.
36506
36507 2014-01-02 Xinliang David Li <davidxl@google.com>
36508
36509 PR tree-optimization/59303
36510 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
36511 (dump_predicates): Better output format.
36512 (pred_equal_p): New function.
36513 (is_neq_relop_p): Ditto.
36514 (is_neq_zero_form_p): Ditto.
36515 (pred_expr_equal_p): Ditto.
36516 (pred_neg_p): Ditto.
36517 (simplify_pred): Ditto.
36518 (simplify_preds_2): Ditto.
36519 (simplify_preds_3): Ditto.
36520 (simplify_preds_4): Ditto.
36521 (simplify_preds): Ditto.
36522 (push_pred): Ditto.
36523 (push_to_worklist): Ditto.
36524 (get_pred_info_from_cmp): Ditto.
36525 (is_degenerated_phi): Ditto.
36526 (normalize_one_pred_1): Ditto.
36527 (normalize_one_pred): Ditto.
36528 (normalize_one_pred_chain): Ditto.
36529 (normalize_preds): Ditto.
36530 (normalize_cond_1): Remove function.
36531 (normalize_cond): Ditto.
36532 (is_gcond_subset_of): Ditto.
36533 (is_subset_of_any): Ditto.
36534 (is_or_set_subset_of): Ditto.
36535 (is_and_set_subset_of): Ditto.
36536 (is_norm_cond_subset_of): Ditto.
36537 (pred_chain_length_cmp): Ditto.
36538 (convert_control_dep_chain_into_preds): Type change.
36539 (find_predicates): Ditto.
36540 (find_def_preds): Ditto.
36541 (destroy_predicates_vecs): Ditto.
36542 (find_matching_predicates_in_rest_chains): Ditto.
36543 (use_pred_not_overlap_with_undef_path_pred): Ditto.
36544 (is_pred_expr_subset): Ditto.
36545 (is_pred_chain_subset_of): Ditto.
36546 (is_included_in): Ditto.
36547 (is_superset_of): Ditto.
36548
36549 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
36550
36551 Update copyright years.
36552
36553 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
36554
36555 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
36556 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
36557 config/arc/arc.md, config/arc/arc.opt,
36558 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
36559 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
36560 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
36561 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
36562 config/linux-protos.h, config/linux.c, config/winnt-c.c,
36563 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
36564 vtable-verify.c, vtable-verify.h: Use the standard form for the
36565 copyright notice.
36566
36567 2014-01-02 Tobias Burnus <burnus@net-b.de>
36568
36569 * gcc.c (process_command): Update copyright notice dates.
36570 * gcov-dump.c: Ditto.
36571 * gcov.c: Ditto.
36572 * doc/cpp.texi: Bump @copying's copyright year.
36573 * doc/cppinternals.texi: Ditto.
36574 * doc/gcc.texi: Ditto.
36575 * doc/gccint.texi: Ditto.
36576 * doc/gcov.texi: Ditto.
36577 * doc/install.texi: Ditto.
36578 * doc/invoke.texi: Ditto.
36579
36580 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
36581
36582 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
36583
36584 2014-01-01 Jakub Jelinek <jakub@redhat.com>
36585
36586 * config/i386/sse.md (*mov<mode>_internal): Guard
36587 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
36588
36589 PR rtl-optimization/59647
36590 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
36591 new_rtx into UNSIGNED_FLOAT rtxes.
36592 \f
36593 Copyright (C) 2014 Free Software Foundation, Inc.
36594
36595 Copying and distribution of this file, with or without modification,
36596 are permitted in any medium without royalty provided the copyright
36597 notice and this notice are preserved.