1 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
3 * config/i386/i386.c (ix86_loop_memcount): Delete.
4 (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
6 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
8 * config/i386/i386.c (find_constant_1): Delete.
9 (find_constant): Use FOR_EACH_SUBRTX.
11 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
13 * config/i386/i386.c (extended_reg_mentioned_1): Delete.
14 (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
16 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
18 * config/i386/i386.c: Include rtl-iter.h
19 (ix86_check_avx256_register): Take a const_rtx and return a bool.
20 (ix86_check_avx256_stores): Update call accordingly.
21 (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
22 (ix86_avx_u128_mode_needed): Likewise. Use FOR_EACH_SUBRTX.
24 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
26 * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
27 Take an rtx and return a bool.
28 * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
29 Use FOR_EACH_SUBRTX_VAR.
30 * config/alpha/predicates.md (some_small_symbolic_operand): Update
33 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
35 * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
37 * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
38 (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX. Return a bool.
40 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
42 * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
43 (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
45 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
47 * config/alpha/alpha.c: Include rtl-iter.h.
48 (split_small_symbolic_operand_1): Delete.
49 (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
51 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
53 * config/s390/s390.c: Include rtl-iter.h.
55 (s390_loop_unroll_adjust): Only iterate over patterns.
58 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
60 * config/spu/spu.c: Include rtl-iter.h
61 (ea_symbol_ref): Replace with...
62 (ea_symbol_ref_p): ...this new function.
63 (spu_legitimate_address_p): Update call accordingly.
64 (spu_legitimate_constant_p): Likewise. Use FOR_EACH_SUBRTX.
66 2014-10-27 Phil Muldoon <pmuldoon@redhat.com>
67 Tom Tromey <tromey@redhat.com>
69 * aclocal.m4, configure: Rebuild.
70 * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
71 * configure.ac: Use GCC_ENABLE_PLUGINS.
72 * stor-layout.c (finish_bitfield_layout): Now public. Change
73 argument type to 'tree'.
74 (finish_record_layout): Update.
75 * stor-layout.h (finish_bitfield_layout): Declare.
77 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
79 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
80 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
81 Restore, enable for bigendian, update to use __builtin..._scal...
83 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
85 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
86 reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
87 (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
88 reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
90 * config/aarch64/aarch64-simd.md
91 (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
92 (reduc_<maxmin_uns>_internal<mode>): ...this.
93 (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
94 (reduc_<maxmin_uns>_scal_<mode>): New (*2).
96 (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
97 (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
98 (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
100 * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
101 vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
102 vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
103 vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
104 vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
105 vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
106 vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
107 __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
109 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
111 * config/aarch64/aarch64-simd-builtins.def
112 (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
114 (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
116 * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
117 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
119 (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
120 (aarch64_reduc_plus_internal<mode>): ...this.
122 (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
123 (aarch64_reduc_plus_internalv2si): ...this.
125 (reduc_splus_<mode>/V2F): Rename to...
126 (aarch64_reduc_plus_internal<mode>): ...this.
128 * config/aarch64/iterators.md
129 (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
131 (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
133 * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
134 vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
135 vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
136 vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
137 __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
139 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
141 PR tree-optimization/61114
142 * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
143 optabs, and note in reduc_[us](plus|min|max) to prefer the former.
145 * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
146 back to old reduc_... + BIT_FIELD_REF only if not.
148 * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
149 return the reduce-to-scalar (reduc_..._scal) optab.
150 (scalar_reduc_to_vector): New.
152 * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
153 reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
156 * optabs.h (scalar_reduc_to_vector): Declare.
158 * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
159 to either scalar or vector.
161 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
163 PR tree-optimization/61114
164 * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
165 extract_bit_field around optab result.
167 * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
170 * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
171 for REDUC_{MIN,MAX,PLUS}_EXPR.
173 * tree-vect-loop.c (vect_analyze_loop): Update comment.
174 (vect_create_epilog_for_reduction): For direct vector reduction, use
175 result of tree code directly without extract_bit_field.
177 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
180 2014-10-27 Andrew MacLeod <amacleod@redhat.com>
182 * basic-block.h: Remove all includes.
183 (enum profile_status_d, struct control_flow_graph): Move to cfg.h
184 * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
185 * Makefile.in (GTFILES): Add cfg.h to list.
186 * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
187 * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
188 * genconditions.c (write_header): Add predict.h and basic-block.h to
190 * genemit.c (main): Ditto.
191 * genpreds.c (write_insn_preds_c): Ditto.
192 * genrecog.c (write_header): Ditto.
193 * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
195 * alias.c: Adjust include files.
197 * auto-inc-dec.c: Ditto.
198 * auto-profile.c: Ditto.
199 * bb-reorder.c: Ditto.
202 * caller-save.c: Ditto.
207 * cfgcleanup.c: Ditto.
208 * cfgexpand.c: Ditto.
211 * cfgloopanal.c: Ditto.
212 * cfgloopmanip.c: Ditto.
214 * cgraphbuild.c: Ditto.
215 * cgraphclones.c: Ditto.
216 * cgraphunit.c: Ditto.
217 * combine-stack-adj.c: Ditto.
219 * compare-elim.c: Ditto.
224 * data-streamer-in.c: Ditto.
225 * data-streamer-out.c: Ditto.
226 * data-streamer.c: Ditto.
231 * df-problems.c: Ditto.
235 * dominance.c: Ditto.
238 * dwarf2cfi.c: Ditto.
240 * et-forest.c: Ditto.
245 * fold-const.c: Ditto.
248 * gcc-plugin.h: Ditto.
250 * generic-match-head.c: Ditto.
252 * gimple-builder.c: Ditto.
253 * gimple-expr.c: Ditto.
254 * gimple-fold.c: Ditto.
255 * gimple-iterator.c: Ditto.
256 * gimple-low.c: Ditto.
257 * gimple-match-head.c: Ditto.
258 * gimple-pretty-print.c: Ditto.
259 * gimple-ssa-isolate-paths.c: Ditto.
260 * gimple-ssa-strength-reduction.c: Ditto.
261 * gimple-streamer-in.c: Ditto.
262 * gimple-streamer-out.c: Ditto.
263 * gimple-streamer.h: Ditto.
264 * gimple-walk.c: Ditto.
266 * gimplify-me.c: Ditto.
269 * graphite-blocking.c: Ditto.
270 * graphite-clast-to-gimple.c: Ditto.
271 * graphite-dependences.c: Ditto.
272 * graphite-interchange.c: Ditto.
273 * graphite-isl-ast-to-gimple.c: Ditto.
274 * graphite-optimize-isl.c: Ditto.
275 * graphite-poly.c: Ditto.
276 * graphite-scop-detection.c: Ditto.
277 * graphite-sese-to-poly.c: Ditto.
279 * haifa-sched.c: Ditto.
280 * hw-doloop.c: Ditto.
282 * init-regs.c: Ditto.
283 * internal-fn.c: Ditto.
285 * ipa-devirt.c: Ditto.
286 * ipa-icf-gimple.c: Ditto.
288 * ipa-inline-analysis.c: Ditto.
289 * ipa-inline.c: Ditto.
290 * ipa-polymorphic-call.c: Ditto.
291 * ipa-profile.c: Ditto.
293 * ipa-pure-const.c: Ditto.
294 * ipa-reference.c: Ditto.
295 * ipa-split.c: Ditto.
296 * ipa-utils.c: Ditto.
298 * ira-build.c: Ditto.
299 * ira-color.c: Ditto.
300 * ira-conflicts.c: Ditto.
301 * ira-costs.c: Ditto.
303 * ira-lives.c: Ditto.
307 * loop-doloop.c: Ditto.
308 * loop-init.c: Ditto.
309 * loop-invariant.c: Ditto.
311 * loop-unroll.c: Ditto.
312 * lower-subreg.c: Ditto.
313 * lra-assigns.c: Ditto.
314 * lra-coalesce.c: Ditto.
315 * lra-constraints.c: Ditto.
316 * lra-eliminations.c: Ditto.
317 * lra-lives.c: Ditto.
318 * lra-spills.c: Ditto.
320 * lto-cgraph.c: Ditto.
321 * lto-compress.c: Ditto.
323 * lto-section-in.c: Ditto.
324 * lto-section-out.c: Ditto.
325 * lto-streamer-in.c: Ditto.
326 * lto-streamer-out.c: Ditto.
327 * lto-streamer.c: Ditto.
329 * mode-switching.c: Ditto.
330 * modulo-sched.c: Ditto.
333 * opts-global.c: Ditto.
335 * postreload-gcse.c: Ditto.
336 * postreload.c: Ditto.
338 * print-rtl.c: Ditto.
342 * reg-stack.c: Ditto.
346 * regrename.c: Ditto.
353 * sched-deps.c: Ditto.
354 * sched-ebb.c: Ditto.
355 * sched-int.h: Ditto.
356 * sched-rgn.c: Ditto.
357 * sched-vis.c: Ditto.
358 * sel-sched-dump.c: Ditto.
359 * sel-sched-ir.c: Ditto.
360 * sel-sched-ir.h: Ditto.
361 * sel-sched.c: Ditto.
363 * shrink-wrap.c: Ditto.
364 * stack-ptr-mod.c: Ditto.
366 * store-motion.c: Ditto.
370 * trans-mem.c: Ditto.
371 * tree-affine.c: Ditto.
372 * tree-call-cdce.c: Ditto.
374 * tree-cfgcleanup.c: Ditto.
375 * tree-chrec.c: Ditto.
376 * tree-complex.c: Ditto.
377 * tree-data-ref.c: Ditto.
380 * tree-emutls.c: Ditto.
381 * tree-if-conv.c: Ditto.
382 * tree-inline.c: Ditto.
383 * tree-into-ssa.c: Ditto.
384 * tree-loop-distribution.c: Ditto.
385 * tree-nested.c: Ditto.
387 * tree-object-size.c: Ditto.
388 * tree-outof-ssa.c: Ditto.
389 * tree-parloops.c: Ditto.
390 * tree-phinodes.c: Ditto.
391 * tree-predcom.c: Ditto.
392 * tree-pretty-print.c: Ditto.
393 * tree-profile.c: Ditto.
394 * tree-scalar-evolution.c: Ditto.
396 * tree-ssa-address.c: Ditto.
397 * tree-ssa-alias.c: Ditto.
398 * tree-ssa-ccp.c: Ditto.
399 * tree-ssa-coalesce.c: Ditto.
400 * tree-ssa-copy.c: Ditto.
401 * tree-ssa-copyrename.c: Ditto.
402 * tree-ssa-dce.c: Ditto.
403 * tree-ssa-dom.c: Ditto.
404 * tree-ssa-dse.c: Ditto.
405 * tree-ssa-forwprop.c: Ditto.
406 * tree-ssa-ifcombine.c: Ditto.
407 * tree-ssa-live.c: Ditto.
408 * tree-ssa-loop-ch.c: Ditto.
409 * tree-ssa-loop-im.c: Ditto.
410 * tree-ssa-loop-ivcanon.c: Ditto.
411 * tree-ssa-loop-ivopts.c: Ditto.
412 * tree-ssa-loop-manip.c: Ditto.
413 * tree-ssa-loop-niter.c: Ditto.
414 * tree-ssa-loop-prefetch.c: Ditto.
415 * tree-ssa-loop-unswitch.c: Ditto.
416 * tree-ssa-loop.c: Ditto.
417 * tree-ssa-math-opts.c: Ditto.
418 * tree-ssa-operands.c: Ditto.
419 * tree-ssa-phiopt.c: Ditto.
420 * tree-ssa-phiprop.c: Ditto.
421 * tree-ssa-pre.c: Ditto.
422 * tree-ssa-propagate.c: Ditto.
423 * tree-ssa-reassoc.c: Ditto.
424 * tree-ssa-sccvn.c: Ditto.
425 * tree-ssa-sink.c: Ditto.
426 * tree-ssa-strlen.c: Ditto.
427 * tree-ssa-structalias.c: Ditto.
428 * tree-ssa-tail-merge.c: Ditto.
429 * tree-ssa-ter.c: Ditto.
430 * tree-ssa-threadedge.c: Ditto.
431 * tree-ssa-threadupdate.c: Ditto.
432 * tree-ssa-uncprop.c: Ditto.
433 * tree-ssa-uninit.c: Ditto.
435 * tree-ssanames.c: Ditto.
436 * tree-stdarg.c: Ditto.
437 * tree-streamer-in.c: Ditto.
438 * tree-streamer-out.c: Ditto.
439 * tree-streamer.c: Ditto.
440 * tree-switch-conversion.c: Ditto.
441 * tree-tailcall.c: Ditto.
442 * tree-vect-data-refs.c: Ditto.
443 * tree-vect-generic.c: Ditto.
444 * tree-vect-loop-manip.c: Ditto.
445 * tree-vect-loop.c: Ditto.
446 * tree-vect-patterns.c: Ditto.
447 * tree-vect-slp.c: Ditto.
448 * tree-vect-stmts.c: Ditto.
449 * tree-vectorizer.c: Ditto.
456 * value-prof.c: Ditto.
457 * var-tracking.c: Ditto.
460 * vtable-verify.c: Ditto.
462 * config/aarch64/aarch64-builtins.c: Ditto.
463 * config/aarch64/aarch64.c: Ditto.
464 * config/alpha/alpha.c: Ditto.
465 * config/arc/arc.c: Ditto.
466 * config/arm/arm.c: Ditto.
467 * config/avr/avr.c: Ditto.
468 * config/bfin/bfin.c: Ditto.
469 * config/c6x/c6x.c: Ditto.
470 * config/cr16/cr16.c: Ditto.
471 * config/cris/cris.c: Ditto.
472 * config/darwin-c.c: Ditto.
473 * config/darwin.c: Ditto.
474 * config/epiphany/epiphany.c: Ditto.
475 * config/epiphany/mode-switch-use.c: Ditto.
476 * config/epiphany/resolve-sw-modes.c: Ditto.
477 * config/fr30/fr30.c: Ditto.
478 * config/frv/frv.c: Ditto.
479 * config/h8300/h8300.c: Ditto.
480 * config/i386/i386.c: Ditto.
481 * config/i386/winnt.c: Ditto.
482 * config/ia64/ia64.c: Ditto.
483 * config/iq2000/iq2000.c: Ditto.
484 * config/lm32/lm32.c: Ditto.
485 * config/m32c/m32c.c: Ditto.
486 * config/m32r/m32r.c: Ditto.
487 * config/m68k/m68k.c: Ditto.
488 * config/mcore/mcore.c: Ditto.
489 * config/mep/mep.c: Ditto.
490 * config/microblaze/microblaze.c: Ditto.
491 * config/mips/mips.c: Ditto.
492 * config/mmix/mmix.c: Ditto.
493 * config/mn10300/mn10300.c: Ditto.
494 * config/moxie/moxie.c: Ditto.
495 * config/msp430/msp430.c: Ditto.
496 * config/nds32/nds32-cost.c: Ditto.
497 * config/nds32/nds32-fp-as-gp.c: Ditto.
498 * config/nds32/nds32-intrinsic.c: Ditto.
499 * config/nds32/nds32-isr.c: Ditto.
500 * config/nds32/nds32-md-auxiliary.c: Ditto.
501 * config/nds32/nds32-memory-manipulation.c: Ditto.
502 * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
503 * config/nds32/nds32-predicates.c: Ditto.
504 * config/nds32/nds32.c: Ditto.
505 * config/nios2/nios2.c: Ditto.
506 * config/pa/pa.c: Ditto.
507 * config/pdp11/pdp11.c: Ditto.
508 * config/rl78/rl78.c: Ditto.
509 * config/rs6000/rs6000.c: Ditto.
510 * config/rx/rx.c: Ditto.
511 * config/s390/s390.c: Ditto.
512 * config/sh/sh-mem.cc: Ditto.
513 * config/sh/sh.c: Ditto.
514 * config/sh/sh_optimize_sett_clrt.cc: Ditto.
515 * config/sh/sh_treg_combine.cc: Ditto.
516 * config/sparc/sparc.c: Ditto.
517 * config/spu/spu.c: Ditto.
518 * config/stormy16/stormy16.c: Ditto.
519 * config/tilegx/tilegx.c: Ditto.
520 * config/tilepro/tilepro.c: Ditto.
521 * config/v850/v850.c: Ditto.
522 * config/vax/vax.c: Ditto.
523 * config/xtensa/xtensa.c: Ditto.
525 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
527 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
528 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
529 Remove using preprocessor directives.
531 2014-10-27 Richard Biener <rguenther@suse.de>
533 * match.pd (0 % X): Properly use the iterator iterating over
534 all modulo operators.
537 2014-10-27 Richard Biener <rguenther@suse.de>
539 * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
540 (lattice): New global.
541 (fwprop_ssa_val): New function.
542 (fold_all_stmts): Likewise.
543 (pass_forwprop::execute): Finally fold all stmts.
545 2014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
548 * doc/invoke.texi (fmessage-length): Update text to match reality.
550 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
552 * config/microblaze/microblaze.c: Include rtl-iter.h.
553 (microblaze_tls_referenced_p_1): Delete.
554 (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
556 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
558 * config/mips/mips.c (mips_at_reg_p): Delete.
559 (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
561 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
563 * config/mips/mips.c (mips_record_lo_sum): Replace with...
564 (mips_record_lo_sums): ...this new function.
565 (mips_reorg_process_insns): Update accordingly.
567 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
569 * config/mips/mips.c (mips_sim_insn): Update comment.
570 (mips_sim_wait_regs_2): Delete.
571 (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
573 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
575 * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
576 and return a bool. Iterate over all subrtxes here.
577 (r10k_needs_protection_p): Update accordingly.
579 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
581 * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
582 rather than an rtx pointer. Change type of insn from "void *"
583 to its real type. Return bool rather than int. Iterate over
585 (r10k_needs_protection_p_store): Update accordingly.
586 (r10k_needs_protection_p): Likewise.
588 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
590 * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
591 (mips16_rewrite_pool_refs): Take the insn and constant pool as
592 parameters. Iterate over the instruction's pattern and return void.
593 (mips16_lay_out_constants): Update accordingly.
595 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
597 * config/mips/mips.c (mips_kernel_reg_p): Replace with...
598 (mips_refers_to_kernel_reg_p): ...this new function.
599 (mips_expand_prologue): Update accordingly.
601 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
603 * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
604 as a parameter instead of the containing MEM. Iterate over all
605 subrtxes. Don't return a value.
606 (mips_rewrite_small_data): Update call accordingly.
608 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
610 * config/mips/mips.c: Include rtl-iter.h.
611 (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
612 Take the context as a parameter instead of the containing MEM.
613 Iterate over all subrtxes.
614 (mips_small_data_pattern_p): Update call accordingly.
616 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
618 * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
619 (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
621 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
623 * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
624 return a bool. Replace "void *" with specific type. Iterate
626 (mep_store_data_bypass_1): Update calls accordingly.
628 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
630 * config/mep/mep.c: Include rtl-iter.h.
631 (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
632 (xtensa_tls_referenced_p): Return a bool. Use FOR_EACH_SUBRTX.
634 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
636 * config/xtensa/xtensa.c: Include rtl-iter.h.
637 (xtensa_tls_referenced_p_1): Delete.
638 (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
640 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
642 * config/sh/sh.c (sh_contains_memref_p_1): Delete.
643 (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
645 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
647 * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
648 rtx as argument and return the number of changes.
649 * config/sh/sh.c: Include rtl-iter.h.
650 (shmedia_cleanup_truncate): Take an rtx as argument and iterate
651 over all subrtxes. Return the number of changes made.
652 * config/sh/sh.md: Update caller accordingly.
654 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
656 * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
657 (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
659 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
661 * config/m68k/m68k.c: Include rtl-iter.h.
662 (m68k_final_prescan_insn_1): Delete.
663 (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
665 2014-10-25 Jakub Jelinek <jakub@redhat.com>
667 PR tree-optimization/63641
668 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
669 to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
671 2014-10-25 Alan Modra <amodra@gmail.com>
673 PR rtl-optimization/63615
674 * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
675 decomposing PLUS or MINUS if operands are not placed adjacent
678 2014-10-25 Joseph Myers <joseph@codesourcery.com>
680 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
681 not allow e500 double in registers not satisyfing
684 2014-10-24 Aldy Hernandez <aldyh@redhat.com>
686 * dwarf2out.c (declare_in_namespace): Only emit external
687 declarations in the local scope once.
689 2014-10-24 Jonathan Wakely <jwakely@redhat.com>
691 * ginclude/stdbool.h: Do not define bool, true or false in C++11.
693 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
695 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
696 update uses to use new macro arguments.
697 (__LD3_LANE_FUNC): Likewise.
698 (__LD4_LANE_FUNC): Likewise.
700 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
702 * config/aarch64/aarch64-builtins.c
703 (aarch64_types_loadstruct_lane_qualifiers): Define.
704 * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
705 ld4_lane): New builtins.
706 * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
708 (aarch64_vec_load_lanesci_lane<mode>): Likewise.
709 (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
710 (aarch64_ld2_lane<mode>): New expand.
711 (aarch64_ld3_lane<mode>): Likewise.
712 (aarch64_ld4_lane<mode>): Likewise.
713 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
714 UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
716 2014-10-24 Georg-Johann Lay <avr@gjlay.de>
718 * avr-protos.h (avr_out_sign_extend): New.
719 * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
720 (avr_out_sign_extend): New function.
721 * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
722 (extendhisi2, extendpsisi2): Use it.
723 (adjust_len) [sext]: New.
725 2014-10-24 Martin Liska <mliska@suse.cz>
727 * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
730 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
732 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
733 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
734 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
735 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
737 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
739 * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
741 * config/aarch64/aarch64.c (is_mem_p): Delete.
742 (is_memory_op): Rename to...
743 (has_memory_op): ... This. Use FOR_EACH_SUBRTX.
744 (dep_between_memop_and_curr): Assert that the input is a SET.
745 (aarch64_madd_needs_nop): Add comment. Do not call
746 dep_between_memop_and_curr on NULL body.
747 (aarch64_final_prescan_insn): Add comment.
750 2014-10-24 Richard Biener <rguenther@suse.de>
752 * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
753 to genmatch BUILD_LIBS instead.
755 2014-10-24 Richard Biener <rguenther@suse.de>
757 * genmatch.c (expr::gen_transform): Use fold_buildN_loc
758 and build_call_expr_loc.
759 (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
760 non_lvalue_loc to build it for GENERIC.
761 (decision_tree::gen_generic): Add location argument to
762 generic_simplify prototype.
763 (capture_info): New class.
764 (capture_info::capture_info): New constructor.
765 (capture_info::walk_match): New method.
766 (capture_info::walk_result): New method.
767 (capture_info::walk_c_expr): New method.
768 (dt_simplify::gen): Handle preserving side-effects for
769 GENERIC code generation.
770 (decision_tree::gen_generic): Do not reject operands
771 with TREE_SIDE_EFFECTS.
772 * generic-match.h: New file.
773 * generic-match-head.c: Include generic-match.h, not gimple-match.h.
774 * match.pd: Add some constant folding patterns from fold-const.c.
775 * fold-const.c: Include generic-match.h.
776 (fold_unary_loc): Dispatch to generic_simplify.
777 (fold_ternary_loc): Likewise.
778 (fold_binary_loc): Likewise. Remove patterns now implemented
780 * gimple-fold.c (replace_stmt_with_simplification): New function.
781 (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
782 (no_follow_ssa_edges): New function.
783 (fold_stmt): New overload with valueization hook. Use
784 no_follow_ssa_edges for the overload without hook.
785 (fold_stmt_inplace): Likewise.
786 * gimple-fold.h (no_follow_ssa_edges): Declare.
788 2014-10-24 Felix Yang <felix.yang@huawei.com>
789 Jiji Jiang <jiangjiji@huawei.com>
792 * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
793 (__LD3R_FUNC): Ditto.
794 (__LD4R_FUNC): Ditto.
795 (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
796 vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
797 vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
798 vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
799 vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
800 vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
801 (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
802 vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
803 vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
804 vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
805 vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
806 vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
807 (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
808 vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
809 vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
810 vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
811 vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
812 vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
813 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
814 UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
815 * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
817 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
818 (aarch64_simd_ld3r<mode>): Likewise.
819 (aarch64_simd_ld4r<mode>): Likewise.
820 (aarch64_ld2r<mode>): New expand.
821 (aarch64_ld3r<mode>): Likewise.
822 (aarch64_ld4r<mode>): Likewise.
824 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
826 * rtlanal.c (get_base_term): Handle SCRATCH.
828 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
830 * haifa-sched.c (sched_init): Disable max_issue when scheduling for
833 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
835 * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
836 (cached_issue_rate): Remove. Use dfa_lookahead and issue_rate instead.
837 (max_issue, choose_ready, sched_init): Update.
839 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
841 * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
842 * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
843 (rfs_result): Set INSN_LAST_RFS_WIN. Update signature.
844 (rank_for_schedule): Update calls to rfs_result to pass new parameters.
845 (print_rank_for_schedule_stats): Print out elements of ready list that
846 ended up on their respective places due to each of the sorting
848 (ready_sort): Update.
849 (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
850 (schedule_block): Update.
852 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
854 * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
855 arrays. Use sched_class_regs_num instead of ira_class_hard_regs_num.
856 (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
857 (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
858 (model_start_schedule): Update.
859 (sched_pressure_start_bb): New static function. Calculate
860 sched_class_regs_num.
861 (schedule_block): Use it.
862 (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
864 2014-10-24 Richard Biener <rguenther@suse.de>
866 * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
867 host library and make sure to pull in the required libintl
868 and libiconv dependencies.
870 2014-10-24 Richard Biener <rguenther@suse.de>
872 * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
874 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
877 * collect2.c (main): Filter out -fno-lto.
879 2014-10-24 Martin Liska <mliska@suse.cz>
881 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
882 division by zero in dumps.
883 (sem_item_optimizer::merge_classes): Ditto.
885 2014-10-23 John David Anglin <danglin@gcc.gnu.org>
887 * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
889 2014-10-23 Ian Lance Taylor <iant@google.com>
891 * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
893 2014-10-23 Ian Lance Taylor <iant@google.com>
895 * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
897 2014-10-23 Jakub Jelinek <jakub@redhat.com>
900 * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
901 (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
902 instead of only handling autoinc in dest if it is a MEM.
903 (vt_stack_adjustments): Fix up formatting.
905 2014-10-23 DJ Delorie <dj@redhat.com>
907 * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
908 independend of -mlarge.
909 * config/msp430/constraints.md (Ys): Update comment.
911 2014-10-23 Evgeny Stupachenko <evstupac@gmail.com>
915 * cse.c (delete_trivially_dead_insns): Consider PIC register is used
917 * dse.c (deletable_insn_p): Likewise.
919 2014-10-23 Georg-Johann Lay <avr@gjlay.de>
921 * config/avr/avr.c: Fix GNU coding rules and typos.
922 * config/avr/avr.h: Dito.
923 * config/avr/avr-c.c: Dito.
924 * config/avr/avr.md: Dito.
926 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
928 * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
930 (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
932 (define_expand "abs<mode>2"): Ditto.
934 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
936 * tree-core.h (tree_var_decl): Extend `function_code' field
937 by one bit, move `regdecl_flag' field to ...
938 (tree_decl_with_vis): Here.
939 * tree.h (DECL_STATIC_CHAIN): Update struct name.
941 2014-10-23 Richard Biener <rguenther@suse.de>
943 * Makefile.in (BUILD_CPPLIB): Add.
944 (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
947 2014-10-23 Richard Biener <rguenther@suse.de>
949 * fold-const.c (fold_binary_loc): Preserve side-effects of
950 X - X when simplifying to 0.
951 * stor-layout.c (finish_bitfield_representative): Strip
952 side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
954 2014-10-22 Richard Biener <rguenther@suse.de>
955 Tobias Burnus <burnus@net-b.de>
958 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
960 2014-10-22 Dehao Chen <dehao@google.com>
962 * auto-profile.c: Change order of header files.
964 2014-10-22 Guozhi Wei <carrot@google.com>
966 PR tree-optimization/63530
967 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
968 pointer alignment according to DR_MISALIGNMENT.
970 2014-10-22 David Malcolm <dmalcolm@redhat.com>
972 * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
974 2014-10-22 Andrew MacLeod <amacleod@redhat.com>
976 * cfgbuild.h: New. Add prototypes for cfgbuild.c.
977 * cfgcleanup.h: New. Add prototypes for cfgcleanup.c.
978 * cfgloopmanip.h: New. Add prototypes for cfgloopmanip.c.
979 * dominance.h: New. Add prototypes for dominance.c.
980 * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
981 * cfghooks.h: (struct profile_record) Relocate here.
982 Relocate 2 prototypes from basic-block.h.
983 * basic-block.h: Move prototypes and struct to new header files.
984 Include cfgbuild.h, cfgcleanup.h, and dominance.h.
985 * rtl.h: Move a few prototypes to new header files.
986 * cfgcleanup.c (merge_memattrs): Make static.
987 * genopinit.c (main): Add predict.h to list of includes.
988 * predict.h: Update prototype list to match predict.c.
989 * predict.c (maybe_hot_count_p): Export.
990 (cgraph_edge::maybe_hot_p): Move to cgraph.c.
991 (cgraph_node::optimize_for_size_p): Move to cgraph.h.
992 * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
993 * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
994 * profile.h: Adjust prototypes.
995 * ifcvt.h: New. Relocate struct ce_if_block here.
996 * ifcvt.c: Include ifcvt.h.
997 * config/frv/frv.c: Include ifcvt.h.
998 * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
1000 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
1002 * lra.c (lra): Remove call to recog_init.
1003 * config/i386/i386.md (preferred_for_speed): New attribute
1004 (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
1005 "enabled". Remove check for sched1.
1007 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
1009 * recog.h (recog_data_d): Remove enabled_alternatives.
1010 * recog.c (extract_insn): Don't set it.
1011 * reload.c (find_reloads): Call get_enabled_alternatives.
1013 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
1015 * recog.h (constrain_operands): Add an alternative_mask parameter.
1016 (constrain_operands_cached): Likewise.
1017 (get_preferred_alternatives): Declare new form.
1018 * recog.c (get_preferred_alternatives): New bb-taking instance.
1019 (constrain_operands): Take the set of available alternatives as
1021 (check_asm_operands, insn_invalid_p, extract_constrain_insn)
1022 (extract_constrain_insn_cached): Update calls to constrain_operands.
1023 * caller-save.c (reg_save_code): Likewise.
1024 * ira.c (setup_prohibited_mode_move_regs): Likewise.
1025 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
1026 * ree.c (combine_reaching_defs): Likewise.
1027 * reload.c (can_reload_into): Likewise.
1028 * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
1029 (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
1030 (emit_insn_if_valid_for_reload): Likewise.
1031 * reorg.c (fill_slots_from_thread): Likewise.
1032 * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
1033 * config/pa/pa.c (pa_can_combine_p): Likewise.
1034 * config/rl78/rl78.c (insn_ok_now): Likewise.
1035 * config/sh/sh.md (define_peephole2): Likewise.
1036 * final.c (final_scan_insn): Update call to constrain_operands_cached.
1038 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
1040 * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
1042 * genattr.c (main): Handle "preferred_for_size" and
1043 "preferred_for_speed" in the same way as "enabled".
1044 * recog.h (bool_attr): New enum.
1045 (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
1046 (get_preferred_alternatives, check_bool_attrs): Declare.
1047 * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
1048 (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
1050 (get_enabled_alternatives): Use get_bool_attr_mask.
1051 * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
1052 instead of recog_data.enabled_alternatives.
1053 * ira.c (ira_setup_alts): Likewise.
1054 * postreload.c (reload_cse_simplify_operands): Likewise.
1055 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
1056 * ira-lives.c (preferred_alternatives): New variable.
1057 (process_bb_node_lives): Set it.
1058 (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
1059 (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
1060 of recog_data.enabled_alternatives.
1061 * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
1062 to preferred_alternatives.
1063 * lra-constraints.c (process_alt_operands): Update accordingly.
1064 * lra.c (lra_set_insn_recog_data): Likewise.
1065 (lra_update_insn_recog_data): Assert check_bool_attrs.
1067 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
1069 * recog.h (extract_constrain_insn): Declare.
1070 * recog.c (extract_constrain_insn): New function.
1071 * lra.c (check_rtl): Use it.
1072 * postreload.c (reload_cse_simplify_operands): Likewise.
1073 * reg-stack.c (check_asm_stack_operands): Likewise.
1074 (subst_asm_stack_regs): Likewise.
1075 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
1076 * regrename.c (build_def_use): Likewise.
1077 * sel-sched.c (get_reg_class): Likewise.
1078 * config/arm/arm.c (note_invalid_constants): Likewise.
1079 * config/s390/predicates.md (execute_operation): Likewise.
1081 2014-10-22 Jakub Jelinek <jakub@redhat.com>
1082 Yury Gribov <y.gribov@samsung.com>
1084 * common.opt (flag_sanitize_recover): New variable.
1085 (fsanitize-recover): Remove Var/Init, deprecate.
1086 (fsanitize-recover=): New option.
1087 * doc/invoke.texi (fsanitize-recover): Update docs.
1088 * opts.c (finish_options): Use opts->x_flag_sanitize
1089 instead of flag_sanitize. Prohibit -fsanitize-recover
1090 for anything besides UBSan. Formatting.
1091 (common_handle_option): Handle OPT_fsanitize_recover_
1092 and OPT_fsanitize_recover. Use opts->x_flag_sanitize
1093 instead of flag_sanitize.
1094 * asan.c (pass_sanopt::execute): Fix up formatting.
1095 * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
1096 ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
1097 instrument_bool_enum_load, ubsan_instrument_float_cast,
1098 instrument_nonnull_arg, instrument_nonnull_return): Check
1099 bits in flag_sanitize_recover bitmask instead of
1100 flag_sanitize_recover as bool flag.
1102 2014-10-22 Jiong Wang <jiong.wang@arm.com>
1104 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
1106 2014-10-22 Renlin Li <renlin.li@arm.com>
1108 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
1109 __ARM_FEATURE_IDIV__.
1111 2014-10-22 Richard Biener <rguenther@suse.de>
1113 * Makefile.in (s-match): Adjust dependencies to only catch
1116 2014-10-22 Richard Biener <rguenther@suse.de>
1117 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
1119 * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
1120 (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
1121 (gimple-match.c): Generate by triggering s-match.
1122 (generic-match.c): Likewise.
1123 (s-match): Rule to build gimple-match.c and generic-match.c
1124 by running the genmatch generator program.
1125 (build/hash-table.o): Dependencies to build hash-table.c for the host.
1126 (build/genmatch.o): Dependencies to build genmatch.
1127 (genprog): Add match.
1128 (build/genmatch): Likewise.
1129 (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
1130 * generic-match-head.c: New file.
1131 * gimple-match-head.c: Likewise.
1132 * gimple-match.h: Likewise.
1133 * genmatch.c: Likewise.
1134 * match.pd: Likewise.
1135 * builtins.h (fold_builtin_n): Export.
1136 * builtins.c (fold_builtin_n): Likewise.
1137 * gimple-fold.h (gimple_build): Declare various overloads.
1138 (gimple_simplify): Likewise.
1139 (gimple_convert): Re-implement in terms of gimple_build.
1140 * gimple-fold.c (gimple_convert): Remove.
1141 (gimple_build): New functions.
1142 * doc/match-and-simplify.texi: New file.
1143 * doc/gccint.texi: Add menu item Match and Simplify and include
1144 match-and-simplify.texi.
1146 2014-10-22 Jakub Jelinek <jakub@redhat.com>
1149 * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
1150 V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
1151 even for just TARGET_AVX2, not only for
1152 TARGET_AVX512VL && TARGET_AVX512BW. For V{32HI,64QI}mode,
1153 call ix86_vector_duplicate_value only if TARGET_AVX512BW,
1154 otherwise build it using concatenation of 256-bit
1156 * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
1157 avx512 broadcast patterns.
1158 (vec_dup<mode>): Likewise. For avx2 use
1159 v<sseintprefix>broadcast<bcstscalarsuff> instead of
1160 vbroadcast<ssescalarmodesuffix>.
1161 (AVX2_VEC_DUP_MODE): New mode iterator.
1162 (*vec_dup<mode>): New TARGET_AVX2 define_insn with
1163 AVX2_VEC_DUP_MODE iterator, add a splitter for that.
1166 * config/i386/i386.c (ix86_pic_register_p): Also return
1167 true if x is a hard register with ORIGINAL_REGNO equal to
1168 pic_offset_table_rtx pseudo REGNO.
1169 (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
1170 after reload, subtract GOT_SYMBOL_NAME symbol if possible.
1172 2014-10-22 Alan Modra <amodra@gmail.com>
1174 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
1175 * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
1176 (gcc_obstack_init): Use obstack_specify_allocation in place of
1178 * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
1179 (regexp_representation): Likewise.
1180 * godump.c (go_output_type): Likewise.
1182 2014-10-21 John David Anglin <danglin@gcc.gnu.org>
1184 * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
1185 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
1186 * config/pa/pa.opt (mjump-in-delay): Ignore option. Update comment.
1188 2014-10-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
1190 * doc/invoke.texi (pedantic-errors): Explain better.
1192 2014-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
1193 Vidya Praveen <vidya.praveen@atmel.com>
1194 Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
1195 Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
1196 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
1198 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
1200 * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
1201 (avr_nonconst_pointer_addrspace): Likewise.
1202 * config/avr/avr.h (AVR_HAVE_LPM): Define.
1204 Added AVRTINY architecture to avr target.
1205 * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
1206 (base_arch_s): member added for AVRTINY architecture.
1207 * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
1208 alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
1209 AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
1210 and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
1211 respectively. LAST_CALLEE_SAVED_REG macro added for the last register
1212 in callee saved register list.
1213 (avr_option_override): CCP address updated for AVRTINY.
1214 (avr_init_expanders): tmp and zero rtx initialized as per arch.
1215 Reset avr_have_dimode if AVRTINY.
1216 (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
1217 (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
1218 (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
1219 Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
1220 (expand_epilogue): Likewise.
1221 (avr_print_operand): Print CCP address in case of AVRTINY also.
1223 (function_arg_regno_p): Check different register list for arguments
1225 (init_cumulative_args): Check for AVRTINY to update number of argument
1227 (tiny_valid_direct_memory_access_range): New function. Return false if
1228 direct memory access range is not in accepted range for AVRTINY.
1229 (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
1230 indirect load (with displacement) for AVRTINY.
1231 (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
1232 avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
1233 (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
1234 indirect load (no displacement) for AVRTINY.
1235 (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
1236 indirect load (with displacement) for AVRTINY.
1237 (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
1238 indirect load for pre-decrement address.
1239 (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
1240 functions. Update instruction length for AVRTINY.
1241 (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
1243 (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
1244 (out_movsi_r_mr): Likewise, for SImode.
1245 (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
1246 indirect store (no displacement) for AVRTINY.
1247 (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
1248 indirect store (with displacement) for AVRTINY.
1249 (out_movsi_mr_r): Emit out insn for IO address store. Update store
1250 instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
1252 (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
1253 indirect load (no displacement) for PSImode in AVRTINY.
1254 (avr_out_load_psi_reg_disp_tiny): New function to handle register
1255 indirect load (with displacement) for PSImode in AVRTINY.
1256 (avr_out_load_psi): Call PSImode register indirect load functions for
1257 AVRTINY. Update instruction length for AVRTINY.
1258 (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
1259 indirect store (no displacement) for PSImode in AVRTINY.
1260 (avr_out_store_psi_reg_disp_tiny): New function to handle register
1261 indirect store (with displacement) for PSImode in AVRTINY.
1262 (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
1263 register indirect store functions for AVRTINY.
1264 (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
1265 register indirect store (with displacement) for AVRTINY.
1266 (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
1267 register indirect store function for QImode in AVRTINY.
1268 (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
1269 (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
1270 indirect store (no displacement) for HImode in AVRTINY.
1271 (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
1272 indirect store (with displacement) for HImode in AVRTINY.
1273 (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
1274 indirect store for post-increment address in HImode.
1275 (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
1276 register indirect store function for HImode in AVRTINY.
1277 (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
1279 (order_regs_for_local_alloc): Updated register allocation order for
1281 (avr_conditional_register_usage): New function. It is a target hook
1282 (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
1283 used registers list and register allocation order for AVRTINY.
1284 (avr_return_in_memory): Update return value size for AVRTINY.
1285 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
1286 for AVRTINY arch and tiny program memory base address.
1287 * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
1288 (avr_texinfo): Added description for AVRTINY arch.
1289 * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
1290 STATIC_CHAIN_REGNUM for AVRTINY.
1291 * config/avr/avr-mcus.def: Added AVRTINY arch devices.
1292 * config/avr/avr.md: Added constants for tmp/ zero registers in
1293 AVRTINY. Attributes for AVRTINY added.
1294 (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
1295 memory access range.
1296 (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
1297 in AVRTINY memory access range.
1298 (*mov<mode>): Likewise for HImode and SImode.
1299 (*movsf): Likewise for SFmode.
1300 (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
1302 * config/avr/avr-protos.h: Added function prototype for
1303 tiny_valid_direct_memory_access_range.
1304 * config/avr/avr-tables.opt: Regenerate.
1305 * gcc/config/avr/t-multilib: Regenerate.
1306 * doc/avr-mmcu.texi: Regenerate.
1308 2014-10-21 Andrew Pinski <apinski@cavium.com>
1310 * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
1311 available option also.
1312 * config/aarch64/aarch64-cost-tables.h: New file.
1313 * config/aarch64/aarch64-cores.def (thunderx): New core.
1314 * config/aarch64/aarch64-tune.md: Regenerate.
1315 * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
1316 of config/arm/aarch-cost-tables.h.
1317 (thunderx_regmove_cost): New variable.
1318 (thunderx_tunings): New variable.
1320 2014-10-21 Dehao Chen <dehao@google.com>
1322 * auto-profile.c: New file.
1323 * auto-profile.h: New file.
1324 * basic-block.h (maybe_hot_count_p): New export func.
1325 (add_working_set): New export func.
1326 * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
1327 (GCOV_TAG_AFDO_FUNCTION): Likewise.
1328 (GCOV_TAG_AFDO_WORKING_SET): Likewise.
1329 * opts.c (enable_fdo_optimizations): New func.
1330 (common_handle_option): Handle -fauto-profile flag.
1331 * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
1332 (class pass_early_inline): Export early_inliner.
1333 (early_inliner): Likewise.
1334 (pass_early_inline::execute): Likewise.
1335 * ipa-inline.h (early_inliner): Likewise.
1336 * predict.c (maybe_hot_count_p): New export func.
1337 (counts_to_freqs): AutoFDO logic.
1338 (rebuild_frequencies): Likewise.
1339 * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
1340 * profile.c (add_working_set): New func.
1341 * Makefile.in (auto-profile.o): New object file.
1342 * passes.def (pass_ipa_auto_profile): New pass.
1343 * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
1344 * tree-pass.h (make_pass_ipa_auto_profile): New pass.
1345 * toplev.c (compile_file): AutoFDO logic.
1346 * doc/invoke.texi (-fauto-profile): New doc.
1347 * coverage.c (coverage_init): AutoFDO logic.
1348 * common.opt (-fauto-profile): New flag.
1349 * timevar.def (TV_IPA_AUTOFDO): New tag.
1350 * value-prof.c (gimple_alloc_histogram_value): New export func.
1351 (check_ic_target): Likewise.
1352 * value-prof.h (gimple_alloc_histogram_value): Likewise.
1353 (check_ic_target): Likewise.
1355 2014-10-21 David Malcolm <dmalcolm@redhat.com>
1357 * cgraph.c (cgraph_c_finalize): New function.
1358 * cgraph.h (cgraph_c_finalize): New prototype.
1359 (cgraphunit_c_finalize): New prototype.
1360 * cgraphunit.c (first_analyzed): Move from analyze_functions
1362 (first_analyzed_var): Likewise.
1363 (analyze_functions): Move static variables into file-scope.
1364 (cgraphunit_c_finalize): New function.
1365 * diagnostic.c (diagnostic_finish): Free the memory for
1366 context->classify_diagnostic and context->printer, running the
1367 destructor for the latter.
1368 (bt_stop): Use toplev::main.
1369 * dwarf2out.c (dwarf2out_finalize): New function.
1370 * dwarf2out.h (dwarf2out_c_finalize): New prototype.
1371 * gcse.c (gcse_c_finalize): New function.
1372 * gcse.h (gcse_c_finalize): New prototype.
1373 * ggc-page.c (init_ggc): Make idempotent.
1374 * input.c (input_location): Initialize to UNKNOWN_LOCATION.
1375 * ipa-cp.c (ipa_cp_c_finalize): New function.
1376 * ipa-prop.h (ipa_cp_c_finalize): New prototype.
1377 * ipa-pure-const.c (function_insertion_hook_holder): Move to be
1378 a field of class pass_ipa_pure_const.
1379 (node_duplication_hook_holder): Likewise.
1380 (node_removal_hook_holder): Likewise.
1381 (register_hooks): Convert to method...
1382 (pass_ipa_pure_const::register_hooks): ...here, converting
1383 static variable init_p into...
1384 (pass_ipa_pure_const::init_p): ...new field.
1385 (pure_const_generate_summary): Update invocation of
1386 register_hooks to invoke as a method of current_pass.
1387 (pure_const_read_summary): Likewise.
1388 (propagate): Convert to...
1389 (pass_ipa_pure_const::execute): ...method.
1390 * ipa-reference.c (ipa_init): Move static bool init_p from here
1392 (ipa_init_p): New file-scope variable, so that it can be reset
1393 when repeatedly invoking the compiler within one process by...
1394 (ipa_reference_c_finalize): New function.
1395 * ipa-reference.h (ipa_reference_c_finalize): New.
1396 * main.c (main): Replace invocation of toplev_main with
1397 construction of a toplev instance, and call its "main" method.
1398 * params.c (global_init_params): Add an assert that
1399 params_finished is false.
1400 (params_c_finalize): New.
1401 * params.h (params_c_finalize): New.
1402 * passes.c (execute_ipa_summary_passes): Set "current_pass" before
1403 invoking generate_summary, for the benefit of pass_ipa_pure_const.
1404 (ipa_write_summaries_2): Assign "pass" to "current_pass" global
1405 before calling write_summary hook.
1406 (ipa_write_optimization_summaries_1): Likewise when calling
1407 write_optimization_summary hook.
1408 (ipa_read_summaries_1): Likewise for read_summary hook.
1409 (ipa_read_optimization_summaries_1): Likewise for
1410 read_optimization_summary hook.
1411 (execute_ipa_stmt_fixups): Likewise.
1412 * stringpool.c (init_stringpool): Clean up if we're called more
1414 * timevar.c (timevar_init): Ignore repeated calls.
1415 * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
1417 (general_init): Reset "input_location" to UNKNOWN_LOCATION.
1418 (initialize_rtl): Move static local "initialized_once"
1419 into file scope, and rename to...
1420 (rtl_initialized): New variable.
1421 (do_compile): Move timevar initialization from here to
1422 toplev::start_timevars.
1423 (toplev::toplev, toplev::~toplev, toplev::start_timevars,
1424 toplev::finalize): New functions.
1425 (toplev_main): Rename to...
1426 (toplev::main): ...this.
1427 * toplev.h (class toplev): New class.
1429 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
1431 * loop-doloop.c: Include loop-unroll.h.
1433 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
1435 * cfg.h: New. Header file for cfg.c.
1436 * cfganal.h: New. Header file for cfganal.c.
1437 * lcm.h: New. Header file for lcm.c.
1438 * loop-unroll.h: New. Header file for loop-unroll.h.
1439 * cfgloop.h: (unroll_loops): Remove prototype.
1440 * basic-block.h: Move prototypes and structs to new header files.
1441 Include cfg.h, cfganal.h, and lcm.h.
1442 * loop-init.c: Include loop-unroll.h.
1443 * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
1444 * modulo-sched.c: Include loop-unroll.h.
1446 2014-10-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
1448 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
1449 MARKER_BYTE_UNKNOWN markers when handling casts.
1451 2014-10-21 Richard Biener <rguenther@suse.de>
1453 * tree-ssa-phiopt.c (value_replacement): Properly verify we
1454 are the non-singleton PHI.
1456 2014-10-21 Jakub Jelinek <jakub@redhat.com>
1458 PR tree-optimization/63563
1459 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
1460 if either dra or drb stmts are not normal loads/stores.
1462 2014-10-21 Ilya Tocar <ilya.tocar@intel.com>
1464 * config/i386/i386.c (expand_vec_perm_1): Fix
1465 expand_vec_perm_palignr case.
1466 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
1469 2014-10-21 Zhenqiang Chen <zhenqiang.chen@arm.com>
1471 * cfgloopanal.c (seq_cost): Delete.
1472 * rtl.h (seq_cost): New prototype.
1473 * rtlanal.c (seq_cost): New function.
1474 * tree-ssa-loop-ivopts.c (seq_cost): Delete.
1476 2014-10-20 Andrew MacLeod <amacleod@redhat.com>
1478 * cfgrtl.h: New. Add prototypes for cfgrtl.c.
1479 * basic-block.h: Remove prototypes for cfgrtl.c.
1480 * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
1481 prototypes to cfgrtl.h.
1482 * profile.h (profile_info): Add extern export declaration.
1483 * rtl.h: Remove prototypes for cfgrtl.h.
1484 * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
1485 * ipa-inline.c: Include profile.h.
1486 * loop-unroll.c: Ditto.
1487 * modulo-sched.c: Ditto.
1488 * postreload-gcse.c: Ditto.
1490 * sched-ebb.c: Ditto.
1491 * sched-rgn.c: Ditto.
1493 * tree-ssa-loop-ivcanon.c: Ditto.
1495 2014-10-20 Richard Biener <rguenther@suse.de>
1497 * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
1498 operands to get a def operand kind match. Signal mismatches
1499 to the parent so we can try swapping its operands.
1500 (vect_build_slp_tree): Try swapping operands if they have
1501 a mismatched operand kind.
1503 2014-10-20 Alan Modra <amodra@gmail.com>
1506 * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
1507 Increase "ops" array size. Correct array size tests. Init
1508 n_constants in loop. Break out of innermost loop when finding
1509 a trivial CONST expression.
1511 2014-10-20 Martin Liska <mliska@suse.cz>
1514 * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
1515 Gimple tempate string is compared.
1517 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
1519 * varasm.c (const_alias_set): Remove.
1520 (init_varasm_once): Remove initialization of const_alias_set.
1521 (build_constant_desc): Do not set alias set to const_alias_set.
1523 2014-10-19 Ilya Verbin <ilya.verbin@intel.com>
1525 * configure: Regenerate.
1526 * configure.ac: Move the test for section attribute specifier "e" in GAS
1527 out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
1528 * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
1529 * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
1530 ifdef HAVE_GAS_SECTION_EXCLUDE.
1532 2014-10-19 Andreas Schwab <schwab@linux-m68k.org>
1534 * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
1535 match_operand expression.
1537 2014-10-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
1538 David Edelsohn <dje.gcc@gmail.com>
1540 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
1542 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
1544 2014-10-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
1546 * doc/invoke.texi (Options to Request or Suppress Warnings):
1547 Explain options precedence.
1548 (Wtrampolines): Do not indent paragraph.
1550 2014-10-18 John David Anglin <danglin@gcc.gnu.org>
1552 * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
1553 * config/pa/pa-protos.h (pa_following_call): Delete declaration.
1554 (pa_jump_in_call_delay): Likewise.
1555 * config/pa/pa.c (pa_option_override): Remove jump in call delay
1557 (pa_output_millicode_call): Remove support for jump in call delay.
1558 (pa_output_call): Likewise.
1559 (pa_jump_in_call_delay): Delete.
1560 (pa_following_call): Likewise.
1561 * config/pa/pa.md (in_call_delay): Remove jump in delay check.
1562 (uncond_branch): Remove following call check from attribute length.
1564 2014-10-18 Oleg Endo <olegendo@gcc.gnu.org>
1567 * config/sh/sh-modes.def (PSI): Remove.
1568 * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
1569 * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
1570 (sh_reorg): Remove commented out FPSCR code.
1571 (fpscr_set_from_mem): Use SImode instead of PSImode. Emit lds_fpscr
1572 insn instead of move insn.
1573 (sh_hard_regno_mode_ok): Return SImode for FPSCR.
1574 (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
1576 (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
1577 (sh1_builtin_p): Uncomment.
1578 (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
1579 (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
1580 * config/sh/sh/predicates.md (fpscr_operand): Simplify.
1581 (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
1582 (general_movsrc_operand, general_movdst_operand): Disallow
1584 * config/sh/sh.md (FPSCR_FR): New constant.
1585 (push_fpscr): Emit sts_fpscr insn.
1586 (pop_fpscr): Emit lds_fpscr_insn.
1587 (movsi_ie): Disallow FPSCR operands.
1588 (fpu_switch, unnamed related split, extend_psi_si,
1589 truncate_si_psi): Remove insns.
1590 (lds_fpscr, sts_fpscr): New insns.
1591 (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
1593 2014-10-17 Eric Botcazou <ebotcazou@adacore.com>
1595 * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
1596 (clone_inlined_nodes): Do not overwrite the clone if above predicate
1599 2014-10-17 Ilya Tocar <ilya.tocar@intel.com>
1601 * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
1602 (expand_vec_perm_d): Ditto.
1603 (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
1604 V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
1606 (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
1607 (ix86_expand_sse_unpack): Handle V64QImode.
1608 (expand_vec_perm_blend): Update conditions for TARGET, handle
1609 V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
1610 (expand_vec_perm_pshufb): Handle V64QImode.
1611 (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
1612 V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
1613 (ix86_expand_vec_perm_const_1): Call ix86_expand_vec_perm_vpermi2.
1614 (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
1615 (ix86_expand_vecop_qihi): Handle V64QImode.
1616 * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
1617 (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
1618 (define_mode_iterator VEC_PERM_CONST): Add V32HI.
1619 (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
1620 (mul<mode>3): Use VI1_AVX512.
1621 (<sse2_avx2>_packsswb): Ditto.
1622 (<sse2_avx2>_packuswb): Ditto.
1623 (<ssse3_avx2>_pshufb<mode>3): Ditto.
1624 (<shift_insn><mode>3): Ditto.
1626 2014-10-17 Kirill Yukhin <kirill.yukhin@intel.com>
1628 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
1629 conditions to fix bootstrap.
1631 2014-10-17 Andrew MacLeod <amacleod@redhat.com>
1633 gcc-plugin.h: Add tm.h and flattened includes from function.h.
1635 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
1636 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1637 Anna Tikhonova <anna.tikhonova@intel.com>
1638 Ilya Tocar <ilya.tocar@intel.com>
1639 Andrey Turetskiy <andrey.turetskiy@intel.com>
1640 Ilya Verbin <ilya.verbin@intel.com>
1641 Kirill Yukhin <kirill.yukhin@intel.com>
1642 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1644 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
1645 and V32HI modes, update V8HI, V16QI, V32QI modes handling.
1646 (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
1647 * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
1648 (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
1649 (define_expand "vec_init<mode>"): Use VF48_I1248.
1651 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
1652 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1653 Anna Tikhonova <anna.tikhonova@intel.com>
1654 Ilya Tocar <ilya.tocar@intel.com>
1655 Andrey Turetskiy <andrey.turetskiy@intel.com>
1656 Ilya Verbin <ilya.verbin@intel.com>
1657 Kirill Yukhin <kirill.yukhin@intel.com>
1658 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1660 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
1661 expand_sse2_mulvxdi3.
1663 2014-10-17 Richard Biener <rguenther@suse.de>
1665 * fold-const.c (fold_comparison): Remove redundant constant
1666 folding and operand swapping.
1667 (fold_binary_loc): Do comparison operand swapping here.
1668 (fold_ternary_loc): Canonicalize operand order for
1669 commutative ternary operations.
1670 * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
1673 2014-10-17 Jakub Jelinek <jakub@redhat.com>
1675 PR tree-optimization/63464
1676 * gimple.h (gimple_seq_discard): New prototype.
1677 * gimple.c: Include stringpool.h and tree-ssanames.h.
1678 (gimple_seq_discard): New function.
1679 * optabs.h (lshift_cheap_p): New prototype.
1680 * optabs.c (lshift_cheap_p): New function, moved from...
1681 * tree-switch-conversion.c (lshift_cheap_p): ... here.
1682 * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
1683 (reassoc_branch_fixups): New variable.
1684 (update_range_test): Add otherrangep and seq arguments.
1685 Unshare exp. If otherrange is NULL, use for other ranges
1686 array of pointers pointed by otherrangep instead.
1687 Emit seq before gimplified statements for tem.
1688 (optimize_range_tests_diff): Adjust update_range_test
1690 (optimize_range_tests_xor): Likewise. Fix up comment.
1691 (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
1693 (optimize_range_tests): Adjust update_range_test caller.
1694 Call optimize_range_tests_to_bit_test.
1695 (branch_fixup): New function.
1696 (execute_reassoc): Call branch_fixup.
1698 PR tree-optimization/63302
1699 * tree-ssa-reassoc.c (optimize_range_tests_xor,
1700 optimize_range_tests_diff): Use !integer_pow2p () instead of
1703 2014-10-17 Martin Liska <mliska@suse.cz>
1705 * ipa-icf.c (sem_function::merge): Local flags are set to false
1706 to enforce equal calling convention to be used.
1707 * opts.c (common_handle_option): Indentation fix.
1709 2014-10-17 Marc Glisse <marc.glisse@inria.fr>
1711 * tree-into-ssa.c (is_old_name): Replace "new" with "old".
1713 2014-10-17 Tom de Vries <tom@codesourcery.com>
1715 PR rtl-optimization/61605
1716 * regcprop.c (copyprop_hardreg_forward_1): Use
1717 regs_invalidated_by_this_call instead of regs_invalidated_by_call.
1719 2014-10-17 Tom de Vries <tom@codesourcery.com>
1721 PR rtl-optimization/61605
1722 * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p. Don't
1723 notice stores for noops. Don't regard noops as copies.
1725 2014-10-17 Uros Bizjak <ubizjak@gmail.com>
1727 * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
1728 register in a special way.
1729 (__cpuid_count): Ditto.
1730 * config/i386/driver-i386.h: Protect with
1731 "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
1732 (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
1733 is required to compile the function.
1735 2014-10-16 DJ Delorie <dj@redhat.com>
1737 * flag-types.h (sanitize_code): Don't assume targets have 32-bit
1740 * config/rs6000/rs6000-c.c (rid_int128): New.
1741 (rs6000_macro_to_expand): Use instead of RID_INT128.
1743 2014-10-16 Andrew MacLeod <amacleod@redhat.com>
1745 * function.h: Flatten file. Remove includes, adjust prototypes to
1746 reflect only what is in function.h.
1747 (enum direction, struct args_size, struct locate_and_pad_arg_data,
1748 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
1750 (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
1751 (optimize_function_for_size_p, optimize_function_for_speed_p): Move
1752 prototypes to predict.h.
1753 (init_varasm_status): Move prototype to varasm.h.
1754 * expr.h: Adjust include files.
1755 (enum direction, struct args_size, struct locate_and_pad_arg_data,
1756 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
1758 (locate_and_pad_parm): Move prototype to function.h.
1759 * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
1760 assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
1761 assign_temp, reposition_prologue_and_epilogue_notes,
1762 prologue_epilogue_contains, sibcall_epilogue_contains,
1763 update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
1764 set_return_jump_label): Move prototypes to function.h.
1765 * predict.h (optimize_function_for_size_p,
1766 optimize_function_for_speed_p): Relocate prototypes from function.h.
1767 * shrink-wrap.h (emit_return_into_block, active_insn_between,
1768 convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
1770 * varasm.h (init_varasm_status): Relocate prototype from function.h.
1771 * genattrtab.c (write_header): Add predict.h to include list.
1772 * genconditions.c (write_header): Add predict.h to include list.
1773 * genemit.c (main): Adjust header file includes.
1774 * gengtype.c (ifiles): Add flattened function.h header files.
1775 * genoutput.c (output_prologue): Add predict.h to include list.
1776 * genpreds.c (write_insn_preds_c): Adjust header file includes.
1777 * genrecog.c (write_header): Add flattened function.h header files.
1778 * alias.c: Adjust include files.
1779 * auto-inc-dec.c: Likewise.
1780 * basic-block.h: Likewise.
1781 * bb-reorder.c: Likewise.
1782 * bt-load.c: Likewise.
1783 * builtins.c: Likewise.
1784 * caller-save.c: Likewise.
1785 * calls.c: Likewise.
1786 * cfgbuild.c: Likewise.
1787 * cfgcleanup.c: Likewise.
1788 * cfgexpand.c: Likewise.
1789 * cfgloop.c: Likewise.
1790 * cfgloop.h: Likewise.
1791 * cfgrtl.c: Likewise.
1792 * cgraph.h: Likewise.
1793 * cgraphclones.c: Likewise.
1794 * cgraphunit.c: Likewise.
1795 * combine-stack-adj.c: Likewise.
1796 * combine.c: Likewise.
1797 * coverage.c: Likewise.
1798 * cprop.c: Likewise.
1800 * cselib.c: Likewise.
1801 * dbxout.c: Likewise.
1803 * df-core.c: Likewise.
1804 * df-problems.c: Likewise.
1805 * df-scan.c: Likewise.
1806 * dojump.c: Likewise.
1807 * dwarf2cfi.c: Likewise.
1808 * dwarf2out.c: Likewise.
1809 * emit-rtl.c: Likewise.
1810 * except.c: Likewise.
1811 * explow.c: Likewise.
1813 * final.c: Likewise.
1814 * function.c: Likewise.
1816 * gimple-fold.c: Likewise.
1817 * gimple-low.c: Likewise.
1818 * gimple-streamer.h: Likewise.
1819 * haifa-sched.c: Likewise.
1820 * ifcvt.c: Likewise.
1824 * loop-invariant.c: Likewise.
1825 * lra-assigns.c: Likewise.
1826 * lra-coalesce.c: Likewise.
1827 * lra-constraints.c: Likewise.
1828 * lra-eliminations.c: Likewise.
1829 * lra-lives.c: Likewise.
1830 * lra-spills.c: Likewise.
1832 * lto-cgraph.c: Likewise.
1833 * lto-section-in.c: Likewise.
1834 * lto-section-out.c: Likewise.
1835 * lto-streamer-in.c: Likewise.
1836 * lto-streamer-out.c: Likewise.
1837 * mode-switching.c: Likewise.
1838 * modulo-sched.c: Likewise.
1839 * omp-low.c: Likewise.
1840 * optabs.c: Likewise.
1841 * passes.c: Likewise.
1842 * postreload-gcse.c: Likewise.
1843 * postreload.c: Likewise.
1844 * predict.c: Likewise.
1845 * profile.c: Likewise.
1846 * recog.c: Likewise.
1848 * reg-stack.c: Likewise.
1849 * regcprop.c: Likewise.
1850 * reginfo.c: Likewise.
1851 * regrename.c: Likewise.
1852 * reload.c: Likewise.
1853 * reload1.c: Likewise.
1854 * reorg.c: Likewise.
1855 * resource.c: Likewise.
1856 * rtlanal.c: Likewise.
1857 * sched-deps.c: Likewise.
1858 * sched-ebb.c: Likewise.
1859 * sched-rgn.c: Likewise.
1860 * sel-sched-dump.c: Likewise.
1861 * sel-sched-ir.c: Likewise.
1862 * sel-sched.c: Likewise.
1863 * shrink-wrap.c: Likewise.
1864 * simplify-rtx.c: Likewise.
1865 * statistics.c: Likewise.
1867 * stor-layout.c: Likewise.
1868 * store-motion.c: Likewise.
1869 * symtab.c: Likewise.
1870 * targhooks.c: Likewise.
1871 * toplev.c: Likewise.
1872 * trans-mem.c: Likewise.
1873 * tree-cfg.c: Likewise.
1874 * tree-cfgcleanup.c: Likewise.
1875 * tree-dfa.c: Likewise.
1876 * tree-eh.c: Likewise.
1877 * tree-inline.c: Likewise.
1878 * tree-into-ssa.c: Likewise.
1879 * tree-nested.c: Likewise.
1880 * tree-nrv.c: Likewise.
1881 * tree-profile.c: Likewise.
1882 * tree-ssa-alias.c: Likewise.
1883 * tree-ssa-ccp.c: Likewise.
1884 * tree-ssa-copy.c: Likewise.
1885 * tree-ssa-copyrename.c: Likewise.
1886 * tree-ssa-dom.c: Likewise.
1887 * tree-ssa-operands.c: Likewise.
1888 * tree-ssa-propagate.c: Likewise.
1889 * tree-ssa-structalias.c: Likewise.
1890 * tree-ssa-tail-merge.c: Likewise.
1891 * tree-ssa-threadedge.c: Likewise.
1892 * tree-ssa-threadupdate.c: Likewise.
1893 * tree-ssa-uncprop.c: Likewise.
1894 * tree-ssa-uninit.c: Likewise.
1895 * tree-ssa.c: Likewise.
1896 * tree-stdarg.c: Likewise.
1897 * tree-tailcall.c: Likewise.
1900 * valtrack.c: Likewise.
1901 * varasm.c: Likewise.
1902 * vmsdbgout.c: Likewise.
1904 * config/aarch64/aarch64.c: Add flattened includes from function.h.
1905 * config/alpha/alpha.c: Likewise.
1906 * config/arc/arc.c: Likewise.
1907 * config/arm/arm.c: Likewise.
1908 * config/avr/avr-log.c: Likewise.
1909 * config/avr/avr.c: Likewise.
1910 * config/bfin/bfin.c: Likewise.
1911 * config/c6x/c6x.c: Likewise.
1912 * config/cr16/cr16.c: Likewise.
1913 * config/cris/cris.c: Likewise.
1914 * config/darwin.c: Likewise.
1915 * config/epiphany/epiphany.c: Likewise.
1916 * config/epiphany/mode-switch-use.c: Likewise.
1917 * config/epiphany/resolve-sw-modes.c: Likewise.
1918 * config/fr30/fr30.c: Likewise.
1919 * config/frv/frv.c: Likewise.
1920 * config/h8300/h8300.c: Likewise.
1921 * config/i386/i386.c: Likewise.
1922 * config/ia64/ia64.c: Likewise.
1923 * config/iq2000/iq2000.c: Likewise.
1924 * config/lm32/lm32.c: Likewise.
1925 * config/m32c/m32c.c: Likewise.
1926 * config/m32r/m32r.c: Likewise.
1927 * config/m68k/m68k.c: Likewise.
1928 * config/mcore/mcore.c: Likewise.
1929 * config/mep/mep-pragma.c: Likewise.
1930 * config/mep/mep.c: Likewise.
1931 * config/microblaze/microblaze.c: Likewise.
1932 * config/mips/mips.c: Likewise.
1933 * config/mmix/mmix.c: Likewise.
1934 * config/mn10300/mn10300.c: Likewise.
1935 * config/moxie/moxie.c: Likewise.
1936 * config/msp430/msp430.c: Likewise.
1937 * config/nds32/nds32-cost.c: Likewise.
1938 * config/nds32/nds32-fp-as-gp.c: Likewise.
1939 * config/nds32/nds32-intrinsic.c: Likewise.
1940 * config/nds32/nds32-isr.c: Likewise.
1941 * config/nds32/nds32-md-auxiliary.c: Likewise.
1942 * config/nds32/nds32-memory-manipulation.c: Likewise.
1943 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1944 * config/nds32/nds32-predicates.c: Likewise.
1945 * config/nds32/nds32.c: Likewise.
1946 * config/nios2/nios2.c: Likewise.
1947 * config/pa/pa.c: Likewise.
1948 * config/pdp11/pdp11.c: Likewise.
1949 * config/rl78/rl78.c: Likewise.
1950 * config/rs6000/rs6000.c: Likewise.
1951 * config/rx/rx.c: Likewise.
1952 * config/s390/s390.c: Likewise.
1953 * config/score/score.c: Likewise.
1954 * config/sh/sh.c: Likewise.
1955 * config/sparc/sparc.c: Likewise.
1956 * config/spu/spu.c: Likewise.
1957 * config/stormy16/stormy16.c: Likewise.
1958 * config/tilegx/tilegx.c: Likewise.
1959 * config/tilepro/tilepro.c: Likewise.
1960 * config/v850/v850.c: Likewise.
1961 * config/vax/vax.c: Likewise.
1962 * config/xtensa/xtensa.c: Likewise.
1964 2014-10-16 Richard Earnshaw <rearnsha@arm.com>
1966 * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
1967 (TARGET_LEGITIMIZE_ADDRESS): Redefine.
1969 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
1971 * config/sh/sh-protos.h (fldi_ok): Remove.
1972 * config/sh/sh.c (fldi_ok): Likewise.
1973 (sh_secondary_reload): Don't use fldi_ok.
1974 * config/sh/constraints.md (G constraint, H constraint): Don't use
1977 2014-10-16 Martin Liska <mliska@suse.cz>
1979 * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
1980 Cast to unsigned long.
1981 (sem_item_optimizer::dump_cong_classes): Likewise.
1983 2014-10-16 Tom de Vries <tom@codesourcery.com>
1985 * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
1986 with SSA_NAME_IN_FREELIST.
1988 2014-10-16 Richard Biener <rguenther@suse.de>
1991 * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
1992 (fold_builtin_strncat_chk): Move ...
1993 * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
1994 (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
1996 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
1999 * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
2002 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
2003 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2004 Anna Tikhonova <anna.tikhonova@intel.com>
2005 Ilya Tocar <ilya.tocar@intel.com>
2006 Andrey Turetskiy <andrey.turetskiy@intel.com>
2007 Ilya Verbin <ilya.verbin@intel.com>
2008 Kirill Yukhin <kirill.yukhin@intel.com>
2009 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2011 * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
2014 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
2015 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2016 Anna Tikhonova <anna.tikhonova@intel.com>
2017 Ilya Tocar <ilya.tocar@intel.com>
2018 Andrey Turetskiy <andrey.turetskiy@intel.com>
2019 Ilya Verbin <ilya.verbin@intel.com>
2020 Kirill Yukhin <kirill.yukhin@intel.com>
2021 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2023 * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
2024 V16SI, V32HI, V64QI modes.
2026 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
2029 * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
2030 expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
2032 * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
2033 to match fp insn patterns.
2034 (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
2036 (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
2037 expand_df_unop, expand_df_binop): Remove.
2038 (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
2039 FPSCR_STAT_REG as not call clobbered.
2040 (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
2041 invoking fpscr_set_from_mem.
2043 * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
2044 (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
2046 (REGISTER_NAMES): Adjust.
2047 (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
2048 (FIRST_PSEUDO_REGISTER): Increase to 156.
2049 (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
2050 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
2052 (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
2053 FPSCR_MODES_REG and FPSCR_STAT_REG.
2054 (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
2056 * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
2057 FPSCR_SZ): Add new constants.
2058 (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
2060 (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
2061 (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
2062 Use TARGET_FPU_ANY condition.
2063 (fpu_switch peephole2): Remove.
2064 (fpu_switch split): Use simple_mem_operand to capture the mem and
2065 adjust split implementation.
2066 (extend_psi_si, truncate_si_psi): New insns.
2067 (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants. Add
2068 set of FPSCR_MODES_REG.
2070 (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
2071 reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
2072 calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
2073 call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
2074 call_value_compact, call_value_compact_rettramp, call,
2075 call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
2076 sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
2077 sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
2078 sibcall_value_compact, sibcall_value, call_value_pop_compact,
2079 call_value_pop_compact_rettramp, various unnamed splits):
2080 Replace use of FPSCR_REG with use of FPSCR_MODES_REG. Adjust gen_*
2083 (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
2084 (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
2085 (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
2086 (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
2087 (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
2089 (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
2090 *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
2091 cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
2092 subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
2093 cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
2094 truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
2095 and use of FPSCR_MODES_REG. Adjust gen_* function uses.
2097 2014-10-16 Martin Liska <mliska@suse.cz>
2098 Jan Hubicka <hubicka@ucw.cz>
2100 * Makefile.in: New object files included.
2101 * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
2103 (verify_edge_corresponds_to_fndecl): More sensitive verification
2104 of nodes that are merged by IPA ICF.
2105 * cgraph.h (cgraph_node::num_references): New function.
2106 * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
2107 * common.opt: New options ipa-icf, ipa-icf-functions and
2108 ipa-icf-variables introduced.
2109 * doc/invoke.texi: Documentation of new options introduced.
2110 * ipa-icf-gimple.c: New file.
2111 * ipa-icf-gimple.h: New file.
2112 * ipa-icf.c: New file.
2113 * ipa-icf.h: New file.
2114 * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
2115 (input_overwrite_node): Likewise.
2116 * lto-section-in.c: New icf section added.
2117 * lto-streamer.h (enum lto_section_type): Likewise.
2118 * opts.c (common_handle_option): New option added.
2119 * passes.def: New pass included.
2120 * timevar.def: Time variable for IPA ICF added.
2121 * tree-pass.h: New IPA ICF pass entry point added.
2123 2014-10-16 Richard Biener <rguenther@suse.de>
2125 PR tree-optimization/63168
2126 * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
2127 latches if after merging they are no longer simple.
2128 * cfghooks.c (merge_blocks): Handle merging a latch block
2131 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
2132 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2133 Anna Tikhonova <anna.tikhonova@intel.com>
2134 Ilya Tocar <ilya.tocar@intel.com>
2135 Andrey Turetskiy <andrey.turetskiy@intel.com>
2136 Ilya Verbin <ilya.verbin@intel.com>
2137 Kirill Yukhin <kirill.yukhin@intel.com>
2138 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2140 * config/i386/sse.md
2141 (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
2142 support AVX-512VL instructions.
2144 2014-10-16 DJ Delorie <dj@redhat.com>
2146 * tree-core.h: Fix comment to not assume pointers are multiples of
2149 2014-10-15 Tom Tromey <tromey@redhat.com>
2151 * timevar.h (class auto_timevar): New class.
2153 2014-10-15 Uros Bizjak <ubizjak@gmail.com>
2156 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
2157 Remove the second alternative.
2158 (regprefix): Remove mode attribute.
2159 (atomic_compare_and_swap<mode>): Do not fixup operand 2.
2160 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
2163 2013-11-05 Ian Lance Taylor <iant@google.com>
2165 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
2166 If possible, add .cfi directives to record change to bx.
2167 * config/i386/i386.c (ix86_emit_cfi): New function.
2168 * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
2170 2014-10-15 Jan Hubicka <hubicka@ucw.cz>
2173 * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
2175 * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
2178 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
2180 PR rtl-optimization/63448
2181 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
2182 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
2183 (LRA_MAX_INHERITANCE_PASSES): Use it.
2184 (lra_constraint_iter_after_spill): Remove.
2185 (lra_assignment_iter): New.
2186 (lra_assignment_iter_after_spill): New.
2187 * lra-assigns.c (lra_assignment_iter): New.
2188 (lra_assignment_iter_after_spill): New.
2189 (former_reload_pseudo_spill_p): New.
2190 (spill_for): Set up former_reload_pseudo_spill_p.
2191 (setup_live_pseudos_and_spill_after_risky): Ditto.
2192 (assign_by_spills): Ditto.
2193 (lra_assign): Increment lra_assignment_iter. Print the iteration
2194 number. Reset former_reload_pseudo_spill_p. Check
2195 lra_assignment_iter_after_spill.
2196 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
2197 lra_assignment_iter and lra_assignment_iter_after_spill.
2198 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
2199 (lra_constraints): Remove code with
2200 lra_assignment_iter_after_spill.
2202 2014-10-15 Teresa Johnson <tejohnson@google.com>
2205 * tree-ssa-threadupdate.c (recompute_probabilities): Better
2208 2014-10-15 Renlin Li <renlin.li@arm.com>
2210 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
2211 __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
2212 __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
2213 __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
2215 2014-10-15 Richard Biener <rguenther@suse.de>
2217 * gimple-fold.c (gimple_fold_call): Properly keep virtual
2218 SSA form up-to-date when devirtualizing a call to
2219 __builtin_unreachable and avoid fixing up EH info here.
2221 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
2222 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2223 Anna Tikhonova <anna.tikhonova@intel.com>
2224 Ilya Tocar <ilya.tocar@intel.com>
2225 Andrey Turetskiy <andrey.turetskiy@intel.com>
2226 Ilya Verbin <ilya.verbin@intel.com>
2227 Kirill Yukhin <kirill.yukhin@intel.com>
2228 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2230 * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
2231 to support AVX-512BW.
2232 (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
2233 (define_expand "<plusminus_insn><mode>3"): Remove masking support.
2234 (define_insn "*<plusminus_insn><mode>3"): Ditto.
2235 (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
2236 (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
2237 (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
2238 (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
2239 (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
2240 (define_insn "*andnot<mode>3"): Ditto.
2241 (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
2242 (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
2243 (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
2244 (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
2245 (define_insn "*abs<mode>2"): Remove masking support.
2246 (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
2247 (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
2248 (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
2250 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
2251 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2252 Anna Tikhonova <anna.tikhonova@intel.com>
2253 Ilya Tocar <ilya.tocar@intel.com>
2254 Andrey Turetskiy <andrey.turetskiy@intel.com>
2255 Ilya Verbin <ilya.verbin@intel.com>
2256 Kirill Yukhin <kirill.yukhin@intel.com>
2257 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2259 * config/i386/predicates.md (define_predicate "constm1_operand"): New.
2260 * config/i386/sse.md
2261 (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
2262 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
2263 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
2264 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
2265 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
2266 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
2267 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
2269 2014-10-15 Renlin Li <renlin.li@arm.com>
2271 * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
2273 2014-10-15 Jakub Jelinek <jakub@redhat.com>
2275 * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
2276 MINUS_EXPR in unsigned type to avoid undefined behavior.
2278 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
2280 * stor-layout.c (self_referential_size): Do not promote arguments.
2282 2014-10-15 Marek Polacek <polacek@redhat.com>
2284 * doc/invoke.texi: Update to reflect that GNU11 is the default
2286 * c-common.h (c_language_kind): Update comment.
2288 2014-10-15 Richard Biener <rguenther@suse.de>
2290 * hash-table.c: Include bconfig.h if building for the host.
2291 * hash-table.h: Do not include ggc.h on the host but just declare
2292 a few ggc allocation templates.
2294 2014-10-15 Joern Rennecke <joern.rennecke@embecosm.com>
2295 Jeff Law <law@redhat.com>
2297 * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
2298 multiple hard registers, use smaller mode derived from MODE.
2300 2014-10-15 Andreas Schwab <schwab@suse.de>
2302 * explow.c (convert_memory_address_addr_space_1): Mark in_const
2303 as ATTRIBUTE_UNUSED.
2305 2014-10-14 Jan Hubicka <hubicka@ucw.cz>
2307 * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
2308 (decide_unrolling): ... this one.
2309 (peel_loops_completely): Remove.
2310 (decide_peel_simple): Remove.
2311 (decide_peel_once_rolling): Remove.
2312 (decide_peel_completely): Remove.
2313 (peel_loop_simple): Remove.
2314 (peel_loop_completely): Remove.
2315 (unroll_and_peel_loops): Rename to ...
2316 (unroll_loops): ... this one; handle only unrolling.
2317 * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
2320 (unroll_and_peel_loops): Remove.
2321 (unroll_loops): New.
2322 * passes.def: Replace
2323 pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
2324 * loop-init.c (gate_rtl_unroll_and_peel_loops,
2325 rtl_unroll_and_peel_loops): Rename to ...
2326 (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
2327 (pass_rtl_unroll_and_peel_loops): Rename to ...
2328 (pass_rtl_unroll_loops): ... this one.
2329 * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
2330 (make_pass_rtl_unroll_loops): New.
2331 * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
2332 (canonicalize_loop_induction_variables): Update.
2334 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
2336 * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
2337 * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
2338 !TARGET_HARD_FLOAT_POSTINC.
2339 (*lsip, *ssip): new instructions.
2341 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
2343 * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
2346 2014-10-14 Andrew Pinski <apinski@cavium.com>
2348 * explow.c (convert_memory_address_addr_space): Rename to ...
2349 (convert_memory_address_addr_space_1): This. Add in_const argument.
2350 Inside a CONST RTL, permute the conversion and addition of constant
2351 for zero and sign extended pointers.
2352 (convert_memory_address_addr_space): New function.
2354 2014-10-14 Andrew Pinski <apinski@cavium.com>
2357 2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
2360 * explow.c (convert_memory_address_addr_space): Also permute the
2361 conversion and addition of constant for zero-extend.
2363 2014-10-14 DJ Delorie <dj@redhat.com>
2365 * config/msp430/msp430-modes.def (PSI): Add.
2367 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
2368 (msp430_hard_regno_nregs_with_padding): New.
2369 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
2370 (msp430_hard_regno_nregs_has_padding): New.
2371 (msp430_hard_regno_nregs_with_padding): New.
2372 (msp430_unwind_word_mode): Use PSImode instead of SImode.
2373 (msp430_addr_space_legitimate_address_p): New.
2374 (msp430_asm_integer): New.
2375 (msp430_init_dwarf_reg_sizes_extra): New.
2376 (msp430_print_operand): Use X suffix for PSImode even in small model.
2377 * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
2378 (PTR_SIZE): ...but 4 bytes for EH.
2379 (SIZE_TYPE): Use __int20.
2380 (PTRDIFF_TYPE): Likewise.
2381 (INCOMING_FRAME_SP_OFFSET): Adjust.
2382 * config/msp430/msp430.md (movqi_topbyte): New.
2383 (movpsi): Use fixed suffixes.
2384 (movsipsi2): Enable for 430X, not large model.
2385 (extendhipsi2): Likewise.
2386 (zero_extendhisi2): Likewise.
2387 (zero_extendhisipsi2): Likewise.
2388 (extend_and_shift1_hipsi2): Likewise.
2389 (extendpsisi2): Likewise.
2390 (*bitbranch<mode>4_z): Fix suffix logic.
2392 2014-10-14 Eric Botcazou <ebotcazou@adacore.com>
2395 * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
2396 do not choke on null node.
2397 <VAR_DECL>: Likewise.
2399 2014-10-14 DJ Delorie <dj@redhat.com>
2401 * machmode.h (int_n_data_t): New.
2402 (int_n_enabled_p): New.
2404 * tree.c (int_n_enabled_p): New.
2406 (make_or_reuse_type): Check for all __intN types, not just
2408 (build_common_tree_nodes): Likewise. Also fill in integer_typs[]
2410 * tree.h (int128_integer_type_node): Remove.
2411 (int128_unsigned_type_node): Remove.
2412 (int_n_trees_t): New.
2413 (int_n_enabled_p): New.
2415 * toplev.c (standard_type_bitsize): New.
2416 (do_compile): Check which __intN types are enabled for the current
2418 * builtin-types.def (BT_INT128): Remove.
2419 (BT_UINT128): Remove.
2420 * machmode.def: Add macro to create __int128 for all targets.
2421 * stor-layout.c (mode_for_size): Support __intN types.
2422 (smallest_mode_for_size): Likewise.
2423 (initialize_sizetypes): Support __intN types.
2424 * genmodes.c (struct mode_data): Add int_n field.
2425 (blank_mode): Likewise.
2428 (emit_insn_modes_h): Count __intN entries and define
2430 (emit_mode_int_n): New.
2431 (emit_insn_modes_c): Call it.
2432 * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
2433 types, not just __int128.
2434 * tree-core.h (integer_type_kind): Remove __int128-specific
2435 entries, reserve spots for __intN entries.
2437 * config/msp430/msp430-modes.def (PSI): Add.
2439 2014-10-14 Kito Cheng <kito@0xlab.org>
2441 * ira.c: Fix typo in comment.
2443 * ira-build.c: Ditto.
2444 * ira-color.c: Ditto.
2445 * ira-emit.c: Ditto.
2447 * ira-lives.c: Ditto.
2449 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
2451 PR rtl-optimization/63475
2452 * alias.c (true_dependence_1): Always use get_addr to extract
2453 true address operands from x_addr and mem_addr. Use extracted
2454 address operands to check for references with alignment ANDs.
2455 Use extracted address operands with find_base_term and
2456 base_alias_check. For noncanonicalized operands call canon_rtx with
2457 extracted address operand.
2458 (write_dependence_1): Ditto.
2459 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
2461 2014-10-14 Evgeny Stupachenko <evstupac@gmail.com>
2464 * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
2467 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2468 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2469 Anna Tikhonova <anna.tikhonova@intel.com>
2470 Ilya Tocar <ilya.tocar@intel.com>
2471 Andrey Turetskiy <andrey.turetskiy@intel.com>
2472 Ilya Verbin <ilya.verbin@intel.com>
2473 Kirill Yukhin <kirill.yukhin@intel.com>
2474 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2476 * config/i386/i386.c
2477 (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
2478 (ix86_expand_int_vcond): Ditto.
2480 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2481 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2482 Anna Tikhonova <anna.tikhonova@intel.com>
2483 Ilya Tocar <ilya.tocar@intel.com>
2484 Andrey Turetskiy <andrey.turetskiy@intel.com>
2485 Ilya Verbin <ilya.verbin@intel.com>
2486 Kirill Yukhin <kirill.yukhin@intel.com>
2487 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2489 * config/i386/i386.c
2490 (emit_reduc_half): Handle V64QI and V32HI mode.
2491 * config/i386/sse.md
2492 (define_mode_iterator VI_AVX512BW): New.
2493 (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
2495 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2496 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2497 Anna Tikhonova <anna.tikhonova@intel.com>
2498 Ilya Tocar <ilya.tocar@intel.com>
2499 Andrey Turetskiy <andrey.turetskiy@intel.com>
2500 Ilya Verbin <ilya.verbin@intel.com>
2501 Kirill Yukhin <kirill.yukhin@intel.com>
2502 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2504 * config/i386/sse.md
2505 (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
2507 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2508 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2509 Anna Tikhonova <anna.tikhonova@intel.com>
2510 Ilya Tocar <ilya.tocar@intel.com>
2511 Andrey Turetskiy <andrey.turetskiy@intel.com>
2512 Ilya Verbin <ilya.verbin@intel.com>
2513 Kirill Yukhin <kirill.yukhin@intel.com>
2514 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2516 * config/i386/i386.c
2517 (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
2518 * config/i386/sse.md
2519 (define_mode_iterator VI): Add V64QI and V32HI modes.
2521 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2522 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2523 Anna Tikhonova <anna.tikhonova@intel.com>
2524 Ilya Tocar <ilya.tocar@intel.com>
2525 Andrey Turetskiy <andrey.turetskiy@intel.com>
2526 Ilya Verbin <ilya.verbin@intel.com>
2527 Kirill Yukhin <kirill.yukhin@intel.com>
2528 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2530 * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
2532 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2533 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2534 Anna Tikhonova <anna.tikhonova@intel.com>
2535 Ilya Tocar <ilya.tocar@intel.com>
2536 Andrey Turetskiy <andrey.turetskiy@intel.com>
2537 Ilya Verbin <ilya.verbin@intel.com>
2538 Kirill Yukhin <kirill.yukhin@intel.com>
2539 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2541 * config/i386/sse.md
2542 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
2543 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
2545 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2546 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2547 Anna Tikhonova <anna.tikhonova@intel.com>
2548 Ilya Tocar <ilya.tocar@intel.com>
2549 Andrey Turetskiy <andrey.turetskiy@intel.com>
2550 Ilya Verbin <ilya.verbin@intel.com>
2551 Kirill Yukhin <kirill.yukhin@intel.com>
2552 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2554 * config/i386/sse.md
2555 (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
2556 (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
2558 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2559 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2560 Anna Tikhonova <anna.tikhonova@intel.com>
2561 Ilya Tocar <ilya.tocar@intel.com>
2562 Andrey Turetskiy <andrey.turetskiy@intel.com>
2563 Ilya Verbin <ilya.verbin@intel.com>
2564 Kirill Yukhin <kirill.yukhin@intel.com>
2565 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2567 * config/i386/sse.md
2568 (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
2569 (define_mode_iterator VI2_AVX2): Add V32HI mode.
2570 (define_expand "mul<mode>3<mask_name>"): Add masking.
2571 (define_insn "*mul<mode>3<mask_name>"): Ditto.
2572 (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
2573 (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
2574 (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
2575 (define_mode_attr SDOT_PMADD_SUF): Ditto.
2576 (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
2577 (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
2578 (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
2579 (define_insn "avx2_packusdw"): Delete.
2580 (define_insn "sse4_1_packusdw"): Ditto.
2581 (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
2583 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2584 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2585 Anna Tikhonova <anna.tikhonova@intel.com>
2586 Ilya Tocar <ilya.tocar@intel.com>
2587 Andrey Turetskiy <andrey.turetskiy@intel.com>
2588 Ilya Verbin <ilya.verbin@intel.com>
2589 Kirill Yukhin <kirill.yukhin@intel.com>
2590 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2592 * config/i386/sse.md
2593 (define_insn "vec_dup<mode>"): Update constraints.
2595 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2596 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2597 Anna Tikhonova <anna.tikhonova@intel.com>
2598 Ilya Tocar <ilya.tocar@intel.com>
2599 Andrey Turetskiy <andrey.turetskiy@intel.com>
2600 Ilya Verbin <ilya.verbin@intel.com>
2601 Kirill Yukhin <kirill.yukhin@intel.com>
2602 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2604 * config/i386/sse.md
2605 (define_mode_iterator SSESCALARMODE): Add V4TI mode.
2606 (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
2607 (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
2609 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2610 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2611 Anna Tikhonova <anna.tikhonova@intel.com>
2612 Ilya Tocar <ilya.tocar@intel.com>
2613 Andrey Turetskiy <andrey.turetskiy@intel.com>
2614 Ilya Verbin <ilya.verbin@intel.com>
2615 Kirill Yukhin <kirill.yukhin@intel.com>
2616 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2618 * config/i386/sse.md
2619 (define_expand "mul<mode>3<mask_name>"): Add masking.
2621 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2622 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2623 Anna Tikhonova <anna.tikhonova@intel.com>
2624 Ilya Tocar <ilya.tocar@intel.com>
2625 Andrey Turetskiy <andrey.turetskiy@intel.com>
2626 Ilya Verbin <ilya.verbin@intel.com>
2627 Kirill Yukhin <kirill.yukhin@intel.com>
2628 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2630 * config/i386/sse.md
2631 (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
2632 (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
2634 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2635 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2636 Anna Tikhonova <anna.tikhonova@intel.com>
2637 Ilya Tocar <ilya.tocar@intel.com>
2638 Andrey Turetskiy <andrey.turetskiy@intel.com>
2639 Ilya Verbin <ilya.verbin@intel.com>
2640 Kirill Yukhin <kirill.yukhin@intel.com>
2641 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2643 * config/i386/sse.md
2644 (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
2645 (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
2646 (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
2649 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2650 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2651 Anna Tikhonova <anna.tikhonova@intel.com>
2652 Ilya Tocar <ilya.tocar@intel.com>
2653 Andrey Turetskiy <andrey.turetskiy@intel.com>
2654 Ilya Verbin <ilya.verbin@intel.com>
2655 Kirill Yukhin <kirill.yukhin@intel.com>
2656 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2658 * config/i386/sse.md
2659 (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
2660 use VF_128_256 mode iterator and update assembler emit code.
2661 (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
2662 (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
2663 Add masking, use VF_128_256 mode iterator.
2664 (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
2665 (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
2666 Add masking, use VF_128_256 mode iterator and update assembler emit
2668 (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
2669 (define_mode_attr avx512flogicsuff): Delete.
2670 (define_insn "avx512f_<logic><mode>"): Ditto.
2671 (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
2673 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
2675 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2676 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2677 Anna Tikhonova <anna.tikhonova@intel.com>
2678 Ilya Tocar <ilya.tocar@intel.com>
2679 Andrey Turetskiy <andrey.turetskiy@intel.com>
2680 Ilya Verbin <ilya.verbin@intel.com>
2681 Kirill Yukhin <kirill.yukhin@intel.com>
2682 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2684 * config/i386/sse.md
2685 (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
2686 (define_expand "vashr<mode>3<mask_name>"): Add masking,
2687 use VI12_128 mode iterator.
2688 (define_expand "ashrv2di3<mask_name>"): New.
2690 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2691 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2692 Anna Tikhonova <anna.tikhonova@intel.com>
2693 Ilya Tocar <ilya.tocar@intel.com>
2694 Andrey Turetskiy <andrey.turetskiy@intel.com>
2695 Ilya Verbin <ilya.verbin@intel.com>
2696 Kirill Yukhin <kirill.yukhin@intel.com>
2697 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2699 * config/i386/i386.c
2700 (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
2701 CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
2702 CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
2703 CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
2704 CODE_FOR_avx512vl_ucmpv4si3_mask.
2705 * config/i386/sse.md
2706 (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
2707 "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
2709 "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
2710 (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
2711 (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
2712 (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
2713 (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
2714 (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
2716 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2717 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2718 Anna Tikhonova <anna.tikhonova@intel.com>
2719 Ilya Tocar <ilya.tocar@intel.com>
2720 Andrey Turetskiy <andrey.turetskiy@intel.com>
2721 Ilya Verbin <ilya.verbin@intel.com>
2722 Kirill Yukhin <kirill.yukhin@intel.com>
2723 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2725 * config/i386/sse.md
2726 (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
2727 (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
2728 (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
2729 (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
2730 (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
2731 (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
2732 (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2733 (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2734 (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
2736 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
2737 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2738 Anna Tikhonova <anna.tikhonova@intel.com>
2739 Ilya Tocar <ilya.tocar@intel.com>
2740 Andrey Turetskiy <andrey.turetskiy@intel.com>
2741 Ilya Verbin <ilya.verbin@intel.com>
2742 Kirill Yukhin <kirill.yukhin@intel.com>
2743 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2745 * config/i386/sse.md
2746 (define_insn "avx512f_blendm<mode>"): Delete.
2747 (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
2748 (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
2749 (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
2750 V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
2752 "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2755 "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2758 "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2760 (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
2761 (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
2762 (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
2763 (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
2766 "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
2769 "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
2771 (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
2774 "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
2777 "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
2780 2014-10-14 Richard Biener <rguenther@suse.de>
2782 PR tree-optimization/63512
2783 * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
2786 2014-10-14 Oleg Endo <olegendo@gcc.gnu.org>
2789 * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
2790 abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute. Remove use
2792 (negsf2_i): Rename to *negsf2_i.
2793 (abssf2_i): Rename to *abssf2_i.
2794 (negdf2_i): Rename to *negdf2_i.
2795 (absdf2_i): Rename to *absdf2_i.
2797 2014-10-14 Felix Yang <felix.yang@huawei.com>
2798 Jeff Law <law@redhat.com>
2800 * ira.c (struct equivalence): Change member "is_arg_equivalence" and
2801 "replace" into boolean bitfields; turn member "loop_depth" into a short
2802 integer; add new member "no_equiv" and "reserved".
2803 (no_equiv): Set no_equiv of struct equivalence if register is marked
2804 as having no known equivalence.
2805 (update_equiv_regs): Check all definitions for a multiple-set
2806 register to make sure that the RHS have the same value.
2808 2014-10-13 Richard Henderson <rth@redhat.com>
2810 * combine-stack-adj.c (no_unhandled_cfa): New.
2811 (maybe_merge_cfa_adjust): New.
2812 (combine_stack_adjustments_for_block): Use them.
2814 2014-10-13 Aldy Hernandez <aldyh@redhat.com>
2816 * Makefile.in (TAGS): Tag ../include files.
2818 2014-10-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2820 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
2821 to rs6000_dbx_register_number.
2822 (DWARF_FRAME_REGNUM): Redefine as identity map.
2823 (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
2824 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
2825 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
2826 argument to handle .debug_frame and .eh_frame directly. Always
2827 translate SPE high register numbers. Add special treatment for CR,
2828 but only in .debug_frame. Respect RS6000_USE_DWARF_NUMBERING.
2830 * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
2831 * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
2832 (RS6000_USE_DWARF_NUMBERING): Define.
2833 * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
2834 (RS6000_USE_DWARF_NUMBERING): Define.
2835 * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
2836 (RS6000_USE_DWARF_NUMBERING): Define.
2837 * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
2838 (RS6000_USE_DWARF_NUMBERING): Define.
2839 * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
2840 * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
2842 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
2844 * config/i386/i386.c (ix86_address_cost): Lower cost for
2845 when address contains GOT register.
2847 2014-10-13 Ilya Enkovich <ilya.enkovich@intel.com>
2848 Vladimir Makarov <vmakarov@redhat.com>
2852 PR rtl-optimization/55458
2853 * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
2854 (ix86_init_pic_reg): New.
2855 (ix86_select_alt_pic_regnum): Add check on pseudo register.
2856 (ix86_save_reg): Likewise.
2857 (ix86_expand_prologue): Remove PIC register initialization
2858 now performed in ix86_init_pic_reg.
2859 (ix86_output_function_epilogue): Add check on pseudo register.
2860 (set_pic_reg_ever_alive): New.
2861 (legitimize_pic_address): Replace df_set_regs_ever_live with new
2862 set_pic_reg_ever_alive.
2863 (legitimize_tls_address): Likewise.
2864 (ix86_pic_register_p): New check.
2865 (ix86_delegitimize_address): Add check on pseudo register.
2866 (ix86_expand_call): Insert move from pseudo PIC register to ABI
2867 defined REAL_PIC_OFFSET_TABLE_REGNUM.
2868 (TARGET_INIT_PIC_REG): New.
2869 (TARGET_USE_PSEUDO_PIC_REG): New.
2870 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
2871 if pic_offset_table_rtx exists.
2872 * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
2874 * doc/tm.texi: Regenerate.
2875 * function.c (assign_parms): Generate pseudo register for PIC.
2876 * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
2878 * ira-color.c (color_pass): Add check on pseudo register.
2879 * ira-emit.c (change_loop): Don't create copies for PIC pseudo
2881 * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
2883 (ira): Add target specific PIC register initialization.
2884 (do_reload): Keep PIC pseudo register.
2885 * lra-assigns.c (spill_for): Add checks on pseudo register.
2886 * lra-constraints.c (contains_symbol_ref_p): New.
2887 (lra_constraints): Enable lra risky transformations when PIC is pseudo
2889 * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
2890 * target.def (use_pseudo_pic_reg): New.
2891 (init_pic_reg): New.
2893 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
2895 * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
2896 Remove m_SILVERMONT and m_INTEL from the tune.
2898 2014-10-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2901 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
2902 when _HPUX_SOURCE is defined.
2904 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
2906 PR tree-optimization/62127
2907 * tree.c (remap_type_1): When remapping array, remap
2910 2014-10-13 Christophe Lyon <christophe.lyon@linaro.org>
2912 * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
2913 longer impact parallelization.
2915 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
2918 * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
2920 2014-10-13 Marat Zakirov <m.zakirov@samsung.com>
2922 * asan.c (instrument_derefs): BIT_FIELD_REF added.
2924 2014-10-13 Richard Biener <rguenther@suse.de>
2926 PR tree-optimization/63419
2927 * gimple-fold.h (gimple_convert): New function.
2928 * gimple-fold.c (gimple_convert): Likewise.
2929 * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
2930 to split out required conversions early.
2932 2014-10-13 Richard Sandiford <richard.sandiford@arm.com>
2934 * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
2935 Add the parts of an insn in reverse order, with the pattern at
2936 the top of the queue. Detect when we're iterating over a SEQUENCE
2937 pattern and in that case just consider patterns of subinstructions.
2939 2014-10-12 Oleg Endo <olegendo@gcc.gnu.org>
2942 * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
2944 * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
2946 (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
2947 address. Use def chains to handle GBR clobbering call insns.
2949 2014-10-12 Trevor Saunders <tsaunders@mozilla.com>
2951 * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
2952 config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
2953 config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
2954 function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
2955 output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
2956 tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
2957 * doc/gty.texi (for_user): Document new option.
2958 * gengtype.c (create_user_defined_type): Don't try to get a struct for
2960 (walk_type): Don't error out on for_user option.
2961 (write_func_for_structure): Emit user marking routines if requested by
2963 (write_local_func_for_structure): Likewise.
2964 (main): Mark types with for_user option as used.
2965 * ggc.h (gt_pch_nx): Add overload for unsigned int.
2966 * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
2967 * hash-table.h (ggc_hasher): New struct.
2968 (hash_table::create_ggc): New function.
2969 (gt_pch_nx): New overload for hash_table.
2971 2014-10-11 Oleg Endo <olegendo@gcc.gnu.org>
2973 * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
2974 * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
2975 * config/sh/sh.c: Likewise.
2976 * config/sh/sh-mem.cc: Likewise.
2977 * config/sh/sh.md: Likewise.
2978 * config/sh/predicates.md: Likewise.
2979 * config/sh/sync.md: Likewise.
2981 2014-10-11 Martin Liska <mliska@suse.cz>
2984 * cgraphunit.c (symbol_table::process_new_functions): Missing call
2985 for call_cgraph_insertion_hooks added.
2987 2014-10-10 Jakub Jelinek <jakub@redhat.com>
2990 * stor-layout.c (min_align_of_type): Don't decrease alignment
2991 through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
2992 TYPE_USER_ALIGN is set.
2994 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
2996 PR rtl-optimization/63483
2997 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
2998 references when alignment ANDs are involved.
2999 (write_dependence_p): Ditto.
3000 (may_alias_p): Ditto.
3002 2014-10-10 Marek Polacek <polacek@redhat.com>
3004 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
3005 * doc/invoke.texi: Document -fsanitize=object-size.
3006 * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
3007 or it into SANITIZE_UNDEFINED.
3008 * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
3009 * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
3010 * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
3011 * opts.c (common_handle_option): Handle -fsanitize=object-size.
3012 * ubsan.c: Include tree-object-size.h.
3013 (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
3014 (ubsan_expand_bounds_ifn): Use false instead of 0.
3015 (ubsan_expand_objsize_ifn): New function.
3016 (instrument_object_size): New function.
3017 (pass_ubsan::execute): Add object size instrumentation.
3018 * ubsan.h (ubsan_expand_objsize_ifn): Declare.
3020 2014-10-10 Richard Henderson <rth@redhat.com>
3023 * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
3024 Restrict the set of expressions we're willing to move.
3026 2014-10-10 Jeff Law <law@redhat.com>
3028 * ira.c (struct equivalence): Promote INIT_INSNs field to
3029 an rtx_insn_list. Add comments.
3030 (no_equiv): Promote LIST to an rtx_insn_list. Update
3031 testing for and creating the special marker. Use methods
3032 to extract the insn and next pointers. Promote INSN to an
3034 (update_equiv_regs): Update test for special marker in the
3037 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3039 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
3040 * configure: Regenerate.
3041 * config/aarch64/aarch64.c (aarch64_override_options): Handle
3042 TARGET_FIX_ERR_A53_835769_DEFAULT.
3043 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
3045 * doc/install.texi (aarch64*-*-*): Document
3046 new --enable-fix-cortex-a53-835769 option.
3048 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3049 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3051 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
3052 (ADJUST_INSN_LENGTH): Define.
3053 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
3054 * config/aarch64/aarch64.c (is_mem_p): New function.
3055 (is_memory_op): Likewise.
3056 (aarch64_prev_real_insn): Likewise.
3057 (is_madd_op): Likewise.
3058 (dep_between_memop_and_curr): Likewise.
3059 (aarch64_madd_needs_nop): Likewise.
3060 (aarch64_final_prescan_insn): Likewise.
3061 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
3062 and -mno-fix-cortex-a53-835769 options.
3064 2014-10-10 Jakub Jelinek <jakub@redhat.com>
3066 PR tree-optimization/63464
3067 * tree-switch-conversion.c (struct case_bit_test): Remove
3068 hi and lo fields, add wide_int mask field.
3069 (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
3070 hi/lo fields into wide_int mask operations, optimize by pretending
3071 minval to be 0 if maxval is small enough.
3072 (process_switch): Adjust caller.
3074 2014-10-10 Richard Biener <rguenther@suse.de>
3076 PR tree-optimization/63379
3077 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
3078 a neutral operand for min/max when it is not a reduction chain.
3080 2014-10-10 Richard Biener <rguenther@suse.de>
3082 PR tree-optimization/63476
3083 * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
3084 (BB_LIVE_VOP_ON_EXIT): New define.
3085 (create_expression_by_pieces): Assign VUSEs to stmts.
3086 (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
3087 (pass_pre::execute): Assert virtual SSA form is up-to-date
3090 2014-10-10 Eric Botcazou <ebotcazou@adacore.com>
3092 * lra-assigns.c (assign_by_spills): Error out on spill failure.
3094 2014-10-09 Markus Trippelsdorf <markus@trippelsdorf.de>
3096 * pa-polymorphic-call.c (check_stmt_for_type_change): Move
3099 2014-10-09 Richard Biener <rguenther@suse.de>
3101 PR tree-optimization/63380
3102 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
3105 2014-10-09 Joern Rennecke <joern.rennecke@embecosm.com>
3107 * config/avr/avr.opt (mmcu=): Change to have a string value.
3108 (mn-flash=, mskip-bug, march=, mrmw): New options.
3109 (HeaderInclude): New.
3110 (mmcu=): Remove Var / Init clauses.
3111 * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
3113 (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
3114 (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
3115 (SYMBOL_FLAG_IO_LOW): Define.
3116 (avr_device_to_as, avr_device_to_ld): Don't declare.
3117 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3118 (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
3119 (EXTRA_SPEC_FUNCTIONS): Don't define.
3120 (ASM_SPEC): Translate -arch= option to -mmcu= option.
3121 (LINK_SPEC): Translate -arch= option to -m= option.
3122 Don't use device_to_ld / device_to_data_start.
3123 (STARTFILE_SPEC): Now empty.
3124 (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
3125 * config/avr/gen-avr-mmcu-specs.c: New file.
3126 * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
3127 (s-device-specs): Likewise.
3128 (GCC_PASSES): Add s-device-specs.
3129 (install-driver): Depend on install-device-specs.
3130 (install-device-specs): New rule.
3131 * config/avr/avr.c (avr_option_override): Look up mcu arch by
3132 avr_arch_index and provide fallback initialization for avr_n_flash.
3133 (varasm.h): #include.
3134 (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
3135 (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
3136 (avr_attribute_table): Add "io", "address" and "io_low".
3137 (avr_asm_output_aligned_decl_common): Change type of decl to tree.
3138 Add special handling for symbols with "io" and/or "address" attributes.
3139 (avr_asm_asm_output_aligned_bss): New function.
3140 (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
3141 as appropriate. Handle io_low attribute.
3142 (avr_out_sbxx_branch): Handle symbolic io addresses.
3143 (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
3144 avr_n_flash instead of avr_current_device->n_flash.
3145 (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
3146 (avr_emit_movmemhi): Likewise.
3147 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
3148 Use TARGET_RMW instead of avr_current_device->dev_attributes.
3149 Don't define avr_current_device->macro (that's the specfile's job).
3150 Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
3151 * config/avr/avr.c (avr_2word_insn_p): Likewise.
3152 * config/avr/avr.md (*cpse.ne): Likewise.
3153 (mov<mode>): Use avr_eval_addr_attrib.
3154 (cbi): Change constraint for low_io_address_operand operand to "i".
3155 (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
3156 * config/avr/predicates.md (io_address_operand):
3157 Allow SYMBOL_REF with SYMBOL_FLAG_IO.
3158 (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
3159 * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
3161 (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
3162 * config/avr/genmultilib.awk: Use -march=.
3163 Remove Multilib matches processing.
3164 * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
3165 * config/avr/avr-arch.h: Add double include guard.
3166 (avr_mcu_t) <library_name>: Update comment.
3167 * config/avr/driver-avr.c (avr_device_to_as): Delete.
3168 (avr_device_to_ld, avr_device_to_data_start): Likewise.
3169 (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
3170 (avr_device_to_sp8): Likewise.
3171 * config/avr/genopt.sh: Instead avr_mcu, emit an Enum for avr_arch.
3173 * doc/extend.texi (io, address): Document new AVR variable attributes.
3176 2014-10-09 Marek Polacek <polacek@redhat.com>
3178 * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
3180 2014-10-08 Richard Biener <rguenther@suse.de>
3182 PR tree-optimization/61969
3183 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
3186 2014-10-09 Richard Biener <rguenther@suse.de>
3188 PR tree-optimization/63445
3189 * tree-vrp.c (simplify_cond_using_ranges): Only warn about
3190 overflow for non-equality compares.
3192 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
3194 PR rtl-optimization/57003
3195 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
3196 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
3197 killing regs_invalidated_by_call.
3199 2014-10-08 Teresa Johnson <tejohnson@google.com>
3202 * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
3203 (ssa_fix_duplicate_block_edges): Invoke it.
3204 (mark_threaded_blocks): Make two passes to avoid ordering dependences.
3206 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
3209 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
3210 atomic_fetch_<fetchop_name>si_hard,
3211 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
3212 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
3213 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
3214 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
3216 2014-10-08 Rong Xu <xur@google.com>
3218 * gcov-tool.c (profile_overlap): New driver function
3219 to compute profile overlap.
3220 (print_overlap_usage_message): New.
3221 (overlap_usage): New.
3223 (print_usage): Add calls to overlap function.
3225 * doc/gcov-tool.texi: Add documentation.
3227 2014-10-08 Steve Ellcey <sellcey@mips.com>
3229 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
3230 LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
3232 2014-10-08 Jan Hubicka <hubicka@ucw.cz>
3234 * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
3235 pattern matching of MEM_REF.
3236 (check_stmt_for_type_change): Update.
3238 2014-10-08 Steve Ellcey <sellcey@mips.com>
3240 * config/mips/linux64.h: Remove.
3241 * config/mips/gnu-user64.h: Remove.
3242 * gcc.config (mips*-*-*): Remove references to linux64.h and
3244 * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
3245 with modified version from gnu-user64.h.
3246 (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
3247 (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
3248 * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
3250 (GNU_USER_LINK_EMULATION64): Ditto.
3251 (GNU_USER_LINK_EMULATIONN32): Ditto.
3252 (GLIBC_DYNAMIC_LINKER32): Ditto.
3253 (GLIBC_DYNAMIC_LINKER64): Ditto.
3254 (GLIBC_DYNAMIC_LINKERN32): Ditto.
3255 (UCLIBC_DYNAMIC_LINKER32): Ditto.
3256 (UCLIBC_DYNAMIC_LINKER64): Ditto.
3257 (UCLIBC_DYNAMIC_LINKERN32): Ditto.
3258 (BIONIC_DYNAMIC_LINKERN32): Ditto.
3259 (GNU_USER_DYNAMIC_LINKERN32): Ditto.
3260 (GLIBC_DYNAMIC_LINKER): Delete.
3261 (UCLIBC_DYNAMIC_LINKER): Delete.
3263 2014-10-08 Joern Rennecke <joern.rennecke@embecosm.com>
3264 Richard Biener <rguenther@suse.de>
3266 * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
3267 Get address space from operand 0 (BASE).
3269 2014-10-07 Iain Sandoe <iain@codesourcery.com>
3272 * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
3274 2014-10-07 Aldy Hernandez <aldyh@redhat.com>
3276 * dwarf2out.c: Remove current_function_has_inlines.
3277 (gen_subprogram_die): Same.
3278 (gen_inlined_subroutine_die): Same.
3280 2014-10-07 Ilya Tocar <ilya.tocar@intel.com>
3282 * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
3284 (_addcarry_u64): Ditto.
3285 (_addcarryx_u64): Ditto.
3287 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
3289 * cgraph.h (cgraph_node::get_fun): Declare.
3290 * cgraph.c (cgraph_node::get_fun): New method.
3291 * ipa-inline.c (can_inline_edge_p): Use it.
3293 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
3295 * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
3296 and -ftrapping-math.
3297 * lto-wrapper.c (merge_and_complain): Likewise.
3298 (run_gcc): Likewise.
3300 2014-10-06 Rong Xu <xur@google.com>
3302 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
3303 * tree-profile.c: (params.h): New include.
3304 (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
3305 and __gcov_indirect_call_topn_counters for
3306 indirect_call_topn_profile.
3307 (gimple_init_edge_profiler): New decls for
3308 __gcov_indirect_call_topn_profiler.
3309 (gimple_gen_ic_profiler): Generate the correct profiler call.
3310 (gimple_gen_ic_func_profiler): Fix format.
3311 * value-prof.c (params.h): New include.
3312 (dump_histogram_value): Hanlde indirect_call_topn counters.
3313 (stream_in_histogram_value): Ditto.
3314 (gimple_indirect_call_to_profile): Use indirect_call_topn
3315 profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
3316 (gimple_find_values_to_profile): Hanlde indirect_call_topn
3318 * value-prof.h (enum hist_type): Histrogram type for
3319 indirect_call_topn counters.
3320 * profile.c (instrument_values): Instrument
3321 indirect_call_topn counters.
3323 2014-10-06 Rong Xu <xur@google.com>
3325 * Makefile.in: Fix dependence.
3326 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
3327 indirect call topn profiler.
3330 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
3332 * calls.c (expand_call): Do not use the target as the return slot if
3333 it is not sufficiently aligned.
3335 2014-10-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3337 * config/rs6000/rs6000.c (analyze_swaps commentary): Add
3338 discussion of permutes and why we don't handle them.
3340 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
3342 * config/sparc/predicates.md (int_register_operand): Delete.
3344 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
3346 * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
3348 2014-10-06 Jakub Jelinek <jakub@redhat.com>
3350 * ubsan.h (ubsan_get_source_location): New prototype.
3351 * ubsan.c (ubsan_source_location_type): New variable.
3352 Function renamed to ...
3353 (ubsan_get_source_location_type): ... this. Cache
3354 return value in ubsan_source_location_type variable.
3355 (ubsan_source_location, ubsan_create_data): Use
3356 ubsan_get_source_location_type instead of
3357 ubsan_source_location_type.
3358 * asan.c (asan_protect_global): Don't protect globals
3359 with ubsan_get_source_location_type () type.
3360 (asan_add_global): Provide global decl location info
3363 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
3365 * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
3368 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
3370 * ipa-polymorphic-call.c (possible_placement_new): Fix condition
3372 (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
3374 (ipa_polymorphic_call_context::dump): Fix formating.
3375 (walk_ssa_copies): Add logic avoiding loops; update uses.
3376 * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
3378 2014-10-02 Mark Wielaard <mjw@redhat.com>
3381 * dwarf2out.c (gen_subprogram_die): When a member function is
3382 explicitly deleted then add a DW_AT_GNU_deleted attribute.
3383 * langhooks.h (struct lang_hooks_for_decls): Add
3384 function_decl_deleted_p langhook.
3385 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
3386 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
3388 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
3390 * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
3391 NULL pointer checks.
3392 (ipa_polymorphic_call_context::get_dynamic_type): Return true
3393 if type doesn't change.
3394 * cgraph.h (cgraph_indirect_call_info): New flag.
3395 * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
3396 (cgraph_node::dump): Dump it.
3397 * ipa-prop.c (ipa_analyze_call_uses): Ignore return valud
3398 of context.get_dynamic_type.
3399 (ipa_make_edge_direct_to_target): Do not speculate
3400 edge that is already speuclative.
3401 (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
3402 speculate to __builtin_unreachable
3403 (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
3405 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
3407 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
3409 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
3410 get_dynamic_type; drop TODO.
3411 * ipa-polymorphic-call.c
3412 (ipa_polymorphic_call_context::get_dynamic_type): Be ready
3413 for otr_type to be unknown.
3415 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
3417 * common/config/score/score-common.c: Remove.
3418 * config.gcc: Remove support for score-*.
3419 * config/score/constraints.md: Remove.
3420 * config/score/elf.h: Remove.
3421 * config/score/predicates.md: Remove.
3422 * config/score/score-conv.h: Remove.
3423 * config/score/score-generic.md: Remove.
3424 * config/score/score-modes.def: Remove.
3425 * config/score/score-protos.h: Remove.
3426 * config/score/score.c: Remove.
3427 * config/score/score.h: Remove.
3428 * config/score/score.md: Remove.
3429 * config/score/score.opt: Remove.
3430 * doc/md.texi: Don't document score-*.
3432 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
3435 * genconditions.c: Directly include ggc.h before rtl.h.
3437 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
3439 * ipa-polymorphic-call.c
3440 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
3441 code determining speculative type.
3442 (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
3444 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3446 * altivec.md (altivec_lvsl): New define_expand.
3447 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
3448 (altivec_lvsr): New define_expand.
3449 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
3450 * rs6000.c (rs6000_expand_builtin): Change to use
3451 altivec_lvs[lr]_direct; remove commented-out code.
3453 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3455 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3456 Issue a warning message when vec_lvsl or vec_lvsr is used with a
3457 little endian target.
3459 2014-10-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
3461 * tree-pretty-print.c (dump_location): Make it extern. Dump also
3463 * tree-pretty-print.h (dump_location): Declare.
3464 * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
3465 (pp_gimple_stmt_1): Likewise.
3466 (dump_implicit_edges): Likewise.
3467 * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
3471 2014-10-03 David Malcolm <dmalcolm@redhat.com>
3473 * gcc.c (driver::global_initializations): Remove "const" so
3474 that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
3475 and decoded_options_count.
3477 2014-10-03 Maciej W. Rozycki <macro@codesourcery.com>
3479 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
3481 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
3482 TARGET_E500_DOUBLE case here.
3484 2014-10-03 Marc Glisse <marc.glisse@inria.fr>
3489 * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
3491 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
3493 * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
3494 * lto-cgraph.c (lto_output_edge, input_edge): Stream
3495 in_polymorphic_cdtor
3496 * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
3497 (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
3498 * cgraphclones.c (cgraph_edge::clone): Likewise.
3499 * ipa-prop.c (update_jump_functions_after_inlining,
3500 try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
3501 to possible_dynamic_type_change.
3502 (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
3503 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
3504 IN_POLY_CDOTR argument.
3506 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
3507 for BASE and OUTER_TYPE being NULL.
3508 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
3509 in_poly_cdtor parameter.
3511 2014-10-03 Jakub Jelinek <jakub@redhat.com>
3513 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
3514 (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
3516 (expand_vec_perm_1): Likewise.
3518 2014-10-03 Jakub Jelinek <jakub@redhat.com>
3519 Uros Bizjak <ubizjak@gmail.com>
3521 PR tree-optimization/61403
3522 * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
3523 error in comment. Also optimize 256-bit vectors for AVX2
3524 or AVX (floating vectors only), provided the first permutation
3525 can be performed in one insn.
3527 2014-10-03 David Malcolm <dmalcolm@redhat.com>
3529 * gcc.c (class driver): New class.
3530 (main): Reimplement in terms of driver::main, moving most of the
3531 locals to be locals within individual methods of class driver.
3532 The remaining locals "explicit_link_files", "decoded_options" and
3533 "decoded_options_count" are used by multiple driver:: methods, and
3534 so become member data. Doing so isolates the argc/argv reads and
3535 writes. Replace "goto out" with a special exit code from
3536 new method driver::prepare_infiles. Split out the old
3537 implementation of main into the following...
3538 (driver::main): New function, corresponding to the old "main"
3540 (driver::set_progname): New function, taken from the old
3541 "main" implementation.
3542 (driver::expand_at_files): Likewise.
3543 (driver::decode_argv): Likewise.
3544 (driver::global_initializations): Likewise.
3545 (driver::build_multilib_strings): Likewise.
3546 (driver::set_up_specs): Likewise.
3547 (driver::putenv_COLLECT_GCC): Likewise.
3548 (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
3549 (driver::handle_unrecognized_options): Likewise.
3550 (driver::maybe_print_and_exit): Likewise.
3551 (driver::prepare_infiles): Likewise.
3552 (driver::do_spec_on_infiles): Likewise.
3553 (driver::maybe_run_linker): Likewise.
3554 (driver::final_actions): Likewise.
3555 (driver::get_exit_code): Likewise.
3557 2014-10-03 Yury Gribov <y.gribov@samsung.com>
3559 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
3560 don't emit empty ctors.
3562 2014-10-03 Eric Botcazou <ebotcazou@adacore.com>
3564 * convert.c (convert_to_integer): Do not introduce useless conversions
3565 between integral types.
3567 2014-10-03 David Sherwood <david.sherwood@arm.com>
3569 * ira-int.h (ira_allocno): Mark hard_regno as signed.
3571 2014-10-03 Ilya Enkovich <ilya.enkovich@intel.com>
3573 * lra-constraints.c (inherit_in_ebb): Handle calls with
3574 multiple return values.
3575 * caller-save.c (save_call_clobbered_regs): Likewise.
3577 2014-10-03 Jakub Jelinek <jakub@redhat.com>
3579 * tree-vect-data-refs.c (vect_permute_load_chain,
3580 vect_shift_permute_load_chain): Fix a typo in temporary var names,
3581 suffle3 to shuffle3.
3584 * omp-low.c (taskreg_contexts): New variable.
3585 (scan_omp_parallel): Push newly created context into taskreg_contexts
3586 vector and move record layout code to finish_taskreg_scan.
3587 (scan_omp_task): Likewise.
3588 (finish_taskreg_scan): New function.
3589 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
3590 vector elements and release it.
3593 * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
3594 of palignr arguments can't be used due to min 0 or max - min
3595 too high, try also op0, op1 order of palignr arguments.
3597 2014-10-02 Jan Hubicka <hubicka@ucw.cz>
3599 * cgraph.h (ipa_polymorphic_call_context):
3600 Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
3601 private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
3602 * ipa-polymorphic-call.c
3603 (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
3604 past end of dynamic types.
3605 (ipa_polymorphic_call_context::stream_out,
3606 speculative_outer_type): Stream dynamic flag.
3607 (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
3608 (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
3610 (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
3612 (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
3613 * ipa-prop.c (update_jump_functions_after_inlining,
3614 try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
3616 2014-10-02 Teresa Johnson <tejohnson@google.com>
3618 * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
3619 up when synthesizing counts to avoid rounding errors.
3621 2014-10-02 Teresa Johnson <tejohnson@google.com>
3624 * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
3625 asserts to handle incoming insanities.
3627 2014-10-02 Martin Jambor <mjambor@suse.cz>
3629 PR tree-optimization/63375
3630 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
3633 2014-10-02 Olivier Hainque <hainque@adacore.com>
3635 * Makefile.in (CROSS): Define, to @CROSS.
3637 2014-10-02 Jakub Jelinek <jakub@redhat.com>
3640 * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
3641 if it expands to a single insn only.
3642 (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument. If true,
3643 fail unless in_order is true. Add forward declaration.
3644 (expand_vec_perm_vperm2f128): Fix up comment about which permutation
3645 is useful for one_operand_p.
3646 (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
3648 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3650 * cgraphclones.c (build_function_type_skip_args): Do not make new
3651 type variant of old.
3653 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3655 * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
3656 when speculation is added.
3657 (ipa_edge_args): Add polymorphic_call_contexts.
3658 (ipa_get_ith_polymorhic_call_context): New accesor.
3659 (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
3660 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
3661 (ipa_compute_jump_functions_for_edge): Compute contexts.
3662 (update_jump_functions_after_inlining): Update contexts.
3663 (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
3664 update dumping; add speculative edge creation.
3665 (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
3667 (update_indirect_edges_after_inlining): Pass down context.
3668 (ipa_edge_duplication_hook): Duplicate contexts.
3669 (ipa_write_node_info): Stream out contexts.
3670 (ipa_read_node_info): Stream in contexts.
3671 * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
3673 (try_speculative_devirtualization): New function.
3674 * ipa-utils.h (try_speculative_devirtualization): Declare.
3676 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3678 * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
3681 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3683 * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
3686 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
3688 * ipa-polymorphic-call.c
3689 (ipa_polymorphic_call_context::restrict_to_inner_class):
3690 Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
3691 use speculation_consistent_p to do so; Add CONSDER_BASES
3692 and CONSIDER_PLACEMENT_NEW parameters.
3693 (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
3694 short circuit obvious cases.
3695 (ipa_polymorphic_call_context::dump): Improve formatting.
3696 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
3697 combine_speculation_with to record speculations; Do not ICE when
3698 object is located in pointer type decl; do not ICE for methods
3699 of UNION_TYPE; do not record nonpolymorphic types.
3700 (ipa_polymorphic_call_context::speculation_consistent_p): New method.
3701 (ipa_polymorphic_call_context::combine_speculation_with): New method.
3702 (ipa_polymorphic_call_context::combine_with): New method.
3703 (ipa_polymorphic_call_context::make_speculative): Move here; use
3704 combine speculation.
3705 * cgraph.h (ipa_polymorphic_call_context): Update
3706 restrict_to_inner_class prototype; add offset_by, make_speculative,
3707 combine_with, useless_p, combine_speculation_with and
3708 speculation_consistent_p methods.
3709 (ipa_polymorphic_call_context::offset_by): New method.
3710 (ipa_polymorphic_call_context::useless_p): New method.
3712 2014-10-01 Segher Boessenkool <segher@kernel.crashing.org>
3714 PR rtl-optimization/62151
3715 * combine.c (can_combine_p): Allow the destination register of INSN
3716 to be clobbered in I3.
3717 (subst): Do not substitute into clobbers of registers.
3719 2014-10-01 Jakub Jelinek <jakub@redhat.com>
3722 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
3723 offset, TARGET_MEM_REF and SSA_NAME.
3725 * config/i386/i386.c (expand_vec_perm_palignr): Handle
3726 256-bit vectors for TARGET_AVX2.
3728 * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
3732 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
3733 argument to avx2_permv2ti.
3735 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3737 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
3739 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
3741 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
3742 (fmod<mode>3): Ditto.
3743 (fpremxf4_i387): Ditto.
3744 (reminderxf3): Ditto.
3745 (reminder<mode>3): Ditto.
3746 (fprem1xf4_i387): Ditto.
3748 2014-09-30 Teresa Johnson <tejohnson@google.com>
3750 * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
3751 duplicate_blocks bitmap.
3752 (remove_ctrl_stmt_and_useless_edges): Ditto.
3753 (create_block_for_threading): Ditto.
3754 (compute_path_counts): New function.
3755 (update_profile): Ditto.
3756 (recompute_probabilities): Ditto.
3757 (update_joiner_offpath_counts): Ditto.
3758 (freqs_to_counts_path): Ditto.
3759 (clear_counts_path): Ditto.
3760 (ssa_fix_duplicate_block_edges): Update profile info.
3761 (ssa_create_duplicates): Pass new parameter.
3762 (ssa_redirect_edges): Remove old profile update.
3763 (thread_block_1): New duplicate_blocks bitmap,
3764 remove old profile update.
3765 (thread_single_edge): Pass new parameter.
3767 2014-09-30 Ilya Tocar <ilya.tocar@intel.com>
3770 * varasm.c (decode_reg_name_and_count): Check availability for
3771 registers from ADDITIONAL_REGISTER_NAMES.
3773 2014-09-30 David Malcolm <dmalcolm@redhat.com>
3776 * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
3777 (PLUGIN_HEADERS): Add pass-instances.def.
3779 2014-09-30 James Greenhalgh <james.greenhalgh@arm.com>
3781 * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
3783 * config/aarch64/aarch64-simd.md
3784 (aarch64_sqdmull_laneq<mode>): Expand iterator.
3785 * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
3786 (vqdmulls_lane_s32): Fix return type.
3787 (vqdmulls_laneq_s32): New.
3789 2014-09-30 Jakub Jelinek <jakub@redhat.com>
3792 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
3793 or invert_jump_1 if jump isn't any_condjump_p.
3795 2014-09-30 Terry Guo <terry.guo@arm.com>
3797 * config/arm/arm-cores.def (cortex-m7): New core name.
3798 * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
3800 * config/arm/arm-tables.opt: Regenerated.
3801 * config/arm/arm-tune.md: Regenerated.
3802 * config/arm/arm.h (TARGET_VFP5): New macro.
3803 * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
3804 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
3805 smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
3806 * doc/invoke.texi: Document new cpu and fpu names.
3808 2014-09-30 Jiong Wang <jiong.wang@arm.com>
3810 * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
3811 before sinking insn.
3813 2014-09-30 David Sherwood <david.sherwood@arm.com>
3815 * ira-int.h (ira_allocno): Add "wmode" field.
3816 * ira-build.c (create_insn_allocnos): Add new "parent" function
3818 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
3819 that cannot be accessed in wmode.
3821 2014-09-30 Markus Trippelsdorf <markus@trippelsdorf.de>
3823 * data-streamer.c (bp_unpack_var_len_int): Avoid signed
3826 2014-09-29 Andi Kleen <ak@linux.intel.com>
3828 * opts.c (print_filtered_help): Print --param min/max/default
3831 2014-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
3833 * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
3835 2014-09-29 Eric Botcazou <ebotcazou@adacore.com>
3837 * tree-vrp.c (get_single_symbol): New function.
3838 (build_symbolic_expr): Likewise.
3839 (symbolic_range_based_on_p): New predicate.
3840 (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
3841 for PLUS and MINUS. Do not drop symbolic ranges at the end.
3842 (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
3843 operand is symbolic and based on the other operand.
3845 2014-09-29 Chen Gang <gang.chen.5i5j@gmail.com>
3847 * config/microblaze/microblaze.md (call_internal1): Use VOID
3848 instead of SI to fix "((void (*)(void)) 0)()" issue
3850 2014-09-29 Nick Clifton <nickc@redhat.com>
3852 * config/msp430/msp430.c (msp430_expand_prologue): Return a
3853 CLOBBER rtx for naked functions.
3854 (msp430_expand_epilogue): Likewise.
3855 (msp430_use_f5_series_hwmult): Cache result.
3856 (use_32bit_hwmult): Cache result.
3857 (msp430_no_hwmult): New function.
3858 (msp430_output_labelref): Use it.
3860 2014-09-29 Jakub Jelinek <jakub@redhat.com>
3863 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
3864 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
3865 use the alignment of avar rather than ovar.
3867 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
3869 * config/pa/pa.c (pa_output_function_epilogue): Only update
3870 last_address when a nonnote insn is found.
3872 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
3875 * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
3877 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
3880 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
3881 fix pasto in checking array size.
3883 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
3886 * passes.def (pass_tracer): Move before last dominator pass.
3888 2014-09-26 Thomas Schwinge <thomas@codesourcery.com>
3890 * gcc.c (try_generate_repro): Remove argument "prog". Change all
3892 (run_attempt): Handle errors of "pex_run" invocation.
3894 2014-09-26 Christophe Lyon <christophe.lyon@linaro.org>
3896 * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
3898 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
3899 (TARGET_ASAN_SHADOW_OFFSET): Define.
3901 2014-09-26 Martin Liska <mliska@suse.cz>
3903 * cgraph.c (cgraph_node::release_body): New argument keep_arguments
3905 * cgraph.h: Likewise.
3906 * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
3907 * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
3908 * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
3909 * tree-ssa-alias.h: Likewise.
3911 2014-09-26 Jakub Jelinek <jakub@redhat.com>
3912 Max Ostapenko <m.ostapenko@partner.samsung.com>
3914 * common.opt: New option.
3915 * doc/invoke.texi: Describe new option.
3916 * gcc.c (execute): Don't free first string early, but at the end
3917 of the function. Call retry_ice if compiler exited with
3919 (main): Factor out common code.
3920 (print_configuration): New function.
3921 (files_equal_p): Likewise.
3922 (check_repro): Likewise.
3923 (run_attempt): Likewise.
3924 (do_report_bug): Likewise.
3925 (append_text): Likewise.
3926 (try_generate_repro): Likewise
3928 2014-09-25 Andi Kleen <ak@linux.intel.com>
3930 * config/i386/i386.c (x86_print_call_or_nop): New function.
3931 (x86_function_profiler): Support -mnop-mcount and
3933 * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
3934 * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
3936 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
3938 * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
3939 * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
3940 * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
3943 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
3945 * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
3946 type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
3947 types_odr_comparable): Declare.
3948 (polymorphic_type_binfo_p): Move here from ipa-devirt.c
3949 * ipa-polymorphic-call.c: New file.
3950 (contains_polymorphic_type_p, possible_placement_new,
3951 ipa_polymorphic_call_context::restrict_to_inner_class,
3952 contains_type_p, decl_maybe_in_construction_p,
3953 ipa_polymorphic_call_context::stream_out,
3954 ipa_polymorphic_call_context::debug,
3955 ipa_polymorphic_call_context::stream_in,
3956 ipa_polymorphic_call_context::set_by_decl,
3957 ipa_polymorphic_call_context::set_by_invariant,
3959 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3960 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3961 extr_type_from_vtbl_ptr_store, record_known_type
3962 check_stmt_for_type_change,
3963 ipa_polymorphic_call_context::get_dynamic_type): Move here from
3965 * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
3966 and streamer-hooks.h
3967 (contains_polymorphic_type_p, possible_placement_new,
3968 ipa_polymorphic_call_context::restrict_to_inner_class,
3969 contains_type_p, decl_maybe_in_construction_p,
3970 ipa_polymorphic_call_context::stream_out,
3971 ipa_polymorphic_call_context::debug,
3972 ipa_polymorphic_call_context::stream_in,
3973 ipa_polymorphic_call_context::set_by_decl,
3974 ipa_polymorphic_call_context::set_by_invariant,
3976 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3977 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3978 extr_type_from_vtbl_ptr_store, record_known_type
3979 check_stmt_for_type_change,
3980 ipa_polymorphic_call_context::get_dynamic_type): Move to
3981 ipa-polymorphic-call.c
3982 (type_all_derivations_known_p, types_odr_comparable,
3983 types_must_be_same_for_odr): Export.
3984 (type_known_to_have_no_deriavations_p): New function.
3985 * Makefile.in: Add ipa-polymorphic-call.c
3987 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
3989 * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
3991 (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
3992 (possible_polymorphic_call_targets): Instead of computing both
3993 speculative and non-speculative answers, do just one at a time.
3994 Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
3995 (dump_targets): Break out from ...
3996 (dump_possible_polymorphic_call_targets): ... here; dump both speculative
3997 and non-speculative lists.
3998 (ipa_devirt): Update for new possible_polymorphic_call_targets API.
3999 * ipa-utils.h (possible_polymorphic_call_targets): Update.
4001 2014-09-25 Uros Bizjak <ubizjak@gmail.com>
4003 PR rtl-optimization/63348
4004 * emit-rtl.c (try_split): Do not emit extra barrier.
4006 2014-09-25 James Greenhalgh <james.greenhalgh@arm.com>
4008 * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
4009 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
4011 (aarch64_<sur>shll2_n<mode>): Likewise.
4012 (aarch64_<sur>shr_n<mode>): Likewise.
4013 (aarch64_<sur>sra_n<mode>: Likewise.
4014 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
4015 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
4016 * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
4017 * config/aarch64/iterators.md (ve_mode): New.
4018 (offsetlr): Remap to infix text for use in new predicates.
4019 * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
4020 (aarch64_simd_shift_imm_hi): Likewise.
4021 (aarch64_simd_shift_imm_si): Likewise.
4022 (aarch64_simd_shift_imm_di): Likewise.
4023 (aarch64_simd_shift_imm_offset_qi): Likewise.
4024 (aarch64_simd_shift_imm_offset_hi): Likewise.
4025 (aarch64_simd_shift_imm_offset_si): Likewise.
4026 (aarch64_simd_shift_imm_offset_di): Likewise.
4027 (aarch64_simd_shift_imm_bitsize_qi): Likewise.
4028 (aarch64_simd_shift_imm_bitsize_hi): Likewise.
4029 (aarch64_simd_shift_imm_bitsize_si): Likewise.
4030 (aarch64_simd_shift_imm_bitsize_di): Likewise.
4032 2014-09-25 Jiong Wang <jiong.wang@arm.com>
4034 * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
4035 new created BB as the intersection of live-in from "old_dest" and
4038 2014-09-25 Felix Yang <felix.yang@huawei.com>
4040 * lra.c (lra_set_insn_recog_data): Fix typo in comment.
4041 * genautomata.c (merge_states): Ditto.
4043 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
4046 * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
4047 in instruction sequence.
4049 2014-09-25 Nick Clifton <nickc@redhat.com>
4052 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
4053 in instruction sequence.
4055 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4058 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
4059 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
4061 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
4062 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4063 Anna Tikhonova <anna.tikhonova@intel.com>
4064 Ilya Tocar <ilya.tocar@intel.com>
4065 Andrey Turetskiy <andrey.turetskiy@intel.com>
4066 Ilya Verbin <ilya.verbin@intel.com>
4067 Kirill Yukhin <kirill.yukhin@intel.com>
4068 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4070 * config/i386/sse.md
4071 (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
4072 (define_expand "<avx2_avx512>_perm<mode>"): ... this.
4073 (define_expand "avx512f_perm<mode>_mask"): Rename to ...
4074 (define_expand "<avx512>_perm<mode>_mask"): ... this.
4075 Use VI8F_256_512 mode iterator.
4076 (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
4077 (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
4079 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
4080 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4081 Anna Tikhonova <anna.tikhonova@intel.com>
4082 Ilya Tocar <ilya.tocar@intel.com>
4083 Andrey Turetskiy <andrey.turetskiy@intel.com>
4084 Ilya Verbin <ilya.verbin@intel.com>
4085 Kirill Yukhin <kirill.yukhin@intel.com>
4086 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4088 * config/i386/sse.md
4089 (define_insn "avx_movshdup256<mask_name>"): Add masking.
4090 (define_insn "sse3_movshdup<mask_name>"): Ditto.
4091 (define_insn "avx_movsldup256<mask_name>"): Ditto.
4092 (define_insn "sse3_movsldup<mask_name>"): Ditto.
4093 (define_insn "vec_dupv2df<mask_name>"): Ditto.
4094 (define_insn "*vec_concatv2df"): Add EVEX version.
4096 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
4097 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4098 Anna Tikhonova <anna.tikhonova@intel.com>
4099 Ilya Tocar <ilya.tocar@intel.com>
4100 Andrey Turetskiy <andrey.turetskiy@intel.com>
4101 Ilya Verbin <ilya.verbin@intel.com>
4102 Kirill Yukhin <kirill.yukhin@intel.com>
4103 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4105 * config/i386/sse.md
4106 (define_insn "vec_set<mode>_0"): Add EVEX version.
4108 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
4109 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4110 Anna Tikhonova <anna.tikhonova@intel.com>
4111 Ilya Tocar <ilya.tocar@intel.com>
4112 Andrey Turetskiy <andrey.turetskiy@intel.com>
4113 Ilya Verbin <ilya.verbin@intel.com>
4114 Kirill Yukhin <kirill.yukhin@intel.com>
4115 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4117 * config/i386/sse.md
4119 "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
4121 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
4122 (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
4123 (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
4124 "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
4125 (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
4126 (define_expand "sse2_cvtpd2ps_mask): New.
4127 (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
4128 (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
4130 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
4131 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4132 Anna Tikhonova <anna.tikhonova@intel.com>
4133 Ilya Tocar <ilya.tocar@intel.com>
4134 Andrey Turetskiy <andrey.turetskiy@intel.com>
4135 Ilya Verbin <ilya.verbin@intel.com>
4136 Kirill Yukhin <kirill.yukhin@intel.com>
4137 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4139 * config/i386/i386.c
4140 (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
4141 (ufix_notruncv8dfv8si2_mask_round): ... this.
4142 * config/i386/sse.md
4143 (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
4144 (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
4145 (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
4146 (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
4147 (define_expand "sse2_cvtpd2dq"): Delete.
4148 (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
4149 make 2nd operand const0 vector.
4150 (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
4152 (define_mode_attr pd2udqsuff): New.
4154 "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
4155 (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
4156 (define_insn "*avx_cvttpd2dq256_2"): Delete.
4157 (define_expand "sse2_cvttpd2dq"): Ditto.
4158 (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
4159 make 2nd operand const0 vector.
4161 2014-09-25 Jakub Jelinek <jakub@redhat.com>
4163 PR tree-optimization/63341
4164 * tree-vectorizer.h (vect_create_data_ref_ptr,
4165 vect_create_addr_base_for_vector_ref): Add another tree argument
4166 defaulting to NULL_TREE.
4167 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
4168 argument, pass it down to vect_create_addr_base_for_vector_ref.
4169 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
4170 add that to base_offset too if non-NULL.
4171 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
4172 for dr_explicit_realign_optimized set it to vector byte size
4173 - 1 instead of setting offset, pass byte_offset down to
4174 vect_create_data_ref_ptr.
4176 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
4178 * ipa-devirt.c (possible_polymorphic_call_targets): Remove
4179 forgotten debug output; canonicalize querries more wtih LTO.
4181 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
4183 * cgraph.h (class ipa_polymorphic_call_context): Move here from
4184 ipa-utils.h; add stream_int and stream_out methods.
4185 (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
4186 OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
4187 MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
4189 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4190 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4191 ipa_polymorphic_call_context::clear_speculation,
4192 ipa_polymorphic_call_context::clear_outer_type): Move here from
4194 * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
4195 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4196 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4197 ipa_polymorphic_call_context::clear_speculation,
4198 ipa_polymorphic_call_context::clear_outer_type): Likewise.
4199 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
4201 (ipa_polymorphic_call_context::stream_out): New method.
4202 (ipa_polymorphic_call_context::stream_in): New method.
4203 (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
4204 * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
4206 (ipa_analyze_call_uses): Simplify.
4207 (update_indirect_edges_after_inlining): Do not care about outer_type.
4208 (ipa_write_indirect_edge_info): Update.
4209 (ipa_write_indirect_edge_info): Likewise.
4210 * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
4211 (dump_edge_flags): Break out from ...
4212 (cgraph_node::dump): ... here; dump indirect edges.
4214 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
4216 * ipa-utils.h (polymorphic_call_context): Add
4217 metdhos dump, debug and clear_outer_type.
4218 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
4219 (ipa_polymorphic_call_context::clear_outer_type): New method.
4220 * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
4221 * ipa-devirt.c (types_odr_comparable): New function.
4222 (types_must_be_same_for_odr): New function.
4223 (odr_subtypes_equivalent_p): Simplify.
4224 (possible_placement_new): Break out from ...
4225 (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
4226 be more cuatious about returning false in cases the context may be
4227 valid in derived type or via placement new.
4228 (contains_type_p): Clear maybe_derived_type
4229 (ipa_polymorphic_call_context::dump): New method.
4230 (ipa_polymorphic_call_context::debug): New method.
4231 (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
4232 (ipa_polymorphic_call_context::set_by_invariant): Simplify.
4233 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
4234 (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
4235 to suceed on all valid cases; remove confused sanity check.
4236 (dump_possible_polymorphic_call_targets): Simplify.
4238 2014-09-24 Aldy Hernandez <aldyh@redhat.com>
4240 * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
4241 lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
4242 tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
4243 varpool.c: Rename all instances of DECL_ABSTRACT to
4246 2014-09-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4248 * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
4249 special handling for stores whose SET_SRC is an UNSPEC (such as
4252 2014-09-24 Jiong Wang <jiong.wang@arm.com>
4254 * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
4255 !REG_P (src) to release more instruction sink opportunities.
4257 2014-09-24 Wilco Dijkstra <wilco.dijkstra@arm.com>
4259 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
4260 move costs for 128-bit types.
4262 2014-09-24 Martin Jambor <mjambor@suse.cz>
4264 * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
4265 when duplicating a PASS_THROUGH jump function when creating a
4268 2014-09-24 Marek Polacek <polacek@redhat.com>
4272 * asan.c (maybe_instrument_call): Add default case.
4273 * ipa-pure-const.c (special_builtin_state): Likewise.
4274 * predict.c (expr_expected_value_1): Likewise.
4275 * lto-streamer-out.c (write_symbol): Initialize variable.
4277 2014-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4279 * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
4281 (vmuld_laneq_f64): Likewise.
4282 (vmuls_lane_f32): Likewise.
4283 (vmuls_laneq_f32): Likewise.
4285 2014-09-24 Kirill Yukhin <kirill.yukhin@intel.com>
4288 * varpool.c (varpool_node::add): Pass decl attributes
4289 to lookup_attribute.
4291 2014-09-24 Jakub Jelinek <jakub@redhat.com>
4294 * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
4296 2014-09-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4298 PR tree-optimization/63266
4299 * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
4300 marker for unknown byte value.
4301 (MARKER_MASK): New macro.
4302 (MARKER_BYTE_UNKNOWN): New macro.
4303 (HEAD_MARKER): New macro.
4304 (do_shift_rotate): Mark bytes with unknown values due to sign
4305 extension when doing an arithmetic right shift. Replace hardcoded
4306 mask for marker by new MARKER_MASK macro.
4307 (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
4308 numbers accordingly.
4310 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
4311 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4312 Anna Tikhonova <anna.tikhonova@intel.com>
4313 Ilya Tocar <ilya.tocar@intel.com>
4314 Andrey Turetskiy <andrey.turetskiy@intel.com>
4315 Ilya Verbin <ilya.verbin@intel.com>
4316 Kirill Yukhin <kirill.yukhin@intel.com>
4317 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4319 * config/i386/sse.md
4321 "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
4323 (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
4324 (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
4326 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
4327 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4328 Anna Tikhonova <anna.tikhonova@intel.com>
4329 Ilya Tocar <ilya.tocar@intel.com>
4330 Andrey Turetskiy <andrey.turetskiy@intel.com>
4331 Ilya Verbin <ilya.verbin@intel.com>
4332 Kirill Yukhin <kirill.yukhin@intel.com>
4333 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4335 * config/i386/sse.md
4336 (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
4337 (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
4338 (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
4339 (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
4340 (define_expand "avx512vl_pshuflw_mask"): New.
4341 (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
4342 (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
4343 (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
4344 (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
4345 (define_expand "avx512vl_pshufhw_mask"): New.
4346 (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
4348 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
4349 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4350 Anna Tikhonova <anna.tikhonova@intel.com>
4351 Ilya Tocar <ilya.tocar@intel.com>
4352 Andrey Turetskiy <andrey.turetskiy@intel.com>
4353 Ilya Verbin <ilya.verbin@intel.com>
4354 Kirill Yukhin <kirill.yukhin@intel.com>
4355 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4357 * config/i386/i386.c
4358 (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
4359 CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
4360 CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
4361 CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
4362 CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
4363 * config/i386/sse.md
4364 (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
4366 "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
4367 (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
4369 "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
4370 (define_expand "avx512vl_pshufdv3_mask"): Ditto.
4371 (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
4372 (define_expand "avx512vl_pshufd_mask"): New.
4373 (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
4375 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
4376 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4377 Anna Tikhonova <anna.tikhonova@intel.com>
4378 Ilya Tocar <ilya.tocar@intel.com>
4379 Andrey Turetskiy <andrey.turetskiy@intel.com>
4380 Ilya Verbin <ilya.verbin@intel.com>
4381 Kirill Yukhin <kirill.yukhin@intel.com>
4382 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4384 * config/i386/i386.c
4385 (CODE_FOR_avx2_extracti128): Rename to ...
4386 (CODE_FOR_avx_vextractf128v4di): this.
4387 (CODE_FOR_avx2_inserti128): Rename to ...
4388 (CODE_FOR_avx_vinsertf128v4di): this.
4389 (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
4390 CODE_FOR_avx_vextractf128v4di.
4391 (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
4392 CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
4393 CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
4394 CODE_FOR_avx512vl_vinsertv8si.
4395 * config/i386/sse.md
4397 "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
4398 AVX512_VEC mode iterator.
4400 "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
4403 "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
4404 AVX512_VEC_2 mode iterator.
4405 (define_insn "vec_set_lo_<mode><mask_name>"): New.
4406 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4407 (define_expand "avx512vl_vinsert<mode>"): Ditto.
4408 (define_insn "avx2_vec_set_lo_v4di"): Delete.
4409 (define_insn "avx2_vec_set_hi_v4di"): Ditto.
4410 (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
4411 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4412 (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
4413 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4414 (define_expand "avx2_extracti128"): Delete.
4415 (define_expand "avx2_inserti128"): Ditto.
4417 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
4418 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4419 Anna Tikhonova <anna.tikhonova@intel.com>
4420 Ilya Tocar <ilya.tocar@intel.com>
4421 Andrey Turetskiy <andrey.turetskiy@intel.com>
4422 Ilya Verbin <ilya.verbin@intel.com>
4423 Kirill Yukhin <kirill.yukhin@intel.com>
4424 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4426 * config/i386/sse.md
4427 (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
4428 (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
4429 (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
4430 (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
4431 (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
4432 (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
4433 (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
4434 (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
4435 (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
4436 (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
4437 (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
4438 (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
4439 (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
4441 2014-09-24 Zhenqiang Chen <zhenqiang.chen@arm.com>
4443 PR rtl-optimization/63210
4444 * ira-color.c (assign_hard_reg): Ignore conflict cost if the
4445 HARD_REGNO is not available for CONFLICT_A.
4447 2014-09-23 Andi Kleen <ak@linux.intel.com>
4449 * cgraph.h (symtab_node): Add no_reorder attribute.
4450 (symbol_table::output_asm_statements): Remove.
4451 * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
4452 (cgraph_node::create_version_clone): Dito.
4453 (symbol_table::output_asm_statements): Remove.
4454 * trans-mem.c (ipa_tm_create_version_alias): Dito.
4455 * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
4456 (output_in_order): Add no_reorder flag. Only handle no_reorder
4458 (symbol_table::compile): Add separate pass for no_reorder nodes.
4459 (process_common_attributes): Set no_reorder flag in symtab node.
4461 (process_function_and_variable_attributes): Pass symtab nodes to
4462 process_common_attributes.
4463 * doc/extend.texi (no_reorder): Document no_reorder attribute.
4464 * lto-cgraph.c (lto_output_node): Serialize no_reorder.
4465 (lto_output_varpool_node): Dito.
4466 (input_overwrite_node): Dito.
4467 (input_varpool_node): Dito.
4468 * varpool.c (varpool_node::add): Set no_reorder attribute.
4469 (symbol_table::remove_unreferenced_decls): Handle no_reorder.
4470 (symbol_table::output_variables): Dito.
4471 * symtab.c (symtab_node::dump_base): Print no_reorder.
4473 2014-09-23 Jiong Wang <jiong.wang@arm.com>
4475 * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
4478 2014-09-23 Thomas Schwinge <thomas@codesourcery.com>
4480 * configure: Regenerate.
4482 2014-09-23 Alan Lawrence <alan.lawrence@arm.com>
4484 * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
4485 when result_mode == shift_mode.
4487 2014-09-23 Kostya Serebryany <kcc@google.com>
4489 Update to match the changed asan API.
4490 * asan.c (asan_global_struct): Update the __asan_global definition
4491 to match the new API.
4492 (asan_add_global): Ditto.
4493 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
4496 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4498 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
4499 refine the constraints used on 32/64-bit floating point moves.
4501 (f64_vsx): Likewise.
4504 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
4505 (BOOL_REGS_OP1): Likewise.
4506 (BOOL_REGS_OP2): Likewise.
4507 (BOOL_REGS_UNARY): Likewise.
4508 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
4509 32/64-bit floating point moves. Do not use wa, instead use ww/ws
4510 for moves involving VSX registers. Do not use constraints that
4511 target VSX registers for decimal types.
4512 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
4513 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
4515 2014-09-23 Jan Hubicka <hubicka@ucw.cz>
4517 * tree.h (int_bit_position): Turn into inline function;
4518 implement using wide int.
4519 * tree.c (int_bit_position): Remove.
4521 2014-09-23 Richard Sandiford <richard.sandiford@arm.com>
4524 * target-globals.c (target_globals::~target_globals): Fix location
4525 of ira_int destruction.
4527 2014-09-23 Renlin Li <renlin.li@arm.com>
4529 * config/aarch64/aarch64.md (return): New.
4530 (simple_return): Likewise.
4531 * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
4532 * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
4534 2014-09-23 Wilco Dijkstra <wdijkstr@arm.com>
4536 * common/config/aarch64/aarch64-common.c:
4537 (default_options aarch_option_optimization_table):
4538 Default to -fsched-pressure.
4540 2014-09-23 Ilya Enkovich <ilya.enkovich@intel.com>
4542 * cfgcleanup.c (try_optimize_cfg): Do not remove label
4543 with LABEL_PRESERVE_P flag set.
4545 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
4546 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4547 Anna Tikhonova <anna.tikhonova@intel.com>
4548 Ilya Tocar <ilya.tocar@intel.com>
4549 Andrey Turetskiy <andrey.turetskiy@intel.com>
4550 Ilya Verbin <ilya.verbin@intel.com>
4551 Kirill Yukhin <kirill.yukhin@intel.com>
4552 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4554 * config/i386/sse.md
4555 (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
4556 (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
4557 (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
4558 (define_insn "sse2_shufpd_v2df_mask"): New.
4560 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
4561 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4562 Anna Tikhonova <anna.tikhonova@intel.com>
4563 Ilya Tocar <ilya.tocar@intel.com>
4564 Andrey Turetskiy <andrey.turetskiy@intel.com>
4565 Ilya Verbin <ilya.verbin@intel.com>
4566 Kirill Yukhin <kirill.yukhin@intel.com>
4567 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4569 * config/i386/sse.md
4570 (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
4571 (define_insn "avx_shufps256_1<mask_name>"): Ditto.
4572 (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
4573 (define_insn "sse_shufps_v4sf_mask"): New.
4575 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
4576 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4577 Anna Tikhonova <anna.tikhonova@intel.com>
4578 Ilya Tocar <ilya.tocar@intel.com>
4579 Andrey Turetskiy <andrey.turetskiy@intel.com>
4580 Ilya Verbin <ilya.verbin@intel.com>
4581 Kirill Yukhin <kirill.yukhin@intel.com>
4582 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4584 * config/i386/sse.md
4585 (define_insn "avx_unpckhps256<mask_name>"): Add masking.
4586 (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
4587 (define_insn "avx_unpcklps256<mask_name>"): Ditto.
4588 (define_insn "unpcklps128_mask"): New.
4590 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
4591 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4592 Anna Tikhonova <anna.tikhonova@intel.com>
4593 Ilya Tocar <ilya.tocar@intel.com>
4594 Andrey Turetskiy <andrey.turetskiy@intel.com>
4595 Ilya Verbin <ilya.verbin@intel.com>
4596 Kirill Yukhin <kirill.yukhin@intel.com>
4597 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4599 * config/i386/sse.md
4600 (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
4601 (define_insn "avx512vl_unpckhpd128_mask"): New.
4602 (define_expand "avx_movddup256<mask_name>"): Add masking.
4603 (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
4604 (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
4605 (define_insn "avx512vl_unpcklpd128_mask"): New.
4607 2014-09-22 Joseph Myers <joseph@codesourcery.com>
4609 * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4610 * doc/tm.texi: Regenerate.
4611 * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
4612 * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4613 * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4615 * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4616 * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4617 * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4618 * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4619 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4621 * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4622 * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4623 * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4624 * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4625 * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4626 * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4627 * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4628 * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4629 * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4630 * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4631 * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4634 2014-09-22 Jan Hubicka <hubicka@ucw.cz>
4636 * tree-ssa-ccp.c (prop_value_d): Rename to ...
4637 (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
4638 * ipa-prop.c (struct type_change_info): Rename to ...
4639 (prop_type_change_info): ... this; update uses.
4640 * ggc-page.c (globals): Rename to ...
4641 (static struct ggc_globals): ... this; update uses.
4642 * tree-ssa-loop-im.c (mem_ref): Rename to ...
4643 (im_mem_ref): ... this; update uses.
4644 * ggc-common.c (loc_descriptor): Rename to ...
4645 (ggc_loc_descriptor): ... this; update uses.
4646 * lra-eliminations.c (elim_table): Rename to ...
4647 (lra_elim_table): ... this; update uses.
4648 * bitmap.c (output_info): Rename to ...
4649 (bitmap_output_info): ... this; update uses.
4650 * gcse.c (expr): Rename to ...
4651 (gcse_expr) ... this; update uses.
4652 (occr): Rename to ...
4653 (gcse_occr): .. this; update uses.
4654 * tree-ssa-copy.c (prop_value_d): Rename to ...
4655 (prop_value_t): ... this.
4656 * predict.c (block_info_def): Rename to ...
4657 (block_info): ... this; update uses.
4658 (edge_info_def): Rename to ...
4659 (edge_info): ... this; update uses.
4660 * profile.c (bb_info): Rename to ...
4661 (bb_profile_info): ... this; update uses.
4662 * alloc-pool.c (output_info): Rename to ...
4663 (pool_output_info): ... this; update uses.
4664 * ipa-cp.c (topo_info): Rename to ..
4665 (ipa_topo_info): ... this; update uses.
4666 * tree-nrv.c (nrv_data): Rename to ...
4667 (nrv_data_t): ... this; update uses.
4668 * ipa-split.c (bb_info): Rename to ...
4669 (split_bb_info): ... this one.
4670 * profile.h (edge_info): Rename to ...
4671 (edge_profile_info): ... this one; update uses.
4672 * dse.c (bb_info): Rename to ...
4673 (dse_bb_info): ... this one; update uses.
4674 * cprop.c (occr): Rename to ...
4675 (cprop_occr): ... this one; update uses.
4676 (expr): Rename to ...
4677 (cprop_expr): ... this one; update uses.
4679 2014-09-22 Jason Merrill <jason@redhat.com>
4681 * Makefile.in (check-parallel-%): Add @.
4683 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
4685 * config/aarch64/geniterators.sh: New.
4686 * config/aarch64/iterators.md (VDQF_DF): New.
4687 * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
4688 * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
4690 2014-09-22 Peter A. Bigot <pab@pabigot.com>
4692 * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
4693 -lnosys when -msim absent.
4695 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
4697 * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
4699 2014-09-22 Richard Biener <rguenther@suse.de>
4701 * gimplify.c (gimplify_init_constructor): Do not leave
4702 non-GIMPLE vector constructors around.
4703 * tree-cfg.c (verify_gimple_assign_single): Verify that
4704 CONSTRUCTORs have gimple elements.
4706 2014-09-22 Jakub Jelinek <jakub@redhat.com>
4709 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
4710 insert a debug source bind stmt setting DEBUG_EXPR_DECL
4711 instead of a normal gimple assignment stmt.
4713 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
4715 * config/bfin/bfin.md: Fix use of constraints in define_split.
4717 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4719 * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
4720 GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
4722 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4724 * hard-reg-set.h: Include hash-table.h.
4725 (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
4727 * target-globals.c (target_globals::~target_globals): Call
4728 hard_regs->finalize.
4729 * rtl.h (subreg_shape): New structure.
4730 (shape_of_subreg): New function.
4731 (simplifiable_subregs): Declare.
4732 * reginfo.c (simplifiable_subreg): New structure.
4733 (simplifiable_subregs_hasher): Likewise.
4734 (simplifiable_subregs): New function.
4735 (invalid_mode_changes): Delete.
4736 (alid_mode_changes, valid_mode_changes_obstack): New variables.
4737 (record_subregs_of_mode): Remove subregs_of_mode parameter.
4738 Record valid mode changes in valid_mode_changes.
4739 (find_subregs_of_mode): Remove subregs_of_mode parameter.
4740 Update calls to record_subregs_of_mode.
4741 (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
4742 handling. Initialize new variables. Update call to
4743 find_subregs_of_mode.
4744 (invalid_mode_change_p): Check new variables instead of
4745 invalid_mode_changes.
4746 (finish_subregs_of_mode): Finalize new variables instead of
4747 invalid_mode_changes.
4748 (target_hard_regs::finalize): New function.
4749 * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
4750 even when CLASS_CANNOT_CHANGE_MODE is undefined.
4752 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4754 * combine.c (subst): Use simplify_subreg_regno rather than
4755 REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
4757 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4759 * rtl.h (subreg_info): Expand commentary
4760 * rtlanal.c (subreg_get_info): Likewise.
4762 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
4764 * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
4765 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
4766 (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
4768 2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com>
4770 * config/arm/arm.c: #include "tm-constrs.h"
4771 (thumb1_size_rtx_costs): Adjust rtx costs.
4773 2014-09-22 Hans-Peter Nilsson <hp@axis.com>
4775 * configure.ac (target_header_dir): Move block defining
4776 this to before the block setting inhibit_libc.
4777 (inhibit_libc): When considering $with_headers, just
4778 check it it's explicitly "no". If not, also check if
4779 $target_header_dir/stdio.h is present. If not, set
4781 * configure: Regenerate.
4783 2014-09-21 Patrick Oppenlander <pattyo.lists@gmail.com>
4785 * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
4787 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4789 * config/rs6000/rs6000.md (div<mode>3): Fix comment. Use a different
4790 insn for divides by integer powers of two.
4791 (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
4792 (mod<mode>3): Fix formatting.
4793 (three anonymous define_insn and two define_split): Delete.
4795 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4797 * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
4798 *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
4799 (floatdisf2_internal2): Ditto.
4800 (ashrdi3_no_power): Ditto. Fix formatting.
4802 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4804 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
4805 popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
4808 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4810 * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
4811 constant, use addsi3 directly.
4812 (three anonymous define_insn, two define_split): Delete.
4813 (sub<mode>3): Move. Do not allow constant second operand.
4814 Generate different insn for constant first operand.
4815 (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
4816 (subf<mode>3_imm): New.
4817 (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
4818 (*plus_ltu<mode>): Only handle registers.
4819 (*plus_ltu<mode>_1): New. Handle integer third operand.
4820 (*plus_gtu<mode>): Only handle registers.
4821 (*plus_gtu<mode>_1): New. Handle integer third operand.
4823 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4825 * config/rs6000/rs6000.md (iorxor): New code_iterator.
4826 (iorxor): New code_attr.
4827 (IORXOR): New code_attr.
4828 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
4829 (ior<mode>3, xor<mode>3): Delete.
4830 (<iorxor><mode>3): New.
4831 (splitter for "big" integer ior, xor): New.
4832 (*bool<mode>3): Move. Also handle AND.
4833 (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
4834 (splitter for "big" integer ior, xor): Delete.
4836 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4838 * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
4839 (two anonymous define_insn and two define_split): Delete.
4840 (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
4842 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4844 * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
4845 (two anonymous define_insn and two define_split): Delete.
4846 (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
4848 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4850 * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
4852 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4854 * config/rs6000/predicates.md (ca_operand): Allow subregs.
4855 (input_operand): Do not allow ca_operand.
4856 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
4857 carry bit, allow SImode and Pmode.
4858 (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
4860 2014-09-21 Uros Bizjak <ubizjak@gmail.com>
4862 * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
4863 clobbered registers using clobber_reg. Remove UNSPEC decoration.
4864 * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
4865 (*call_rex64_ms_sysv): Remove.
4866 (*call_value_rex64_ms_sysv): Ditto.
4867 * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
4869 2014-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
4871 * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
4874 2014-09-20 Andreas Schwab <schwab@suse.de>
4876 * config/ia64/ia64.md: Remove constraints from define_split
4879 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4881 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
4882 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
4883 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
4884 (get_dynamic_type): Remove.
4885 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
4886 (clear_speculation): Bring to ipa-deivrt.h
4887 (get_class_context): Rename to ...
4888 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
4889 (contains_type_p): Update.
4890 (get_dynamic_type): Rename to ...
4891 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
4892 (possible_polymorphic_call_targets): UPdate.
4893 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
4894 * ipa-prop.c (ipa_analyze_call_uses): Update.
4896 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4898 * ipa-visibility.c (varpool_node::externally_visible_p): Do not
4899 privatize dynamic TLS variables.
4901 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4903 * diagnostic.c (warning_n): New function.
4904 * diagnostic-core.h (warning_n): Declare.
4905 * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
4906 output dynamic counts when available.
4908 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4910 PR tree-optimization/63255
4911 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
4912 issue in setting body_removed flag.
4914 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4917 * c-family/c-common.c (handle_alias_ifunc_attribute): Check
4918 that visibility change is possible
4919 (handle_weakref_attribute): Likewise.
4920 * cgraph.h (symtab_node): Add method get_create and
4921 field refuse_visibility_changes.
4922 (symtab_node::get_create): New method.
4923 * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
4924 * varasm.c (mark_weak): Verify that visibility change is
4927 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
4929 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
4930 for base_reg_operand to be common between LO_SUM and PLUS.
4931 (fusion_gpr_mem_combo): New predicate to match a fused address
4932 that combines the addis and memory offset address.
4934 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
4936 (emit_fusion_gpr_load): Likewise.
4938 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
4939 signature to pass each argument separately, rather than
4940 using an operands array. Rewrite the insns found by peephole2 to
4941 be a single insn, rather than hoping the insns will still be
4942 together when the peephole pass is done. Drop being called via a
4944 (emit_fusion_gpr_load): Change calling signature to be called from
4945 the fusion_gpr_load_<mode> insns with a combined memory address
4946 instead of the peephole pass passing the addis and offset
4949 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
4951 (power8 fusion peephole): Drop support for doing power8 via a
4952 normal peephole that was created by the peephole2 pass.
4953 (power8 fusion peephole2): Create a new insn with the fused
4954 address, so that the fused operation is kept together after
4955 register allocation is done.
4956 (fusion_gpr_load_<mode>): Likewise.
4958 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
4961 * tree.c (need_assembler_name_p): Do not mangle variadic types.
4963 2014-09-19 Segher Boessenkool <segher@kernel.crashing.org>
4965 * recog.c (scratch_operand): Do not simply allow all hard registers:
4966 only allow those that are allocatable.
4968 2014-09-19 Felix Yang <felix.yang@huawei.com>
4970 * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
4971 comments and fix spacing to conform to coding style.
4973 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
4975 * genrecog.c (validate_pattern): Allow empty constraints in
4978 2014-09-19 Aldy Hernandez <aldyh@redhat.com>
4980 * dwarf2out.c (decl_ultimate_origin): Update comment.
4981 * tree.c (block_ultimate_origin): Same.
4983 2014-09-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4985 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
4986 Update GCC version name to GCC 5.
4987 (rs6000_function_arg_boundary): Likewise.
4988 (rs6000_function_arg): Likewise.
4990 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
4992 * config/sh/sh.md: Fix use of constraints in define_split.
4994 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de>
4997 * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
4999 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
5001 * doc/md.texi (Modifiers): Consistently use "read/write"
5002 nomenclature rather than "input/output".
5003 * genrecog.c (constraints_supported_in_insn_p): New.
5004 (validate_pattern): If needed, also check constraints on
5005 MATCH_SCRATCH operands.
5006 * genoutput.c (validate_insn_alternatives): Catch earlyclobber
5007 operands with no '=' or '+' modifier.
5009 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
5011 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
5012 scratch register as written.
5014 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5016 * config/s390/s390.c (s390_emit_epilogue): Remove bogus
5019 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5021 * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
5024 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5027 * config/s390/s390.c (s390_emit_epilogue): When doing the return
5028 address load optimization force s390_optimize_prologue to leave it
5029 that way. Only do the optimization if we already decided to push
5030 r14 into a stack slot.
5032 2014-09-19 Marat Zakirov <m.zakirov@samsung.com>
5034 * asan.c (build_check_stmt): Alignment arg was added.
5035 (asan_expand_check_ifn): Optimization for alignment >= 8.
5037 2014-09-19 Olivier Hainque <hainque@adacore.com>
5039 * config/i386/vxworksae.h: Remove obsolete definitions.
5040 (STACK_CHECK_PROTECT): Define.
5041 * config/i386/vx-common.h: Remove. Merge contents within
5042 config/i386/vxworks.h.
5043 * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
5046 2014-09-19 Olivier Hainque <hainque@adacore.com>
5048 * config.gcc (powerpc-wrs-vxworksmils): New configuration.
5049 * config/rs6000/t-vxworksmils: New file.
5050 * config/rs6000/vxworksmils.h: New file.
5052 2014-09-19 Olivier Hainque <hainque@adacore.com>
5054 * varasm.c (default_section_type_flags): Flag .persistent.bss
5055 sections as SECTION_BSS.
5057 2014-09-19 Nick Clifton <nickc@redhat.com>
5059 * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
5060 pop'ed registers so that DCE does not eliminate them.
5062 2014-09-18 Jan Hubicka <hubicka@ucw.cz>
5065 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
5067 2014-09-18 Joseph Myers <joseph@codesourcery.com>
5069 * system.h (LIBGCC2_TF_CEXT): Poison.
5070 * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
5071 * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
5072 * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
5073 * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
5074 * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
5075 * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
5076 * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
5077 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
5078 * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
5080 2014-09-19 Kito Cheng <kito@0xlab.org>
5082 * except.h: Fix header guard.
5083 * addresses.h: Add missing header guard.
5084 * cfghooks.h: Likewise.
5085 * collect-utils.h: Likewise.
5086 * collect2-aix.h: Likewise.
5087 * conditions.h: Likewise.
5088 * cselib.h: Likewise.
5089 * dwarf2asm.h: Likewise.
5090 * graphds.h: Likewise.
5091 * graphite-scop-detection.h: Likewise.
5092 * gsyms.h: Likewise.
5093 * hw-doloop.h: Likewise.
5094 * incpath.h: Likewise.
5095 * ipa-inline.h: Likewise.
5096 * ipa-ref.h: Likewise.
5097 * ira-int.h: Likewise.
5099 * lra-int.h: Likewise.
5101 * lto-section-names.h: Likewise.
5102 * read-md.h: Likewise.
5103 * reload.h: Likewise.
5104 * rtl-error.h: Likewise.
5105 * sdbout.h: Likewise.
5106 * targhooks.h: Likewise.
5107 * tree-affine.h: Likewise.
5108 * xcoff.h: Likewise.
5109 * xcoffout.h: Likewise.
5111 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
5114 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
5117 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
5120 * lra.c (lra): Call recog_init.
5122 2014-09-18 Jakub Jelinek <jakub@redhat.com>
5125 * asan.c (transform_statements): Don't instrument clobber statements.
5127 2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5129 * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
5130 to neon_load1_1reg<q>.
5132 2014-09-17 Jakub Jelinek <jakub@redhat.com>
5135 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
5136 if there are only debug stmts after the noreturn call, instead
5137 remove the debug stmts.
5139 2014-09-17 Jan Hubicka <hubicka@ucw.cz>
5141 * ipa-devirt.c (type_pair, default_hashset_traits): New types.
5142 (odr_types_equivalent_p): Use pair hash.
5143 (odr_subtypes_equivalent_p): Likewise, do structural compare
5144 on ODR types that may be mismatched.
5145 (warn_odr): Support warning when only one field is given.
5146 (odr_types_equivalent_p): Strenghten comparsions made;
5148 (add_type_duplicate): Update VISITED hash set.
5150 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
5152 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
5153 Enable selection of 'posix' or no thread model.
5155 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
5157 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
5158 when architecture is older than ARMv7.
5160 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
5163 * config/pa/pa.c (pa_function_value): Directly handle aggregates
5164 that fit exactly in a word or double word.
5166 2014-09-16 Ilya Tocar <ilya.tocar@intel.com>
5168 * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
5171 2014-09-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
5172 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5173 Anna Tikhonova <anna.tikhonova@intel.com>
5174 Ilya Tocar <ilya.tocar@intel.com>
5175 Andrey Turetskiy <andrey.turetskiy@intel.com>
5176 Ilya Verbin <ilya.verbin@intel.com>
5177 Kirill Yukhin <kirill.yukhin@intel.com>
5178 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5180 * config/i386/i386.c
5181 (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
5182 * config/i386/sse.md
5183 (define_mode_iterator VI48F_256): New.
5184 (define_mode_attr extract_type): Ditto.
5185 (define_mode_attr extract_suf): Ditto.
5186 (define_mode_iterator AVX512_VEC): Ditto.
5188 "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
5190 (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
5192 "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
5194 (define_mode_attr extract_type_2): Ditto.
5195 (define_mode_attr extract_suf_2): Ditto.
5196 (define_mode_iterator AVX512_VEC_2): Ditto.
5198 "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
5199 AVX512_VEC_2 mode iterator.
5200 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
5201 (define_expand "avx512vl_vextractf128<mode>"): Ditto.
5202 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5203 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5204 (define_split for V16FI mode): Ditto.
5205 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5206 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5207 (define_split for VI8F_256 mode): Ditto.
5208 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
5209 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5210 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5211 (define_split for VI4F_256 mode): Ditto.
5212 (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
5213 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
5214 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
5215 (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
5216 (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
5217 (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
5218 (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
5219 Update `type' attribute, remove explicit `memory' attribute calculation.
5221 2014-09-16 Kito Cheng <kito@0xlab.org>
5223 * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
5224 ira_spilled_reg_stack_slots_num if using lra.
5225 (do_reload): Remove release ira_spilled_reg_stack_slots part.
5226 * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
5227 make sure not using lra.
5228 (ira_reuse_stack_slot): Likewise.
5229 (ira_mark_new_stack_slot): Likewise.
5231 2014-09-15 Andi Kleen <ak@linux.intel.com>
5233 * function.c (allocate_struct_function): Force
5234 DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
5235 profiling is disabled.
5237 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
5239 * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
5240 config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
5241 emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
5242 reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
5243 macro with statically checked member functions.
5244 * rtl.h (rtx_insn::deleted): New method.
5245 (rtx_insn::set_deleted): Likewise.
5246 (rtx_insn::set_undeleted): Likewise.
5247 (INSN_DELETED_P): Remove.
5249 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
5251 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
5252 result of emit_jump_insn_before to a new variable.
5253 * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
5254 (mark_jump_label_1): Likewise.
5255 (mark_jump_label_asm): Likewise.
5256 * reload1.c (gen_reload): Change type of tem to rtx_insn *.
5257 * rtl.h (mark_jump_label): Adjust.
5259 2014-09-15 Jakub Jelinek <jakub@redhat.com>
5261 * Makefile.in (dg_target_exps): Remove.
5262 (check_gcc_parallelize): Change to just an upper bound number.
5263 (check-%-subtargets): Always print the non-parallelized goals.
5264 (check_p_vars, check_p_comma, check_p_subwork): Remove.
5265 (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
5266 check_p_numbers3, check_p_numbers4, check_p_numbers5,
5267 check_p_numbers6): New variables.
5268 (check_p_numbers): Set to sequence from 1 to 9999.
5269 (check_p_subdirs): Set to sequence from 1 to minimum of
5270 $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
5272 (check-%, check-parallel-%): Rewritten so that for parallelized
5273 testing each job runs all the *.exp files, with
5274 GCC_RUNTEST_PARALLELIZE_DIR set in environment.
5276 2014-09-15 David Malcolm <dmalcolm@redhat.com>
5278 * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
5280 (arc_sets_cc_p): Likewise.
5281 * config/arc/arc.c (arc_print_operand): Use methods of
5282 "final_sequence" for clarity, and to enable strengthening of
5283 locals "jump" and "delay" from rtx to rtx_insn *.
5284 (arc_adjust_insn_length): Strengthen local "prev" from rtx to
5285 rtx_insn *; use method of rtx_sequence for typesafety.
5286 (arc_get_insn_variants): Use insn method of rtx_sequence for
5288 (arc_pad_return): Likewise.
5289 (arc_attr_type): Strengthen param from rtx to rtx_insn *.
5290 (arc_sets_cc_p): Likewise. Also, convert a GET_CODE check to a
5291 dyn_cast to rtx_sequence *, using insn method for typesafety.
5292 * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
5293 rtx_sequence * and use insn method when invoking get_attr_length.
5294 * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
5295 to rtx_insn *. Replace a GET_CODE check with a dyn_cast to
5296 rtx_sequence *, introducing a local "seq", using its insn method
5297 from typesafety and clarity.
5298 (add_sched_insns_for_speculation): Strengthen local "next" from
5300 * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
5301 (predicate_insn): Likewise.
5302 * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
5304 * config/cris/cris.c (cris_notice_update_cc): Likewise.
5305 * config/epiphany/epiphany-protos.h
5306 (extern void epiphany_insert_mode_switch_use): Likewise for param
5308 (get_attr_sched_use_fpu): Likewise for param.
5309 * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
5310 Likewise for param "insn".
5311 * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
5312 param "insn" of "target_insert_mode_switch_use" callback.
5313 * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
5314 (frv_issues_to_branch_unit_p): Likewise.
5315 (frv_pack_insn_p): Likewise.
5316 (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
5317 const rtx * (i.e. mutable rtx_def * const *) to
5319 * config/i386/i386-protos.h (standard_sse_constant_opcode):
5320 Strengthen first param from rtx to rtx_insn *.
5321 (output_fix_trunc): Likewise.
5322 * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
5323 (output_fix_trunc): Likewise.
5324 (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
5326 (min_insn_size): Likewise for param "insn".
5327 (get_mem_group): Likewise.
5329 (get_insn_path): Likewise.
5330 (get_insn_group): Likewise.
5331 (count_num_restricted): Likewise.
5332 (fits_dispatch_window): Likewise.
5333 (add_insn_window): Likewise.
5334 (add_to_dispatch_window): Likewise.
5335 (debug_insn_dispatch_info_file): Likewise.
5336 * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
5338 * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
5339 "cmp" and local "prev".
5340 (m32c_output_compare): Likewise for param "insn".
5341 * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
5342 a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
5343 (define_predicate "large_insn_p"): Likewise.
5344 * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
5345 param from rtx to rtx_insn *.
5346 (attr_op_mem m68k_sched_attr_op_mem): Likewise.
5347 * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
5348 (m68k_sched_attr_size): Likewise.
5349 (sched_get_opxy_mem_type): Likewise for param "insn".
5350 (m68k_sched_attr_op_mem): Likewise.
5351 (sched_mem_operand_p): Likewise.
5352 * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
5353 * config/mep/mep.c (mep_multi_slot): Likewise.
5354 * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
5356 (mips_sync_loop_insns): Likewise.
5357 * config/mips/mips.c (mips_print_operand_punctuation): Use insn
5358 method of "final_sequence" for typesafety.
5359 (mips_process_sync_loop): Strengthen param "insn" from rtx to
5361 (mips_output_sync_loop): Likewise.
5362 (mips_sync_loop_insns): Likewise.
5363 (mips_74k_agen_init): Likewise.
5364 (mips_sched_init): Use NULL rather than NULL_RTX when working with
5366 * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
5367 Strengthen param "insn" from rtx to rtx_insn *.
5368 * config/nds32/nds32.c (nds32_target_alignment): Likewise for
5370 * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
5372 * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
5373 "insn". Use method of rtx_sequence for typesafety.
5374 (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
5376 (branch_needs_nop_p): Likewise.
5377 (use_skip_p): Likewise.
5378 (pa_insn_refs_are_delayed): Likewise.
5379 * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
5380 for locals "insn", "ninsn".
5381 * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
5383 (is_cracked_insn): Likewise.
5384 (is_branch_slot_insn): Likewise.
5385 (is_nonpipeline_insn): Likewise.
5386 (insn_terminates_group_p): Likewise.
5387 (insn_must_be_first_in_group): Likewise.
5388 (insn_must_be_last_in_group): Likewise.
5389 (force_new_group): Likewise for param "next_insn".
5390 * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
5392 (s390_sched_score): Likewise.
5393 * config/sh/sh-protos.h (output_branch): Likewise for param 2.
5394 (rtx sfunc_uses_reg): Likewise for sole param.
5395 * config/sh/sh.c (sh_print_operand): Use insn method of
5396 final_sequence for typesafety.
5397 (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
5398 Use insn method of final_sequence for typesafety.
5399 (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
5400 * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
5402 (eligible_for_return_delay): Likewise.
5403 (eligible_for_sibcall_delay): Likewise.
5404 * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
5405 (eligible_for_return_delay): Likewise.
5406 (eligible_for_sibcall_delay): Likewise.
5407 * config/stormy16/stormy16-protos.h
5408 (xstormy16_output_cbranch_hi): Likewise for final param.
5409 (xstormy16_output_cbranch_si): Likewise.
5410 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
5411 (xstormy16_output_cbranch_si): Likewise.
5412 * config/v850/v850-protos.h (notice_update_cc): Likewise.
5413 * config/v850/v850.c (notice_update_cc): Likewise.
5415 * final.c (get_attr_length_1): Strengthen param "insn" and param
5416 of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
5417 (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
5418 (get_attr_min_length): Likewise.
5419 (shorten_branches): Likewise for signature of locals "length_fun"
5420 and "inner_length_fun". Introduce local rtx_sequence * "seqn"
5421 from a checked cast and use its methods for clarity and to enable
5422 strengthening local "inner_insn" from rtx to rtx_insn *.
5423 * genattr.c (gen_attr): When writing out the prototypes of the
5424 various generated "get_attr_" functions, strengthen the params of
5425 the non-const functions from rtx to rtx_insn *.
5426 Similarly, strengthen the params of insn_default_length,
5427 insn_min_length, insn_variable_length_p, insn_current_length.
5428 (main): Similarly, strengthen the param of num_delay_slots,
5429 internal_dfa_insn_code, insn_default_latency, bypass_p,
5430 insn_latency, min_issue_delay, print_reservation,
5431 insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
5432 "insn_default_latency" callbacks. Rename hook_int_rtx_unreachable
5433 to hook_int_rtx_insn_unreachable.
5434 * genattrtab.c (write_attr_get): When writing out the generated
5435 "get_attr_" functions, strengthen the param "insn" from rtx to
5436 rtx_insn *, eliminating a checked cast.
5437 (make_automaton_attrs): When writing out prototypes of
5438 "internal_dfa_insn_code_", "insn_default_latency_" functions
5439 and the "internal_dfa_insn_code" and "insn_default_latency"
5440 callbacks, strengthen their params from rtx to rtx_insn *
5441 * genautomata.c (output_internal_insn_code_evaluation): When
5442 writing out code, add a checked cast from rtx to rtx_insn * when
5443 invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
5444 (output_dfa_insn_code_func): Strengthen param of generated
5445 function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
5446 (output_trans_func): Likewise for generated function
5448 (output_internal_insn_latency_func): When writing out generated
5449 function "internal_insn_latency", rename params from "insn" and
5450 "insn2" to "insn_or_const0" and "insn2_or_const0". Reintroduce
5451 locals "insn" and "insn2" as rtx_insn * with checked casts once
5452 we've proven that we're not dealing with const0_rtx.
5453 (output_insn_latency_func): Strengthen param of generated
5454 function "insn_latency" from rtx to rtx_insn *.
5455 (output_print_reservation_func): Likewise for generated function
5456 "print_reservation".
5457 (output_insn_has_dfa_reservation_p): Likewise for generated
5458 function "insn_has_dfa_reservation_p".
5459 * hooks.c (hook_int_rtx_unreachable): Rename to...
5460 (hook_int_rtx_insn_unreachable): ...this, and strengthen param
5461 from rtx to rtx_insn *.
5462 * hooks.h (hook_int_rtx_unreachable): Likewise.
5463 (extern int hook_int_rtx_insn_unreachable): Likewise.
5464 * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
5465 (get_attr_min_length): Likewise.
5466 * recog.c (get_enabled_alternatives): Likewise.
5467 * recog.h (alternative_mask get_enabled_alternatives): Likewise.
5468 * reorg.c (find_end_label): Introduce local rtx "pat" and
5469 strengthen local "insn" from rtx to rtx_insn *.
5470 (redundant_insn): Use insn method of "seq" rather than element for
5471 typesafety; strengthen local "control" from rtx to rtx_insn *.
5472 * resource.c (mark_referenced_resources): Add checked cast to
5473 rtx_insn * within INSN/JUMP_INSN case.
5474 (mark_set_resources): Likewise.
5475 * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
5478 2014-09-15 David Malcolm <dmalcolm@redhat.com>
5480 * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
5481 param "label" from rtx to rtx_insn *.
5482 * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
5484 * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
5485 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
5486 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
5487 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
5488 * final.c (default_label_align_after_barrier_max_skip): Strengthen
5489 param from rtx to rtx_insn *.
5490 (default_loop_align_max_skip): Likewise.
5491 (default_label_align_max_skip): Likewise.
5492 (default_jump_align_max_skip): Likewise.
5493 * target.def (label_align_after_barrier_max_skip): Likewise.
5494 (loop_align_max_skip): Likewise.
5495 (label_align_max_skip): Likewise.
5496 (jump_align_max_skip): Likewise.
5497 * targhooks.h (default_label_align_after_barrier_max_skip):
5499 (default_loop_align_max_skip): Likewise.
5500 (default_label_align_max_skip): Likewise.
5501 (default_jump_align_max_skip): Likewise.
5503 2014-09-15 David Malcolm <dmalcolm@redhat.com>
5505 * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
5506 from const_rtx to const rtx_insn *. Update union members from rtx
5508 * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
5509 * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
5510 (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
5511 strengthen both params from const_rtx to const rtx_insn *.
5512 * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
5513 (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
5514 * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
5516 * target.def (can_follow_jump): Strengthen both params from
5517 const_rtx to const rtx_insn *, and update default implementation
5518 from hook_bool_const_rtx_const_rtx_true to
5519 hook_bool_const_rtx_insn_const_rtx_insn_true.
5521 2014-09-15 David Malcolm <dmalcolm@redhat.com>
5523 * sched-deps.c (deps_start_bb): Strengthen param "head" and local
5524 "insn" from rtx to rtx_insn *.
5525 * sched-int.h (deps_start_bb): Likewise for 2nd param.
5527 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
5528 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5529 Anna Tikhonova <anna.tikhonova@intel.com>
5530 Ilya Tocar <ilya.tocar@intel.com>
5531 Andrey Turetskiy <andrey.turetskiy@intel.com>
5532 Ilya Verbin <ilya.verbin@intel.com>
5533 Kirill Yukhin <kirill.yukhin@intel.com>
5534 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5536 * config/i386/sse.md
5537 (define_insn "vcvtph2ps<mask_name>"): Add masking.
5538 (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
5539 (define_insn "vcvtph2ps256<mask_name>"): Ditto.
5540 (define_expand "vcvtps2ph_mask"): New.
5541 (define_insn "*vcvtps2ph<mask_name>"): Add masking.
5542 (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
5543 (define_insn "vcvtps2ph256<mask_name>"): Ditto.
5545 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
5546 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5547 Anna Tikhonova <anna.tikhonova@intel.com>
5548 Ilya Tocar <ilya.tocar@intel.com>
5549 Andrey Turetskiy <andrey.turetskiy@intel.com>
5550 Ilya Verbin <ilya.verbin@intel.com>
5551 Kirill Yukhin <kirill.yukhin@intel.com>
5552 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5554 * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
5556 (define_mode_iterator VI24_AVX512BW_1): Ditto.
5557 (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
5558 (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
5559 (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
5560 also for TARGET_AVX512VL.
5561 (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
5563 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
5565 * doc/install.texi (Options specification): add
5566 --disable-libsanitizer item.
5568 2014-09-14 James Clarke <jrtc27@jrtc27.com>
5569 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
5572 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
5574 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
5575 kernel version check to avoid incrementing it after every major OS X
5577 (darwin_default_min_version): Avoid static memory buffer.
5579 2014-09-13 Jan Hubicka <hubicka@ucw.cz>
5581 * tree.c (need_assembler_name_p): Store C++ type mangling only
5584 2014-09-13 Marek Polacek <polacek@redhat.com>
5586 * tree.c (protected_set_expr_location): Don't check whether T is
5589 2014-09-12 DJ Delorie <dj@redhat.com>
5591 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
5592 (extend_and_shift1_hipsi2): Likewise.
5593 (extend_and_shift2_hipsi2): Likewise.
5595 2014-09-12 David Malcolm <dmalcolm@redhat.com>
5597 * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
5598 with NULL when dealing with an insn.
5599 * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
5600 from rtx to rtx_insn *.
5601 * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
5602 const_rtx to const rtx_insn *.
5603 * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
5605 2014-09-12 Trevor Saunders <tsaunders@mozilla.com>
5607 * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
5610 2014-09-12 Joseph Myers <joseph@codesourcery.com>
5612 * target.def (libgcc_floating_mode_supported_p): New hook.
5613 * targhooks.c (default_libgcc_floating_mode_supported_p): New
5615 * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
5616 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
5617 (LIBGCC2_HAS_TF_MODE): Remove.
5618 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
5619 * doc/tm.texi: Regenerate.
5620 * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
5622 * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
5623 (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
5624 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
5625 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
5626 * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5627 * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
5628 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
5629 * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
5630 * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
5631 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
5633 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
5634 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5635 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5636 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5637 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5638 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5639 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5640 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
5641 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
5642 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
5643 * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5644 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
5645 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
5646 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
5648 * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
5650 (ia64_libgcc_floating_mode_supported_p): New function.
5651 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
5652 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
5653 (IA64_NO_LIBGCC_TFMODE): Define.
5654 * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
5655 * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
5657 (pdp11_scalar_mode_supported_p): New function.
5658 * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
5659 * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
5661 2014-09-12 Richard Biener <rguenther@suse.de>
5664 * gimple-fold.c (get_maxval_strlen): Gimplify string length.
5666 2014-09-12 Marc Glisse <marc.glisse@inria.fr>
5668 * tree.c (integer_each_onep): New function.
5669 * tree.h (integer_each_onep): Declare it.
5670 * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
5671 -A - 1 to ~A. Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
5672 (X & 1) == 0 for vector and complex.
5674 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
5676 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
5678 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
5679 cost to spilling from integer to FP registers.
5681 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
5683 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
5685 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
5686 are now handled correctly.
5688 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
5690 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
5691 handling of CALLER_SAVE_REGS and POINTER_REGS.
5693 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
5695 * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
5696 the number of hard registers.
5698 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
5699 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5700 Anna Tikhonova <anna.tikhonova@intel.com>
5701 Ilya Tocar <ilya.tocar@intel.com>
5702 Andrey Turetskiy <andrey.turetskiy@intel.com>
5703 Ilya Verbin <ilya.verbin@intel.com>
5704 Kirill Yukhin <kirill.yukhin@intel.com>
5705 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5707 * config/i386/sse.md
5708 (define_mode_iterator VI48_AVX512VL): New.
5709 (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
5710 "avx512f_vternlog<mode>_maskz" and update mode iterator.
5711 (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
5712 from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
5713 (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
5714 "avx512f_vternlog<mode>_mask" and update mode iterator.
5715 (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
5716 from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
5718 (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
5719 "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
5720 (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
5721 "avx512f_<rotate><mode><mask_name>" and update mode iterator.
5722 (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
5723 (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
5725 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
5726 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5727 Anna Tikhonova <anna.tikhonova@intel.com>
5728 Ilya Tocar <ilya.tocar@intel.com>
5729 Andrey Turetskiy <andrey.turetskiy@intel.com>
5730 Ilya Verbin <ilya.verbin@intel.com>
5731 Kirill Yukhin <kirill.yukhin@intel.com>
5732 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5734 * config/i386/sse.md (VI128_256): Delete.
5735 (define_mode_iterator VI124_256): New.
5736 (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
5737 (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
5738 (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
5739 (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
5740 "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
5741 (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
5742 (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
5743 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
5745 (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
5746 in presence of AVX-512.
5748 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
5749 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5750 Anna Tikhonova <anna.tikhonova@intel.com>
5751 Ilya Tocar <ilya.tocar@intel.com>
5752 Andrey Turetskiy <andrey.turetskiy@intel.com>
5753 Ilya Verbin <ilya.verbin@intel.com>
5754 Kirill Yukhin <kirill.yukhin@intel.com>
5755 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5757 * config/i386/sse.md
5758 (define_expand "<avx512>_gathersi<mode>"): Rename from
5759 "avx512f_gathersi<mode>".
5760 (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
5761 (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
5762 (define_expand "<avx512>_gatherdi<mode>"): Rename from
5763 "avx512f_gatherdi<mode>".
5764 (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
5765 (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
5767 (define_expand "<avx512>_scattersi<mode>"): Rename from
5768 "avx512f_scattersi<mode>".
5769 (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
5770 (define_expand "<avx512>_scatterdi<mode>"): Rename from
5771 "avx512f_scatterdi<mode>".
5772 (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
5774 2014-09-12 Richard Sandiford <richard.sandiford@arm.com>
5776 * ira.h (ira_finish_once): Delete.
5777 * ira-int.h (target_ira_int::~target_ira_int): Declare.
5778 (target_ira_int::free_ira_costs): Likewise.
5779 (target_ira_int::free_register_move_costs): Likewise.
5780 (ira_finish_costs_once): Delete.
5781 * ira.c (free_register_move_costs): Replace with...
5782 (target_ira_int::free_register_move_costs): ...this new function.
5783 (target_ira_int::~target_ira_int): Define.
5784 (ira_init): Call free_register_move_costs as a member function rather
5785 than a global function.
5786 (ira_finish_once): Delete.
5787 * ira-costs.c (free_ira_costs): Replace with...
5788 (target_ira_int::free_ira_costs): ...this new function.
5789 (ira_init_costs): Call free_ira_costs as a member function rather
5790 than a global function.
5791 (ira_finish_costs_once): Delete.
5792 * target-globals.c (target_globals::~target_globals): Call the
5793 target_ira_int destructor.
5794 * toplev.c: Include lra.h.
5795 (finalize): Call lra_finish_once rather than ira_finish_once.
5797 2014-09-11 Jan Hubicka <hubicka@ucw.cz>
5799 * common.opt (flto-odr-type-merging): New flag.
5800 * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
5801 (types_same_for_odr): Likewise.
5802 (odr_subtypes_equivalent_p): Likewise.
5803 (add_type_duplicate): Do not walk type variants.
5804 (register_odr_type): New function.
5805 * ipa-utils.h (register_odr_type): Declare.
5806 (odr_type_p): New function.
5807 * langhooks.c (lhd_set_decl_assembler_name): Do not compute
5809 * doc/invoke.texi (-flto-odr-type-merging): Document.
5810 * tree.c (need_assembler_name_p): Compute ODR names when asked
5812 * tree.h (DECL_ASSEMBLER_NAME): Update comment.
5814 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
5817 * config/i386/i386.c (ix86_option_override_internal): Also turn
5818 off OPTION_MASK_ABI_X32 for -m16.
5820 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
5822 * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
5825 2014-09-11 Marc Glisse <marc.glisse@inria.fr>
5828 * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
5829 Directly forward to __*_DENORM_MIN__.
5831 2014-09-11 David Malcolm <dmalcolm@redhat.com>
5833 * rtl.h (LABEL_REF_LABEL): New macro.
5835 * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
5836 of XEXP (, 0), where we know that we have a LABEL_REF.
5837 * cfgbuild.c (make_edges): Likewise.
5838 (purge_dead_tablejump_edges): Likewise.
5839 * cfgexpand.c (convert_debug_memory_address): Likewise.
5840 * cfgrtl.c (patch_jump_insn): Likewise.
5841 * combine.c (distribute_notes): Likewise.
5842 * cse.c (hash_rtx_cb): Likewise.
5843 (exp_equiv_p): Likewise.
5844 (fold_rtx): Likewise.
5845 (check_for_label_ref): Likewise.
5846 * cselib.c (rtx_equal_for_cselib_1): Likewise.
5847 (cselib_hash_rtx): Likewise.
5848 * emit-rtl.c (mark_label_nuses): Likewise.
5849 * explow.c (convert_memory_address_addr_space): Likewise.
5850 * final.c (output_asm_label): Likewise.
5851 (output_addr_const): Likewise.
5852 * gcse.c (add_label_notes): Likewise.
5853 * genconfig.c (walk_insn_part): Likewise.
5854 * genrecog.c (validate_pattern): Likewise.
5855 * ifcvt.c (cond_exec_get_condition): Likewise.
5856 (noce_emit_store_flag): Likewise.
5857 (noce_get_alt_condition): Likewise.
5858 (noce_get_condition): Likewise.
5859 * jump.c (maybe_propagate_label_ref): Likewise.
5860 (mark_jump_label_1): Likewise.
5861 (redirect_exp_1): Likewise.
5862 (rtx_renumbered_equal_p): Likewise.
5863 * lra-constraints.c (operands_match_p): Likewise.
5864 * reload.c (operands_match_p): Likewise.
5865 (find_reloads): Likewise.
5866 * reload1.c (set_label_offsets): Likewise.
5867 * reorg.c (get_branch_condition): Likewise.
5868 * rtl.c (rtx_equal_p_cb): Likewise.
5869 (rtx_equal_p): Likewise.
5870 * rtlanal.c (reg_mentioned_p): Likewise.
5871 (rtx_referenced_p): Likewise.
5872 (get_condition): Likewise.
5873 * sched-vis.c (print_value): Likewise.
5874 * varasm.c (const_hash_1): Likewise.
5875 (compare_constant): Likewise.
5876 (const_rtx_hash_1): Likewise.
5877 (output_constant_pool_1): Likewise.
5879 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
5881 * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
5882 tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
5884 * config/rs6000/vector.md (cr6_test_for_zero_reverse,
5885 cr6_test_for_lt_reverse): Ditto.
5887 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
5890 * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
5892 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
5894 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
5895 TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
5896 aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
5897 aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
5900 (aarch64_fold_builtin): Remove all reinterpret cases.
5902 * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
5904 * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
5906 * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
5907 aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
5908 aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
5909 aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
5910 aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
5911 aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
5912 aarch64_reinterpretv2df<mode>): Delete.
5914 * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
5916 * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
5917 vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
5918 vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
5919 vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
5920 vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
5921 vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
5922 vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
5923 vreinterpret_u32_f64): Use cast.
5925 * config/aarch64/iterators.md (VD_RE): Delete.
5927 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
5929 * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
5930 (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
5931 vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
5932 vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
5933 vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
5934 vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
5935 vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
5936 Replace inline assembler with __aarch64_vset_lane_any.
5938 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
5940 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
5942 (vmull_high_lane_s32): Likewise.
5943 (vmull_high_lane_u16): Likewise.
5944 (vmull_high_lane_u32): Likewise.
5946 2014-09-11 Jason Merrill <jason@redhat.com>
5949 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
5951 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
5954 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
5955 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
5956 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
5958 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5959 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5960 Anna Tikhonova <anna.tikhonova@intel.com>
5961 Ilya Tocar <ilya.tocar@intel.com>
5962 Andrey Turetskiy <andrey.turetskiy@intel.com>
5963 Ilya Verbin <ilya.verbin@intel.com>
5964 Kirill Yukhin <kirill.yukhin@intel.com>
5965 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5967 * config/i386/sse.md
5968 (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
5969 "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
5970 (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
5972 (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
5973 from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
5975 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5977 (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
5978 "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
5979 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
5980 (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
5981 "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
5982 (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
5983 (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
5984 from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
5986 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5988 (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
5989 "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
5990 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
5992 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
5994 * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
5995 to access removed nodes.
5997 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
5999 PR tree-optimization/63186
6000 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
6001 (mark_nonssa_use): Likewise.
6002 (verify_non_ssa_vars): Verify all header blocks for label
6005 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
6006 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6007 Anna Tikhonova <anna.tikhonova@intel.com>
6008 Ilya Tocar <ilya.tocar@intel.com>
6009 Andrey Turetskiy <andrey.turetskiy@intel.com>
6010 Ilya Verbin <ilya.verbin@intel.com>
6011 Kirill Yukhin <kirill.yukhin@intel.com>
6012 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6014 * config/i386/sse.md
6015 (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
6016 (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
6017 (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
6018 "<avx2_avx512f>_permvar<mode><mask_name>".
6019 (define_insn "<avx512>_permvar<mode><mask_name>"): New.
6020 (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
6021 Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
6022 (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
6024 (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
6025 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
6026 (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
6027 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
6029 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
6031 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
6032 V2DF, V4SF, DF, and DI modes.
6033 (vsx_fmav2df2): Likewise.
6034 (vsx_float_fix_<mode>2): Likewise.
6035 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
6037 2014-09-10 Xinliang David Li <davidxl@google.com>
6040 * config/arm/arm.md (movcond_addsi): Handle case where source
6041 and target operands are the same.
6043 2014-09-10 David Malcolm <dmalcolm@redhat.com>
6045 * final.c (this_is_asm_operands): Strengthen this variable from
6046 rtx to const rtx_insn *.
6047 * output.h (this_is_asm_operands): Likewise.
6048 * rtl-error.c (location_for_asm): Strengthen param "insn" from
6049 const_rtx to const rtx_insn *.
6050 (diagnostic_for_asm): Likewise.
6051 * rtl-error.h (error_for_asm): Likewise.
6052 (warning_for_asm): Likewise.
6054 2014-09-10 David Malcolm <dmalcolm@redhat.com>
6056 * genextract.c (print_header): When writing out insn_extract to
6057 insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
6058 * recog.h (insn_extract): Strengthen the param from rtx to
6061 2014-09-10 Mike Stump <mikestump@comcast.net>
6063 * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
6066 2014-09-10 Martin Jambor <mjambor@suse.cz>
6068 * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
6069 (analyze): Do not set analyze flag if expand_thunk returns false;.
6070 (create_wrapper): Likewise.
6071 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
6073 2014-09-10 Martin Jambor <mjambor@suse.cz>
6076 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
6077 new decl properly. Analyze the new thunk if it is expanded.
6079 2014-09-10 Andreas Schwab <schwab@suse.de>
6081 * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
6082 [USED_FOR_TARGET]: Define.
6084 2014-09-10 Matthew Fortune <matthew.fortune@imgtec.com>
6086 * config/mips/mips.c (mips_secondary_reload_class): Handle
6089 2014-09-10 Robert Suchanek <robert.suchanek@imgtec.com>
6091 * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
6094 2014-09-10 Jakub Jelinek <jakub@redhat.com>
6096 * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
6097 and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
6098 * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
6099 SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
6100 flag_delete_null_pointer_checks for them.
6101 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
6102 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
6103 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
6104 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
6105 * ubsan.c (instrument_bool_enum_load): Set *gsi back to
6107 (instrument_nonnull_arg, instrument_nonnull_return): New functions.
6108 (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
6109 or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
6110 (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
6111 * doc/invoke.texi (-fsanitize=nonnull-attribute,
6112 -fsanitize=returns-nonnull-attribute): Document.
6114 * ubsan.h (struct ubsan_mismatch_data): Removed.
6115 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
6116 * ubsan.c (ubsan_source_location): For unknown locations,
6117 pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
6118 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
6119 Allow more than one location and arbitrary extra arguments passed
6120 in ... instead of through MISMATCH pointer.
6121 (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
6122 ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
6123 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
6126 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
6127 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6128 Anna Tikhonova <anna.tikhonova@intel.com>
6129 Ilya Tocar <ilya.tocar@intel.com>
6130 Andrey Turetskiy <andrey.turetskiy@intel.com>
6131 Ilya Verbin <ilya.verbin@intel.com>
6132 Kirill Yukhin <kirill.yukhin@intel.com>
6133 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6135 * config/i386/sse.md
6136 (define_mode_iterator VI48F): New.
6137 (define_insn "<avx512>_compress<mode>_mask"): Rename from
6138 "avx512f_compress<mode>_mask" and update mode iterator.
6139 (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
6140 "avx512f_compressstore<mode>_mask" and update mode iterator.
6141 (define_expand "<avx512>_expand<mode>_maskz"): Rename from
6142 "avx512f_expand<mode>_maskz" and update mode iterator.
6143 (define_insn "<avx512>_expand<mode>_mask"): Rename from
6144 "avx512f_expand<mode>_mask" and update mode iterator.
6146 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
6147 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6148 Anna Tikhonova <anna.tikhonova@intel.com>
6149 Ilya Tocar <ilya.tocar@intel.com>
6150 Andrey Turetskiy <andrey.turetskiy@intel.com>
6151 Ilya Verbin <ilya.verbin@intel.com>
6152 Kirill Yukhin <kirill.yukhin@intel.com>
6153 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6155 * config/i386/i386.c
6156 (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
6157 avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
6158 avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
6159 avx512dq_rangepv4sf_mask.
6160 * config/i386/sse.md
6161 (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
6163 (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
6164 (define_insn "reduces<mode>"): Ditto.
6165 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
6167 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
6168 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
6169 (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
6171 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
6172 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6173 Anna Tikhonova <anna.tikhonova@intel.com>
6174 Ilya Tocar <ilya.tocar@intel.com>
6175 Andrey Turetskiy <andrey.turetskiy@intel.com>
6176 Ilya Verbin <ilya.verbin@intel.com>
6177 Kirill Yukhin <kirill.yukhin@intel.com>
6178 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6180 * config/i386/i386.c
6181 (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
6182 (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
6183 (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
6184 avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
6185 avx512vl_getmantv2df_mask.
6186 (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
6187 avx512f_vgetmantv4sf_round.
6188 * config/i386/sse.md
6189 (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
6190 Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
6192 (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
6193 (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
6194 (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
6195 from "avx512f_scalef<mode><mask_name><round_name>" and update mode
6197 (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
6198 Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
6199 update mode iterator.
6201 "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
6202 "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
6205 "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
6206 from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
6207 update mode iterator.
6208 (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
6209 from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
6212 "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
6213 "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
6215 (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
6216 Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
6217 update mode iterator.
6218 (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
6219 "avx512f_getmant<mode><round_saeonly_name>".
6221 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
6224 * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
6226 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
6227 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6228 Anna Tikhonova <anna.tikhonova@intel.com>
6229 Ilya Tocar <ilya.tocar@intel.com>
6230 Andrey Turetskiy <andrey.turetskiy@intel.com>
6231 Ilya Verbin <ilya.verbin@intel.com>
6232 Kirill Yukhin <kirill.yukhin@intel.com>
6233 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6235 * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
6236 (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
6237 (define_mode_iterator FMAMODE_AVX512): New.
6238 (define_mode_iterator FMAMODE): Remove conditions.
6239 (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
6240 (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
6241 from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
6243 (define_mode_iterator FMAMODE_NOVF512): Remove.
6244 (define_insn "*fma_fmadd_<mode>"): Rename from
6245 "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
6246 FMAMODE mode iterator.
6247 (define_mode_iterator VF_SF_AVX512VL): New.
6248 (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
6249 Use VF_SF_AVX512VL mode iterator.
6250 (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
6251 "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6253 (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
6254 "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6256 (define_insn "*fma_fmsub_<mode>"): Rename from
6257 "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
6258 FMAMODE mode iterator.
6259 (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
6260 Use VF_SF_AVX512VL mode iterator.
6261 (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
6262 "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6264 (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
6265 "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6267 (define_insn "*fma_fnmadd_<mode>"): Rename from
6268 "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
6269 use FMAMODE mode iterator.
6270 (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
6271 Use VF_SF_AVX512VL mode iterator.
6272 (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
6273 "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6275 (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
6276 "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6278 (define_insn "*fma_fnmsub_<mode>"): Rename from
6279 "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
6280 FMAMODE mode iterator.
6281 (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
6282 Use VF_SF_AVX512VL mode iterator.
6283 (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
6284 "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6286 (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
6287 "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6289 (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
6290 Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
6291 use VF_AVX512VL mode iterator.
6292 (define_insn "*fma_fmaddsub_<mode>"): Rename from
6293 "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
6295 (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
6296 Use VF_SF_AVX512VL mode iterator.
6297 (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
6298 "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6300 (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
6301 "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6303 (define_insn "*fma_fmsubadd_<mode>"): Rename from
6304 "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
6305 remove usage of subst.
6306 (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
6307 Use VF_SF_AVX512VL mode iterator.
6308 (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
6309 "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6311 (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
6312 "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6315 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org>
6318 * calls.c (precompute_arguments): Check
6319 promoted_for_signed_and_unsigned_p and set the promoted mode.
6320 (promoted_for_signed_and_unsigned_p): New function.
6321 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
6322 and set the promoted mode.
6323 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
6324 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
6325 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
6327 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
6329 * opth-gen.awk: Generate mapping from cpp message reasons to the
6330 options that enable them.
6331 * doc/options.texi (CppReason): Document.
6333 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
6335 * doc/invoke.texi (Wnormalized=): Update.
6337 2014-09-09 Segher Boessenkool <segher@kernel.crashing.org>
6340 * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
6341 operands. Split off the constant operand alternative to ...
6342 (*bool<mode>3_imm): New.
6344 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6346 * rtl.h (single_set_2): Strengthen first param from const_rtx to
6347 const rtx_insn *, and move prototype to above...
6348 (single_set): ...this. Convert this from a macro to an inline
6349 function, enforcing the requirement that the param is a const
6351 (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
6353 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
6354 Strengthen both params from rtx to rtx_insn *.
6355 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
6356 Likewise; introduce locals "producer_set", "consumer_set", using
6357 them in place of "producer" and "consumer" when dealing with SET
6359 * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
6360 when invoking single_set in region guarded by INSN_P.
6361 (avr_out_bitop): Likewise.
6362 (_reg_unused_after): Introduce local rtx_sequence * "seq" in
6363 region guarded by GET_CODE check, using methods to strengthen
6364 local "this_insn" from rtx to rtx_insn *, and for clarity.
6365 * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
6366 Strengthen local "insn" from rtx to rtx_insn *.
6367 (define_insn_and_split "xload<mode>_A"): Likewise.
6368 * config/bfin/bfin.c (trapping_loads_p): Likewise for param
6370 (find_load): Likewise for return type.
6371 (workaround_speculation): Likewise for both locals named
6373 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
6375 * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
6377 * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
6379 * config/h8300/h8300.c (notice_update_cc): Likewise.
6380 * config/i386/i386.c (ix86_flags_dependent): Likewise for params
6381 "insn" and "dep_insn".
6382 (exact_store_load_dependency): Likewise for both params.
6383 (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
6384 since this now clashes with inline function. Instead, delay
6385 calling single_set until the point where its needed, and then
6386 assign the result to "compare_set" and rework the conditional that
6388 * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
6389 local "last" from rtx to rtx_insn *.
6390 * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
6392 (mips_store_data_bypass_p): Likewise for both params.
6393 * config/mips/mips.c (mips_load_store_insns): Likewise for second
6395 (mips_store_data_bypass_p): Likewise for both params.
6396 (mips_orphaned_high_part_p): Likewise for param "insn".
6397 * config/mn10300/mn10300.c (extract_bundle): Likewise.
6398 (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
6399 Introduce local rtx "insn2_pat".
6400 * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
6402 (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
6403 Introduce local rtx "set", using it in place of "insn" for the
6404 result of single_set. This appears to fix a bug, since the call
6405 to find_regno_note on a SET does nothing.
6406 * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
6407 params from rtx to rtx_insn *.
6408 (set_to_load_agen): Likewise.
6409 * config/s390/s390.c (s390_label_align): Likewise for local
6410 "prev_insn". Introduce new rtx locals "set" and "src", using
6411 them in place of "prev_insn" for the results of single_set
6412 and SET_SRC respectively.
6413 (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
6414 Introduce new rtx local "set" using in place of "jump" for the
6415 result of single_set. Use SET_SRC (set) rather than plain
6417 * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
6419 (noncall_uses_reg): Likewise.
6420 (reg_unused_after): Introduce local rtx_sequence * "seq" in region
6421 guarded by GET_CODE check, using its methods for clarity, and to
6422 enable strengthening local "this_insn" from rtx to rtx_insn *.
6423 * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
6424 "insn" from rtx to rtx_insn *.
6425 (define_expand "umulhisi3"): Likewise.
6426 (define_expand "smulsi3_highpart"): Likewise.
6427 (define_expand "umulsi3_highpart"): Likewise.
6428 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
6429 local "after". Replace GET_CODE check with a dyn_cast,
6430 introducing new local rtx_sequence * "seq", using insn method for
6433 * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
6434 from rtx to rtx_insn *. Introduce local rtx "pat", using it in
6435 place of "insn" once we're dealing with patterns rather than the
6437 (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
6438 (scan_trace): Likewise for local "elt", updating lookups within
6439 sequence to use insn method rather than element method.
6440 * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
6442 * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
6443 * ifcvt.c (noce_try_abs): Likewise for local "insn".
6444 * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
6445 invoking single_set.
6446 * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
6447 "insn" from rtx to rtx_insn *.
6448 (skip_usage_debug_insns): Likewise for return type, adding a
6450 (check_secondary_memory_needed_p): Likewise for local "insn".
6451 (inherit_reload_reg): Likewise.
6452 * modulo-sched.c (sms_schedule): Likewise for local "count_init".
6453 * recog.c (peep2_attempt): Likewise for local "old_insn", adding
6455 (store_data_bypass_p): Likewise for both params.
6456 (if_test_bypass_p): Likewise.
6457 * recog.h (store_data_bypass_p): Likewise for both params.
6458 (if_test_bypass_p): Likewise.
6459 * reload.c (find_equiv_reg): Likewise for local "where".
6460 * reorg.c (delete_jump): Likewise for param "insn".
6461 * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
6462 to const rtx_insn *.
6463 * store-motion.c (replace_store_insn): Likewise for param "del".
6464 (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
6465 and use its methods for clarity, and to strengthen local "del"
6466 from rtx to rtx_insn *.
6467 (build_store_vectors): Use insn method of "st" when calling
6468 replace_store_insn for typesafety and clarity.
6470 2014-09-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6472 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
6473 UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
6474 on how to make it legal in future.
6476 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6478 * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
6480 (restinsn): Likewise.
6481 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
6483 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
6485 * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
6487 (arc_hazard): Likewise for both params.
6488 * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
6489 checked casts to rtx_sequence * and uses of the insn method for
6491 (arc_hazard): Strengthen both params from rtx to rtx_insn *.
6492 (arc_adjust_insn_length): Likewise for param "insn".
6493 (struct insn_length_parameters_s): Likewise for first param of
6494 "get_variants" callback field.
6495 (arc_get_insn_variants): Likewise for first param and local
6496 "inner". Replace a check of GET_CODE with a dyn_cast to
6497 rtx_sequence *, using methods for type-safety and clarity.
6498 * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
6499 rtx_sequence * and uses of the insn method for type-safety when
6500 invoking arc_adjust_insn_length.
6501 * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
6503 (arm_address_offset_is_imm): Likewise.
6504 (struct tune_params): Likewise for params 1 and 3 of the
6505 "sched_adjust_cost" callback field.
6506 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
6507 params 1 and 3 ("insn" and "dep").
6508 (xscale_sched_adjust_cost): Likewise.
6509 (fa726te_sched_adjust_cost): Likewise.
6510 (cortexa7_older_only): Likewise for param "insn".
6511 (cortexa7_younger): Likewise.
6512 (arm_attr_length_move_neon): Likewise.
6513 (arm_address_offset_is_imm): Likewise.
6514 * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
6515 * config/avr/avr.c (avr_notice_update_cc): Likewise.
6516 * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
6517 (workaround_speculation): Likewise for local "last_condjump".
6518 * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
6519 (shadow_or_blockage_p): Likewise.
6520 (get_unit_reqs): Likewise.
6521 (get_unit_operand_masks): Likewise.
6522 (c6x_registers_update): Likewise.
6523 (returning_call_p): Likewise.
6524 (can_use_callp): Likewise.
6525 (convert_to_callp): Likewise.
6526 (find_last_same_clock): Likwise for local "t".
6527 (reorg_split_calls): Likewise for local "shadow".
6528 (hwloop_pattern_reg): Likewise for param "insn".
6529 * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
6530 * config/frv/frv.c (frv_final_prescan_insn): Likewise.
6531 (frv_extract_membar): Likewise.
6532 (frv_optimize_membar_local): Strengthen param "last_membar" from
6533 rtx * to rtx_insn **.
6534 (frv_optimize_membar_global): Strengthen param "membar" from rtx
6536 (frv_optimize_membar): Strengthen local "last_membar" from rtx *
6538 * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
6539 both params from rtx to rtx_insn *.
6540 (ia64_ld_address_bypass_p): Likewise.
6541 * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
6543 (ia64_safe_type): Likewise.
6544 (group_barrier_needed): Likewise.
6545 (safe_group_barrier_needed): Likewise.
6546 (ia64_single_set): Likewise.
6547 (is_load_p): Likewise.
6548 (record_memory_reference): Likewise.
6549 (get_mode_no_for_insn): Likewise.
6550 (important_for_bundling_p): Likewise.
6551 (unknown_for_bundling_p): Likewise.
6552 (ia64_st_address_bypass_p): Likewise for both params.
6553 (ia64_ld_address_bypass_p): Likewise.
6554 (expand_vselect): Introduce new local rtx_insn * "insn", using it
6555 in place of rtx "x" after the emit_insn call.
6556 * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
6557 Strengthen param from rtx to rtx_insn *.
6558 (ix86_agi_dependent): Likewise for both params.
6559 (ix86_attr_length_immediate_default): Likewise for param 1.
6560 (ix86_attr_length_address_default): Likewise for param.
6561 (ix86_attr_length_vex_default): Likewise for param 1.
6562 * config/i386/i386.c (ix86_attr_length_immediate_default):
6563 Likewise for param "insn".
6564 (ix86_attr_length_address_default): Likewise.
6565 (ix86_attr_length_vex_default): Likewise.
6566 (ix86_agi_dependent): Likewise for both params.
6567 (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
6568 (vselect_insn): Likewise for this variable.
6569 * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
6571 (m68k_sched_attr_opy_type): Likewise.
6572 * config/m68k/m68k.c (sched_get_operand): Likewise.
6573 (sched_attr_op_type): Likewise.
6574 (m68k_sched_attr_opx_type): Likewise.
6575 (m68k_sched_attr_opy_type): Likewise.
6576 (sched_get_reg_operand): Likewise.
6577 (sched_get_mem_operand): Likewise.
6578 (m68k_sched_address_bypass_p): Likewise for both params.
6579 (sched_get_indexed_address_scale): Likewise.
6580 (m68k_sched_indexed_address_bypass_p): Likewise.
6581 * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
6582 (m68k_sched_indexed_address_bypass_p): Likewise.
6583 * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
6584 "label", "ret" from rtx to rtx_insn *, adding a checked cast and
6586 * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
6587 params from rtx to rtx_insn *.
6588 (mips_fmadd_bypass): Likewise.
6589 * config/mips/mips.c (mips_fmadd_bypass): Likewise.
6590 (mips_linked_madd_p): Likewise.
6591 (mips_macc_chains_last_hilo): Likewise for this variable.
6592 (mips_macc_chains_record): Likewise for param.
6593 (vr4130_last_insn): Likewise for this variable.
6594 (vr4130_swap_insns_p): Likewise for both params.
6595 (mips_ls2_variable_issue): Likewise for param.
6596 (mips_need_noat_wrapper_p): Likewise for param "insn".
6597 (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
6598 in place of "x" after the emit_insn.
6599 * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
6600 params from rtx to rtx_insn *.
6601 * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
6602 (pa_combine_instructions): Introduce local "par" for result of
6603 gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
6605 (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
6606 * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
6607 (rl78_alloc_physical_registers_op1): Likewise.
6608 (rl78_alloc_physical_registers_op2): Likewise.
6609 (rl78_alloc_physical_registers_ro1): Likewise.
6610 (rl78_alloc_physical_registers_cmp): Likewise.
6611 (rl78_alloc_physical_registers_umul): Likewise.
6612 (rl78_alloc_address_registers_macax): Likewise.
6613 (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
6614 * config/s390/predicates.md (execute_operation): Likewise for
6616 * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
6618 * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
6619 (addr_generation_dependency_p): Likewise for param "insn".
6620 (s390_agen_dep_p): Likewise for both params.
6621 (s390_fpload_toreg): Likewise for param "insn".
6622 * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
6623 * config/sh/sh.c (sh_loop_align): Likewise for param and local
6625 * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
6626 * config/sh/sh_treg_combine.cc
6627 (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
6629 (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
6630 * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
6631 "and_insn", "load", "shift".
6632 * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
6634 * final.c (final_scan_insn): Introduce local rtx_insn * "other"
6635 for XEXP (note, 0) of the REG_CC_SETTER note.
6636 (cleanup_subreg_operands): Strengthen param "insn" from rtx to
6637 rtx_insn *, eliminating a checked cast made redundant by this.
6638 * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
6640 * genattr.c (main): When writing out the prototype to
6641 const_num_delay_slots, strengthen the param from rtx to
6643 * genattrtab.c (write_const_num_delay_slots): Likewise when
6644 writing out the implementation of const_num_delay_slots.
6645 * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
6646 "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
6647 * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
6648 favor of new rtx locals "src" and "set" and new local rtx_insn *
6650 (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
6652 (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
6653 locals "cond", "if_then_else", "set" and new rtx_insn * locals
6655 (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
6656 "last" from rtx to rtx_insn *. Likewise for a local "tmp",
6657 renaming to "tmp_insn". Eliminate the other local rtx "tmp" from
6658 the top-level scope, replacing with new more tightly-scoped rtx
6659 locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
6660 "new_insn", "copy_of_insn_b", and make local rtx "set" more
6662 * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
6664 * ira.c (setup_prohibited_mode_move_regs): Likewise for local
6666 (ira_setup_alts): Likewise for param "insn".
6667 * lra-constraints.c (emit_inc): Likewise for local "add_insn".
6668 * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
6670 (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
6671 new more-tightly scoped rtx locals "add3_insn", "insn",
6672 "add2_insn" and rtx_insn * "move_insn".
6673 * postreload-gcse.c (eliminate_partially_redundant_load): Add
6674 checked cast on result of gen_move_insn when invoking
6676 * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
6678 (verify_changes): Add a checked cast on "object" when invoking
6680 (extract_insn_cached): Strengthen param "insn" from rtx to
6682 (extract_constrain_insn_cached): Likewise.
6683 (extract_insn): Likewise.
6684 * recog.h (insn_invalid_p): Likewise for param 1.
6685 (recog_memoized): Likewise for param.
6686 (extract_insn): Likewise.
6687 (extract_constrain_insn_cached): Likewise.
6688 (extract_insn_cached): Likewise.
6689 * reload.c (can_reload_into): Likewise for local "test_insn".
6690 * reload.h (cleanup_subreg_operands): Likewise for param.
6691 * reload1.c (emit_insn_if_valid_for_reload): Rename param from
6692 "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
6693 result of emit_insn. Remove a checked cast made redundant by this
6695 * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
6697 * sel-sched.c (get_reg_class): Likewise.
6699 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
6700 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6702 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
6703 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
6705 (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
6707 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6709 * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
6710 const rtx_insn *, and from rtx to rtx_insn * for the other
6712 (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
6713 INSN_LOCATION, since we know INSN_P holds.
6714 (insn_line): Strengthen param from const_rtx to const rtx_insn *.
6715 (insn_file): Likewise.
6716 (insn_scope): Likewise.
6717 (insn_location): Likewise.
6719 * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
6720 "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
6721 for the result of gen_load_const_gp.
6722 * config/rs6000/rs6000-protos.h (output_call): Strengthen first
6723 param from rtx to rtx_insn *.
6724 * config/rs6000/rs6000.c (output_call): Likewise.
6725 * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
6726 introducing a checked cast to rtx_sequence * and use of the insn
6728 * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
6729 from rtx to rtx_insn *.
6730 (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
6731 (insn_line): Likewise.
6732 (insn_file): Likewise.
6733 (insn_location): Likewise.
6734 * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
6735 from rtx to rtx_insn *.
6736 * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
6737 cast, using it for calls to INSN_HAS_LOCATION and insn_location.
6738 * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
6740 * reorg.c (relax_delay_slots): Strengthen locals named "after"
6741 from rtx to rtx_insn *; use methods of "pat" for type-safety.
6743 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6745 * combine.c (try_combine): Eliminate checked cast on result of
6747 * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
6748 autogenerated one by strengthening the return type and params 2 and 3
6749 from rtx to rtx_insn *, and by naming the params.
6750 * gengenrtl.c (special_rtx): Add INSN to those that are
6752 * rtl.h (gen_rtx_INSN): New prototype.
6754 2014-09-09 David Malcolm <dmalcolm@redhat.com>
6756 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
6758 (no_equiv): Likewise.
6759 (update_equiv_regs): Likewise.
6760 (setup_reg_equiv): Likewise. Strengthen locals "elem",
6761 "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
6762 from rtx to rtx_insn *. Use methods of "elem" for typesafety and
6764 * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
6765 from rtx to rtx_insn_list *.
6766 * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
6767 rtx_insn_list * and use methods for clarity and typesafety.
6768 * lra-constraints.c (contains_deleted_insn_p): Likewise for param
6770 (init_insn_rhs_dead_pseudo_p): Likewise for local "insns". Remove
6771 redundant check on INSN_P (insns): this cannot hold, as "insns" is
6772 an INSN_LIST, not an insn.
6773 (reverse_equiv_p): Strengthen local "insns" from rtx to
6774 rtx_insn_list * and use methods for clarity and typesafety.
6775 (contains_reloaded_insn_p): Likewise for local "list".
6777 2014-09-09 Jiong Wang <jiong.wang@arm.com>
6779 * config/arm/arm.c (NEON_COPYSIGNF): New enum.
6780 (arm_init_neon_builtins): Support NEON_COPYSIGNF.
6781 (arm_builtin_vectorized_function): Likewise.
6782 * config/arm/arm_neon_builtins.def: New macro for copysignf.
6783 * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
6785 2014-09-09 Richard Sandiford <richard.sandiford@arm.com>
6787 * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
6788 * builtins.h (default_target_builtins): Likewise.
6789 * gcse.h (default_target_gcse): Likewise.
6790 * target-globals.h (target_globals): Add a destructor. Convert
6791 void-pointer fields back to their real type and change from
6792 GTY((atomic)) to GTY((skip)).
6793 (restore_target_globals): Remove casts accordingly.
6794 * target-globals.c (save_target_globals): Use XCNEW rather than
6795 ggc_internal_cleared_alloc to allocate non-GC structures.
6796 Use ggc_cleared_alloc to allocate the target_globals structure
6798 (target_globals::~target_globals): Define.
6800 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6802 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
6803 mnemonic instead of fldmfdd.
6804 * config/arm/arm.c (vfp_output_fstmd): Rename to...
6805 (vfp_output_vstmd): ... This. Convert output to UAL syntax.
6806 Output vpush when address register is SP.
6807 * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
6808 (vfp_output_vstmd): ... This.
6809 * config/arm/vfp.md (push_multi_vfp): Update call to
6812 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6814 * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
6816 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6818 * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
6819 (*sqrtdf2_vfp): Likewise.
6820 (*cmpsf_vfp): Likewise.
6821 (*cmpsf_trap_vfp): Likewise.
6822 (*cmpdf_vfp): Likewise.
6823 (*cmpdf_trap_vfp): Likewise.
6825 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6827 * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
6828 (*truncdfsf2_vfp): Likewise.
6829 (*truncsisf2_vfp): Likewise.
6830 (*truncsidf2_vfp): Likewise.
6831 (fixuns_truncsfsi2): Likewise.
6832 (fixuns_truncdfsi2): Likewise.
6833 (*floatsisf2_vfp): Likewise.
6834 (*floatsidf2_vfp): Likewise.
6835 (floatunssisf2): Likewise.
6836 (floatunssidf2): Likewise.
6838 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6840 * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
6841 (*muldf3_vfp): Likewise.
6842 (*mulsf3negsf_vfp): Likewise.
6843 (*muldf3negdf_vfp): Likewise.
6844 (*mulsf3addsf_vfp): Likewise.
6845 (*muldf3adddf_vfp): Likewise.
6846 (*mulsf3subsf_vfp): Likewise.
6847 (*muldf3subdf_vfp): Likewise.
6848 (*mulsf3negsfaddsf_vfp): Likewise.
6849 (*fmuldf3negdfadddf_vfp): Likewise.
6850 (*mulsf3negsfsubsf_vfp): Likewise.
6851 (*muldf3negdfsubdf_vfp): Likewise.
6853 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6855 * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
6856 (*absdf2_vfp): Likewise.
6857 (*negsf2_vfp): Likewise.
6858 (*negdf2_vfp): Likewise.
6859 (*addsf3_vfp): Likewise.
6860 (*adddf3_vfp): Likewise.
6861 (*subsf3_vfp): Likewise.
6862 (*subdf3_vfp): Likewise.
6863 (*divsf3_vfp): Likewise.
6864 (*divdf3_vfp): Likewise.
6866 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6868 * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
6870 (arm_print_operand): Don't convert real values to decimal
6871 representation in default case.
6872 (fp_immediate_constant): Delete.
6873 * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
6874 * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
6876 (*thumb2_movsi_vfp): Likewise.
6877 (*movdi_vfp): Likewise.
6878 (*movdi_vfp_cortexa8): Likewise.
6879 (*movhf_vfp_neon): Likewise.
6880 (*movhf_vfp): Likewise.
6881 (*movsf_vfp): Likewise.
6882 (*thumb2_movsf_vfp): Likewise.
6883 (*movdf_vfp): Likewise.
6884 (*thumb2_movdf_vfp): Likewise.
6885 (*movsfcc_vfp): Likewise.
6886 (*thumb2_movsfcc_vfp): Likewise.
6887 (*movdfcc_vfp): Likewise.
6888 (*thumb2_movdfcc_vfp): Likewise.
6890 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
6892 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
6896 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6899 * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
6900 Use qualifier_immediate for last operand. Rename to...
6901 (aarch64_types_ternop_lane_qualifiers): ... This.
6902 (TYPES_QUADOP): Rename to...
6903 (TYPES_TERNOP_LANE): ... This.
6904 (aarch64_simd_expand_args): Return const0_rtx when encountering user
6905 error. Change return of 0 to return of NULL_RTX.
6906 (aarch64_crc32_expand_builtin): Likewise.
6907 (aarch64_expand_builtin): Return NULL_RTX instead of 0.
6908 ICE when expanding unknown builtin.
6909 * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
6910 TERNOP_LANE qualifiers.
6911 (sqdmlsl_lane): Likewise.
6912 (sqdmlal_laneq): Likewise.
6913 (sqdmlsl_laneq): Likewise.
6914 (sqdmlal2_lane): Likewise.
6915 (sqdmlsl2_lane): Likewise.
6916 (sqdmlal2_laneq): Likewise.
6917 (sqdmlsl2_laneq): Likewise.
6919 2014-09-09 Nick Clifton <nickc@redhat.com>
6921 * doc/invoke.texi (Optimization Options): Add missing @gol to the
6923 (S/390 and zSeries Options): Remove superfluous word from the
6924 description of the -mhotpatch option.
6926 2014-09-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
6928 * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
6929 * ira.c: #include "shrink-wrap.h"
6930 (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
6931 * ifcvt.c: #include "shrink-wrap.h"
6932 (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
6934 2014-09-08 Trevor Saunders <tsaunders@mozilla.com>
6936 * common/config/picochip/picochip-common.c: Remove.
6937 * config.gcc: Remove support for picochip.
6938 * config/picochip/constraints.md: Remove.
6939 * config/picochip/dfa_space.md: Remove.
6940 * config/picochip/dfa_speed.md: Remove.
6941 * config/picochip/picochip-protos.h: Remove.
6942 * config/picochip/picochip.c: Remove.
6943 * config/picochip/picochip.h: Remove.
6944 * config/picochip/picochip.md: Remove.
6945 * config/picochip/picochip.opt: Remove.
6946 * config/picochip/predicates.md: Remove.
6947 * config/picochip/t-picochip: Remove.
6948 * doc/md.texi: Don't document picochi.
6950 2014-09-08 David Malcolm <dmalcolm@redhat.com>
6952 * basic-block.h (control_flow_insn_p): Strengthen param from
6953 const_rtx to const rtx_insn *.
6954 * cfgbuild.c (control_flow_insn_p): Likewise.
6956 2014-09-08 David Malcolm <dmalcolm@redhat.com>
6958 * gcse.c (modify_mem_list): Strengthen this variable from
6959 vec<rtx> * to vec<rtx_insn *> *.
6960 (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
6962 (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
6963 vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
6964 (record_last_mem_set_info): Strengthen param "insn" from rtx to
6966 (record_last_set_info): Likewise for local "last_set_insn".
6968 2014-09-08 DJ Delorie <dj@redhat.com>
6970 * doc/invoke.texi (MSP430 Options): Add -minrt.
6972 2014-09-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6974 * config/rs6000/rs6000.c (special_handling_values): Add SH_SPLAT.
6975 (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
6976 statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
6978 (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
6980 (adjust_splat): New function.
6981 (handle_special_swappables): Call adjust_splat for SH_SPLAT.
6982 (dump_swap_insn_table): Add case for SH_SPLAT.
6984 2014-09-08 Richard Biener <rguenther@suse.de>
6987 * tree-inline.c (copy_loops): The source loop header should
6989 (tree_function_versioning): If loops need fixup after removing
6990 unreachable blocks fix them.
6991 * omp-low.c (simd_clone_adjust): Do not add incr block to
6992 loop under construction.
6994 2014-09-08 Alan Lawrence <alan.lawrence@arm.com>
6996 * config/aarch64/aarch64-builtins.c
6997 (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
6999 2014-09-08 Joseph Myers <joseph@codesourcery.com>
7001 * config/i386/cygming.h (TF_SIZE): Remove.
7002 * config/i386/darwin.h (TF_SIZE): Remove.
7003 * config/i386/dragonfly.h (TF_SIZE): Remove.
7004 * config/i386/freebsd.h (TF_SIZE): Remove.
7005 * config/i386/gnu-user-common.h (TF_SIZE): Remove.
7006 * config/i386/openbsdelf.h (TF_SIZE): Remove.
7007 * config/i386/sol2.h (TF_SIZE): Remove.
7008 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
7009 * config/ia64/linux.h (TF_SIZE): Remove.
7010 * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
7011 * doc/tm.texi: Regenerate.
7012 * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
7014 2014-09-08 Joseph Myers <joseph@codesourcery.com>
7016 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
7018 * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
7020 * doc/tm.texi: Regenerate.
7021 * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
7023 * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
7024 * config/cris/cris.h (__make_dp): Remove.
7026 2014-09-08 Richard Biener <rguenther@suse.de>
7029 * cfgloop.c (mark_loop_for_removal): Track former header
7031 * cfgloop.h (struct loop): Add former_header member unconditionally.
7032 * loop-init.c (fix_loop_structure): Enable bogus loop removal
7033 diagnostic unconditionally.
7035 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
7038 * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
7039 constraint for operand0 and remove write only modifier from operand3.
7041 2014-09-07 Richard Sandiford <richard.sandiford@arm.com>
7043 PR rtl-optimization/62208
7044 * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
7045 rather than const0_rtx in eq/ne-xor simplifications.
7047 2014-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
7049 * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
7050 (arc_output_mi_thunk): Likewise.
7052 * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
7053 arguments to silence bogus warning.
7055 2014-09-06 Richard Sandiford <richard.sandiford@arm.com>
7058 * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
7060 2014-09-06 Tom de Vries <tom@codesourcery.com>
7062 * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
7063 IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
7064 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7066 2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
7069 * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
7070 * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
7072 2014-09-05 Easwaran Raman <eraman@google.com>
7074 PR rtl-optimization/62146
7075 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
7076 hoisted instruction unconditional.
7078 2014-09-05 Segher Boessenkool <segher@kernel.crashing.org>
7081 * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
7082 Do not allow any_mask_operand for operands[2].
7083 (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
7085 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7087 * config/arc/arc.c (arc_print_operand): Use insn method of
7088 final_sequence for type-safety.
7089 * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
7090 "insn" from rtx to rtx_insn *.
7091 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
7092 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
7093 Likewise for locals "branch", "label".
7094 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
7095 locals "i1", "i2". Use NULL rather than NULL_RTX in comparisons.
7096 (same_cmp_following_p): Likewise for locals "i2", "i3".
7097 * config/sh/sh_optimize_sett_clrt.cc
7098 (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
7099 param "cbranch_insn".
7100 * function.c (convert_jumps_to_returns): Likewis for local "jump".
7101 * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
7102 * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
7104 (condjump_p): Likewise.
7105 (condjump_in_parallel_p): Likewise.
7107 (any_uncondjump_p): Likewise.
7108 (any_condjump_p): Likewise.
7109 (condjump_label): Likewise.
7110 (returnjump_p): Strengthen param "insn" from rtx to
7112 (onlyjump_p): Strengthen param "insn" from const_rtx to
7114 (jump_to_label_p): Likewise.
7115 (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
7116 (invert_jump): Likewise.
7117 * reorg.c (simplejump_or_return_p): Add checked cast when calling
7119 (get_jump_flags): Strengthen param "insn" from rtx to
7121 (get_branch_condition): Likewise.
7122 (condition_dominates_p): Likewise.
7123 (make_return_insns): Move declaration of local "pat" earlier, to
7124 after we've handled NONJUMP_INSN_P and non-sequences, using its
7125 methods to simplify the code and for type-safety.
7126 * rtl.h (find_constant_src): Strengthen param from const_rtx to
7128 (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
7129 (condjump_p): Strengthen param from const_rtx to
7131 (any_condjump_p): Likewise.
7132 (any_uncondjump_p): Likewise.
7134 (condjump_label): Likewise.
7135 (simplejump_p): Likewise.
7136 (returnjump_p): Likewise.
7137 (onlyjump_p): Likewise.
7138 (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
7139 (invert_jump): Likewise.
7140 (condjump_in_parallel_p): Strengthen param from const_rtx to
7142 * rtlanal.c (find_constant_src): Strengthen param from const_rtx
7143 to const rtx_insn *.
7144 * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
7145 to const rtx_insn *.
7146 * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
7148 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7150 * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
7151 above the conditional, and convert the check on GET_CODE to a
7152 dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
7153 the conditional. Simplify the conditional by using methods of
7156 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7158 * haifa-sched.c (check_clobbered_conditions): Strengthen local
7159 "link" from rtx to rtx_insn_list *, and use its methods for
7160 clarity and type-safety.
7161 (toggle_cancelled_flags): Likewise.
7162 (restore_last_backtrack_point): Likewise.
7163 (queue_to_ready): Use insn method of "link" in one place.
7164 (schedule_block): Strengthen local "link" from rtx to
7165 rtx_insn_list *, and use its methods for clarity and type-safety.
7167 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7169 * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
7170 param "insn" from const_rtx to const rtx_insn *.
7171 (sched_get_reverse_condition_uncached): Likewise.
7172 (sched_get_condition_with_rev): Likewise.
7173 (sched_has_condition_p): Likewise.
7174 (sched_insns_conditions_mutex_p): Likewise for both params.
7175 (sched_insn_is_legitimate_for_speculation_p): Likewise for param
7176 "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
7177 (setup_insn_reg_uses): Move local "list" to be more tightly
7178 scoped, strengthening it from an rtx to an rtx_insn_list *. Use
7179 its methods for clarity and type-safety.
7180 (sched_analyze_1): Strengthen local "pending" from rtx to
7181 rtx_insn_list *, and local "pending_mem" from rtx to
7182 rtx_expr_list *. Use methods of each for clarity and type-safety.
7183 (sched_analyze_2): Likewise.
7184 (sched_analyze_insn): Likewise.
7186 * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
7187 param from const_rtx to const rtx_insn *.
7188 (sched_insns_conditions_mutex_p): Likewise for both params.
7189 (sched_insn_is_legitimate_for_speculation_p): Likewise for first
7192 * system.h (CONST_CAST_RTX_INSN): New macro.
7194 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7196 * recog.c (peep2_attempt): Strengthen return type from rtx to
7198 (peep2_update_life): Likewise for params "last", "prev", removing
7199 a checked cast made redundant by this.
7200 (peephole2_optimize): Likewise for local "last".
7202 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7204 * basic-block.h (set_block_for_insn): Eliminate this macro in
7206 * rtl.h (set_block_for_insn): New inline function, imposing the
7207 requirement that the "insn" param is an rtx_insn *.
7209 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7211 * caller-save.c (setup_save_areas): Strengthen local "insn" from
7213 * final.c (get_call_reg_set_usage): Likewise for first param,
7214 eliminating a checked cast.
7215 * regs.h (get_call_reg_set_usage): Likewise for first param.
7216 * resource.c (mark_set_resources): Introduce local rtx_call_insn *
7217 "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
7218 cast, replacing references to "x" with "call_insn" where
7220 (mark_target_live_regs): Strengthen local "real_insn" from rtx to
7221 rtx_insn *, adding a checked cast.
7223 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7225 * output.h (final_scan_insn): Strengthen first param from rtx to
7228 * final.c (final_scan_insn): Likewise, renaming it back from
7229 "uncast_insn" to "insn", eliminating the checked cast.
7231 * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
7232 "vec" with an rtx_sequence * "seq", taking a copy of
7233 "final_sequence", and using methods of "seq" for clarity, and for
7234 type-safety in the calls to final_scan_insn.
7235 * config/mips/mips.c (mips_output_conditional_branch): Use methods
7236 of "final_sequence" for clarity, and for type-safety in the call to
7238 * config/sh/sh.c (print_slot): Strengthen param from rtx to
7239 rtx_sequence * and rename from "insn" to "seq".
7241 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7243 * jump.c (delete_related_insns): Introduce a new local "table" by
7244 replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
7245 get_labels method of "table" to simplify access to the labels in
7248 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7250 * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
7251 f_minmaxs, f_minmaxd types.
7253 2014-09-05 Richard Biener <rguenther@suse.de>
7255 * cfgloop.c (mark_loop_for_removal): Record former header
7256 when ENABLE_CHECKING.
7257 * cfgloop.h (strut loop): Add former_header member when
7259 * loop-init.c (fix_loop_structure): Sanity check loops
7260 marked for removal if they re-appeared.
7262 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7264 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
7265 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
7267 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
7268 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
7269 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
7270 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
7271 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
7272 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
7273 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
7274 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
7275 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
7276 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
7277 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
7278 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
7279 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
7280 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
7281 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
7282 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
7283 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
7284 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
7285 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
7286 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
7287 with int{32,16,8}_t.
7289 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7291 * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
7292 (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
7293 vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
7294 vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
7295 Remove temporary __asm__ and reimplement.
7297 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7299 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
7300 handling cmge, cmgt, cmeq, cmtst.
7302 * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
7303 cmlt, cmgeu, cmgtu, cmtst): Remove.
7305 * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
7306 vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
7307 vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
7308 vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
7310 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7312 * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
7314 (aarch64_fold_builtin): Update pattern for cmtst.
7316 * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
7319 * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
7321 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
7322 Switch operands, separate out more cases, refactor.
7324 (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
7326 * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
7327 argument; rename old version to...
7328 (aarch64_const_vec_all_same_in_range_p): ...this.
7329 (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
7331 * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
7333 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7335 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
7336 Remove qualifier_const_pointer, update comment.
7338 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7340 * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
7342 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7344 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
7345 varargs with pointer parameter.
7346 (aarch64_simd_expand_builtin): pass pointer into previous.
7348 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7350 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
7353 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
7355 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
7356 * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
7357 * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
7358 Replace temporary asm with call to builtin.
7359 (vrbit_p8, vrbitq_p8): New functions.
7361 2014-09-05 Richard Biener <rguenther@suse.de>
7363 * cfgloop.c (mark_loop_for_removal): New function.
7364 * cfgloop.h (mark_loop_for_removal): Declare.
7365 * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
7366 (merge_blocks): Likewise.
7367 (duplicate_block): Likewise.
7368 * except.c (sjlj_emit_dispatch_table): Likewise.
7369 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
7370 * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
7371 (thread_through_loop_header): Likewise.
7373 2014-09-05 Richard Biener <rguenther@suse.de>
7376 * fold-const.c (try_move_mult_to_index): Remove.
7377 (fold_binary_loc): Do not call it.
7378 * tree-data-ref.c (dr_analyze_indices): Strip conversions
7379 from the base object again.
7381 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com>
7383 * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
7386 2014-09-05 Bin Cheng <bin.cheng@arm.com>
7389 * config/arm/arm.md (setmem): New pattern.
7390 * config/arm/arm-protos.h (struct tune_params): New fields.
7391 (arm_gen_setmem): New prototype.
7392 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
7393 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
7394 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
7395 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
7396 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
7397 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
7398 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
7399 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
7400 (arm_const_inline_cost): New function.
7401 (arm_block_set_max_insns): New function.
7402 (arm_block_set_non_vect_profit_p): New function.
7403 (arm_block_set_vect_profit_p): New function.
7404 (arm_block_set_unaligned_vect): New function.
7405 (arm_block_set_aligned_vect): New function.
7406 (arm_block_set_unaligned_non_vect): New function.
7407 (arm_block_set_aligned_non_vect): New function.
7408 (arm_block_set_vect, arm_gen_setmem): New functions.
7410 2014-09-05 Bin Cheng <bin.cheng@arm.com>
7412 * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
7414 2014-09-05 Bin Cheng <bin.cheng@arm.com>
7416 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
7418 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
7420 * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
7422 * valtrack.h: Adjust.
7424 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
7426 * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
7428 (emit_jump_insn_before_noloc): Likewise.
7429 (emit_call_insn_before_noloc): Likewise.
7430 (emit_label_before): Likewise.
7431 (emit_label_after): Likewise.
7432 (emit_insn_before_setloc): Likewise.
7433 (emit_jump_insn_before_setloc): Likewise.
7434 (emit_call_insn_before_setloc): Likewise.
7435 (emit_call_insn_before): Likewise.
7438 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7440 * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
7441 rtx_insn *, eliminating a checked cast.
7443 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7445 * rtl.h (modified_between_p): Strengthen params 2 and 3 from
7446 const_rtx to const rtx_insn *.
7447 * rtlanal.c (modified_between_p): Likewise, eliminating a checked
7450 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7452 * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
7453 fixup_args_size_notes.
7454 * expr.c (fixup_args_size_notes): Strengthen first two params from
7455 rtx to rtx_insn *, eliminating a checked cast.
7456 * rtl.h (fixup_args_size_notes): Strengthen first two params from
7459 2014-09-05 David Malcolm <dmalcolm@redhat.com>
7461 * haifa-sched.c (get_ready_element): Strengthen return type from
7463 * sched-int.h (get_ready_element): Likewise.
7465 2014-09-04 Segher Boessenkool <segher@kernel.crashing.org>
7468 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
7469 indexed_or_indirect_operand instead of memory_operand.
7470 (floatsi<mode>2_lfiwzx_mem): Ditto.
7472 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
7474 * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
7475 config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
7476 ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
7478 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
7480 * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
7482 (get_last_nonnote_insn): Likewise.
7483 (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
7484 * resource.c (find_basic_block): Likewise.
7486 * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
7489 2014-09-04 David Malcolm <dmalcolm@redhat.com>
7491 * genattr.c (main): Within the prototype of insn_latency written
7492 out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
7493 * genautomata.c (output_internal_maximal_insn_latency_func):
7494 Within the implementation of insn_latency written out to
7495 insn-automata.c, strengthen both params from rtx to rtx_insn *,
7496 eliminating a pair of checked casts.
7498 2014-09-04 David Malcolm <dmalcolm@redhat.com>
7500 * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
7503 * rtl.h (eh_returnjump_p): Likewise.
7505 2014-09-04 Aldy Hernandez <aldyh@redhat.com>
7507 * Makefile.in (TAGS): Handle constructs in timevar.def.
7509 2014-09-04 Guozhi Wei <carrot@google.com>
7512 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
7513 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
7514 it into two patterns.
7515 (move_lo_quad_internal_be_<mode>): Likewise.
7517 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
7519 * doc/options.texi: Document that Var and Init are required if CPP
7521 * optc-gen.awk: Require Var and Init if CPP is given.
7522 * common.opt (Wpedantic): Use Init.
7524 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7526 * config/rs6000/rs6000.c (special_handling_values): Add
7528 (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
7529 wrapped in a VEC_DUPLICATE, representing an extract. Mark these
7530 as swappable with special handling SH_EXTRACT. Remove
7531 UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
7533 (adjust_extract): New function.
7534 (handle_special_swappables): Add default to case statement; add
7535 case for SH_EXTRACT that calls adjust_extract.
7536 (dump_swap_insn_table): Handle SH_EXTRACT.
7538 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7540 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
7541 selection of 0th memory doubleword, regardless of endianness.
7543 2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7545 * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
7547 2014-09-04 Alan Modra <amodra@gmail.com>
7550 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
7553 2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com>
7555 * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
7556 * targhooks.c (default_dwarf_frame_reg_mode): New function.
7557 * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
7558 * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
7559 * doc/tm.texi: Regenerate.
7560 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
7561 selection logic to default_dwarf_frame_reg_mode.
7563 2014-09-03 Marek Polacek <polacek@redhat.com>
7565 * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
7568 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
7570 * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
7571 the automodified register.
7573 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
7575 * output.h (get_some_local_dynamic_name): Declare.
7576 * final.c (some_local_dynamic_name): New variable.
7577 (get_some_local_dynamic_name): New function.
7578 (final_end_function): Clear some_local_dynamic_name.
7579 * config/alpha/alpha.c (machine_function): Remove some_ld_name.
7580 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7581 (print_operand): Report an error if '%&' is used inappropriately.
7582 * config/i386/i386.c (get_some_local_dynamic_name): Delete.
7583 (get_some_local_dynamic_name_1): Delete.
7584 * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
7585 (rs6000_get_some_local_dynamic_name): Delete.
7586 (rs6000_get_some_local_dynamic_name_1): Delete.
7587 (print_operand): Report an error if '%&' is used inappropriately.
7588 * config/s390/s390.c (machine_function): Remove some_ld_name.
7589 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7590 (print_operand): Assert that get_some_local_dynamic_name is nonnull.
7591 * config/sparc/sparc.c: Include rtl-iter.h.
7592 (machine_function): Remove some_ld_name.
7593 (sparc_print_operand): Report an error if '%&' is used inappropriately.
7594 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7596 2014-09-03 Richard Henderson <rth@redhat.com>
7598 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
7599 (aarch64_popwb_pair_reg): Remove.
7600 (aarch64_set_frame_expr): Remove.
7601 (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
7602 the restore ops performed by the insns generated.
7603 (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
7604 insn. Perform the calls_eh_return addition later; do not attempt to
7605 preserve the CFA in that case. Don't use aarch64_set_frame_expr.
7606 (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
7607 special markup at all. Load cfun->machine->frame.hard_fp_offset
7608 into a local variable.
7609 (aarch64_frame_pointer_required): Don't check calls_alloca.
7611 2014-09-03 Richard Biener <rguenther@suse.de>
7613 * opts.c (default_options_optimization): Adjust
7614 max-combine-insns to 2 for -Og.
7616 2014-09-03 Martin Jambor <mjambor@suse.cz>
7619 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
7620 pass-trough jump functions correctly.
7622 2014-09-03 Martin Jambor <mjambor@suse.cz>
7625 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
7626 created replacements in ascending order of offsets.
7627 (known_aggs_to_agg_replacement_list): Likewise.
7629 2014-09-03 Martin Liska <mliska@suse.cz>
7631 * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
7632 is set to set uninitialized value for vnresult.
7634 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7636 * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
7637 for TARGET_MUST_PASS_IN_STACK.
7639 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7641 * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
7642 for TARGET_ARG_PARTIAL_BYTES.
7644 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7646 * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
7647 instructions for varargs implementation.
7648 (nds32_expand_epilogue): Emit stack adjustment instructions for
7649 varargs implementation.
7651 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7653 * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
7654 optimization detection.
7656 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7658 * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
7660 (nds32_function_arg_advance): Deal with nameless arguments.
7661 * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
7662 (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
7663 (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
7665 2014-09-03 Richard Biener <rguenther@suse.de>
7667 * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
7668 (struct bb_bitmap_sets): Remove deferred member.
7669 (BB_DEFERRED): Remove.
7670 (defer_or_phi_translate_block): Remove.
7671 (compute_antic_aux): Remove deferring of blocks, assert
7672 proper iteration order.
7673 (compute_antic): Do not set BB_DEFERRED.
7674 (eliminate): Allocate el_avail of proper size initially.
7676 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7678 * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
7679 according to the value of crtl->args.pretend_args_size.
7681 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7683 * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
7684 varargs information.
7686 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7688 * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
7689 implementation for TARGET_SETUP_INCOMING_VARARGS.
7690 (nds32_strict_argument_naming): Refine comment.
7691 * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
7692 Define for future implementation.
7694 2014-09-03 Ilya Tocar <ilya.tocar@intel.com>
7696 * config/i386/adxintrin.h (_subborrow_u32): New.
7697 (_addcarry_u32): Ditto.
7698 (_subborrow_u64): Ditto.
7699 (_addcarry_u64): Ditto.
7700 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
7702 (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
7703 __builtin_ia32_sbb_u64
7705 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7707 * config/nds32/nds32.c (nds32_function_arg): Define and rename some
7709 (nds32_function_arg_advance): Likewise.
7710 (nds32_init_cumulative_args): Likewise.
7711 * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
7712 (NDS32_FIRST_GPR_REGNUM): Define.
7713 (NDS32_LAST_GPR_REGNUM): Define.
7714 (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
7715 (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7716 (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7717 (machine_function): Use GRP-specific stuff.
7719 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7721 * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
7722 (nds32_expand_epilogue): Likewise.
7723 (nds32_expand_prologue_v3push): Likewise.
7724 (nds32_expand_epilogue_v3pop): Likewise.
7726 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7728 * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
7729 v3push/v3pop for variadic function.
7730 * config/nds32/nds32.md (prologue, epilogue): Likewise.
7732 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7734 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
7735 Check rtx for varargs implementation.
7736 (nds32_output_stack_pop): Likewise.
7737 * config/nds32/nds32-protos.h: Have a rtx argument for
7738 nds32_output_stack_push and nds32_output_stack_pop.
7739 * config/nds32/nds32.md: Likewise.
7741 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7743 * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
7744 to check if FUNC is an interrupt service routine.
7745 * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
7747 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7749 * config/nds32/nds32.h (machine_function): Add some fields for variadic
7750 arguments implementation.
7752 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7754 * config/nds32/nds32-predicates.c
7755 (nds32_valid_stack_push_pop): Rename to ...
7756 (nds32_valid_stack_push_pop_p): ... this.
7757 * config/nds32/nds32-protos.h: Likewise.
7758 * config/nds32/predicates.md: Likewise.
7760 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7762 * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
7763 (nds32_emit_stack_v3push): ... this.
7764 (nds32_gen_stack_v3pop): Rename to ...
7765 (nds32_emit_stack_v3pop): ... this and consider CFA restore
7768 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7770 * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
7771 (nds32_emit_stack_push_multiple): ... this.
7772 (nds32_gen_stack_pop_multiple): Rename to ...
7773 (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
7776 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7779 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
7780 and add a second splitter to handle the remaining cases.
7782 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
7784 * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
7786 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
7788 * cfgexpand.c (label_rtx_for_bb): Change type to
7789 hash_map<basic_block, rtx_code_label *> *.
7790 (expand_gimple_basic_block): Adjust.
7791 (pass_expand::execute): Likewise.
7793 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
7795 * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
7796 config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
7797 config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
7798 config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
7799 config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
7800 config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
7801 stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
7804 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
7806 * alloc-pool.c: Include coretypes.h.
7807 * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
7808 function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
7809 hash_set instead of htab.
7810 * ggc-page.c (in_gc): New variable.
7811 (ggc_free): Do nothing if a collection is taking place.
7812 (ggc_collect): Set in_gc appropriately.
7813 * ggc.h (gt_ggc_mx(const char *)): New function.
7814 (gt_pch_nx(const char *)): Likewise.
7815 (gt_ggc_mx(int)): Likewise.
7816 (gt_pch_nx(int)): Likewise.
7817 * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
7818 (hash_map::hash_entry::pch_nx): Likewise.
7819 (hash_map::hash_entry::pch_nx_helper): Likewise.
7820 (hash_map::hash_map): Adjust.
7821 (hash_map::create_ggc): New function.
7822 (gt_ggc_mx): Likewise.
7823 (gt_pch_nx): Likewise.
7824 * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
7825 (default_hashset_traits::pch_nx): Likewise.
7826 (hash_set::hash_entry::ggc_mx): Likewise.
7827 (hash_set::hash_entry::pch_nx): Likewise.
7828 (hash_set::hash_entry::pch_nx_helper): Likewise.
7829 (hash_set::hash_set): Adjust.
7830 (hash_set::create_ggc): New function.
7831 (hash_set::elements): Likewise.
7832 (gt_ggc_mx): Likewise.
7833 (gt_pch_nx): Likewise.
7834 * hash-table.h (hash_table::hash_table): Adjust.
7835 (hash_table::m_ggc): New member.
7836 (hash_table::~hash_table): Adjust.
7837 (hash_table::expand): Likewise.
7838 (hash_table::empty): Likewise.
7839 (gt_ggc_mx): New function.
7840 (hashtab_entry_note_pointers): Likewise.
7841 (gt_pch_nx): Likewise.
7843 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7845 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
7846 built-in definition.
7847 (XVCVUXDDP_SCALE): Likewise.
7848 (XVCVDPSXDS_SCALE): Likewise.
7849 (XVCVDPUXDS_SCALE): Likewise.
7850 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7851 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
7852 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
7853 VSX_BUILTIN_XVCVDPUXDS_SCALE.
7854 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
7856 * config/rs6000/rs6000.c (real.h): New include.
7857 (rs6000_scale_v2df): New function.
7858 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
7859 (UNSPEC_VSX_XVCVUXDDP): Likewise.
7860 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
7861 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
7862 (vsx_xvcvsxddp_scale): New define_expand.
7863 (vsx_xvcvsxddp): New define_insn.
7864 (vsx_xvcvuxddp_scale): New define_expand.
7865 (vsx_xvcvuxddp): New define_insn.
7866 (vsx_xvcvdpsxds_scale): New define_expand.
7867 (vsx_xvcvdpsxds): New define_insn.
7868 (vsx_xvcvdpuxds_scale): New define_expand.
7869 (vsx_xvcvdpuxds): New define_insn.
7870 * doc/extend.texi (vec_ctf): Add new prototypes.
7871 (vec_cts): Likewise.
7872 (vec_ctu): Likewise.
7873 (vec_splat): Likewise.
7874 (vec_div): Likewise.
7875 (vec_mul): Likewise.
7877 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7880 * config/arm/neon.md
7881 (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
7882 <v_cmp_result>): New pattern.
7883 * config/arm/iterators.md (NEON_VCVT): New int iterator.
7884 * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
7885 vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
7886 vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
7887 * config/arm/arm.c (arm_builtin_vectorized_function): Handle
7888 BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
7890 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7893 * config/arm/iterators.md (FIXUORS): New code iterator.
7894 (VCVT): New int iterator.
7895 (su_optab): New code attribute.
7897 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
7899 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7901 * config/aarch64/predicates.md (aarch64_comparison_operation):
7902 New special predicate.
7903 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
7904 aarch64_comparison_operation instead of matching an operator.
7905 Update operand numbers.
7906 (csinc3<mode>_insn): Likewise.
7907 (*csinv3<mode>_insn): Likewise.
7908 (*csneg3<mode>_insn): Likewise.
7909 (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
7910 * config/aarch64/aarch64.c (aarch64_get_condition_code):
7911 Return -1 instead of aborting on invalid condition codes.
7912 (aarch64_print_operand): Update aarch64_get_condition_code callsites
7913 to assert that the returned condition code is valid.
7914 * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
7916 2014-09-02 Aldy Hernandez <aldyh@redhat.com>
7918 * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
7919 tree.def, and gimple.def
7921 2014-09-02 Jakub Jelinek <jakub@redhat.com>
7922 Balaji V. Iyer <balaji.v.iyer@intel.com>
7923 Igor Zamyatin <igor.zamyatin@intel.com>
7925 * cilk-builtins.def (__cilkrts_cilk_for_32): New.
7926 (__cilkrts_cilk_for_64): Likewise.
7927 * cilk-common.c (declare_cilk_for_builtin): New function.
7928 (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
7929 __cilkrts_cilk_for_64 bultins.
7930 * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
7932 (cilk_for_32_fndecl): New define.
7933 (cilk_for_64_fndecl): Likewise.
7934 * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
7935 GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
7936 * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
7937 GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
7938 GF_OMP_FOR_COMBINED_INTO.
7939 * gimplify.c (gimplify_scan_omp_clauses): Added
7940 OMP_CLAUSE__CILK_FOR_COUNT_ case.
7941 (gimplify_adjust_omp_clauses): Ditto.
7942 (gimplify_omp_for): Added CILK_FOR case.
7943 (gimplify_expr): Ditto.
7944 * omp-low.c: Include cilk.h.
7945 (extract_omp_for_data): Set appropriate kind for
7946 GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
7947 (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
7948 (create_omp_child_function_name): Added second argument to handle
7950 (cilk_for_check_loop_diff_type): New function.
7951 (expand_cilk_for_call): Likewise.
7952 (expand_cilk_for): Likewise.
7953 (create_omp_child_function): Set cilk_for_count; handle the cases when
7954 it is true; call create_omp_child_function_name with second argument.
7955 (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
7956 (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
7957 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
7958 * tree-nested.c (convert_nonlocal_omp_clauses): Added
7959 OMP_CLAUSE__CILK_FOR_COUNT_ case.
7960 (convert_local_omp_clauses): Ditto.
7961 * tree-pretty-print.c (dump_omp_clause): Added
7962 OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
7963 (dump_generic_node): Added CILK_FOR case.
7964 * tree.c (omp_clause_num_ops): New element
7965 OMP_CLAUSE__CILK_FOR_COUNT_ (1).
7966 (omp_clause_code_name): New element _Cilk_for_count_.
7967 (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
7968 * tree.def: Add tree code for CILK_FOR.
7970 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
7972 * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
7973 (ppc403-compare): Add "exts with dot" case.
7974 * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
7975 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
7976 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
7977 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
7978 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
7979 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
7980 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
7981 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
7982 cell-cmp-microcoded): Similarly.
7983 * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
7984 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
7985 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
7986 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
7987 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
7988 * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
7989 * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
7990 * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
7991 (power6-compare): Add "exts with dot" case.
7992 * config/rs6000/power7.md (power7-integer, power7-compare): As before.
7993 * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
7994 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
7996 * config/rs6000/predicates.md (lwa_operand): Don't allow memory
7997 if avoiding Cell microcode.
7998 * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
7999 (is_cracked_insn): Ditto.
8000 (insn_must_be_first_in_group): Ditto.
8001 * config/rs6000/rs6000.md (dot): Adjust comment.
8002 (cell_micro): Handle exts+dot.
8003 (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
8004 *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
8005 extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
8006 (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
8007 extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
8008 *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
8009 *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
8011 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
8013 * config/rs6000/rs6000.md (QHSI): Delete.
8014 (EXTQI, EXTHI, EXTSI): New mode iterators.
8015 (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
8016 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
8017 *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
8018 9 anonymous instructions, and 8 splitters): Delete.
8019 (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
8020 *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
8021 *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
8022 zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
8023 *zero_extendsi<mode>2_dot2): New.
8025 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
8027 * config/rs6000/rs6000.md (any_extend): New code iterator.
8028 (u, su): New code attributes.
8029 (dmode, DMODE): New mode attributes.
8030 (<su>mul<mode>3_highpart): New.
8031 (*<su>mul<mode>3_highpart): New.
8032 (<su>mulsi3_highpart_le): New.
8033 (<su>muldi3_highpart_le): New.
8034 (<su>mulsi3_highpart_64): New.
8035 (<u>mul<mode><dmode>3): New.
8036 (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
8038 (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
8041 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
8043 * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
8044 *mulsi3_internal2, and two splitters): Delete.
8045 (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
8047 (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
8049 2014-09-02 Richard Biener <rguenther@suse.de>
8051 PR tree-optimization/62695
8052 * tree-ssa-structalias.c (find_func_clobbers): Add missing
8055 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
8058 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
8060 2014-09-01 Andi Kleen <ak@linux.intel.com>
8062 * file-find.c (add_prefix_begin): Add.
8063 (do_add_prefix): Rename from add_prefix with first argument.
8064 (add_prefix): Add new wrapper.
8065 * file-find.h (add_prefix_begin): Add.
8066 * gcc-ar.c (main): Support -B option.
8068 2014-09-01 Segher Boessenkool <segher@kernel.crashing.org>
8070 * genemit.c: Include dumpfile.h.
8071 (gen_split): Print name of splitter function to dump file.
8073 2014-09-01 Richard Biener <rguenther@suse.de>
8075 * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
8076 Use stack auto_vecs for constraint expressions.
8077 (find_func_aliases_for_call): Likewise.
8078 (find_func_aliases): Likewise.
8079 (find_func_clobbers): Likewise.
8081 2014-09-01 Richard Biener <rguenther@suse.de>
8083 * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
8084 operands vector in most cases. Remove redundant code.
8086 2014-09-01 Olivier Hainque <hainque@adacore.com>
8088 * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
8089 $WIND_BASE instead of designating a harcoded arbitrary home dir.
8090 (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
8092 2014-09-01 Richard Biener <rguenther@suse.de>
8094 * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
8095 copy_reference_ops_from_call, vn_nary_op_compute_hash,
8096 vn_reference_compute_hash, vn_reference_insert): Remove.
8097 (vn_reference_lookup_call): New function.
8098 * tree-ssa-sccvn.c (vn_reference_compute_hash,
8099 copy_reference_ops_from_ref, copy_reference_ops_from_call,
8100 vn_reference_insert, vn_nary_op_compute_hash): Make static.
8101 (create_reference_ops_from_call): Remove.
8102 (vn_reference_lookup_3): Properly update shared_lookup_references.
8103 (vn_reference_lookup_pieces): Assert that we updated
8104 shared_lookup_references properly.
8105 (vn_reference_lookup): Likewise.
8106 (vn_reference_lookup_call): New function.
8107 (visit_reference_op_call): Use it. Avoid re-building the
8109 (visit_reference_op_load): Remove redundant lookup.
8110 (visit_reference_op_store): Perform special tail-merging work
8111 only when possibly doing tail-merging.
8112 (visit_use): Likewise.
8113 * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
8115 2014-09-01 Jakub Jelinek <jakub@redhat.com>
8118 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
8119 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
8120 (find_inc): Revert 2014-08-13 change.
8122 2014-09-01 Marek Polacek <polacek@redhat.com>
8125 * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
8126 Change the type of V to unsigned HOST_WIDE_INT.
8128 2014-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
8130 * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
8131 the size of byte markers.
8132 (do_shift_rotate): Fix confusion between host, target and marker byte
8134 (verify_symbolic_number_p): Likewise.
8135 (find_bswap_or_nop_1): Likewise.
8136 (find_bswap_or_nop): Likewise.
8138 2014-09-01 Olivier Hainque <hainque@adacore.com>
8140 * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
8141 INSTALL_SCRIPT and INSTALL_PROGRAM as well.
8143 2014-09-01 Jakub Jelinek <jakub@redhat.com>
8145 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
8146 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
8147 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
8149 2014-09-01 Yury Gribov <y.gribov@samsung.com>
8153 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
8154 (build_check_stmt): Likewise.
8155 (instrument_strlen_call): Likewise.
8156 (asan_expand_check_ifn): Likewise and fix types.
8157 (maybe_cast_to_ptrmode): New function.
8159 2014-09-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8161 * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
8163 2014-08-31 Gerald Pfeifer <gerald@pfeifer.com>
8165 * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
8167 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
8169 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
8170 prefix to function labels when generating fast indirect calls.
8172 2014-08-30 David Malcolm <dmalcolm@redhat.com>
8176 * gcc/reorg.c (skip_consecutive_labels): Convert return type and
8177 param back from rtx_insn * to rtx. Rename param from "label" to
8178 "label_or_return", reintroducing "label" as an rtx_insn * after
8179 we've ensured it's not a RETURN.
8180 (first_active_target_insn): Likewise for return type and param;
8181 add a checked cast to rtx_insn * once we've ensured "insn" is not
8183 (steal_delay_list_from_target): Convert param "pnew_thread" back
8184 from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
8186 (own_thread_p): Convert param "thread" back from an rtx_insn * to
8187 an rtx. Introduce local rtx_insn * "thread_insn" with a checked
8188 cast once we've established we're not dealing with a RETURN,
8189 renaming subsequent uses of "thread" to "thread_insn".
8190 (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
8192 (follow_jumps): Convert return type and param "label" from
8193 rtx_insn * back to rtx. Move initialization of "value" to after
8194 the handling for ANY_RETURN_P, adding a checked cast there to
8195 rtx_insn *. Convert local rtx_insn * "this_label" to an rtx and
8196 rename to "this_label_or_return", reintroducing "this_label" as
8197 an rtx_insn * once we've handled the case where it could be an
8199 (fill_slots_from_thread): Rename param "thread" to
8200 "thread_or_return", converting from an rtx_insn * back to an rtx.
8201 Reintroduce name "thread" as an rtx_insn * local with a checked
8202 cast once we've handled the case of it being an ANY_RETURN_P.
8203 Convert local "new_thread" from an rtx_insn * back to an rtx.
8204 Add a checked cast when assigning to "trial" from "new_thread".
8205 Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL. Add a
8206 checked cast to rtx_insn * from "new_thread" when invoking
8208 (fill_eager_delay_slots): Convert locals "target_label",
8209 "insn_at_target" from rtx_insn * back to rtx.
8210 Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
8211 (relax_delay_slots): Convert locals "trial", "target_label" from
8212 rtx_insn * back to rtx. Convert uses of JUMP_LABEL_AS_INSN back
8213 to JUMP_LABEL. Add a checked cast to rtx_insn * on "trial" when
8214 invoking update_block.
8215 (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
8216 JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
8218 * resource.h (mark_target_live_regs): Undo erroneous conversion
8219 of second param of r214693, converting it back from rtx_insn * to
8220 rtx, since it could be a RETURN.
8222 * resource.c (find_dead_or_set_registers): Similarly, convert
8223 param "jump_target" back from an rtx_insn ** to an rtx *, as we
8224 could be writing back a RETURN. Rename local rtx_insn * "next" to
8225 "next_insn", and introduce "lab_or_return" as a local rtx,
8226 handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
8227 (mark_target_live_regs): Undo erroneous conversion
8228 of second param of r214693, converting it back from rtx_insn * to
8229 rtx, since it could be a RETURN. Rename it from "target" to
8230 "target_maybe_return", reintroducing the name "target" as a local
8231 rtx_insn * with a checked cast, after we've handled the case of
8234 2014-08-29 DJ Delorie <dj@redhat.com>
8236 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
8237 pointer size up to a power of two.
8238 * defaults.h (DWARF2_ADDR_SIZE): Round up.
8239 (POINTER_SIZE_UNITS): New, rounded up value.
8240 * dwarf2asm.c (size_of_encoded_value): Use it.
8241 (dw2_output_indirect_constant_1): Likewise.
8242 * expmed.c (init_expmed_one_conv): We now know the sizes of
8244 * loop-iv.c (iv_number_of_iterations): Use precision, not size.
8245 * optabs.c (expand_float): Use precision, not size.
8246 (expand_fix): Likewise.
8247 * simplify-rtx (simplify_unary_operation_1): Likewise.
8248 * tree-dfa.c (get_ref_base_and_extent): Likewise.
8249 * varasm.c (assemble_addr_to_section): Round up pointer sizes.
8250 (default_assemble_integer) Likewise.
8251 (dump_tm_clone_pairs): Likewise.
8252 * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
8253 * var-tracking.c (adjust_mems): Allow partial-int modes also.
8254 (prepare_call_arguments): Likewise.
8255 * stor-layout.c (finalize_type_size): Preserve precision.
8256 (layout_type): Use precision, not size.
8258 * expr.c (convert_move): If the target has an explicit converter,
8261 2014-08-29 David Malcolm <dmalcolm@redhat.com>
8263 * gdbinit.in: Skip various inline functions in rtl.h when
8266 2014-08-29 Richard Sandiford <richard.sandiford@arm.com>
8269 * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
8271 2014-08-29 Richard Biener <rguenther@suse.de>
8273 PR tree-optimization/62291
8274 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
8275 exactly the vector size needed and use quick_push.
8276 (phi_translate_1): Adjust comment.
8277 (valid_in_sets): Remove block argument and remove pointless
8279 (dependent_clean): Adjust for removal of block argument.
8281 (compute_antic_aux): Likewise.
8282 (compute_partial_antic_aux): Likewise.
8284 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
8285 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8286 Anna Tikhonova <anna.tikhonova@intel.com>
8287 Ilya Tocar <ilya.tocar@intel.com>
8288 Andrey Turetskiy <andrey.turetskiy@intel.com>
8289 Ilya Verbin <ilya.verbin@intel.com>
8290 Kirill Yukhin <kirill.yukhin@intel.com>
8291 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8293 * config/i386/sse.md
8294 (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
8295 (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
8296 (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
8297 (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
8299 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
8300 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8301 Anna Tikhonova <anna.tikhonova@intel.com>
8302 Ilya Tocar <ilya.tocar@intel.com>
8303 Andrey Turetskiy <andrey.turetskiy@intel.com>
8304 Ilya Verbin <ilya.verbin@intel.com>
8305 Kirill Yukhin <kirill.yukhin@intel.com>
8306 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8308 * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
8309 * config/i386/sse.md
8310 (define_mode_iterator VI4_128_8_256): New.
8311 (define_mode_iterator VI2_128_4_256): Ditto.
8312 (define_mode_iterator PMOV_DST_MODE): Rename into
8313 (define_mode_iterator PMOV_DST_MODE_1): this.
8314 (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
8315 Use PMOV_DST_MODE_1 mode iterator.
8316 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
8318 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
8320 (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
8321 (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
8322 (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
8323 (define_mode_iterator PMOV_DST_MODE_2): New.
8324 (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
8325 (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
8326 (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
8328 (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
8329 (define_mode_attr pmov_dst_3): Ditto.
8330 (define_mode_attr pmov_dst_zeroed_3): Ditto.
8331 (define_mode_attr pmov_suff_3): Ditto.
8332 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
8333 (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
8334 (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
8335 (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
8336 (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
8337 (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
8338 (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
8339 (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
8340 (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
8341 (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
8342 (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
8343 (define_mode_attr pmov_dst_4): Ditto.
8344 (define_mode_attr pmov_dst_zeroed_4): Ditto.
8345 (define_mode_attr pmov_suff_4): Ditto.
8346 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
8347 (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
8348 (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
8349 (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
8350 (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
8351 (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
8352 (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
8353 (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
8354 (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
8355 (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
8356 (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
8358 2014-08-29 Richard Biener <rguenther@suse.de>
8360 * tree-cfg.c (verify_gimple_assign_unary): Do not allow
8361 NON_LVALUE_EXPR in gimple.
8363 2014-08-29 Richard Biener <rguenther@suse.de>
8366 * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
8367 from previous refactoring.
8368 (gimple_fold_builtin_strncpy): Likewise.
8370 2014-08-29 David Malcolm <dmalcolm@redhat.com>
8373 * function.c (assign_parm_setup_reg): Remove erroneous checked
8374 cast to rtx_insn * on result of gen_extend_insn in favor of
8375 introducing a new local rtx "pat".
8377 2014-08-29 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8379 * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
8381 * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
8383 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8385 * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
8386 (next_insn): Likewise.
8387 * emit-rtl.c (next_insn): Likewise.
8388 (previous_insn): Likewise.
8389 * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
8390 "insn" and "next" from rtx to rtx_insn *.
8391 * config/picochip/picochip.c (picochip_reorg): Likewise for locals
8392 "insn", "insn1", "vliw_start", "prologue_end_note",
8393 "last_insn_in_packet".
8395 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8397 * shrink-wrap.h (active_insn_between): Strengthen both params from
8399 * function.c (active_insn_between): Likewise.
8401 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8403 * genattr.c (main): When writing out insn-attr.h, strengthen param
8404 of dfa_clear_single_insn_cache from rtx to rtx_insn *.
8405 * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
8406 writing out the definition of dfa_clear_single_insn_cache to the
8407 generated insn-automata.c
8409 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8411 * resource.h (clear_hashed_info_for_insn): Strengthen param from
8413 (incr_ticks_for_insn): Likewise.
8414 (init_resource_info): Likewise.
8416 * resource.c (init_resource_info): Likewise.
8417 (clear_hashed_info_for_insn): Likewise.
8418 (incr_ticks_for_insn): Likewise.
8420 * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
8422 (steal_delay_list_from_target): Use methods of "seq".
8423 (try_merge_delay_insns): Use methods of "merged_insns".
8424 (update_block): Strengthen param "insn" from rtx to rtx_insn *.
8425 (reorg_redirect_jump): Likewise for param "jump".
8427 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8429 * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
8431 * config/s390/s390.c (s390_split_branches): Eliminate top-level
8432 local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
8434 (s390_mainpool_finish): In three places, split out a local rtx
8435 "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
8436 "insn". Strengthen local "pool_end" from rtx to rtx_code_label *
8437 and split another local rtx "insn" out into rtx "pat" and
8439 * config/sh/sh.c (output_branchy_insn): Rather than working
8440 directly on operands[9], introduce local rtx_code_label *
8441 variables named "lab" in two places, working on them, and then
8442 assigning them to operands[9], so that the intervening operations
8443 are known by the type system to be on insns.
8445 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8447 * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
8450 * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
8451 in invocation of INSN_HAS_LOCATION.
8453 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8455 * config/rs6000/altivec.h (vec_xl): New #define.
8456 (vec_xst): Likewise.
8457 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
8458 (XXSPLTD_V2DI): Likewise.
8459 (DIV_V2DI): Likewise.
8460 (UDIV_V2DI): Likewise.
8461 (MUL_V2DI): Likewise.
8462 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8463 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
8464 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
8465 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
8466 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
8467 (UNSPEC_VSX_DIVSD): Likewise.
8468 (UNSPEC_VSX_DIVUD): Likewise.
8469 (UNSPEC_VSX_MULSD): Likewise.
8470 (vsx_mul_v2di): New insn-and-split.
8471 (vsx_div_v2di): Likewise.
8472 (vsx_udiv_v2di): Likewise.
8473 (vsx_xxspltd_<mode>): New insn.
8475 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8477 * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
8479 (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
8480 (NEXT_INSN): Likewise.
8481 (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
8482 (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
8484 (no_labels_between_p): Likewise for both params.
8486 * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
8487 cast when using NEXT_INSN on operands[2].
8488 * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
8489 "insn" from rtx to rtx_insn *, adding a checked cast.
8490 (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
8492 * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
8494 (arc_text_label): Likewise for param "insn".
8495 * config/arc/arc.c (arc_expand_epilogue): Likewise for local
8497 (arc_ccfsm_record_condition): Likewise for param "jump".
8498 (arc_text_label): Likewise for local "label".
8499 * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
8500 Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
8501 a method for typesafety. Add a checked cast.
8502 * config/arc/constraints.md (Clb): Add a checked cast when getting
8503 the CODE_LABEL from a LABEL_REF.
8504 * config/arm/arm.c (require_pic_register): Strengthen locals
8505 "seq", "insn" from rtx to rtx_insn *.
8506 (create_fix_barrier): Likewise for locals "selected", "next".
8507 (thumb1_reorg): Likewise for locals "prev", "insn".
8508 (arm_expand_prologue): Likewise for local "last".
8509 (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
8511 (thumb2_output_casesi): Likewise for operands[2].
8512 * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
8513 strengthen local "insn" from rtx to rtx_insn *.
8514 * config/bfin/bfin.c (find_next_insn_start): Likewise for return
8515 type and param "insn".
8516 (find_prev_insn_start): Likewise.
8517 (hwloop_optimize): Likewise for locals "insn", "last_insn",
8519 (gen_one_bundle): Likewise for loal "t".
8520 (find_load): Likewise for param "insn".
8521 (workaround_speculation): Likewise for locals "insn", "next",
8522 "target", "next_tgt".
8523 * config/c6x/c6x.c (assign_reservations): Likewise for both params
8524 and for locals "insn", "within", "last".
8525 (count_unit_reqs): Likewise for params "head", "tail" and local
8527 (try_rename_operands): Likewise for params "head", "tail".
8528 (reshuffle_units): Likewise for locals "head", "tail", "insn".
8529 (struct c6x_sched_context): Likewise for fields
8530 "last_scheduled_insn", "last_scheduled_iter0".
8531 (init_sched_state): Replace NULL_RTX with NULL.
8532 (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
8534 (undo_split_delayed_nonbranch): Likewise for param and for local
8536 (conditionalize_after_sched): Likewise for local "insn".
8537 (bb_earliest_end_cycle): Likewise.
8538 (filter_insns_above): Likewise for locals "insn", "next".
8539 (hwloop_optimize): Remove redundant checked cast.
8540 (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
8541 * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
8543 (cris_simple_epilogue): Likewise.
8544 (cris_expand_prologue): Likewise.
8545 (cris_expand_epilogue): Likewise.
8546 * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
8547 local "insn" from rtx to rtx_insn *.
8548 (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
8549 (struct frv_packet_group): Likewise for the elements within array
8550 fields "insns", "sorted", and for field "nop".
8551 (frv_packet): Likewise for the elements within array field
8553 (frv_add_insn_to_packet): Likewise for param "insn".
8554 (frv_insert_nop_in_packet): Likewise for param "insn" and local
8556 (frv_for_each_packet): Likewise for locals "insn", "next_insn".
8557 (frv_sort_insn_group_1): Likewise for local "insn".
8558 (frv_optimize_membar_local): Likewise.
8559 (frv_align_label): Likewise for locals "x", "last", "barrier",
8561 * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
8563 (ia64_sched_init): Likewise for local "insn".
8564 (scheduled_good_insn): Likewise for param "last".
8565 (struct _ia64_sched_context): Likewise for field
8566 "last_scheduled_insn".
8567 (ia64_init_sched_context): Replace NULL_RTX with NULL.
8568 (struct bundle_state): Likewise for field "insn".
8569 (issue_nops_and_insn): Likewise for param "insn".
8570 (get_next_important_insn): Likewise for return type and both
8572 (ia64_add_bundle_selector_before): Likewise for param "insn".
8573 (bundling): Likewise for params "prev_head_insn", "tail" and
8574 locals "insn", "next_insn", "b". Eliminate top-level local rtx
8575 "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
8576 * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
8577 Strengthen final param from rtx to rtx_insn *.
8578 (iq2000_move_1word): Likewise for second param.
8579 * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
8580 param "cur_insn" and local "next_insn".
8581 (iq2000_move_1word): Likewise for param "insn".
8582 * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
8583 casts when using NEXT_INSN on operands[1].
8584 * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
8585 "insn" from rtx to rtx_insn *.
8586 * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
8587 "x", introducing local rtx_insn * "insn" for when working with the
8588 CODE_LABEL of the LABEL_REF.
8589 (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
8591 * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
8593 * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
8595 (conditionalize_block): Likewise for return type and param.
8596 (mcore_is_dead): Likewise for param "first" and local "insn".
8597 (emit_new_cond_insn): Likewise for return type.
8598 (conditionalize_block): Likewise for return type, param, and
8599 locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
8601 (conditionalize_optimization): Likewise for local "insn".
8602 * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
8604 * config/microblaze/microblaze.md: Add checked casts when using
8606 * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
8607 rtx "insn" in favor of various more tightly-scoped rtx "insn" and
8608 and rtx_insn * "insn".
8609 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
8610 checked cast when using NEXT_INSN on operands[2].
8611 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
8612 local "insn" from rtx to rtx_insn *.
8613 * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
8615 * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
8616 Add a checked cast when using NEXT_INSN on operands[1].
8617 * config/pa/pa-protos.h (pa_following_call): Strengthen param from
8619 (pa_output_cbranch): Likewise for final param.
8620 (pa_output_lbranch): Likewise for second param.
8621 (pa_output_bb): Likewise for third param.
8622 (pa_output_bvb): Likewise.
8623 (pa_output_dbra): Likewise for second param.
8624 (pa_output_movb): Likewise.
8625 (pa_output_parallel_movb): Likewise.
8626 (pa_output_parallel_addb): Likewise.
8627 (pa_output_millicode_call): Likewise for first param.
8628 (pa_output_mul_insn): Likewise for second param.
8629 (pa_output_div_insn): Likewise for third param.
8630 (pa_output_mod_insn): Likewise for second param.
8631 (pa_jump_in_call_delay): Likewise for param.
8632 * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
8633 (pa_output_div_insn): Likewise.
8634 (pa_output_mod_insn): Likewise.
8635 (pa_output_cbranch): Likewise.
8636 (pa_output_lbranch): Likewise.
8637 (pa_output_bb): Likewise.
8638 (pa_output_bvb): Likewise.
8639 (pa_output_dbra): Likewise.
8640 (pa_output_movb): Likewise.
8641 (pa_output_millicode_call): Likewise; use method of rtx_sequence *
8642 to simplify and for typesafety.
8643 (pa_output_call): Use method of rtx_sequence *.
8644 (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
8645 (pa_jump_in_call_delay): Likewise.
8646 (pa_output_parallel_movb): Likewise.
8647 (pa_output_parallel_addb): Likewise.
8648 (pa_following_call): Likewise.
8649 (pa_combine_instructions): Likewise for locals "anchor",
8651 (pa_can_combine_p): Likewise for params "anchor", "floater" and
8652 locals "start", "end".
8653 * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
8654 param "insn" and local "local_insn".
8655 (picochip_final_prescan_insn): Likewise for local "local_insn".
8656 * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
8658 (uses_TOC): Likewise.
8659 * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
8660 (s390_mainpool_finish): Eliminate top-level local rtx "insn",
8661 splitting out to more tightly-scoped locals, 3 as rtx and one as
8663 (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
8665 (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
8667 * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
8669 (fixup_addr_diff_vecs): Likewise.
8670 (reg_unused_after): Likewise for param 2.
8671 (sh_can_redirect_branch): Likewise for both params.
8672 (check_use_sfunc_addr): Likewise for param 1.
8673 * config/sh/sh.c (fixup_mova): Likewise for local "worker".
8674 (find_barrier): Likewise for local "last_got".
8675 (gen_block_redirect): Likewise for return type, param "jump" and
8676 locals "prev", "scan", "next", "insn".
8677 (struct far_branch): Likewise for fields "near_label",
8678 "insert_place", "far_label".
8679 (gen_far_branch): Likewise for local "jump".
8680 (fixup_addr_diff_vecs): Likewise for param "first" and locals
8682 (barrier_align): Likewise for param and for locals "prev", "x".
8683 Introduce local rtx_sequence * "prev_seq" and use insn method for
8684 typesafety and clarity.
8685 (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
8686 (get_dest_uid): Likewise for local "dest".
8687 (split_branches): Likewise for locals "next", "beyond", "label",
8688 "block", "far_label". Add checked casts when assigning to
8689 bp->far_label and "far_label".
8690 (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
8691 (sequence_insn_p): Likewise.
8692 (mark_constant_pool_use): Likewise for locals "insn", "lab". Add a
8693 more loop-scoped rtx "insn" when walking LABEL_REFS.
8694 (sh_can_redirect_branch): Strengthen both params from rtx to
8696 (check_use_sfunc_addr): Likewise for param "insn". Introduce a
8697 new local rtx_sequence * "seq" via a dyn_cast, and use a method
8698 for clarity and typesafety.
8699 * config/sh/sh.md (define_expand "epilogue"): Strengthen local
8700 "insn" from rtx to rtx_insn *.
8701 (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
8702 when using NEXT_INSN on the CODE_LABEL in operands[2].
8703 (define_insn "casesi_worker_2"): Likewise.
8704 (define_insn "casesi_shift_media"): Likewise.
8705 (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
8707 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
8708 Strengthen field "insn" from rtx to rtx_insn *.
8709 (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
8710 (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
8711 param "start_insn" and local "start_insn".
8712 * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
8714 (find_set_of_reg_bb): Likewise for param "insn".
8715 (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
8716 (trace_reg_uses): Likewise for param "start_insn".
8717 (sh_treg_combine::cbranch_trace): Likewise for field
8719 (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
8721 (sh_treg_combine::record_set_of_reg): Likewise for param
8722 "start_insn" and local "i".
8723 (sh_treg_combine::can_remove_cstore): Likewise for local
8725 (sh_treg_combine::try_optimize_cbranch): Likewise for param
8727 (sh_treg_combine::execute): Likewise for local "i".
8728 * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
8730 (sparc_check_64): Likewise for second param.
8731 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
8732 locals "insn", "next". Introduce local rtx_sequence * "seq" via a
8733 dyn_cast, using its insn method for typesafety and clarity.
8734 (empty_delay_slot): Strengthen param "insn" from rtx to
8736 (set_extends): Likewise.
8737 (sparc_check_64): Likewise.
8738 * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
8739 for locals "seq", "last_insn".
8740 (combine_bnp): Likewise for param "insn".
8741 (xstormy16_reorg): Likewise for local "insn".
8742 * config/v850/v850.c (substitute_ep_register): Likewise for params
8743 "first_insn", "last_insn" and local "insn".
8744 (v850_reorg): Likewise for fields "first_insn", "last_insn" within
8745 elements of "regs" array, and local "insn".
8746 * except.c (emit_note_eh_region_end): Likewise for param "insn".
8747 * final.c (final_sequence): Strengthen this global from rtx to
8749 (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
8751 (final_scan_insn): Update assignment to "final_sequence" to be
8752 from "seq", the cast version of "body", for type-safety.
8753 * function.c (assign_parm_setup_reg): Strengthen locals "insn",
8754 "insns" from rtx to rtx_insn *.
8755 (thread_prologue_and_epilogue_insns): Likewise for local "seq".
8756 * genattr.c (main): When writing out generated insn-attr.h,
8757 strengthen params 1 and 3 of eligible_for_delay,
8758 eligible_for_annul_true, eligible_for_annul_false from rtx to
8760 * genattrtab.c (write_eligible_delay): Likewise when writing out
8761 generated insn-attrtab.c; also local "insn" the generated
8763 * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
8765 * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
8766 "start_label" from rtx to rtx_insn *.
8767 * ira.c (decrease_live_ranges_number): Likewise for local "p".
8768 (ira_update_equiv_info_by_shuffle_insn): Likewise for param
8769 "insns" and local "insn".
8770 (validate_equiv_mem): Likewise for param "start" and local "insn".
8771 (memref_used_between_p): Likewise for params "start", "end" and
8773 * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
8775 * loop-doloop.c (doloop_optimize): Within region guarded by
8776 INSN_P (doloop_pat), introduce a new local rtx_insn *
8777 "doloop_insn" via a checked cast, and use it for typesafety,
8778 eventually writing the value back into doloop_pat.
8779 * output.h (final_sequence): Strengthen this global from rtx to
8781 * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
8782 reintroducing "insn" as an rtx_insn * via a checked cast.
8783 Strengthen param "attempt" and local "new_insn"from rtx to
8785 (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
8787 * ree.c (emit_note_eh_region_end): Likewise for local "insn".
8788 * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
8789 "p" in favor of more tightly-scoped replacements, sometimes rtx
8790 and sometimes rtx_insn *, as appropriate.
8791 (delete_output_reload): Eliminate top-level rtx "i1", splitting
8792 into two loop-scoped locals, one an rtx, the other an rtx_insn *.
8793 * reorg.c (delete_scheduled_jump): Add checked cast. Strengthen
8794 local "trial" from rtx to rtx_insn *.
8795 (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
8796 rtx to rtx_insn *. Strenghten local "pat" from rtx to
8797 rtx_sequence * and use methods for clarity and typesafety.
8798 (redirect_with_delay_list_safe_p): Strengthen param "jump" from
8799 rtx to rtx_insn *. Strenghten local "li" from rtx to
8800 rtx_insn_list * and use its methods for clarity and typesafety.
8801 (steal_delay_list_from_target): Strengthen param "insn" from rtx
8803 (steal_delay_list_from_fallthrough): Likewise.
8804 (try_merge_delay_insns): Likewise for param "thread" and locals
8805 "trial", "next_trial", "delay_insn".
8806 (redundant_insn): Likewise for param "target" and local "trial".
8807 (own_thread_p): Likewise for param "thread" and locals
8808 "active_insn", "insn".
8809 (get_label_before): Likewise for param "insn".
8810 (fill_simple_delay_slots): Likewise for local "new_label"; use
8811 JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
8812 (label_before_next_insn): Strengthen return type and local "insn"
8813 from rtx to rtx_insn *.
8814 (relax_delay_slots): Likewise for locals "other", "tmp".
8815 (make_return_insns): Likewise for param "first" and locals "insn",
8816 "jump_insn", "prev". Move declaration of "pat" to its assignment
8817 and strengthen from rtx to rtx_sequence *. Use its methods for
8818 clarity and typesafety.
8819 * rtlanal.c (no_labels_between_p): Strengthen params from
8820 const_rtx to const rtx_insn *. Strengthen local "p" from rtx to
8822 (reg_used_between_p): Strengthen params "from_insn", "to_insn"
8823 from const_rtx to const rtx_insn *.
8824 (reg_set_between_p): Rename param "from_insn" to
8825 "uncast_from_insn", and reintroduce "from_insn" as a
8826 const rtx_insn * via a checked cast.
8827 (modified_between_p): Likewise for param "start" as "uncast_start".
8828 (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
8829 * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
8830 "tmp", head" from rtx to rtx_insn *.
8831 (recompute_rev_top_order): Likewise for local "insn".
8832 * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
8833 * store-motion.c (build_store_vectors): Likewise for local "insn".
8834 Strengthen local "st" from rtx to rtx_insn_list * and use methods
8835 for clarity and typesafety.
8836 * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
8838 (computation_cost): Likewise for local "seq".
8839 (get_address_cost): Likewise.
8841 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8843 * rtl.h (tablejump_p): Strengthen first param from const_rtx to
8845 (label_is_jump_target_p): Likewise for second param.
8847 * rtlanal.c (tablejump_p): Likewise for param "insn".
8848 (label_is_jump_target_p): Likewise for param "jump_insn".
8850 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8852 * rtl.h (find_first_parameter_load): Strengthen return type and
8853 both params from rtx to rtx_insn *.
8854 * rtlanal.c (find_first_parameter_load): Strengthen return type,
8855 both params and locals "before", "first_set" from rtx to
8856 rtx_insn *. Remove now-redundant cast.
8857 * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
8859 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8861 * rtl.h (find_last_value): Delete.
8862 * rtlanal.c (find_last_value): Delete.
8864 2014-08-28 David Malcolm <dmalcolm@redhat.com>
8866 * cfgexpand.c (pass_expand::execute): Strengthen local "after"
8867 from rtx to rtx_insn *.
8868 * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
8869 rtx "note" with new local rtx_insn * "new_head" when calculating
8870 head insn of new basic block.
8871 * combine.c (combine_split_insns): Strengthen return type and local
8872 "ret" from rtx to rtx_insn *.
8873 (likely_spilled_retval_p): Likewise for locals "use" and "p".
8874 (try_combine): Eliminate local "m_split", splitting into new
8875 locals "m_split_insn" and "m_split_pat".
8876 (find_split_point): Strengthen local "seq" from rtx into
8878 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
8879 locals "label", "branch".
8880 * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
8882 (define_expand "umulsi3_highpart"): Likewise for local "insn".
8883 * dse.c (note_add_store_info): Likewise for fields "first",
8885 (note_add_store): Likewise for local "insn".
8886 (emit_inc_dec_insn_before): Likewise for locals "insn",
8888 (find_shift_sequence): Likewise for locals "shift_seq", "insn".
8889 (replace_read): Likewise for locals "insns", "this_insn".
8890 * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
8891 (notice_eh_throw): Likewise for param "insn".
8892 (before_next_cfi_note): Likewise for return type, param, and local
8894 (connect_traces): Likewise for local "note".
8895 * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
8896 (verify_rtl_sharing): Likewise.
8897 (unshare_all_rtl_in_chain): Likewise for param "insn".
8898 (get_first_nonnote_insn): Likewise for local "insn".
8899 (get_last_nonnote_insn): Likewise. Introduce local rtx_sequence *
8900 "seq" and use its methods to clarify things.
8901 (next_insn): Strengthen return type from rtx to rtx_insn *.
8902 Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
8903 local rtx_insn * using a checked cast, dropping a checked cast
8904 made redundant by this change. Use a cast to and method of
8905 rtx_sequence to clarify the code.
8906 (previous_insn): Rename param "insn" to "uncast_insn" and
8907 reintroduce "insn" as a local rtx_insn * using a checked cast,
8908 dropping a checked cast made redundant by this change. Use a cast
8909 to and method of rtx_sequence to clarify the code.
8910 (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
8911 reintroduce "insn" as a local rtx_insn * using a checked cast,
8912 dropping a checked cast made redundant by this change.
8913 (next_nonnote_insn_bb): Likewise.
8914 (prev_nonnote_insn): Likewise.
8915 (prev_nonnote_insn_bb): Likewise.
8916 (next_nondebug_insn): Likewise.
8917 (prev_nondebug_insn): Likewise.
8918 (next_nonnote_nondebug_insn): Likewise.
8919 (prev_nonnote_nondebug_insn): Likewise.
8920 (next_real_insn): Likewise.
8921 (prev_real_insn): Likewise.
8922 (next_active_insn): Likewise.
8923 (prev_active_insn): Likewise.
8924 (next_cc0_user): Likewise. Use rtx_sequence and a method for
8926 (prev_cc0_setter): Likewise.
8927 (try_split): Rename param "trial" to "uncast_trial" and
8928 reintroduce "insn" as a local rtx_insn * using a checked cast,
8929 dropping checked casts made redundant by this change.
8930 Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
8932 (remove_insn): Rename param "insn" to "uncast_insn" and
8933 reintroduce "insn" as a local rtx_insn * using a checked cast.
8934 (emit_pattern_after_setloc): Likewise for param "after", as
8936 (emit_pattern_after): Likewise. Strengthen local "prev" from
8938 (emit_pattern_before_setloc): Rename param "before" to
8939 "uncast_before" and reintroduce "before" as a local rtx_insn *
8940 using a checked cast. Strengthen locals "first", "last" from
8942 (emit_pattern_before): Likewise rename/cast param "before" to
8943 "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
8944 * except.c (copy_reg_eh_region_note_forward): Strengthen param
8945 "first" and local "insn" from rtx to rtx_insn *.
8946 (copy_reg_eh_region_note_backward): Likewise for param "last"
8948 * expr.c (fixup_args_size_notes): Rename param "last" to
8949 "uncast_last" and reintroduce "last" as a local rtx_insn *
8950 using a checked cast. Strengthen local "insn" from rtx to
8952 * function.c (set_insn_locations): Strengthen param "insn" from
8954 (record_insns): Likewise for param "insns" and local "tmp".
8955 (active_insn_between): Rename param "tail" to
8956 "uncast_tail" and reintroduce "tail" as a local rtx_insn *
8957 using a checked cast.
8958 (thread_prologue_and_epilogue_insns): Split out top-level local
8959 rtx "seq" into three different rtx_insn * locals. Strengthen
8960 local "prologue_seq" from rtx to rtx_insn *.
8961 * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
8962 from rtx to rtx_insn *.
8963 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
8964 (priority): Likewise for locals "prev_first", "twin".
8965 (setup_insn_max_reg_pressure): Likewise for param "after".
8966 (sched_setup_bb_reg_pressure_info): Likewise.
8967 (no_real_insns_p): Strengthen params from const_rtx to
8969 (schedule_block): Strengthen local "next_tail" from rtx to
8971 * ifcvt.c (find_active_insn_before): Strengthen return type and
8972 param "insn" from rtx to rtx_insn *.
8973 (find_active_insn_after): Likewise.
8974 (cond_exec_process_insns): Likewise for param "start" and local "insn".
8975 (cond_exec_process_if_block): Likewise for locals "then_start",
8976 "then_end", "else_start", "else_end", "insn", "start", "end", "from".
8977 (noce_process_if_block): Likewise for local "jump".
8978 (merge_if_block): Likewise for two locals named "end".
8979 (cond_exec_find_if_block): Likewise for local "last_insn".
8980 * jump.c (delete_related_insns): Rename param "insn" to
8981 "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
8982 checked cast. Strengthen local "p" from rtx to rtx_insn *.
8983 * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
8985 (split_reg): Likewise.
8986 * lra.c (lra_process_new_insns): Likewise.
8987 * modulo-sched.c (permute_partial_schedule): Strengthen param
8988 "last" from rtx to rtx_insn *.
8989 * optabs.c (add_equal_note): Likewise for param "insns" and local
8991 (expand_binop_directly): Add checked casts to rtx_insn * within
8992 NEXT_INSN (pat) uses.
8993 (expand_unop_direct): Likewise.
8994 (maybe_emit_unop_insn): Likewise.
8995 * recog.c (peep2_attempt): Strengthen locals "last",
8996 "before_try", "x" from rtx to rtx_insn *.
8997 * reorg.c (optimize_skip): Strengthen return type and local
8998 "delay_list" from rtx to rtx_insn_list *. Strengthen param "insn"
8999 and locals "trial", "next_trial" from rtx to rtx_insn *.
9000 * resource.c (next_insn_no_annul): Strengthen return type and
9001 param "insn" from rtx to rtx_insn *. Use a cast to and method of
9002 rtx_sequence to clarify the code.
9003 (mark_referenced_resources): Add a checked cast to rtx_insn *
9004 within PREV_INSN (x).
9005 (find_dead_or_set_registers): Strengthen return type, param
9006 "target", locals "insn", "next", "jump_insn", "this_jump_insn"
9007 from rtx to rtx_insn *. Strengthen param "jump_target" from rtx *
9009 (mark_target_live_regs): Strengthen params "insns" and "target",
9010 locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
9011 to rtx_insn *. Use cast to and method of rtx_sequence to clarify
9013 * resource.h (mark_target_live_regs): Strengthen params 1 and 2
9014 from rtx to rtx_insn *.
9015 * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
9016 from rtx to rtx_insn *.
9017 (copy_reg_eh_region_note_backward): Likewise.
9018 (unshare_all_rtl_in_chain): Likewise for sole param.
9019 (dump_rtl_slim): Strengthen second and third params from const_rtx
9020 to const rtx_insn *.
9021 * sched-deps.c (sched_free_deps): Strengthen params "head" and
9022 "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
9023 * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
9024 "next_tail" from rtx to rtx_insn *.
9025 (begin_move_insn): Likewise for local "next".
9026 * sched-int.h (sched_free_deps): Likewise for first and second
9028 (no_real_insns_p): Strengthen both params from const_rtx to
9030 (sched_setup_bb_reg_pressure_info): Strengthen second params from
9032 * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
9034 * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
9035 and locals "insn", "tail" from const_rtx to const rtx_insn *.
9036 (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
9038 (debug_rtl_slim): Strengthen params "first" and "last" from
9039 const_rtx to const rtx_insn *.
9040 * shrink-wrap.c (try_shrink_wrapping): Strengthen param
9041 "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
9042 (convert_to_simple_return): Likewise for param "returnjump".
9043 * shrink-wrap.h (try_shrink_wrapping): Likewise for param
9045 (convert_to_simple_return): Likewise for param "returnjump".
9046 * valtrack.c (propagate_for_debug): Likewise for params
9048 * valtrack.h (propagate_for_debug): Likewise for second param.
9050 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9052 * output.h (insn_current_reference_address): Strengthen param
9053 from rtx to rtx_insn *.
9054 * final.c (insn_current_reference_address): Likewise.
9056 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9058 * basic-block.h (inside_basic_block_p): Strengthen param from
9059 const_rtx to const rtx_insn *.
9060 * cfgbuild.c (inside_basic_block_p): Likewise.
9062 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9064 * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
9066 (get_trace_info): Likewise for param "insn".
9067 (save_point_p): Likewise.
9068 (maybe_record_trace_start): Likewise for both params.
9069 (maybe_record_trace_start_abnormal): Likewise.
9070 (create_trace_edges): Likewise for sole param and for three of the
9072 (scan_trace): Strengthen local "prev", "insn", "control" from rtx
9073 to rtx_insn *, and update a call to pat->element to pat->insn.
9075 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9077 * function.h (struct expr_status): Convert field "x_forced_labels"
9078 from rtx_expr_list * to rtx_insn_list *.
9080 * cfgbuild.c (make_edges): Convert local "x" from an
9081 rtx_expr_list * to an rtx_insn_list *, replacing use of
9082 "element" method with "insn" method.
9083 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9084 * except.c (sjlj_emit_dispatch_table): Replace use of
9085 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
9087 * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
9088 rtx_expr_list * to an rtx_insn_list *, replacing use of
9089 "element" method with "insn" method.
9090 * reload1.c (set_initial_label_offsets): Likewise for local "x".
9091 * stmt.c (label_rtx): Strengthen local "ref" from rtx to
9092 rtx_insn *, adding a checked cast. Replace use of
9093 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
9095 (expand_label): Likewise for local "label_r".
9097 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9099 * function.h (struct rtl_data): Convert field
9100 "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
9102 * rtl.h (remove_node_from_insn_list): New prototype.
9104 * builtins.c (expand_builtin): When prepending to
9105 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
9107 * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
9108 to rtx_insn_list *, and use its "insn" method rather than
9110 * cfgrtl.c (delete_insn): Use new function
9111 remove_node_from_insn_list rather than
9112 remove_node_from_expr_list.
9113 (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
9114 to rtx_insn_list *, and use its "insn" method rather than
9116 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9117 * reload1.c (set_initial_label_offsets): Likewise for local "x".
9118 * rtlanal.c (remove_node_from_insn_list): New function, adapted
9119 from remove_node_from_expr_list.
9120 * stmt.c (expand_label): When prepending to
9121 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
9124 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9126 * function.h (struct rtl_data): Strengthen fields "x_return_label"
9127 and "x_naked_return_label" from rtx to rtx_code_label *.
9129 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9131 * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
9132 (SET_NEXT_INSN): Likewise.
9133 (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
9135 * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
9136 rtx * to rtx_insn **. Introduce a new local rtx "seq", using it
9137 to split out the SEQUENCE from local "bundle", strengthening the
9138 latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
9139 Strengthen locals "t" and "insn" from rtx to rtx_insn *.
9140 (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
9141 and the type of the elements of the "slot" array from rtx to
9143 (reorg_split_calls): Likewise for locals "insn" and "next", and
9144 the type of the elements of the "slot" array.
9146 * config/frv/frv.c (frv_nops): Likewise for the elements of this
9148 (frv_function_prologue): Likewise for locals "insn", "next",
9150 (frv_register_nop): Introduce a local "nop_insn" to be the
9151 rtx_insn * containing rtx "nop".
9153 * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
9154 used as an insn and sometimes as a pattern, so rename it to
9155 "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
9156 using it where dealing with the core insn.
9158 * config/picochip/picochip.c (reorder_var_tracking_notes):
9159 Strengthen locals "insn", "next", "last_insn", "queue",
9160 "next_queue", "prev" from rtx to rtx_insn *.
9162 * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
9163 the second param is an rtx_insn ** rather than an rtx **.
9164 (link_insn_into_chain): Strengthen locals "seq" and "sequence"
9165 from rtx to rtx_sequence *, and introduce local named "sequence",
9166 using methods of rtx_sequence to clarify the code.
9167 (remove_insn): Introduce local rtx_sequence * named "sequence" and
9169 (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
9170 Rename param "after" to "uncast_after", reintroducing "after" as a
9171 local rtx_insn * with a checked cast.
9172 (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
9173 reintroducing "after" as a local rtx_insn * with a checked cast.
9174 Strengthen local "last" from rtx to rtx_insn * and remove the
9175 now-redundant checked casts.
9176 (copy_delay_slot_insn): Strengthen return type and param from rtx
9179 * haifa-sched.c (reemit_notes): Strengthen params "insn" and
9180 "last" from rtx to rtx_insn *.
9182 2014-08-28 David Malcolm <dmalcolm@redhat.com>
9184 * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
9185 param from rtx to rtx_insn *.
9187 * emit-rtl.c (copy_delay_slot_insn): Likewise.
9189 * reorg.c (skip_consecutive_labels): Strengthen return type, param
9190 and local "insn" from rtx to rtx_insn *.
9191 (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
9192 (unfilled_slots_next): Likewise.
9193 (function_return_label): Strengthen from rtx to rtx_code_label *.
9194 (function_simple_return_label): Likewise.
9195 (first_active_target_insn): Strengthen return type and param from
9197 (find_end_label): Strengthen return type from rtx to
9198 rtx_code_label *; strengthen locals as appropriate.
9199 (emit_delay_sequence): Strengthen return type, param "insn" and
9200 local "seq_insn" from rtx to rtx_insn *. Strengthen param "list"
9201 and local "li" from rtx to rtx_insn_list *, using methods of
9202 rtx_insn_list for clarity and typesafety.
9203 (add_to_delay_list): Strengthen return type and param "insn" from
9204 rtx to rtx_insn *. Strengthen param "delay_list" from rtx to
9205 rtx_insn_list * and use methods of rtx_insn_list.
9206 (delete_from_delay_slot): Strengthen return type, param "insn",
9207 locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
9208 Strengthen local "seq" from rtx to rtx_sequence *, and local
9209 "delay_list" from rtx to rtx_insn_list *, using methods of
9210 rtx_sequence for clarity and type-safety.
9211 (delete_scheduled_jump): Add checked cast when invoking
9212 delete_from_delay_slot. Strengthen local "trial" from rtx to
9214 (optimize_skip): Strengthen return type and local "delay_list"
9215 from rtx to rtx_insn_list *. Strengthen local "trial" from rtx to
9217 (steal_delay_list_from_target): Strengthen return type, param
9218 "delay_list" and local "new_delay_list" from rtx to
9219 rtx_insn_list *. Strengthen param "seq" from rtx to
9220 rtx_sequence *. Strengthen param "pnew_thread" from rtx * to
9222 Split out local "temp" into multiple more-tightly scoped locals:
9223 sometimes an rtx_insn_list *, and once a rtx_insn *. Use methods
9224 of rtx_insn_list and rtx_sequence for clarity and typesafety.
9225 Strengthen locals named "trial" from rtx to rtx_insn *.
9226 (steal_delay_list_from_fallthrough): Strengthen return type and
9227 param "delay_list" from rtx to rtx_insn_list *. Strengthen param
9228 "seq" from rtx to rtx_sequence *. Use methods of rtx_sequence.
9229 Strengthen local "trial" from rtx to rtx_insn *.
9230 (try_merge_delay_insns): Strength local "merged_insns" from rtx
9231 to rtx_insn_list * and use its methods. Strengthen local "pat"
9232 from rtx to rtx_sequence * and use its methods. Strengthen locals
9233 "dtrial" and "new_rtx" from rtx to rtx_insn *.
9234 (get_label_before): Strengthen return type and local "label" from
9236 (fill_simple_delay_slots): Likewise for locals "insn", "trial",
9237 "next_trial", "next", prev". Strengthen local "delay_list" from
9238 rtx to rtx_insn_list * Strengthen local "tmp" from rtx * to
9240 (follow_jumps): Strengthen return type, param "label" and locals
9241 "insn", "next", "value", "this_label" from rtx to rtx_insn *.
9242 (fill_slots_from_thread): Strengthen return type, param
9243 "delay_list" from rtx to rtx_insn_list *. Strengthen params
9244 "insn", "thread", "opposite_thread" and locals "new_thread",
9245 "trial", "temp", "ninsn" from rtx to rtx_insn *. Introduce local
9246 "sequence" from a checked cast to rtx_sequence so that we can call
9247 steal_delay_list_from_target and steal_delay_list_from_fallthrough
9248 with an rtx_sequence *.
9249 (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
9250 "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
9251 Strengthen local "delay_list" from rtx to rtx_insn_list *.
9252 (relax_delay_slots): Strengthen param "first" and locals "insn",
9253 "next", "trial", "delay_insn", "target_label" from rtx to
9254 rtx_insn *. Strengthen local "pat" from rtx to rtx_sequence *.
9255 Introduce a local "trial_seq" for PATTERN (trial) of type
9256 rtx_sequence *, in both cases using methods of rtx_sequence.
9257 (dbr_schedule): Strengthen param "first" and locals "insn",
9258 "next", "epilogue_insn" from rtx to rtx_insn *.
9260 2014-08-28 Richard Biener <rguenther@suse.de>
9262 PR tree-optimization/62283
9263 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9264 Do not peel loops for alignment where the vector loop likely
9265 doesn't run at least VF times.
9267 2014-08-28 Bin Cheng <bin.cheng@arm.com>
9269 * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
9270 important_candidates. Consider all important candidates if
9271 IVS doesn't give any result. Remove check on ivs->upto.
9272 (try_add_cand_for): Call iv_ca_add_use only once.
9274 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9275 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9276 Anna Tikhonova <anna.tikhonova@intel.com>
9277 Ilya Tocar <ilya.tocar@intel.com>
9278 Andrey Turetskiy <andrey.turetskiy@intel.com>
9279 Ilya Verbin <ilya.verbin@intel.com>
9280 Kirill Yukhin <kirill.yukhin@intel.com>
9281 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9283 (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
9284 (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
9286 (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
9287 (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
9288 (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
9289 (define_insn "*mul<mode>3"): Add EVEX version.
9291 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9292 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9293 Anna Tikhonova <anna.tikhonova@intel.com>
9294 Ilya Tocar <ilya.tocar@intel.com>
9295 Andrey Turetskiy <andrey.turetskiy@intel.com>
9296 Ilya Verbin <ilya.verbin@intel.com>
9297 Kirill Yukhin <kirill.yukhin@intel.com>
9298 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9300 * config/i386/sse.md
9301 (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
9302 (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
9303 (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
9304 (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
9305 (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
9306 (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
9307 (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
9308 (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
9309 (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
9310 (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
9311 (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
9312 (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
9313 (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
9314 (define_insn "vec_interleave_highv16qi<mask_name>"): New.
9315 (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
9316 (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
9318 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9319 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9320 Anna Tikhonova <anna.tikhonova@intel.com>
9321 Ilya Tocar <ilya.tocar@intel.com>
9322 Andrey Turetskiy <andrey.turetskiy@intel.com>
9323 Ilya Verbin <ilya.verbin@intel.com>
9324 Kirill Yukhin <kirill.yukhin@intel.com>
9325 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9327 * config/i386/sse.md
9328 (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
9329 (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
9330 (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
9332 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9333 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9334 Anna Tikhonova <anna.tikhonova@intel.com>
9335 Ilya Tocar <ilya.tocar@intel.com>
9336 Andrey Turetskiy <andrey.turetskiy@intel.com>
9337 Ilya Verbin <ilya.verbin@intel.com>
9338 Kirill Yukhin <kirill.yukhin@intel.com>
9339 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9341 * config/i386/sse.md
9342 (define_mode_iterator VI128_256): New.
9343 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
9345 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9346 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9347 Anna Tikhonova <anna.tikhonova@intel.com>
9348 Ilya Tocar <ilya.tocar@intel.com>
9349 Andrey Turetskiy <andrey.turetskiy@intel.com>
9350 Ilya Verbin <ilya.verbin@intel.com>
9351 Kirill Yukhin <kirill.yukhin@intel.com>
9352 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9354 * config/i386/sse.md
9355 (define_mode_iterator VI8_256_512): New.
9356 (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
9358 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
9359 (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
9361 (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
9363 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9365 * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx. Remove the
9366 pointer to the cumulative reloc value and return the value for
9368 (compute_reloc_for_rtx): Take a const_rtx. Call
9369 compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
9370 avoiding any recursion. Use FOR_EACH_SUBRTX rather than
9371 for_each_rtx for the CONST case.
9373 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9375 * varasm.c (mark_constant): Replace this for_each_rtx callback with...
9376 (mark_constants_in_pattern): ...this new function to iterate over
9378 (mark_constants): Update accordingly.
9380 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9382 * varasm.c: Include rtl-iter.h.
9383 (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
9384 Remove the pointer to the cumulative hashval_t and just return
9385 the hash for this rtx instead. Remove recursive CONST_VECTOR case.
9386 (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9387 Accumulate the hashval_ts here instead of const_rtx_hash_1.
9389 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9391 * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
9392 Give real type of data parameter. Remove return value.
9393 (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
9394 to iterate over subrtxes.
9396 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9398 * var-tracking.c (use_narrower_mode_test): Turn from being a
9399 for_each_rtx callback to being a function that examines each
9401 (adjust_mems): Update accordingly.
9403 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9405 * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
9406 callback to being a function that examines each subrtx itself.
9407 Remove handling of null rtxes.
9408 (add_uses): Update accordingly.
9410 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9412 * var-tracking.c: Include rtl-iter.h.
9413 (rtx_debug_expr_p): Turn from being a for_each_rtx callback
9414 to being a function that examines each subrtx itself.
9415 (use_type): Update accordingly.
9417 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9419 * store-motion.c: Include rtl-iter.h.
9420 (extract_mentioned_regs_1): Delete.
9421 (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
9422 for_each_rtx to iterate over subrtxes.
9424 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9426 * sel-sched.c: Include rtl-iter.h
9427 (count_occurrences_1): Delete.
9428 (count_occurrences_equiv): Turn rtxes into const_rtxes.
9429 Use FOR_EACH_SUBRTX rather than for_each_rtx.
9431 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9433 * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
9434 * rtlanal.c (tls_referenced_p_1): Delete.
9435 (tls_referenced_p): Take a const_rtx rather than an rtx.
9436 Use FOR_EACH_SUBRTX rather than for_each_rtx.
9438 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9440 * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
9441 (for_each_inc_dec): Take an rtx rather than an rtx *.
9442 * cselib.c (cselib_record_autoinc_cb): Update accordingly.
9443 (cselib_record_sets): Likewise.
9444 * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
9445 (check_for_inc_dec): Likewise.
9446 * rtlanal.c (for_each_inc_dec_ops): Delete.
9447 (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
9448 rather than a pointer to the memory address. Replace
9449 for_each_inc_dec_ops argument with separate function and data
9450 arguments. Abort on non-autoinc addresses.
9451 (for_each_inc_dec_find_mem): Delete.
9452 (for_each_inc_dec): Take an rtx rather than an rtx *. Use
9453 FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
9455 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9457 * rtl.h (find_all_hard_regs): Declare.
9458 * rtlanal.c (find_all_hard_regs): New function.
9459 (record_hard_reg_uses_1): Delete.
9460 (record_hard_reg_uses): Use find_all_hard_regs.
9462 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9464 * rtl.h (replace_label_data): Delete.
9465 (replace_label): Take the old label, new label and update-nuses flag
9466 as direct arguments. Return void.
9467 * cfgcleanup.c (outgoing_edges_match): Update accordingly.
9468 * rtlanal.c (replace_label): Update interface as above. Handle
9469 JUMP_TABLE_DATA as a special case. Handle JUMPs outside the
9470 iterator. Use FOR_EACH_SUBRTX_PTR.
9472 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9474 * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
9475 with const_rtx parameters.
9476 * varasm.c (get_pool_constant): Likewise.
9477 * rtlanal.c (rtx_referenced_p_1): Delete.
9478 (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9479 Assert that the rtx we're looking for is nonnull. Allow searches
9480 for constant pool SYMBOL_REFs.
9482 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9484 * reload1.c: Include rtl-iter.h.
9485 (note_reg_elim_costly): Turn from being a for_each_rtx callback
9486 to being a function that examines each subrtx itself.
9487 (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
9489 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9491 * regcprop.c (cprop_find_used_regs_1): Delete.
9492 (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9494 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9496 * regcprop.c: Include rtl-iter.h.
9497 (kill_value): Take a const_rtx.
9498 (kill_autoinc_value): Turn from being a for_each_rtx callback
9499 to being a function that examines each subrtx itself.
9500 (copyprop_hardreg_forward_1): Update accordingly.
9502 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9504 * reg-stack.c: Include rtl-iter.h.
9505 (subst_stack_regs_in_debug_insn): Delete.
9506 (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
9507 instead of for_each_rtx.
9509 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9511 * lower-subreg.c (find_decomposable_subregs): Turn from being
9512 a for_each_rtx callback to being a function that examines each
9513 subrtx itself. Remove handling of null rtxes.
9514 (decompose_multiword_subregs): Update accordingly.
9516 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9518 * lower-subreg.c (adjust_decomposed_uses): Delete.
9519 (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
9520 Remove handling of null rtxes.
9522 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9524 * lower-subreg.c: Include rtl-iter.h.
9525 (resolve_subreg_use): Turn from being a for_each_rtx callback
9526 to being a function that examines each subrtx itself. Remove
9527 handling of null rtxes.
9528 (resolve_reg_notes, resolve_simple_move): Update accordingly.
9529 (decompose_multiword_subregs): Likewise.
9531 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9533 * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
9534 to being a function that examines each subrtx itself.
9535 (simplify_using_condition, simplify_using_initial_values): Update
9538 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9540 * loop-iv.c: Include rtl-iter.h.
9541 (find_single_def_src): New function.
9542 (replace_single_def_regs): Turn from being a for_each_rtx callback
9543 to being a function that examines each subrtx itself.
9544 (replace_in_expr, simplify_using_initial_values): Update accordingly.
9546 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9548 * jump.c (eh_returnjump_p_1): Delete.
9549 (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9550 Remove handling of null rtxes.
9552 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9554 * jump.c: Include rtl-iter.h.
9555 (returnjump_p_1): Delete.
9556 (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9557 Remove handling of null rtxes.
9559 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9561 * ira.c: Include rtl-iter.h.
9562 (set_paradoxical_subreg): Turn from being a for_each_rtx callback
9563 to being a function that examines each subrtx itself. Remove
9564 handling of null rtxes.
9565 (update_equiv_regs): Update call accordingly.
9567 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9569 * fwprop.c: Include rtl-iter.h.
9570 (varying_mem_p): Turn from being a for_each_rtx callback to being
9571 a function that examines each subrtx itself.
9572 (propagate_rtx): Update accordingly.
9574 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9576 * function.c: Include rtl-iter.h
9577 (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
9578 callback to being a function that examines each subrtx itself.
9579 Return the changed flag.
9580 (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
9581 (instantiate_virtual_regs): Update calls accordingly.
9583 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9585 * final.c: Include rtl-iter.h.
9586 (mark_symbol_ref_as_used): Delete.
9587 (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
9590 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9592 * emit-rtl.c: Include rtl-iter.h.
9593 (find_auto_inc): Turn from being a for_each_rtx callback to being
9594 a function that examines each subrtx itself. Assume the first operand
9595 to an RTX_AUTOINC is the automodified register.
9596 (try_split): Update call accordingly.
9598 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9600 * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
9601 Return a bool, inverting the result so that 0/false means "not ok".
9602 Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
9603 subrtxes of a CONST.
9604 (mem_loc_descriptor, add_const_value_attribute)
9605 (resolve_addr_in_expr): Update calls accordingly.
9607 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9609 * dwarf2out.c: Include rtl-iter.h.
9610 (const_ok_for_output_1): Take the rtx instead of a pointer to it.
9611 Remove unused data parameter. Return a bool, inverting the result
9612 so that 0/false means "not ok".
9613 (const_ok_for_output): Update accordingly. Use FOR_EACH_SUBRTX_VAR
9614 instead of for_each_rtx.
9616 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9618 * dse.c: Include rtl-iter.h.
9619 (check_mem_read_rtx): Change void * parameter to real type.
9620 Remove return value.
9621 (check_mem_read_use): Fix comment. Use FOR_EACH_SUBRTX_PTR instead of
9622 for_each_rtx. Don't handle null rtxes.
9624 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9626 * df-problems.c: Include rtl-iter.h.
9627 (find_memory): Turn from being a for_each_rtx callback to being
9628 a function that examines each subrtx itself. Continue to look for
9629 volatile references even after a nonvolatile one has been found.
9630 (can_move_insns_across): Update calls accordingly.
9632 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9634 * ddg.c (walk_mems_2, walk_mems_1): Delete.
9635 (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
9636 to iterate over subrtxes. Return a bool rather than an int.
9638 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9640 * ddg.c: Include rtl-iter.h.
9641 (mark_mem_use_1): Rename to...
9642 (mark_mem_use): ...deleting old mark_mem_use. Use FOR_EACH_SUBRTX
9643 instead of for_each_rtx.
9644 (mem_read_insn_p): Update accordingly.
9646 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9648 * cse.c (change_cc_mode_args): Delete.
9649 (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
9650 a function that examines each subrtx itself. Take the fields of
9651 change_cc_mode_args as argument and return void.
9652 (cse_change_cc_mode_insn): Update calls accordingly.
9654 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9656 * cse.c (is_dead_reg): Change argument to const_rtx.
9657 (dead_debug_insn_data): Delete.
9658 (is_dead_debug_insn): Expand commentary. Turn from being a
9659 for_each_rtx callback to being a function that examines
9660 each subrtx itself. Take the fields of dead_debug_insn_data
9662 (delete_trivially_dead_insns): Update call accordingly.
9664 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9666 * cse.c (check_for_label_ref): Move earlier in file. Turn from
9667 being a for_each_rtx callback to being a function that examines
9669 (cse_extended_basic_block): Update call accordingly.
9671 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9673 * cse.c (check_dependence_data): Delete.
9674 (check_dependence): Change from being a for_each_rtx callback to being
9675 a function that examines all subrtxes itself. Don't handle null rtxes.
9676 (invalidate): Update call accordingly.
9678 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9680 * cse.c: Include rtl-iter.h.
9681 (approx_reg_cost_1): Delete.
9682 (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9683 Don't handle null rtxes.
9685 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9687 * cfgcleanup.c: Include rtl-iter.h.
9688 (mentions_nonequal_regs): Turn from being a for_each_rtx callback
9689 to being a function that examines each subrtx itself.
9690 (thread_jump): Update accordingly.
9692 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9694 * combine-stack-adj.c: Include rtl-iter.h.
9695 (record_stack_refs_data): Delete.
9696 (record_stack_refs): Turn from being a for_each_rtx callback
9697 to being a function that examines each subrtx itself.
9698 Take a pointer to the reflist. Invert sense of return value
9699 so that true means success and false means failure. Don't
9701 (combine_stack_adjustments_for_block): Update accordingly.
9703 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9705 * combine.c (record_truncated_value): Turn from being a for_each_rtx
9706 callback to a function that takes an rtx and returns a bool
9707 (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
9710 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9712 * combine.c: Include rtl-iter.h.
9713 (unmentioned_reg_p_1): Delete.
9714 (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9715 Don't handle null rtxes.
9717 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9719 * calls.c: Include rtl-iter.h.
9720 (internal_arg_pointer_based_exp_1): Delete.
9721 (internal_arg_pointer_based_exp): Take a const_rtx.
9722 Use FOR_EACH_SUBRTX to iterate over subrtxes.
9724 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9726 * caller-save.c: Include rtl-iter.h.
9727 (add_used_regs_1): Delete.
9728 (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
9729 to iterate over subrtxes. Assert that any remaining pseudos
9732 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9734 * bt-load.c: Include rtl-iter.h.
9735 (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
9736 (find_btr_use): Move further up file. Use FOR_EACH_SUBRTX_PTR
9737 to iterate over subrtxes.
9738 (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
9739 find_btr_use rather than btr_referenced_p.
9741 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9743 * alias.c: Include rtl-iter.h.
9744 (refs_newer_value_cb): Delete.
9745 (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9747 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
9749 * rtl-iter.h: New file.
9750 * rtlanal.c: Include it.
9751 (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
9752 (generic_subrtx_iterator <T>::add_single_to_queue)
9753 (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
9754 (generic_subrtx_iterator <T>::free_array): New functions.
9755 (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
9756 (generic_subrtx_iterator <const_rtx_accessor>)
9757 (generic_subrtx_iterator <rtx_var_accessor>
9758 (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
9759 (setup_reg_subrtx_bounds): New function.
9760 (init_rtlanal): Call it.
9762 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
9765 * config/sh/sh.md (ashlsi3): Handle negative shift count for
9767 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
9769 2014-08-27 Richard Sandiford <rdsandiford@googlemail.com>
9771 * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
9773 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9775 * rtl.h (JUMP_LABEL_AS_INSN): New.
9777 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9779 * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
9781 (alloc_EXPR_LIST): Strengthen return type from rtx to
9783 (remove_free_EXPR_LIST_node): Likewise for param.
9784 * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
9785 from rtx to rtx_expr_list *.
9786 * sched-int.h (struct deps_desc): Strengthen fields
9787 "pending_read_mems" and "pending_write_mems" from rtx to
9790 * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
9791 rtx to rtx_expr_list *.
9792 * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
9793 (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
9795 (remove_free_EXPR_LIST_node): Likewise. Strengthen local "node"
9796 from rtx to rtx_expr_list *.
9797 * loop-iv.c (simplify_using_initial_values): Strengthen local
9798 "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
9799 "pnote_next" from rtx * to rtx_expr_list **.
9800 * sched-deps.c (remove_from_both_dependence_lists): Strengthen
9801 param "exprp" from rtx * to rtx_expr_list **.
9802 (add_insn_mem_dependence): Strengthen local "mem_list" from
9803 rtx * to rtx_expr_list **. Strengthen local "mem_node" from rtx
9805 * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
9806 and local "new_mems" from rtx to rtx_expr_list *. Strengthen
9807 param "old_mems_p" from rtx * to rtx_expr_list **.
9808 * var-tracking.c (struct adjust_mem_data): Strengthen field
9809 "side_effects" from rtx to rtx_expr_list *.
9810 (adjust_insn): Replace NULL_RTX with NULL when assigning to
9812 (prepare_call_arguments): Likewise.
9814 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9816 * function.h (struct rtl_data): Strengthen field
9817 "x_stack_slot_list" from rtx to rtx_expr_list *.
9819 * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
9820 when assigning to stack_slot_list.
9822 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9824 * function.h (struct rtl_data): Strengthen field
9825 x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
9826 * rtl.h (remove_node_from_expr_list): Strengthen second param from
9827 rtx * to rtx_expr_list **.
9829 * cfgbuild.c (make_edges): In loop over
9830 nonlocal_goto_handler_labels, strengthen local "x" from rtx to
9831 rtx_expr_list *, and use methods of the latter class to clarify
9833 * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
9834 rtx_expr_list *, and use methods of the latter class to clarify
9836 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9837 * reload1.c (set_initial_label_offsets): Likewise for local "x".
9838 * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
9839 from rtx * to rtx_expr_list **. Strengthen local "temp" from rtx
9840 to rtx_expr_list *. Use methods of the latter class to clarify
9843 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9845 * function.h (struct expr_status): Strengthen field
9846 "x_forced_labels" from rtx to rtx_expr_list *.
9848 * cfgbuild.c (make_edges): Split local "x" into two locals,
9849 strengthening one from rtx to rtx_expr_list *, and using methods
9851 * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
9852 loop over forced_labels, introduce strengthen it from rtx to
9853 rtx_expr_list *, using methods to clarify the code.
9854 * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
9855 to rtx_expr_list *, using methods of said class to clarify the
9857 * reload1.c (set_initial_label_offsets): Split local "x" into two
9858 per-loop variables, strengthening the first from rtx to
9859 rtx_expr_list * and using methods.
9861 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9863 * coretypes.h (class rtx_expr_list): Add forward declaration.
9864 * emit-rtl.c (gen_rtx_EXPR_LIST): New.
9865 * gengenrtl.c (special_rtx): Add EXPR_LIST.
9866 * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
9867 invariant: GET_CODE (X) == EXPR_LIST.
9868 (is_a_helper <rtx_expr_list *>::test): New.
9869 (rtx_expr_list::next): New.
9870 (rtx_expr_list::element): New.
9871 (gen_rtx_EXPR_LIST): New.
9873 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9875 * varasm.c (mark_constants): Convert a GET_CODE check into a
9876 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9877 Use methods of rtx_sequence to clarify the code.
9879 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9881 * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
9882 local "seq" via a checked cast, and use methods of rtx_sequence
9883 to simplify the code.
9885 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9887 * resource.c (mark_referenced_resources): Strengthen local
9888 "sequence" from rtx to rtx_sequence *, adding a checked cast, and
9889 using methods of rtx_sequence to clarify the code.
9890 (find_dead_or_set_registers): Within the switch statement, convert
9891 a GET_CODE check to a dyn_cast, introducing local "seq". Within
9892 the JUMP_P handling, introduce another local "seq", adding a
9893 checked cast to rtx_sequence *. In both cases, use methods of
9894 rtx_sequence to clarify the code.
9895 (mark_set_resources): Within SEQUENCE case, introduce local "seq"
9896 via a checked cast, and use methods of rtx_sequence to simplify
9899 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9901 * reorg.c (redundant_insn): In two places in the function, replace
9902 a check of GET_CODE with a dyn_cast, introducing local "seq", and
9903 usings methods of rtx_sequence to clarify the code.
9905 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9907 * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
9908 local "seq" with a checked cast, and use methods of rtx_sequence
9909 to clarify the code.
9911 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9913 * function.c (contains): Introduce local "seq" for PATTERN (insn),
9914 with a checked cast, in the region for where we know it's a
9915 SEQUENCE. Use methods of rtx_sequence.
9917 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9919 * final.c (get_attr_length_1): Replace GET_CODE check with a
9920 dyn_cast, introducing local "seq" and the use of methods of
9922 (shorten_branches): Likewise, introducing local "body_seq".
9923 Strengthen local "inner_insn" from rtx to rtx_insn *.
9924 (reemit_insn_block_notes): Replace GET_CODE check with a
9925 dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
9926 Use methods of rtx_sequence.
9927 (final_scan_insn): Likewise, introducing local "seq" for when
9928 "body" is known to be a SEQUENCE, using its methods.
9930 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9932 * except.c (can_throw_external): Strengthen local "seq" from rtx
9933 to rtx_sequence *. Use methods of rtx_sequence.
9934 (insn_nothrow_p): Likewise.
9936 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9938 * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
9939 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9940 Use methods of rtx_sequence.
9941 (scan_trace): Likewise for local "pat".
9943 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9945 * coretypes.h (class rtx_sequence): Add forward declaration.
9946 * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
9947 invariant: GET_CODE (X) == SEQUENCE.
9948 (is_a_helper <rtx_sequence *>::test): New.
9949 (is_a_helper <const rtx_sequence *>::test): New.
9950 (rtx_sequence::len): New.
9951 (rtx_sequence::element): New.
9952 (rtx_sequence::insn): New.
9954 2014-08-27 David Malcolm <dmalcolm@redhat.com>
9956 * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
9958 (alloc_INSN_LIST): Strengthen return type from rtx to
9960 (copy_INSN_LIST): Likewise for return type and param.
9961 (concat_INSN_LIST): Likewise for both params and return type.
9962 (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
9963 rtx_insn *. Strengthen second param from rtx * to rtx_insn_list **.
9964 (remove_free_INSN_LIST_node): Strenghten return type from rtx to
9965 rtx_insn *. Strengthen param from rtx * to rtx_insn_list **.
9967 * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
9968 "implicit_sets", "control_uses", "clobbers" from rtx to
9970 (struct deps_desc): Likewise for fields "pending_read_insns",
9971 "pending_write_insns", "pending_jump_insns",
9972 "last_pending_memory_flush", "last_function_call",
9973 "last_function_call_may_noreturn", "sched_before_next_call",
9974 "sched_before_next_jump".
9975 (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
9976 (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
9978 * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
9979 from rtx to rtx_insn_list *.
9980 (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
9983 * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
9984 to rtx_insn_list **.
9985 (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
9987 (queue_insn): Likewise for local "link".
9988 (struct haifa_saved_data): Strengthen field "insn_queue" from
9989 rtx * to rtx_insn_list **.
9990 (save_backtrack_point): Update allocation of save->insn_queue to
9991 reflect the strengthening of elements from rtx to rtx_insn_list *.
9992 (queue_to_ready): Strengthen local "link" from rtx to
9993 rtx_insn_list *; use methods "next" and "insn" when traversing the
9995 (early_queue_to_ready): Likewise for locals "link", "next_link",
9997 (schedule_block): Update allocation of insn_queue to reflect the
9998 strengthening of elements from rtx to rtx_insn_list *. Strengthen
9999 local "link" from rtx to rtx_insn_list *, and use methods when
10001 (add_to_speculative_block): Strengthen locals "twins" and
10002 "next_node" from rtx to rtx_insn_list *, and use methods when
10003 working with them. Strengthen local "twin" from rtx to
10004 rtx_insn *, eliminating a checked cast.
10005 (fix_recovery_deps): Strengthen locals "ready_list" and "link"
10006 from rtx to rtx_insn_list *, and use methods when working with
10009 * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
10010 from rtx to rtx_insn_list *, adding a checked cast.
10011 (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
10013 (copy_INSN_LIST): Strengthen return type and locals "new_queue",
10014 "newlink" from rtx to rtx_insn_list *. Strengthen local
10015 "pqueue" from rtx * to rtx_insn_list **. Strengthen local "x"
10016 from rtx to rtx_insn *.
10017 (concat_INSN_LIST): Strengthen return type and local "new_rtx",
10018 from rtx to rtx_insn_list *. Use methods of the latter class.
10019 (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
10020 rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
10021 (remove_free_INSN_LIST_node): Strengthen return type and local
10022 "elem" from rtx to rtx_insn *. Strenghten param "listp" from
10023 rtx * to rtx_insn_list **. Strengthen local "node" from rtx to
10024 rtx_insn_list *, using "insn" method.
10026 * sched-deps.c (add_dependence_list): Strengthen param "list"
10027 from rtx to rtx_insn_list *, and use methods when working with it.
10028 (add_dependence_list_and_free): Strengthen param "listp" from
10029 rtx * to rtx_insn_list **.
10030 (remove_from_dependence_list): Strenghten param "listp" from rtx *
10031 to rtx_insn_list **, and use methods when working with *listp.
10032 (remove_from_both_dependence_lists): Strengthen param "listp" from
10033 rtx * to rtx_insn_list **
10034 (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
10035 to rtx_insn_list **. Eliminate local "link", in favor of two new
10036 locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
10038 (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
10039 by introducing local "cond_deps".
10040 (remove_from_deps): Strengthen param "insn" from rtx to
10043 * sched-rgn.c (concat_insn_mem_list): Strengthen param
10044 "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
10045 Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
10046 Use methods of rtx_insn_list.
10048 * store-motion.c (struct st_expr): Strengthen fields
10049 "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
10050 (st_expr_entry): Replace NULL_RTX with NULL when dealing with
10052 (find_moveable_store): Split out "tmp" into multiple more-tightly
10053 scoped locals. Use methods of rtx_insn_list *.
10054 (compute_store_table): Strengthen local "tmp" from rtx to
10055 rtx_insn *. Use methods of rtx_insn_list *.
10057 2014-08-27 David Malcolm <dmalcolm@redhat.com>
10059 * coretypes.h (class rtx_insn_list): Add forward declaration.
10060 * rtl.h (class rtx_insn_list): New subclass of rtx_def
10061 (is_a_helper <rtx_insn_list *>::test): New.
10062 (rtx_insn_list::next): New.
10063 (rtx_insn_list::insn): New.
10064 (gen_rtx_INSN_LIST): Add prototype.
10065 * emit-rtl.c (gen_rtx_INSN_LIST): New.
10066 * gengenrtl.c (special_rtx): Add INSN_LIST.
10068 2014-08-27 David Malcolm <dmalcolm@redhat.com>
10070 * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
10071 "prev" from rtx to rtx_insn *.
10073 2014-08-27 David Malcolm <dmalcolm@redhat.com>
10075 * rtl.h (INSN_UID): Convert from a macro to a pair of inline
10076 functions. Require merely an rtx for now, not an rtx_insn *.
10077 (BLOCK_FOR_INSN): Likewise.
10078 (INSN_LOCATION): Likewise.
10079 (INSN_HAS_LOCATION): Convert from a macro to an inline function.
10081 2014-08-27 David Malcolm <dmalcolm@redhat.com>
10083 * rtl.h (PATTERN): Convert this macro into a pair of inline
10084 functions, for now, requiring const_rtx and rtx.
10086 2014-08-27 David Malcolm <dmalcolm@redhat.com>
10088 * target.def (unwind_emit): Strengthen param "insn" from rtx to
10090 (final_postscan_insn): Likewise.
10091 (adjust_cost): Likewise.
10092 (adjust_priority): Likewise.
10093 (variable_issue): Likewise.
10094 (macro_fusion_pair_p): Likewise.
10095 (dfa_post_cycle_insn): Likewise.
10096 (first_cycle_multipass_dfa_lookahead_guard): Likewise.
10097 (first_cycle_multipass_issue): Likewise.
10098 (dfa_new_cycle): Likewise.
10099 (adjust_cost_2): Likewise for params "insn" and "dep_insn".
10100 (speculate_insn): Likewise for param "insn".
10101 (gen_spec_check): Likewise for params "insn" and "label".
10102 (get_insn_spec_ds): Likewise for param "insn".
10103 (get_insn_checked_ds): Likewise.
10104 (dispatch_do): Likewise.
10105 (dispatch): Likewise.
10106 (cannot_copy_insn_p): Likewise.
10107 (invalid_within_doloop): Likewise.
10108 (legitimate_combined_insn): Likewise.
10109 (needed): Likewise.
10112 * doc/tm.texi: Automatically updated to reflect changes to
10115 * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
10117 (schedule_block): Likewise.
10118 (sched_init): Likewise.
10119 (sched_speculate_insn): Strengthen param "insn" from rtx to
10121 (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
10123 * hooks.c (hook_bool_rtx_true): Rename to...
10124 hook_bool_rtx_insn_true): ...this, and strengthen first param from
10126 (hook_constcharptr_const_rtx_null): Rename to...
10127 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
10128 first param from const_rtx to const rtx_insn *.
10129 (hook_bool_rtx_int_false): Rename to...
10130 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
10131 param from rtx to rtx_insn *.
10132 (hook_void_rtx_int): Rename to...
10133 (hook_void_rtx_insn_int): ...this, and strengthen first param from
10136 * hooks.h (hook_bool_rtx_true): Rename to...
10137 (hook_bool_rtx_insn_true): ...this, and strengthen first param from
10139 (hook_bool_rtx_int_false): Rename to...
10140 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
10141 param from rtx to rtx_insn *.
10142 (hook_void_rtx_int): Rename to...
10143 (hook_void_rtx_insn_int): ...this, and strengthen first param from
10145 (hook_constcharptr_const_rtx_null): Rename to...
10146 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
10147 first param from const_rtx to const rtx_insn *.
10149 * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
10150 and local "prev" from rtx to rtx_insn *.
10152 * sched-int.h (sched_speculate_insn): Strengthen first param from
10155 * sel-sched.c (create_speculation_check): Likewise for local "label".
10156 * targhooks.c (default_invalid_within_doloop): Strengthen param
10157 "insn" from const_rtx to const rtx_insn *.
10158 * targhooks.h (default_invalid_within_doloop): Strengthen param
10159 from const_rtx to const rtx_insn *.
10161 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
10162 (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
10164 * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
10166 (arc_invalid_within_doloop): Likewise, with const.
10168 * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
10169 (arm_cannot_copy_insn_p): Likewise for param "insn".
10170 (arm_unwind_emit): Likewise.
10172 * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
10175 * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
10176 (c6x_variable_issue): Likewise. Removed now-redundant checked
10178 (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
10180 * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
10181 Likewise for param "insn".
10182 (epiphany_mode_after): Likewise.
10183 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
10184 params "insn", "dep_insn".
10185 (epiphany_mode_needed): Likewise for param "insn".
10186 (epiphany_mode_after): Likewise.
10188 * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
10189 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
10190 (ix86_avx_u128_mode_needed): Likewise.
10191 (ix86_i387_mode_needed): Likewise.
10192 (ix86_mode_needed): Likewise.
10193 (ix86_avx_u128_mode_after): Likewise.
10194 (ix86_mode_after): Likewise.
10195 (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
10196 (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
10197 (ix86_adjust_priority): Likewise for param "insn".
10198 (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
10199 (do_dispatch): Likewise.
10200 (has_dispatch): Likewise.
10201 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
10203 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
10204 reflect renaming of default hook implementation from
10205 hook_constcharptr_const_rtx_null to
10206 hook_constcharptr_const_rtx_insn_null.
10207 (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
10209 (ia64_variable_issue): Likewise for param "insn".
10210 (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
10211 (ia64_dfa_new_cycle): Likewise.
10212 (ia64_get_insn_spec_ds): Likewise.
10213 (ia64_get_insn_checked_ds): Likewise.
10214 (ia64_speculate_insn): Likewise.
10215 (ia64_gen_spec_check): Likewise for params "insn", "label".
10216 (ia64_asm_unwind_emit): Likewise for param "insn".
10218 * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
10220 * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
10221 "insn", "def_insn".
10222 (m68k_sched_variable_issue): Likewise for param "insn".
10224 * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
10227 * config/microblaze/microblaze.c (microblaze_adjust_cost):
10228 Likewise for params "insn", "dep".
10230 * config/mips/mips.c (mips_adjust_cost): Likewise.
10231 (mips_variable_issue): Likewise for param "insn".
10232 (mips_final_postscan_insn): Likewise.
10234 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
10235 for params "insn", "dep".
10237 * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
10239 (pa_adjust_priority): Likewise for param "insn".
10241 * config/picochip/picochip.c (picochip_sched_adjust_cost):
10242 Likewise for params "insn", "dep_insn".
10244 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
10246 (rs6000_variable_issue): Likewise.
10247 (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
10248 (rs6000_debug_adjust_cost): Likewise.
10249 (rs6000_adjust_priority): Likewise for param "insn".
10250 (rs6000_use_sched_lookahead_guard): Likewise.
10251 (get_next_active_insn): Likewise for return type and both params.
10252 (redefine_groups): Likewise for params "prev_head_insn", "tail"
10253 and locals "insn", "next_insn".
10254 (pad_groups): Likewise.
10256 * config/s390/s390.c (s390_adjust_priority): Likewise for param
10258 (s390_cannot_copy_insn_p): Likewise.
10259 (s390_sched_variable_issue): Likewise for third param, eliminating
10261 (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
10262 default hook implementation from hook_constcharptr_const_rtx_null
10263 to hook_constcharptr_const_rtx_insn_null.
10265 * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
10266 from rtx to rtx_insn *.
10267 (sh_adjust_cost): Likewise for params "insn", "dep_insn".
10268 (sh_variable_issue): Likewise for param "insn".
10269 (sh_dfa_new_cycle): Likewise.
10270 (sh_mode_needed): Likewise.
10271 (sh_mode_after): Likewise.
10273 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
10274 params "insn", "dep_insn".
10275 (hypersparc_adjust_cost): Likewise.
10276 (sparc_adjust_cost): Likewise.
10278 * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
10279 param, eliminated checked cast.
10280 (spu_sched_adjust_cost): Likewise for first and third params.
10282 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
10283 params "insn" and "dep_insn" from rtx to rtx_insn *.
10285 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
10287 2014-08-27 David Malcolm <dmalcolm@redhat.com>
10289 * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
10290 (set_is_load_p): ...this, updating to work on a SET pattern rather
10292 (is_store_insn): Rename to...
10293 (set_is_store_p): ...this, updating to work on a SET pattern
10294 rather than an insn.
10295 (mn10300_adjust_sched_cost): Move call to get_attr_timings from
10296 top of function to where it is needed. Rewrite the bogus
10297 condition that checks for "insn" and "dep" being PARALLEL to
10298 instead use single_set, introducing locals "insn_set" and
10299 "dep_set". Given that we only ever returned "cost" for a non-pair
10300 of SETs, bail out early if we don't have a pair of SET.
10301 Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
10302 use the new locals "insn_set" and "dep_set", and update calls to
10303 is_load_insn and is_store_insn to be calls to set_is_load_p and
10306 2014-08-27 Guozhi Wei <carrot@google.com>
10309 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
10310 amount before using it.
10312 2014-08-27 Richard Biener <rguenther@suse.de>
10314 * gimple-fold.c (get_maxval_strlen): Add overload wrapping
10315 get_maxval_strlen inside a more useful API.
10316 (gimple_fold_builtin_with_strlen): Remove and fold into ...
10317 (gimple_fold_builtin): ... caller.
10318 (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
10319 gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
10320 gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
10321 gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
10322 gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
10323 gimple_fold_builtin_sprintf): Adjust to compute maxval
10326 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
10329 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
10331 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
10332 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10333 Anna Tikhonova <anna.tikhonova@intel.com>
10334 Ilya Tocar <ilya.tocar@intel.com>
10335 Andrey Turetskiy <andrey.turetskiy@intel.com>
10336 Ilya Verbin <ilya.verbin@intel.com>
10337 Kirill Yukhin <kirill.yukhin@intel.com>
10338 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10340 * config/i386/sse.md
10341 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
10342 Use `concat_tg_mode' attribute to determine asm register size.
10344 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
10345 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10346 Anna Tikhonova <anna.tikhonova@intel.com>
10347 Ilya Tocar <ilya.tocar@intel.com>
10348 Andrey Turetskiy <andrey.turetskiy@intel.com>
10349 Ilya Verbin <ilya.verbin@intel.com>
10350 Kirill Yukhin <kirill.yukhin@intel.com>
10351 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10353 * config/i386/sse.md
10354 (define_mode_iterator VI48_AVX512VL): New.
10355 (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
10356 (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
10357 (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
10358 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10359 with VI1): Change mode iterator.
10360 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10361 with VI_ULOADSTORE_BW_AVX512VL): New.
10362 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10363 with VI_ULOADSTORE_F_AVX512VL): Ditto.
10364 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10365 with VI1): Change mode iterator.
10366 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10367 with VI_ULOADSTORE_BW_AVX512VL): New.
10368 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10369 with VI_ULOADSTORE_F_AVX512VL): Ditto.
10370 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10371 with VI1): Change mode iterator.
10372 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10373 with VI_ULOADSTORE_BW_AVX512VL): New.
10374 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10375 with VI_ULOADSTORE_BW_AVX512VL): Ditto.
10376 (define_insn "avx512f_storedqu<mode>_mask"): Delete.
10377 (define_insn "<avx512>_storedqu<mode>_mask" with
10378 VI48_AVX512VL): New.
10379 (define_insn "<avx512>_storedqu<mode>_mask" with
10380 VI12_AVX512VL): Ditto.
10382 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
10383 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10384 Anna Tikhonova <anna.tikhonova@intel.com>
10385 Ilya Tocar <ilya.tocar@intel.com>
10386 Andrey Turetskiy <andrey.turetskiy@intel.com>
10387 Ilya Verbin <ilya.verbin@intel.com>
10388 Kirill Yukhin <kirill.yukhin@intel.com>
10389 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10391 * config/i386/sse.md
10392 (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
10393 (define_mode_iterator VI48_AVX512BW): New.
10394 (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
10395 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
10396 with VI48_AVX2_48_AVX512F): New.
10397 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
10398 with VI2_AVX512VL): Ditto.
10400 2014-08-27 Richard Biener <rguenther@suse.de>
10402 PR middle-end/62239
10403 * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
10404 (fold_builtin_3): Do not fold strcat_chk here.
10405 * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
10407 (gimple_fold_builtin): Fold strcat_chk here.
10409 2014-08-26 Aldy Hernandez <aldyh@redhat.com>
10411 * dwarf2out.h (dwarf2out_decl): Remove prototype.
10412 * dwarf2out.c (dwarf2out_decl): Make static.
10414 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
10416 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
10418 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10420 * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
10421 from rtx to rtx_insn *.
10422 (cselib_lookup_from_insn): Likewise for final param.
10423 (cselib_subst_to_values_from_insn): Likewise.
10424 (cselib_add_permanent_equiv): Likewise.
10426 * cselib.c (cselib_current_insn): Likewise for this variable.
10427 (cselib_subst_to_values_from_insn): Likewise for param "insn".
10428 (cselib_lookup_from_insn): Likewise.
10429 (cselib_add_permanent_equiv): Likewise for param "insn" and local
10430 "save_cselib_current_insn".
10431 (cselib_process_insn): Replace use of NULL_RTX with NULL.
10433 * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
10434 from rtx to rtx_insn *.
10436 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10438 * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
10441 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10443 * df.h (df_dump_insn_problem_function): Strengthen first param of
10444 this callback from const_rtx to const rtx_insn *.
10445 (struct df_insn_info): Strengthen field "insn" from rtx to
10447 (DF_REF_INSN): Eliminate this function, reinstating the older
10449 (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
10450 (df_reg_defined): Likewise.
10451 (df_find_use): Likewise.
10452 (df_reg_used): Likewise.
10453 (df_dump_insn_top): Strengthen param 1 from const_rtx to
10455 (df_dump_insn_bottom): Likewise.
10456 (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
10457 (df_insn_debug_regno): Likewise.
10458 (debug_df_insn): Likewise.
10459 (df_rd_simulate_one_insn): Likewise for param 2.
10460 (df_word_lr_simulate_defs): Likewise for param 1.
10461 (df_word_lr_simulate_uses): Likewise.
10462 (df_md_simulate_one_insn): Likewise for param 2.
10463 (df_simulate_find_noclobber_defs): Likewise for param 1.
10464 (df_simulate_find_defs): Likewise.
10465 (df_simulate_defs): Likewise.
10466 (df_simulate_uses): Likewise.
10467 (df_simulate_one_insn_backwards): Likewise for param 2.
10468 (df_simulate_one_insn_forwards): Likewise.
10469 (df_uses_create): Likewise for param 2.
10470 (df_insn_create_insn_record): Likewise for param 1.
10471 (df_insn_delete): Likewise.
10472 (df_insn_rescan): Likewise.
10473 (df_insn_rescan_debug_internal): Likewise.
10474 (df_insn_change_bb): Likewise.
10475 (df_notes_rescan): Likewise.
10476 * rtl.h (remove_death): Likewise for param 2.
10477 (print_rtl_with_bb): Strengthen param 2 from const_rtx to
10479 * sched-int.h (reemit_notes): Strengthen param from rtx to
10481 * valtrack.h (propagate_for_debug): Likewise for param 1.
10483 * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
10484 local "tmp_rtx" from const_rtx to const rtx_insn *.
10485 * combine.c (remove_death): Strengthen param "insn" from rtx to
10487 (move_deaths): Likewise for local "where_dead".
10488 * cse.c (delete_trivially_dead_insns): Introduce local
10489 "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
10490 * df-core.c (df_find_def): Strengthen param "insn" from rtx to
10492 (df_reg_defined): Likewise.
10493 (df_find_use): Likewise.
10494 (df_reg_used): Likewise.
10495 (df_dump_insn_problem_data): Strengthen param "insn" from
10496 const_rtx to const rtx_insn *.
10497 (df_dump_insn_top): Likewise.
10498 (df_dump_insn_bottom): Likewise.
10499 (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
10500 (df_insn_debug_regno): Likewise.
10501 (debug_df_insn): Likewise.
10502 (DF_REF_INSN): Delete.
10503 * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
10504 from rtx to rtx_insn *.
10505 (df_chain_insn_top_dump): Strengthen param "insn" from
10506 const_rtx to const rtx_insn *.
10507 (df_chain_insn_bottom_dump): Likewise.
10508 (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
10510 (df_word_lr_simulate_uses): Likewise.
10511 (df_print_note): Likewise.
10512 (df_remove_dead_and_unused_notes): Likewise.
10513 (df_set_unused_notes_for_mw): Likewise.
10514 (df_set_dead_notes_for_mw): Likewise.
10515 (df_create_unused_note): Likewise.
10516 (df_simulate_find_defs): Likewise.
10517 (df_simulate_find_uses): Likewise.
10518 (df_simulate_find_noclobber_defs): Likewise.
10519 (df_simulate_defs): Likewise.
10520 (df_simulate_uses): Likewise.
10521 (df_simulate_one_insn_backwards): Likewise.
10522 (df_simulate_one_insn_forwards): Likewise.
10523 (df_md_simulate_one_insn): Likewise.
10524 * df-scan.c (df_uses_create): Likewise.
10525 (df_insn_create_insn_record): Likewise.
10526 (df_insn_delete): Likewise.
10527 (df_insn_rescan): Likewise.
10528 (df_insn_rescan_debug_internal): Likewise.
10529 (df_insn_change_bb): Likewise.
10530 (df_notes_rescan): Likewise.
10531 (df_refs_add_to_chains): Likewise.
10532 (df_insn_refs_verify): Likewise.
10533 * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
10534 when invoking df_insn_delete.
10535 (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
10536 (set_unique_reg_note): Add checked cast.
10537 * final.c (cleanup_subreg_operands): Likewise.
10538 * gcse.c (update_ld_motion_stores): Likewise, strengthening local
10539 "insn" from rtx to rtx_insn *.
10540 * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
10541 "last" from rtx to rtx_insn *.
10542 * ira-emit.c (change_regs_in_insn): New function.
10543 (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
10544 Invoke change_regs_in_insn rather than change_regs.
10545 * ira.c (update_equiv_regs): Strengthen locals "insn",
10546 "init_insn", "new_insn" from rtx to rtx_insn *. Invoke
10547 for_each_rtx_in_insn rather than for_each_rtx.
10548 * recog.c (confirm_change_group): Add checked casts.
10549 (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
10551 (peep2_fill_buffer): Add checked cast.
10552 * rtlanal.c (remove_note): Likewise.
10553 * valtrack.c (propagate_for_debug): Strengthen param "insn" and
10554 locals "next" "end" from rtx to rtx_insn *.
10556 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10558 * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
10560 (struct reg_use_data): Likewise for field "insn".
10561 (insn_cost): Likewise for param.
10562 (real_insn_for_shadow): Likewise for return type and param.
10563 (increase_insn_priority): Likewise for param 1.
10564 (debug_dependencies): Likewise for both params.
10566 * haifa-sched.c (insn_delay): Likewise for param "insn".
10567 (real_insn_for_shadow): Likewise for return type and param "insn".
10568 (update_insn_after_change): Likewise for param "insn".
10569 (recompute_todo_spec): Likewise for param "next" and locals "pro",
10571 (insn_cost): Likewise for param "insn".
10572 (increase_insn_priority): Likewise.
10573 (calculate_reg_deaths): Likewise.
10574 (setup_insn_reg_pressure_info): Likewise.
10575 (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
10576 (model_index): Strengthen param "insn" from rtx to rtx_insn *.
10577 (model_recompute): Likewise.
10578 (must_restore_pattern_p): Likewise for param "next".
10579 (model_excess_cost): Likewise for param "insn".
10580 (queue_remove): Likewise.
10581 (adjust_priority): Likewise for param "prev".
10582 (update_register_pressure): Likewise for param "insn".
10583 (setup_insn_max_reg_pressure): Likewise for local "insn".
10584 (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
10585 (model_add_to_schedule): Likewise.
10586 (model_reset_queue_indices): Likewise for local "insn".
10587 (unschedule_insns_until): Strengthen local "recompute_vec" from
10588 auto_vec<rtx> to auto_vec<rtx_insn *>. Strengthen locals "last",
10589 "con" from rtx to rtx_insn *.
10590 (restore_last_backtrack_point): Likewise for both locals "x". Add
10592 (estimate_insn_tick): Likewise for param "insn".
10593 (commit_schedule): Likewise for params "prev_head", "tail" and
10595 (verify_shadows): Likewise for locals "i1", "i2".
10596 (dump_insn_stream): Likewise for params "head", "tail" and locals
10597 "next_tail", "insn".
10598 (schedule_block): Likewise for locals "insn", "x". Add a checked
10600 (fix_inter_tick): Likewise for params "head", "tail".
10601 (create_check_block_twin): Likewise for local "jump".
10602 (haifa_change_pattern): Likewise for param "insn".
10603 (haifa_speculate_insn): Likewise.
10604 (dump_new_block_header): Likewise for params "head", "tail".
10605 (fix_jump_move): Likewise for param "jump".
10606 (move_block_after_check): Likewise.
10607 (sched_init_insn_luid): Likewise for param "insn".
10608 (sched_init_luids): Likewise for local "insn".
10609 (insn_luid): Likewise for param "insn".
10610 (init_h_i_d): Likewise.
10611 (haifa_init_h_i_d): Likewise for local "insn".
10612 (haifa_init_insn): Likewise for param "insn".
10613 * sched-deps.c (add_dependence): Likewise for local "real_pro",
10615 (create_insn_reg_use): Likewise for param "insn".
10616 (setup_insn_reg_uses): Likewise. Add a checked cast.
10617 * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
10618 "tail" from rtx to rtx_insn *.
10619 * sched-rgn.c (void debug_dependencies): Likewise, also for locals
10620 "insn", "next_tail".
10622 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10624 * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
10625 from rtx to rtx_insn *.
10626 (model_add_to_schedule): Likewise for locals "start", "end",
10629 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10631 * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
10633 * cfgrtl.c (duplicate_insn_chain): Likewise for params "from",
10634 "to" and locals "insn", "next", "copy". Remove now-redundant
10637 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10639 * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
10640 rtx_insn * and param 4 from rtx * to rtx_insn **.
10641 (get_condition): Strengthen param 1 from rtx to rtx_insn * and
10642 param 2 from rtx * to rtx_insn **.
10644 * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
10645 rtx_insn * and final param from rtx * to rtx_insn **.
10647 * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
10648 from rtx to rtx_insn *.
10649 (try_head_merge_bb): Likewise for both locals named "move_upto".
10650 * df-problems.c (can_move_insns_across): Likewise for params
10651 "from", "to", "across_from", "across_to" and locals "insn",
10652 "next", "max_to". Strengthen param "pmove_upto" from rtx * to
10654 * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
10655 from rtx to rtx_insn *.
10656 (noce_get_alt_condition): Strengthen param "earliest" from rtx *
10657 to rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
10658 (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
10660 (noce_try_abs): Likewise.
10661 (noce_get_condition): Likewise for param "jump". Strengthen param
10662 "earliest" from rtx * to rtx_insn **.
10663 (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
10665 (find_cond_trap): Likewise.
10666 (dead_or_predicable): Likewise for local "earliest".
10667 * loop-iv.c (check_simple_exit): Likewise for local "at". Add
10669 * rtlanal.c (canonicalize_condition): Likewise for param "insn"
10670 and local "prev". Strengthen param "earliest" from rtx * to
10672 (get_condition): Strengthen param "jump" from rtx to rtx_insn *
10673 Strengthen param "earliest" from rtx * to rtx_insn **.
10675 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10677 * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
10678 "to" and local "insn" from rtx to rtx_insn *.
10680 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10682 * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
10683 from rtx to rtx_insn *.
10684 (need_nop_to_preserve_insn_bb): Likewise for param "insn".
10685 (code_motion_path_driver): Likewise for local "last_insn".
10686 (simplify_changed_insns): Likewise for local "insn".
10688 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10690 * rtl.h (push_to_sequence): Strengthen param from rtx to
10692 (push_to_sequence2): Likewise for both params.
10693 (delete_insns_since): Likewise for param.
10694 (reorder_insns_nobb): Likewise for all three params.
10695 (set_new_first_and_last_insn): Likewise for both params.
10697 * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
10698 rtx_insn *. Remove now-redundant cast.
10699 (set_last_insn): Likewise.
10701 * builtins.c (expand_builtin_return): Strengthen local
10702 "call_fusage" from rtx to rtx_insn *.
10703 * cfgrtl.c (create_basic_block_structure): Likewise for local
10705 * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
10706 "first", "last" and local "insn".
10707 (delete_insns_since): Likewise for param "from".
10708 (reorder_insns_nobb): Likewise for params "from", "to", "after"
10710 (push_to_sequence): Likewise for param "first" and local "last".
10711 (push_to_sequence2): Likewise for params "first" and "last".
10712 * lra.c (emit_add3_insn): Likewise for local "last".
10713 (lra_emit_add): Likewise.
10714 * lra-constraints.c (base_to_reg): Likewise for locals "insn",
10716 (process_address_1): Likewise for locals "insn", last".
10717 * modulo-sched.c (ps_first_note): Likewise for return type.
10718 * optabs.c (expand_binop_directly): Likewise for param "last".
10720 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10722 * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
10724 * emit-rtl.c (get_last_insn_anywhere): Likewise.
10726 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10728 * function.h (struct sequence_stack): Strengthen fields "first"
10729 and "last" from rtx to rtx_insn *.
10730 (struct emit_status): Likewise for fields "x_first_insn" and
10733 * emit-rtl.h (get_insns): Remove now-redundant checked cast.
10734 (set_first_insn): Add checked cast.
10735 (get_last_insn): Remove now-redundant checked cast.
10736 (set_last_insn): Add checked cast.
10738 * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
10739 "saved_first" and "saved_last" from rtx to rtx_insn *.
10741 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10743 * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
10744 (unlink_insn_chain): Strengthen both params from rtx to
10747 * cfgrtl.c (cfg_layout_function_header): Likewise for this
10749 (unlink_insn_chain): Likewise for params "first" and "last".
10750 Remove now-redundant checked cast.
10751 (record_effective_endpoints): Replace use of NULL_RTX with NULL.
10752 (fixup_reorder_chain): Strengthen local "insn" from rtx to
10754 * emit-rtl.c (link_insn_into_chain): Likewise for all three
10756 (add_insn): Likewise for param "insn" and local "prev".
10757 (add_insn_after_nobb): Likewise for both params and local "next".
10758 (add_insn_before_nobb): Likewise for both params and local "prev".
10759 (add_insn_after): Rename param "after" to "uncast_after",
10760 introducing local "after" with another checked cast.
10761 (add_insn_before): Rename params "insn" and "before", giving them
10762 "uncast_" prefixes, adding the old names back using checked casts.
10763 (emit_note_after): Likewise for param "after".
10764 (emit_note_before): Likewise for param "before".
10765 (emit_label): Add a checked cast.
10767 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10769 * cselib.h (cselib_record_sets_hook): Strengthen initial param
10770 "insn" from rtx to rtx_insn *.
10772 * cselib.c (cselib_record_sets_hook): Likewise.
10774 * var-tracking.c (add_with_sets): Likewise, renaming back from
10775 "uncast_insn" to "insn" and eliminating the checked cast from rtx
10778 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10780 * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
10781 and "header_" from rtx to rtx_insn *.
10782 (struct basic_block_d): Likewise for field "head_" within "x"
10783 field of union basic_block_il_dependent.
10784 (BB_HEAD): Drop function...
10785 (SET_BB_HEAD): ...and this function in favor of...
10786 (BB_HEAD): ...reinstate macro.
10787 (BB_END): Drop function...
10788 (SET_BB_END): ...and this function in favor of...
10789 (BB_END): ...reinstate macro.
10790 (BB_HEADER): Drop function...
10791 (SET_BB_HEADER): ...and this function in favor of...
10792 (BB_HEADER): ...reinstate macro.
10794 * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
10795 (fix_crossing_unconditional_branches): Likewise.
10796 * caller-save.c (save_call_clobbered_regs): Likewise.
10797 (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
10798 * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
10799 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10800 (merge_blocks_move_successor_nojumps): Likewise.
10801 (outgoing_edges_match): Update use of for_each_rtx to
10802 for_each_rtx_in_insn.
10803 * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
10804 (expand_gimple_cond): Likewise.
10805 (expand_gimple_tailcall): Likewise.
10806 (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
10808 (construct_exit_block): Drop use of SET_BB_END.
10809 * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
10811 (delete_insn): Rename param "insn" to "uncast_insn", introducing
10812 a new local "insn" with a checked cast to rtx_insn *. Drop use of
10813 SET_BB_HEAD and SET_BB_END.
10814 (create_basic_block_structure): Drop use of SET_BB_HEAD and
10816 (rtl_delete_block): Drop use of SET_BB_HEAD.
10817 (rtl_split_block): Drop use of SET_BB_END.
10818 (emit_nop_for_unique_locus_between): Likewise.
10819 (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
10820 (block_label): Drop use of SET_BB_HEAD.
10821 (fixup_abnormal_edges): Drop use of SET_BB_END.
10822 (record_effective_endpoints): Drop use of SET_BB_HEADER.
10823 (relink_block_chain): Likewise.
10824 (fixup_reorder_chain): Drop use of SET_BB_END.
10825 (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
10826 (cfg_layout_delete_block): Strengthen local "to" from rtx * to
10827 rtx_insn **. Drop use of SET_BB_HEADER.
10828 (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
10830 (BB_HEAD): Delete this function.
10831 (SET_BB_HEAD): Likewise.
10832 (BB_END): Likewise.
10833 (SET_BB_END): Likewise.
10834 (BB_HEADER): Likewise.
10835 (SET_BB_HEADER): Likewise.
10836 * emit-rtl.c (add_insn_after): Rename param "insn" to
10837 "uncast_insn", adding a new local "insn" and a checked cast to
10838 rtx_insn *. Drop use of SET_BB_END.
10839 (remove_insn): Strengthen locals "next" and "prev" from rtx to
10840 rtx_insn *. Drop use of SET_BB_HEAD and SET_BB_END.
10841 (reorder_insns): Drop use of SET_BB_END.
10842 (emit_insn_after_1): Strengthen param "first" and locals "last",
10843 "after_after" from rtx to rtx_insn *. Drop use of SET_BB_END.
10844 (emit_pattern_after_noloc): Add checked cast.
10845 * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
10846 (restore_other_notes): Likewise.
10847 (move_insn): Likewise.
10848 (sched_extend_bb): Likewise.
10849 (fix_jump_move): Likewise.
10850 * ifcvt.c (noce_process_if_block): Likewise.
10851 (dead_or_predicable): Likewise.
10852 * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
10853 * reg-stack.c (change_stack): Drop use of SET_BB_END.
10854 * sel-sched-ir.c (sel_move_insn): Likewise.
10855 * sel-sched.c (move_nop_to_previous_block): Likewise.
10857 * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
10859 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10861 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10863 * basic-block.h (create_basic_block_structure): Strengthen params
10864 1 "head" and 2 "end" from rtx to rtx_insn *.
10865 * cfgrtl.c (create_basic_block_structure): Likewise.
10866 (rtl_create_basic_block): Update casts from void * to rtx to
10867 rtx_insn *, so that we can pass them as rtx_insn * to
10868 create_basic_block_structure.
10869 * sel-sched-ir.c (sel_create_basic_block): Likewise.
10871 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10873 * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
10875 (check_for_inc_dec): Strengthen param "insn" from rtx to
10878 * cselib.h (cselib_process_insn): Likewise.
10880 * cselib.c (cselib_record_sets): Likewise.
10881 (cselib_process_insn): Likewise.
10883 * dse.c (struct insn_info): Likewise for field "insn".
10884 (check_for_inc_dec_1): Likewise for local "insn".
10885 (check_for_inc_dec): Likewise for param "insn".
10886 (scan_insn): Likewise.
10887 (dse_step1): Likewise for local "insn".
10889 * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
10890 rtx_insn **. Use for_each_rtx_in_insn rather than for_each_rtx.
10892 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10894 * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
10895 from rtx to rtx_insn *.
10896 (DEP_PRO): Delete this function and...
10897 (SET_DEP_PRO): ...this function in favor of...
10898 (DEP_PRO): ...reinstate this macro.
10899 (DEP_CON): Delete this function and...
10900 (SET_DEP_CON): ...this function in favor of...
10901 (DEP_CON): ...reinstate this old macro.
10902 (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
10903 (init_dep): Likewise.
10904 (set_priorities): Likewise for both params.
10905 (sd_copy_back_deps): Likewise for params 1 and 2.
10907 * haifa-sched.c (priority): Likewise for param "insn" and local
10909 (set_priorities): Likewise for params "head" and "tail" and local
10911 (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
10913 (add_to_speculative_block): Add a checked cast.
10914 (create_check_block_twin): Drop use of SET_DEP_CON.
10915 (add_jump_dependencies): Strengthen params "insn" and "jump" from
10918 * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
10919 Drop use of SET_DEP_PRO
10920 (init_dep): Strengthen params "pro" and "con" from rtx to
10922 (sd_copy_back_deps): Likewise for params "to" and "from". Drop
10923 use of SET_DEP_CON.
10926 (SET_DEP_PRO): Delete.
10927 (SET_DEP_CON): Delete.
10929 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10931 * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
10932 from rtx to rtx_insn *.
10933 (VINSN_INSN_RTX): Eliminate rvalue function and...
10934 (SET_VINSN_INSN): ...lvalue function in favor of...
10935 (VINSN_INSN_RTX): reinstate this old macro.
10937 * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
10938 in favor of VINSN_INSN_RTX.
10939 (VINSN_INSN_RTX): Delete this function.
10940 (SET_VINSN_INSN_RTX): Likewise.
10942 2014-08-26 David Malcolm <dmalcolm@redhat.com>
10944 * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
10945 (BND_TO): Delete this function and...
10946 (SET_BND_TO): ...this functions in favor of...
10947 (BND_TO): ...reinstating this macro.
10948 (struct _fence): Strengthen field "executing_insns" from
10949 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *. Strengthen fields
10950 "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
10951 (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
10952 and param "insn" from rtx to insn_t.
10953 (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
10956 * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
10958 (rtx_vec_t): Likewise.
10959 (struct sched_deps_info_def): Strengthen param of "start_insn"
10960 callback from rtx to rtx_insn *. Likewise for param "insn2" of
10961 "note_mem_dep" callback and first param of "note_dep" callback.
10963 * haifa-sched.c (add_to_speculative_block): Strengthen param
10964 "insn" from rtx to rtx_insn *.
10965 (clear_priorities): Likewise.
10966 (calc_priorities): Likewise for local "insn".
10968 * sched-deps.c (haifa_start_insn): Likewise for param "insn".
10969 Remove redundant checked cast.
10970 (haifa_note_mem_dep): Likewise for param "pending_insn".
10971 (haifa_note_dep): Likewise for param "elem".
10972 (note_mem_dep): Likewise for param "e".
10973 (sched_analyze_1): Add checked casts.
10974 (sched_analyze_2): Likewise.
10976 * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
10977 from rtx to rtx_insn *.
10978 (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
10979 from vec<rtx> * to vec<rtx_insn *> *.
10981 * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
10983 (flist_add): Strengthen param "executing_insns" from
10984 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10985 (advance_deps_context): Remove now-redundant checked cast.
10986 (init_fences): Replace uses of NULL_RTX with NULL.
10987 (merge_fences): Strengthen params "last_scheduled_insn" and
10988 "sched_next" from rtx to rtx_insn * and "executing_insns" from
10989 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10990 (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
10991 (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
10992 an instruction, rather than doing double-duty as a pattern.
10993 (return_nop_to_pool): Update for change of insn_t.
10994 (deps_init_id): Remove now-redundant checked cast.
10995 (struct sched_scan_info_def): Strengthen param of "init_insn"
10996 callback from rtx to insn_t.
10997 (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
10998 (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
11000 (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
11001 "end" from rtx to rtx_insn *.
11002 (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
11003 (rtx insn_rtx, bool force_unique_p)
11004 (BND_TO): Delete function.
11005 (SET_BND_TO): Delete function.
11007 * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
11009 (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
11010 (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
11012 (undo_transformations): Likewise for param "insn".
11013 (update_liveness_on_insn): Likewise.
11014 (compute_live_below_insn): Likewise for param "insn" and local
11016 (update_data_sets): Likewise for param "insn".
11017 (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
11018 (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
11019 (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
11021 (move_cond_jump): Likewise for param "insn".
11022 (move_cond_jump): Drop use of SET_BND_TO.
11023 (compute_av_set_on_boundaries): Likewise.
11024 (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
11025 (update_and_record_unavailable_insns): Strengthen local "bb_end"
11026 from rtx to rtx_insn *.
11027 (maybe_emit_renaming_copy): Likewise for param "insn".
11028 (maybe_emit_speculative_check): Likewise.
11029 (handle_emitting_transformations): Likewise.
11030 (remove_insn_from_stream): Likewise.
11031 (code_motion_process_successors): Strengthen local "succ" from rtx
11034 2014-08-26 David Malcolm <dmalcolm@redhat.com>
11036 * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
11037 ilist_t, not _xlist_t;
11038 (ILIST_INSN): Define in terms of new union field "insn".
11039 (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
11041 (struct _list_node): Add new field "insn" to the union, of type
11043 (ilist_add): Replace macro with an inline function, requiring an
11045 (ilist_remove): Define this macro directly in terms of
11046 _list_remove, rather than indirectly via _xlist_remove.
11047 (ilist_clear): Likewise, in terms of _list_clear rather than
11049 (ilist_is_in_p): Replace macro with an inline function, requiring
11051 (_list_iter_cond_insn): New function.
11052 (ilist_iter_remove): Define this macro directly in terms of
11053 _list_iter_remove, rather than indirectly via _xlist_iter_remove.
11054 (ilist_iterator): Define directly in terms of _list_iterator
11055 rather than indirectly through _xlist_iterator.
11056 (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
11057 than in terms of _FOR_EACH_X.
11058 (FOR_EACH_INSN_1): Likewise.
11060 2014-08-26 Joseph Myers <joseph@codesourcery.com>
11064 * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
11065 DECL_HARD_REGISTER and return for invalid register specifications.
11066 * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
11067 DECL_HARD_REGISTER, call expand_one_error_var.
11068 * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
11069 CC_REGNUM with non-MODE_CC modes.
11070 (arm_regno_class): Return NO_REGS for PC_REGNUM.
11072 2014-08-26 Marek Polacek <polacek@redhat.com>
11075 * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
11077 2014-08-26 Evandro Menezes <e.menezes@samsung.com>
11079 * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
11080 qi cost; add di cost.
11081 (cortexa57_addrcost_table): Likewise.
11083 2014-08-26 Marek Polacek <polacek@redhat.com>
11086 * expr.c (is_aligning_offset): Remove logical not.
11088 2014-08-26 Marek Polacek <polacek@redhat.com>
11091 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
11092 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
11094 2014-08-26 Richard Biener <rguenther@suse.de>
11096 PR tree-optimization/62175
11097 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
11098 expand possibly trapping operations.
11100 2014-08-26 David Malcolm <dmalcolm@redhat.com>
11102 * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
11103 "insn" from rtx to rtx_insn *.
11104 (permute_load): Likewise for param "insn".
11105 (permute_store): Likewise.
11106 (handle_special_swappables): Likewise for local "insn".
11107 (replace_swap_with_copy): Likewise for locals "insn" and
11109 (rs6000_analyze_swaps): Likewise for local "insn".
11111 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11113 * regrename.h (struct du_chain): Strengthen field "insn" from rtx
11116 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11118 * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
11119 "note_list" from rtx to rtx_insn *.
11120 (BB_NOTE_LIST): Replace this function and...
11121 (SET_BB_NOTE_LIST): ...this function with...
11122 (BB_NOTE_LIST): ...the former macro implementation.
11124 * sched-int.h (concat_note_lists): Strengthen param "from_end" and
11125 local "from_start" from rtx to rtx_insn *. Strengthen param
11126 "to_endp" from rtx * to rtx_insn **.
11128 * haifa-sched.c (concat_note_lists): Likewise.
11129 * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
11131 (sel_restore_notes): Likewise.
11132 (move_bb_info): Likewise.
11133 (BB_NOTE_LIST): Delete this function.
11134 (SET_BB_NOTE_LIST): Delete this function.
11135 * sel-sched.c (create_block_for_bookkeeping): Eliminate
11136 SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
11138 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11140 * target.def (reorder): Strengthen param "ready" of this DEFHOOK
11141 from rtx * to rtx_insn **.
11142 (reorder2): Likewise.
11143 (dependencies_evaluation_hook): Strengthen params "head", "tail"
11144 from rtx to rtx_insn *.
11146 * doc/tm.texi: Update mechanically for above change to target.def.
11148 * sched-int.h (note_list): Strengthen this variable from rtx to
11150 (remove_notes): Likewise for both params.
11151 (restore_other_notes): Likewise for return type and first param.
11152 (struct ready_list): Strengthen field "vec" from rtx * to
11154 (struct dep_replacement): Strenghten field "insn" from rtx to
11156 (struct deps_desc): Likewise for fields "last_debug_insn",
11158 (struct haifa_sched_info): Likewise for callback field
11159 "can_schedule_ready_p"'s param, for first param of "new_ready"
11160 callback field, for both params of "rank" callback field, for
11161 first field of "print_insn" callback field (with a const), for
11162 both params of "contributes_to_priority" callback, for param
11163 of "insn_finishes_block_p" callback, for fields "prev_head",
11164 "next_tail", "head", "tail", for first param of "add_remove_insn"
11165 callback, for first param of "begin_schedule_ready" callback, for
11166 both params of "begin_move_insn" callback, and for second param
11167 of "advance_target_bb" callback.
11168 (add_dependence): Likewise for params 1 and 2.
11169 (sched_analyze): Likewise for params 2 and 3.
11170 (deps_analyze_insn): Likewise for param 2.
11171 (ready_element): Likewise for return type.
11172 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
11173 (try_ready): Strenghten param from rtx to rtx_insn *.
11174 (sched_emit_insn): Likewise for return type.
11175 (record_delay_slot_pair): Likewise for params 1 and 2.
11176 (add_delay_dependencies): Likewise for param.
11177 (contributes_to_priority): Likewise for both params.
11178 (find_modifiable_mems): Likewise.
11180 * config/arm/arm.c (cortexa7_sched_reorder): Strengthen param
11181 "ready" from rtx * to rtx_insn **. Strengthen locals "insn",
11182 "first_older_only_insn" from rtx to rtx_insn *.
11183 (arm_sched_reorder): Strengthen param "ready" from rtx * to
11186 * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
11187 "last_scheduled_iter0" from rtx to rtx_insn *.
11188 (init_sched_state): Replace use of NULL_RTX with NULL for insn.
11189 (c6x_sched_reorder_1): 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_sched_reorder): Strengthen param "ready" from rtx * to
11194 (c6x_sched_reorder2): Strengthen param "ready" and locals
11195 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
11196 "insn" from rtx to rtx_insn *.
11197 (c6x_variable_issue): Add a checked cast when assigning from insn
11198 to ss.last_scheduled_iter0.
11199 (split_delayed_branch): Strengthen param "insn" and local "i1"
11200 from rtx to rtx_insn *.
11201 (split_delayed_nonbranch): Likewise.
11202 (undo_split_delayed_nonbranch): Likewise for local "insn".
11203 (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
11204 "entry_after", "end_packet", "head_insn", "tail_insn",
11205 "new_insns", "last_insn", "this_iter", "prev_stage_insn".
11206 Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
11207 to rtx_insn **. Remove now-redundant checked cast on last_insn,
11208 but add a checked cast on loop->start_label. Consolidate calls to
11209 avoid assigning result of gen_spkernel to "insn", now an
11212 * config/i386/i386.c (do_reorder_for_imul): Strengthen param
11213 "ready" from rtx * to rtx_insn **. Strengthen local "insn" from
11215 (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
11216 rtx_insn **. Strengthen locals "top", "next" from rtx to
11218 (ix86_sched_reorder): Strengthen param "ready" from rtx * to
11219 rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
11220 (add_parameter_dependencies): Strengthen params "call", "head" and
11221 locals "insn", "last", "first_arg" from rtx to rtx_insn *.
11222 (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
11223 (add_dependee_for_func_arg): Likewise for param "arg" and local
11225 (ix86_dependencies_evaluation_hook): Likewise for params "head",
11226 "tail" and locals "insn", "first_arg".
11228 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
11229 for params "head", "tail" and locals "insn", "next", "next_tail".
11230 (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
11231 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
11232 "insn", "lowest", "highest" from rtx to rtx_insn *.
11233 (ia64_sched_reorder): Strengthen param "ready" from rtx * to
11235 (ia64_sched_reorder2): Likewise.
11237 * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
11238 and local "insn" from rtx to rtx_insn *. Strengthen param "ready"
11239 from rtx * to rtx_insn **.
11240 (mep_move_ready_insn): Strengthen param "ready" from rtx * to
11242 (mep_print_sched_insn): Strengthen param "insn" from rtx to
11244 (mep_sched_reorder): Strengthen param "ready" from rtx * to
11245 rtx_insn **. Strengthen locals "core_insn", "cop_insn" from rtx
11248 * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
11249 from rtx * to rtx_insn **. Strengthen local "new_head" from rtx
11251 (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
11252 rtx_insn **. Strengthen local "temp" from rtx to rtx_insn *.
11253 (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
11255 (vr4130_reorder): Likewise.
11256 (mips_74k_agen_reorder): Likewise. Strengthen local "insn" from
11258 (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
11260 (mips_sched_reorder): Likewise.
11261 (mips_sched_reorder2): Likewise.
11263 * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
11265 * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
11266 Strengthen local "tmp" from rtx to rtx_insn *.
11267 (rs6000_sched_reorder2): Likewise.
11269 * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
11270 Likewise. Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
11271 (s390_sched_reorder): Strengthen param "ready" from rtx * to
11272 rtx_insn **. Strengthen local "tmp" from rtx to rtx_insn *.
11274 * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
11275 "tmp2" from rtx to rtx_insn *.
11276 (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
11277 Strengthen local "insn" from rtx to rtx_insn *.
11278 (ready_reorder): Strengthen param "ready" from rtx * to
11279 rtx_insn **. Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
11280 (sh_reorder): Strengthen param "ready" from rtx * to rtx_insn **.
11281 (sh_reorder2): Likewise.
11283 * config/spu/spu.c (spu_sched_reorder): Likewise. Strengthen
11284 local "insn" from rtx to rtx_insn *.
11286 * haifa-sched.c (note_list): Strengthen this variable from rtx to
11288 (scheduled_insns): Strengthen this variable from vec<rtx> to
11290 (set_modulo_params): Likewise for locals "i1", "i2".
11291 (record_delay_slot_pair): Likewise for params "i1", "i2".
11292 (add_delay_dependencies): Likewise for param "insn".
11293 (cond_clobbered_p): Likewise.
11294 (recompute_todo_spec): Likewise for local "prev".
11295 (last_scheduled_insn): Likewise for this variable.
11296 (nonscheduled_insns_begin): Likewise.
11297 (model_set_excess_costs): Strengthen param "insns" from rtx * to
11299 (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
11301 (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
11302 Strengthen local "insn" from rtx to rtx_insn *.
11303 (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
11304 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
11305 (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
11306 (ready_remove_first): Likewise for return type and local "t".
11307 (ready_element): Likewise for return type.
11308 (ready_remove): Likewise for return type and local "t".
11309 (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
11310 (check_clobbered_conditions): Strengthen local "x" from rtx to
11311 rtx_insn *, adding a checked cast.
11312 (schedule_insn): Likewise for param "insn".
11313 (remove_notes): Likewise for params "head", "tail" and locals
11314 "next_tail", "insn", "next".
11315 (struct haifa_saved_data): Likewise for fields
11316 "last_scheduled_insn", "nonscheduled_insns_begin".
11317 (save_backtrack_point): Update for change to field "vec" of
11319 (toggle_cancelled_flags): Strengthen local "first" from rtx * to
11321 (restore_last_backtrack_point): Likewise. Strengthen local "insn"
11322 from rtx to rtx_insn *
11323 (resolve_dependencies): Strengthen param "insn" from rtx to
11325 (restore_other_notes): Likewise for return type, for param "head"
11326 and local "note_head".
11327 (undo_all_replacements): Likewise for local "insn".
11328 (first_nonscheduled_insn): Likewise for return type and local "insn".
11329 (queue_to_ready): Likewise for local "insn", adding checked casts.
11330 (early_queue_to_ready): Likewise for local "insn".
11331 (debug_ready_list_1): Strengthen local "p" from rtx * to
11333 (move_insn): Strengthen param "insn" and local "note" from rtx to
11335 (insn_finishes_cycle_p): Likewise for param "insn".
11336 (max_issue): Likewise for local "insn".
11337 (choose_ready): Likewise. Strengthen param "insn_ptr" from rtx *
11339 (commit_schedule): Strengthen param "prev_head" and local "insn"
11340 from rtx to rtx_insn *
11341 (prune_ready_list): Likewise for local "insn".
11342 (schedule_block): Likewise for locals "prev_head", "head", "tail",
11343 "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
11344 (set_priorities): Likewise for local "prev_head".
11345 (try_ready): Likewise for param "next".
11346 (fix_tick_ready): Likewise.
11347 (change_queue_index): Likewise.
11348 (sched_extend_ready_list): Update for change to field "vec" of
11350 (generate_recovery_code): Strengthen param "insn" from rtx to
11352 (begin_speculative_block): Likewise.
11353 (create_check_block_twin): Likewise for param "insn" and locals
11354 "label", "check", "twin". Introduce local "check_pat" to avoid
11355 "check" being used as a plain rtx before being used as an insn.
11356 (fix_recovery_deps): Add a checked cast to rtx_insn * when
11357 extracting elements from ready_list.
11358 (sched_remove_insn): Strengthen param "insn" from rtx to
11360 (sched_emit_insn): Likewise for return type.
11361 (ready_remove_first_dispatch): Likewise for return type and local
11364 * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
11366 * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
11369 * sched-deps.c (add_dependence): Strengthen params "con", "pro"
11370 from rtx to rtx_insn *.
11371 (add_dependence_list): Likewise for param "insn". Add a checked
11373 (add_dependence_list_and_free): Strengthen param "insn" from rtx
11374 to rtx_insn *. Strengthen param "list_p" from rtx * to
11376 (chain_to_prev_insn): Strengthen param "insn" and locals
11377 "prec_nonnote", "i" from rtx to rtx_insn *.
11378 (flush_pending_lists): Likewise for param "insn".
11379 (cur_insn): Likewise for this variable.
11380 (haifa_start_insn): Add a checked cast.
11381 (note_dep): Strengthen param "e" from rtx to rtx_insn *.
11382 (sched_analyze_reg): Likewise for param "insn".
11383 (sched_analyze_1): Likewise.
11384 (sched_analyze_2): Likewise. Add checked casts.
11385 (sched_analyze_insn): Likewise. Also for local "prev".
11386 (deps_analyze_insn): Likewise for param "insn".
11387 (sched_analyze): Likewise for params "head", "tail" and local "insn".
11388 (add_dependence_1): Likewise for params "insn", "elem".
11389 (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
11390 (parse_add_or_inc): Likewise for param "insn".
11391 (find_inc): Likewise for local "inc_cand".
11392 (find_modifiable_mems): Likewise for params "head", "tail" and
11393 locals "insn", "next_tail".
11395 * sched-ebb.c (init_ready_list): Likewise for local "insn".
11396 (begin_schedule_ready): Likewise for param "insn".
11397 (begin_move_insn): Likewise for params "insn" and "last".
11398 (ebb_print_insn): Strengthen param "insn" from const_rtx to
11400 (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
11401 (ebb_contributes_to_priority): Likewise for params "next", "insn".
11402 (ebb_add_remove_insn): Likewise for param "insn".
11403 (advance_target_bb): Likewise.
11405 * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
11407 (check_live): Likewise for param "insn".
11408 (init_ready_list): Likewise for local "insn".
11409 (can_schedule_ready_p): Likewise for param "insn".
11410 (begin_schedule_ready): Likewise.
11411 (new_ready): Likewise for param "next".
11412 (rgn_print_insn): Likewise for param "insn".
11413 (rgn_rank): Likewise for params "insn1", "insn2".
11414 (contributes_to_priority): Likewise for params "next", "insn".
11415 (rgn_insn_finishes_block_p): Likewise for param "insn".
11416 (add_branch_dependences): Likewise for params "head", "tail" and
11417 locals "insn", "last".
11418 (rgn_add_remove_insn): Likewise for param "insn".
11419 (advance_target_bb): Likewise.
11421 * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
11422 const_rtx to const rtx_insn *.
11424 * sel-sched-dump.h (sel_print_insn): Likewise.
11426 * sel-sched-ir.c (advance_deps_context): Add a checked cast.
11427 (deps_init_id): Likewise.
11429 * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
11430 (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
11433 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11435 * output.h (final_start_function): Strengthen param 1 from rtx to
11438 * final.c (final_start_function): Likewise, renaming back from
11439 "uncast_first" to "first", and dropping the checked cast from rtx
11442 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11444 * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
11445 * final.c (final): Likewise. Rename param back from
11446 "uncast_first" to "first" and eliminate the checked cast from rtx
11449 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11451 * output.h (shorten_branches): Strengthen param from rtx to
11454 * final.c (shorten_branches): Likewise, renaming param back from
11455 "uncast_first" to "first", and dropping the checked cast from rtx
11458 * genattr.c (gen_attr): Likewise when writing out the prototype of
11461 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11463 * sched-int.h (struct haifa_sched_info): Strengthen fields
11464 "prev_head" and "next_tail" from rtx to rtx_insn *.
11466 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11468 * rtl.h (rtx_jump_table_data::get_labels): New method.
11469 * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
11470 with use of the new rtx_jump_table_data::get_labels method.
11471 (purge_dead_tablejump_edges): Strengthen param "table" from rtx
11472 to rtx_jump_table_data *. Simplify by using get_labels method.
11473 * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
11474 a dyn_cast, introducing local "table", using it to replace
11475 label-lookup logic with a get_labels method call.
11476 (patch_jump_insn): Simplify using get_labels method.
11477 * dwarf2cfi.c (create_trace_edges): Likewise.
11478 * rtlanal.c (label_is_jump_target_p): Likewise.
11480 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11482 * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
11485 * emit-rtl.c (unshare_all_rtl_1): Likewise.
11486 (unshare_all_rtl_again): Likewise, also for local "p".
11488 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11490 * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
11492 * cfgrtl.c (delete_insn_and_edges): Likewise.
11494 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11496 * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
11497 from rtx to rtx_insn *.
11499 * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
11501 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11503 * function.c (thread_prologue_and_epilogue_insns): Likewise for
11504 locals "returnjump", "epilogue_end", "insn", "next".
11506 * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
11507 "returnjump" from rtx * to rtx_insn **.
11508 * shrink-wrap.c (get_unconverted_simple_return): Likewise.
11510 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11512 * basic-block.h (struct edge_def). Strengthen "r" within
11513 union edge_def_insns from rtx to rtx_insn *.
11515 * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
11516 from rtx to rtx_insn *. Strengthen local "insns" from rtx to
11518 * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
11519 from rtx to rtx_insn *.
11520 * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
11522 * postreload-gcse.c (reg_killed_on_edge): Likewise.
11523 (reg_used_on_edge): Likewise.
11524 * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
11525 (gt_pch_nx): New overload for rtx_insn *&.
11526 * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
11527 from rtx to rtx_insn *.
11529 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11531 * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
11532 from rtx to rtx_insn *.
11533 (BB_FOOTER): Replace function with access macro.
11534 (SET_BB_FOOTER): Delete.
11536 * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
11538 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
11539 (emit_barrier_after_bb): Likewise.
11540 (record_effective_endpoints): Likewise.
11541 (relink_block_chain): Likewise.
11542 (fixup_fallthru_exit_predecessor): Likewise.
11543 (cfg_layout_duplicate_bb): Likewise.
11544 (cfg_layout_split_block): Likewise.
11545 (cfg_layout_delete_block): Likewise.
11546 (cfg_layout_merge_blocks): Likewise.
11547 (BB_FOOTER): Delete function.
11548 (SET_BB_FOOTER): Delete function.
11549 * combine.c (update_cfg_for_uncondjump): Replace uses of
11550 SET_BB_FOOTER with BB_FOOTER.
11552 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11554 * except.h (struct eh_landing_pad_d): Strengthen field
11555 "landing_pad" from rtx to rtx_code_label *.
11557 * except.c (sjlj_emit_dispatch_table): Likewise for param
11559 (sjlj_build_landing_pads): Likewise for local "dispatch_label".
11561 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11563 * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
11564 first param from rtx to rtx_insn *.
11565 * config/xtensa/xtensa.c (struct machine_function): Likewise for
11566 field "set_frame_ptr_insn".
11567 (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
11568 "csend" from rtx to rtx_code_label *.
11569 (xtensa_expand_atomic): Likewise for local "csloop".
11570 (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
11572 (xtensa_call_tls_desc): Likewise for return type and locals
11573 "call_insn", "insns".
11574 (xtensa_legitimize_tls_address): Likewise for local "insns".
11575 (xtensa_expand_prologue): Likewise for locals "insn", "first".
11577 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11579 * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
11580 first param from rtx to rtx_insn *.
11581 * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
11584 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11586 * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
11587 Strengthen param 1 from rtx to rtx_insn *.
11588 (tilepro_output_cbranch): Likewise.
11589 (tilepro_adjust_insn_length): Likewise.
11590 (tilepro_final_prescan_insn): Likewise for sole param.
11592 * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
11593 Likewise for local "last".
11594 (cbranch_predicted_p): Likewise for param "insn".
11595 (tilepro_output_simple_cbranch_with_opcode): Likewise.
11596 (tilepro_output_cbranch_with_opcode): Likewise.
11597 (tilepro_output_cbranch): Likewise.
11598 (frame_emit_load): Likewise for return type and locals "seq",
11600 (emit_sp_adjust): Likewise for return type and local "insn".
11601 (tilepro_expand_epilogue): Likewise for locals "last_insn",
11603 (tilepro_adjust_insn_length): Likewise for param "insn".
11604 (next_insn_to_bundle): Likewise for return type and params
11606 (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
11607 (replace_pc_relative_symbol_ref): Likewise for param "insn" and
11609 (match_addli_pcrel): Likewise for param "insn".
11610 (replace_addli_pcrel): Likewise.
11611 (match_auli_pcrel): Likewise.
11612 (replace_auli_pcrel): Likewise.
11613 (tilepro_fixup_pcrel_references): Likewise for locals "insn",
11615 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11616 "queue", "next_queue", "prev".
11617 (tilepro_asm_output_mi_thunk): Likewise for local "insn".
11618 (tilepro_final_prescan_insn): Likewise for param "insn".
11620 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11622 * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
11623 Strengthen param 1 from rtx to rtx_insn *.
11624 (tilegx_output_cbranch): Likewise.
11625 (tilegx_adjust_insn_length): Likewise.
11626 (tilegx_final_prescan_insn): Likewise for sole param.
11628 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
11630 (cbranch_predicted_p): Likewise for param "insn".
11631 (tilegx_output_simple_cbranch_with_opcode): Likewise.
11632 (tilegx_output_cbranch_with_opcode): Likewise.
11633 (tilegx_output_cbranch): Likewise.
11634 (frame_emit_load): Likewise for return type.
11635 (set_frame_related_p): Likewise for locals "seq", "insn".
11636 (emit_sp_adjust): Likewise for return type, and for local "insn".
11637 Introduce local "pat" for use in place of "insn" where the latter
11638 isn't an instruction.
11639 (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
11640 from rtx to rtx_insn *.
11641 (tilegx_adjust_insn_length): Likewise for param "insn".
11642 (next_insn_to_bundle): Likewise for return type and params "r" and
11644 (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
11646 (replace_insns): Likewise for params "old_insn", "new_insns".
11647 (replace_mov_pcrel_step1): Likewise for param "insn" and local
11649 (replace_mov_pcrel_step2): Likewise.
11650 (replace_mov_pcrel_step3): Likewise.
11651 (tilegx_fixup_pcrel_references): Likewise for locals "insn",
11653 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11654 "queue", "next_queue", "prev".
11655 (tilegx_output_mi_thunk): Likewise for local "insn".
11656 (tilegx_final_prescan_insn): Likewise for param "insn".
11658 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11660 * config/spu/spu.c (frame_emit_store): Strengthen return type from
11662 (frame_emit_load): Likewise.
11663 (frame_emit_add_imm): Likewise, also for local "insn".
11664 (spu_expand_prologue): Likewise for local "insn".
11665 (struct spu_bb_info): Likewise for field "prop_jump".
11666 (emit_nop_for_insn): Likewise for param "insn" and local
11668 (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
11670 (spu_emit_branch_hint): Likewise for params "before", "branch" and
11671 locals "hint", "insn".
11672 (get_branch_target): Likewise for param "branch".
11673 (insn_clobbers_hbr): Likewise for param "insn".
11674 (insert_hbrp_for_ilb_runout): Likewise for param "first" and
11675 locals "insn", "before_4", "before_16".
11676 (insert_hbrp): Likewise for local "insn".
11677 (spu_machine_dependent_reorg): Likewise for locals "branch",
11678 "insn", "next", "bbend".
11679 (uses_ls_unit): Likewise for param "insn".
11680 (get_pipe): Likewise.
11681 (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
11682 introducing a checked cast.
11683 (spu_sched_adjust_cost): Likewise for params "insn" and
11685 (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
11686 (spu_sms_res_mii): Likewise.
11688 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11690 * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
11691 from rtx to rtx_insn *.
11692 (output_cbranch): Likewise for param 6.
11693 (output_return): Likewise for param 1.
11694 (output_sibcall): Likewise.
11695 (output_v8plus_shift): Likewise.
11696 (output_v8plus_mult): Likewise.
11697 (output_v9branch): Likewise for param 7.
11698 (output_cbcond): Likewise for param 3.
11700 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
11702 (sparc_legitimize_pic_address): Likewise.
11703 (sparc_emit_call_insn): Likewise.
11704 (emit_save_or_restore_regs): Likewise.
11705 (emit_window_save): Likewise for return type and local "insn".
11706 (sparc_expand_prologue): Likewise for local "insn".
11707 (sparc_flat_expand_prologue): Likewise.
11708 (output_return): Likewise for param "insn".
11709 (output_sibcall): Likewise for param "insn" and local "delay".
11710 (output_ubranch): Likewise for param "insn".
11711 (output_cbranch): Likewise.
11712 (output_cbcond): Likewise.
11713 (output_v9branch): Likewise.
11714 (output_v8plus_shift): Likewise.
11715 (sparc_output_mi_thunk): Likewise for local "insn".
11716 (get_some_local_dynamic_name): Likewise.
11717 (output_v8plus_mult): Likewise for param "insn".
11719 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11721 * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
11722 from rtx to rtx_insn *.
11723 (output_branchy_insn): Likewise for param 3.
11724 (output_far_jump): Likewise for param 1.
11725 (final_prescan_insn): Likewise.
11726 (sh_insn_length_adjustment): Likewise for sole param.
11728 * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
11729 (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
11731 (sh_emit_compare_and_set): Likewise for local "lab".
11732 (output_far_jump): Strengthen param "insn" and local "prev" from
11734 (output_branchy_insn): Likewise for param "insn" and local
11736 (output_ieee_ccmpeq): Likewise for param "insn".
11737 (struct label_ref_list_d): Strengthen field "label" from rtx to
11739 (pool_node): Likewise.
11740 (pool_window_label): Likewise for this global.
11741 (add_constant): Likewise for return type and locals "lab", "new_rtx".
11742 (dump_table): Strengthen params "start", "barrier" and local
11743 "scan" from rtx to rtx_insn *.
11744 (broken_move): Likewise for param "insn".
11745 (untangle_mova): Likewise for params "first_mova" and "new_mova".
11746 Strengthen param "first_mova" from rtx * to rtx_insn **.
11747 (mova_p): Likewise for param "insn".
11748 (fixup_mova): Likewise for param "mova".
11749 (find_barrier): Likewise for return type, params "mova" and
11750 "from", and locals "barrier_before_mova", "found_barrier",
11751 "good_barrier", "orig", "last_symoff", "next". Strengthen local
11752 "label" from rtx to rtx_code_label *.
11753 (sh_loop_align): Strengthen locals "first", "insn", "mova" from
11755 (sh_reorg): Likewise for locals "link", "scan", "barrier".
11756 (split_branches): Likewise for param "first" and local "insn".
11757 (final_prescan_insn): Likewise for param "insn".
11758 (sequence_insn_p): Likewise for locals "prev", "next".
11759 (sh_insn_length_adjustment): Likewise for param "insn".
11760 (sh_can_redirect_branch): Likewise for local "insn".
11761 (find_r0_life_regions): Likewise for locals "end", "insn".
11762 (sh_output_mi_thunk): Likewise for local "insns".
11764 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11766 * config/score/score.c (score_output_mi_thunk): Strengthen local
11767 "insn" from rtx to rtx_insn *.
11768 (score_prologue): Likewise.
11770 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11772 * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
11773 1 from rtx to rtx_insn *.
11774 (s390_emit_jump): Likewise for return type.
11775 (s390_emit_call): Likewise.
11776 (s390_load_got): Likewise.
11778 * config/s390/s390.c (last_scheduled_insn): Likewise for this
11780 (s390_match_ccmode): Likewise for param "insn".
11781 (s390_emit_jump): Likewise for return type.
11782 (s390_split_branches): Likewise for local "label".
11783 (struct constant): Strengthen field "label" from rtx to
11785 (struct constant_pool): Likewise for field "label". Strengthen
11786 fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
11788 (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
11790 (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
11791 (s390_end_pool): Likewise.
11792 (s390_dump_pool): Likewise for local "insn".
11793 (s390_mainpool_start): Likewise.
11794 (s390_chunkify_start): Likewise.
11795 (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
11796 with insns. Strengthen locals "label", "jump", "barrier", "next",
11797 "prev", "vec_insn", "insn" from rtx to rtx_insn *.
11798 (s390_chunkify_finish): Strengthen local "insn" from rtx to
11800 (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
11801 "jump", "label", "next_insn".
11802 (s390_regs_ever_clobbered): Likewise for local "cur_insn".
11803 (s390_optimize_nonescaping_tx): Likewise for locals "insn",
11805 (s390_load_got): Likewise for return type and local "insns".
11806 (s390_save_gprs_to_fprs): Likewise for local "insn".
11807 (s390_restore_gprs_from_fprs): Likewise.
11808 (pass_s390_early_mach::execute): Likewise.
11809 (s390_emit_prologue): Likewise for local "insns".
11810 (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
11812 (s390_emit_call): Strengthen return type and local "insn" from
11814 (s390_emit_tpf_eh_return): Likewise for local "insn".
11815 (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
11816 "next_insn", introducing locals "s_pat", "rpat" to allow this.
11817 (s390_fix_long_loop_prediction): Likewise for param "insn" and
11819 (s390_non_addr_reg_read_p): Likewise for param "insn".
11820 (find_cond_jump): Likewise for return type and param "insn".
11821 (s390_swap_cmp): Likewise for param "insn".
11822 (s390_z10_optimize_cmp): Likewise for param "insn" and locals
11823 "prev_insn", "next_insn".
11824 (s390_reorg): Likewise for locals "insn", "target".
11825 (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
11826 (s390_sched_variable_issue): For now, rename param "insn" to
11827 "uncast_insn", introducing a checked cast.
11828 (s390_sched_init): Replace NULL_RTX with NULL when dealing with
11830 (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
11831 rtx_insn *. Use for_each_rtx_in_insn rather than for_each_rtx.
11833 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11835 * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
11836 param from rtx to rtx_insn *.
11837 * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
11839 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11841 * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
11842 4 from rtx to rtx_insn *.
11843 (rs6000_final_prescan_insn): Likewise for first param.
11844 * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
11846 (rs6000_get_some_local_dynamic_name): Likewise.
11847 (output_cbranch): Likewise for param "insn".
11848 (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
11849 (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
11850 (rs6000_emit_allocate_stack): Likewise for local "insn".
11851 (load_cr_save): Likewise.
11852 (restore_saved_cr): Likewise.
11853 (restore_saved_lr): Likewise.
11854 (emit_cfa_restores): Likewise.
11855 (rs6000_output_function_epilogue): Likewise for locals "insn" and
11856 "deleted_debug_label".
11857 (rs6000_output_mi_thunk): Likewise for local "insn".
11858 (rs6000_final_prescan_insn): Likewise for param "insn".
11860 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11862 * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
11863 Strengthen param "insn" from rtx to rtx_insn *.
11864 * config/picochip/picochip.c (picochip_current_prescan_insn):
11865 Likewise for this variable.
11866 (picochip_final_prescan_insn): Likewise for param "insn".
11868 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11870 * config/pa/pa-protos.h (pa_output_call): Strengthen first param
11871 from rtx to rtx_insn *.
11872 (pa_output_indirect_call): Likewise.
11873 (pa_adjust_insn_length): Likewise.
11874 (pa_attr_length_millicode_call): Likewise.
11875 (pa_attr_length_call): Likewise.
11876 (pa_attr_length_indirect_call): Likewise.
11878 * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
11880 (pa_attr_length_millicode_call): Likewise.
11881 (pa_attr_length_call): Likewise.
11882 (pa_output_call): Likewise.
11883 (pa_attr_length_indirect_call): Likewise.
11884 (pa_output_indirect_call): Likewise.
11886 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11888 * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
11889 Strengthen first param from rtx to rtx_insn *.
11890 * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
11893 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11895 * config/mips/mips-protos.h (mips_emit_move): Strengthen return
11896 type from rtx to rtx_insn *.
11897 (mips_expand_call): Likewise.
11898 (mips_adjust_insn_length): Likewise for first param.
11899 (mips_output_conditional_branch): Likewise.
11900 (mips_output_order_conditional_branch): Likewise.
11901 (mips_final_prescan_insn): Likewise.
11903 * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
11904 rtx_insn * for the SEQUENCE case.
11905 (SEQ_END): Likewise.
11906 (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
11907 (mips_emit_call_insn): Likewise, also for local "insn".
11908 (mips16_gp_pseudo_reg): Likewise for local "scan".
11909 (mips16_build_call_stub): Likewise for return type and for local
11910 "insn". Introduce a new local "pattern" so that "insn" can indeed
11912 (mips_expand_call): Strengthen return type and local "insn" from
11914 (mips_block_move_loop): Strengthen local "label" from rtx to
11916 (mips_expand_synci_loop): Likewise for locals "label",
11918 (mips_set_frame_expr): Strengthen local "insn" from rtx to
11920 (mips16e_collect_argument_saves): Likewise for locals "insn",
11922 (mips_find_gp_ref): Likewise for param of callback for "pred"
11923 param, and for local "insn".
11924 (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
11925 (mips_insn_has_flexible_gp_ref_p): Likewise.
11926 (mips_epilogue_emit_cfa_restores): Likewise for return type and
11928 (mips_epilogue_set_cfa): Likewise for local "insn".
11929 (mips_expand_epilogue): Likewise.
11930 (mips_adjust_insn_length): Likewise for param "insn".
11931 (mips_output_conditional_branch): Likewise.
11932 (mips_output_order_conditional_branch): Likewise.
11933 (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
11934 "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
11935 "falu2_turn_enabled_insn".
11936 (mips_builtin_branch_and_move): Strengthen locals "true_label",
11937 "done_label" from rtx to rtx_code_label *.
11938 (struct mips16_constant): Likewise for field "label".
11939 (mips16_add_constant): Likewise for return type.
11940 (mips16_emit_constants_1): Strengthen return type and param "insn"
11941 from rtx to rtx_insn *.
11942 (mips16_emit_constants): Likewise for param "insn".
11943 (mips16_insn_length): Likewise.
11944 (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
11945 to rtx_code_label *.
11946 (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
11947 from rtx to rtx_insn *.
11948 (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
11949 "jump". Strengthen local "label" from rtx to rtx_code_label *.
11950 (r10k_simplify_address): Strengthen param "insn" and local
11951 "def_insn" from rtx to rtx_insn *.
11952 (r10k_safe_address_p): Strengthen param "insn" from rtx to
11954 (r10k_needs_protection_p_1): Update target type of cast of data
11955 from to rtx to rtx_insn *.
11956 (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
11957 rtx * to rtx_insn **.
11958 (r10k_needs_protection_p): Strengthen param "insn" from rtx to
11960 (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
11961 (mips_call_expr_from_insn): Likewise for param "insn".
11962 (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
11963 (mips_find_pic_call_symbol): Likewise for param "insn".
11964 (mips_annotate_pic_calls): Likewise for local "insn".
11965 (mips_sim_insn): Likewise for this variable.
11966 (struct mips_sim): Likewise for field "insn" within elements of
11968 (mips_sim_wait_reg): Likewise for param "insn".
11969 (mips_sim_wait_regs): Likewise.
11970 (mips_sim_wait_units): Likewise.
11971 (mips_sim_wait_insn): Likewise.
11972 (mips_sim_issue_insn): Likewise.
11973 (mips_sim_finish_insn): Likewise.
11974 (mips_seq_time): Likewise for param "seq" and local "insn".
11975 (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
11976 locals "first", "second".
11977 (vr4130_align_insns): Likewise for locals "insn", "subinsn",
11978 "last", "last2", "next".
11979 (mips_avoid_hazard): Likewise for params "after", "insn".
11980 (mips_reorg_process_insns): Likewise for locals "insn",
11981 "last_insn", "subinsn", "next_insn".
11982 (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
11983 (mips16_split_long_branches): Likewise for locals "insn" "jump",
11985 (mips_output_mi_thunk): Likewise for local "insn".
11986 (mips_final_prescan_insn): Likewise for param "insn".
11988 2014-08-25 David Malcolm <dmalcolm@redhat.com>
11990 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
11991 Strengthen return type and local "insns" from rtx to rtx_insn *.
11992 (microblaze_legitimize_tls_address): Likewise for local "insns".
11993 (microblaze_block_move_loop): Strengthen local "label" from rtx
11994 to rtx_code_label *.
11995 (microblaze_expand_prologue): Strengthen two locals named "insn"
11996 from rtx to rtx_insn *.
11997 (microblaze_asm_output_mi_thunk): Likewise for local "insn".
11998 (microblaze_expand_divide): Likewise for locals "jump", "cjump",
11999 "insn". Strengthen locals "div_label", "div_end_label" from rtx
12000 to rtx_code_label *.
12002 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12004 * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
12005 param from rtx to rtx_insn *.
12006 (mep_reuse_lo): Likewise for third param.
12007 (mep_use_post_modify_p): Likewise for first param.
12008 (mep_core_address_length): Likewise.
12009 (mep_cop_address_length): Likewise.
12010 (mep_final_prescan_insn): Likewise.
12011 (mep_store_data_bypass_p): Likewise for both params.
12012 (mep_mul_hilo_bypass_p): Likewise.
12013 (mep_ipipe_ldc_p): Likewise for param.
12015 * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
12016 (mep_rewrite_mult): Likewise.
12017 (mep_rewrite_mulsi3): Likewise.
12018 (mep_rewrite_maddsi3): Likewise.
12019 (mep_reuse_lo_p_1): Likewise.
12020 (mep_reuse_lo_p): Likewise.
12021 (mep_frame_expr): Likewise.
12022 (mep_make_parallel): Likewise for both params.
12023 (mep_use_post_modify_p_1): Likewise for param "set_insn" and
12025 (mep_use_post_modify_p): Likewise for param "insn".
12026 (mep_core_address_length): Likewise.
12027 (mep_cop_address_length): Likewise.
12028 (mep_reg_set_in_function): Likewise for local "insn".
12029 (mep_asm_without_operands_p): Likewise.
12030 (F): Likewise for return type and param "x".
12031 (add_constant): Likewise for local "insn".
12032 (maybe_dead_move): Likewise for return type and local "insn".
12033 (mep_expand_prologue): Likewise for local "insn".
12034 (mep_final_prescan_insn): Likewise for param "insn".
12035 (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
12036 "next", "follow", "x".
12037 (mep_insert_repeat_label_last): Likewise for return type, param
12038 "last_insn", and locals "next", "prev". Strengthen param "label"
12039 from rtx to rtx_code_label *.
12040 (struct mep_doloop_begin): Strengthen field "insn" from rtx to
12042 (struct mep_doloop_end): Likewise for fields "insn" and
12044 (mep_reorg_repeat): Likewise for param "insns" and local "insn".
12045 Strengthen local "repeat_label" from rtx to rtx_code_label *.
12046 (mep_invertable_branch_p): Strengthen param "insn" from rtx to
12048 (mep_invert_branch): Likewise for params "insn" and "after".
12049 (mep_reorg_erepeat): Likewise for param "insns" and locals
12050 "insn", "prev", "new_last", "barrier", "user". Strengthen local
12051 "l" from rtx to rtx_code_label *.
12052 (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
12053 from rtx to rtx_insn *.
12054 (mep_reorg_addcombine): Likewise for param "insns" and locals
12056 (add_sp_insn_p): Likewise for param "insn".
12057 (mep_reorg_noframe): Likewise for param "insns" and locals
12058 "start_frame_insn", "end_frame_insn", "next".
12059 (mep_reorg): Likewise for local "insns".
12060 (mep_store_data_bypass_1): Likewise for param "prev". Add checked
12062 (mep_store_data_bypass_p): Likewise for params "prev", "insn".
12063 (mep_mul_hilo_bypass_p): Likewise.
12064 (mep_ipipe_ldc_p): Likewise for param "insn".
12065 (mep_make_bundle): Likewise for return type, param "cop" and local
12066 "insn", splitting out the latter into a new local "seq" for when it
12067 is a SEQUENCE rather than an insn.
12068 (core_insn_p): Likewise for param "insn".
12069 (mep_bundle_insns): Likewise for param "insns" and locals "insn",
12070 "last", "first", "note", "prev", "core_insn".
12072 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12074 * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
12076 (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
12077 (m68k_final_prescan_insn): Likewise for first param.
12079 * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
12080 (m68k_set_frame_related): Likewise for param "insn".
12081 (output_btst): Likewise for param "insn".
12082 (m68k_final_prescan_insn): Likewise.
12083 (m68k_move_to_reg): Likewise for local "insn".
12084 (m68k_call_tls_get_addr): Likewise for local "insns".
12085 (m68k_call_m68k_read_tp): Likewise.
12086 (strict_low_part_peephole_ok): Likewise for param "first_insn".
12087 (m68k_output_mi_thunk): Likewise for local "insn".
12089 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12091 * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
12092 first param from rtx to rtx_insn *.
12093 (iq2000_adjust_insn_length): Likewise.
12094 (iq2000_output_conditional_branch): Likewise.
12095 * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
12096 "insn" and local "nop_insn".
12097 (iq2000_annotate_frame_insn): Likewise for param "insn".
12098 (iq2000_expand_prologue): Likewise for both locals "insn".
12099 (iq2000_adjust_insn_length): Likewise for param "insn".
12100 (iq2000_output_conditional_branch): Likewise.
12102 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12104 * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
12105 "insns" from rtx to rtx_insn *.
12106 (ia64_emit_cond_move): Likewise for locals "insn", "first".
12107 (struct spill_fill_data): Likewise for field "init_after" and for
12108 elements of array field "prev_insn".
12109 (spill_restore_mem): Likewise for locals "insn", "first".
12110 (do_spill): Likewise for local "insn".
12111 (do_restore): Likewise.
12112 (ia64_expand_prologue): Likewise.
12113 (ia64_expand_epilogue): Likewise.
12114 (emit_insn_group_barriers): Likewise for locals "insn",
12116 (emit_all_insn_group_barriers): Likewise for locals "insn",
12118 (dfa_stop_insn): Likewise for this global.
12119 (dfa_pre_cycle_insn): Likewise.
12120 (ia64_nop): Likewise.
12121 (final_emit_insn_group_barriers): Likewise for locals "insn",
12123 (emit_predicate_relation_info): Likewise for locals "head", "n",
12125 (ia64_reorg): Likewise for local "insn".
12126 (ia64_output_mi_thunk): Likewise.
12127 (expand_vec_perm_interleave_2): Likewise for local "seq".
12129 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12131 * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
12132 param 1 "insn" from rtx to rtx_insn *.
12133 (ix86_use_lea_for_mov): Likewise.
12134 (ix86_avoid_lea_for_addr): Likewise.
12135 (ix86_split_lea_for_addr): Likewise.
12136 (ix86_lea_for_add_ok): Likewise.
12137 (ix86_output_call_insn): Likewise.
12139 * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
12140 (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
12141 (ix86_output_function_epilogue): Likewise for locals "insn",
12142 "deleted_debug_label".
12143 (legitimize_tls_address): Likewise for local "insn".
12144 (get_some_local_dynamic_name): Likewise.
12145 (increase_distance): Likewise for params "prev", "next".
12146 (distance_non_agu_define_in_bb): Likewise for params "insn",
12147 "start" and locals "prev", "next".
12148 (distance_non_agu_define): Likewise for param "insn".
12149 (distance_agu_use_in_bb): Likewise for params "insn", "start" and
12150 locals "next", "prev".
12151 (distance_agu_use): Likewise for param "insn".
12152 (ix86_lea_outperforms): Likewise.
12153 (ix86_ok_to_clobber_flags): Likewise.
12154 (ix86_avoid_lea_for_add): Likewise.
12155 (ix86_use_lea_for_mov): Likewise.
12156 (ix86_avoid_lea_for_addr): Likewise.
12157 (find_nearest_reg_def): Likewise, also for locals "prev", "start".
12158 (ix86_split_lea_for_addr): Likewise for param "insn".
12159 (ix86_lea_for_add_ok): Likewise for param "insn".
12160 (ix86_expand_carry_flag_compare): Likewise for local
12162 (ix86_expand_int_movcc): Likewise.
12163 (ix86_output_call_insn): Likewise for param "insn".
12164 (ix86_output_call_insn): Likewise for local "i".
12165 (x86_output_mi_thunk): Introduce local "insn", using it in place
12166 of "tmp" when dealing with insns.
12167 (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
12169 (ix86_pad_returns): Likewise for locals "ret", "prev".
12170 (ix86_count_insn_bb): Likewise for local "insn".
12171 (ix86_pad_short_function): Likewise for locals "ret", "insn".
12172 (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
12173 (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
12174 (expand_vec_perm_interleave2): Likewise for local "seq".
12175 (expand_vec_perm_vperm2f128_vblend): Likewise.
12176 (ix86_loop_unroll_adjust): Likewise for local "insn". Convert
12177 call to for_each_rtx with for_each_rtx_in_insn.
12179 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12181 * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
12182 "label" from rtx to rtx_code_label *.
12183 (ix86_expand_prologue): Likewise.
12184 (ix86_expand_split_stack_prologue): Likewise for locals "label",
12186 (ix86_split_idivmod): Likewise for locals "end_label" and
12188 (ix86_expand_branch): Likewise for local "label2".
12189 (ix86_expand_aligntest): Likewise for return type and local "label".
12190 (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
12192 (expand_movmem_epilogue): Likewise for the various locals named
12194 (expand_setmem_epilogue): Likewise.
12195 (expand_small_movmem_or_setmem): Likewise for local "label".
12196 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
12197 Strengthen param "done_label" from rtx * to rtx_code_label **.
12198 Strengthen locals "loop_label" and "label" from rtx to
12200 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
12201 Likewise for locals "loop_label", "label".
12202 (ix86_expand_set_or_movmem): Likewise for locals "label",
12203 "jump_around_label", "hot_label".
12204 (ix86_expand_strlensi_unroll_1): Likewise for locals
12205 "align_2_label", align_3_label", "align_4_label", "end_0_label",
12207 (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
12208 (void ix86_emit_i387_log1p): Likewise for locals "label1",
12209 "label2", "jump_label".
12210 (ix86_expand_sse_compare_and_jump): Likewise for return type and
12212 (ix86_expand_lfloorceil): Likewise for local "label".
12213 (ix86_expand_rint): Likewise.
12214 (ix86_expand_floorceildf_32): Likewise.
12215 (ix86_expand_floorceil): Likewise.
12216 (ix86_expand_rounddf_32): Likewise.
12217 (ix86_expand_trunc): Likewise.
12218 (ix86_expand_truncdf_32): Likewise.
12219 (ix86_expand_round): Likewise.
12221 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12223 * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
12224 first param from rtx to rtx_insn *.
12225 (h8300_insn_length_from_table): Likewise.
12226 * config/h8300/h8300.c (F): Likewise for return type and param
12228 (Fpa): Add a checked cast to rtx_insn *.
12229 (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
12231 (final_prescan_insn): Likewise for param "insn".
12232 (h8300_binary_length): Likewise.
12233 (h8300_insn_length_from_table): Likewise.
12235 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12237 * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
12238 Strengthen first param "insn" from rtx to rtx_insn *.
12240 * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
12242 (frame_insn): Likewise for return type. Introduce local "insn"
12243 for use in place of local "x" for use as an rtx_insn *.
12244 (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
12245 (epiphany_expand_prologue): Likewise for local "insn".
12246 * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
12247 * config/epiphany/resolve-sw-modes.c
12248 (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
12251 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12253 * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
12254 param from rtx to rtx_insn *.
12255 (c6x_final_prescan_insn): Likewise for first param.
12257 * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
12258 (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
12259 (c6x_expand_compare): Strengthen local "insns" from rtx to
12261 (c6x_get_unit_specifier): Likewise for param "insn".
12262 (c6x_print_unit_specifier_field): Likewise.
12263 (c6x_final_prescan_insn): Likewise.
12264 (emit_add_sp_const): Likewise for local "insn".
12265 (c6x_expand_prologue): Likewise.
12267 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12269 * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
12270 param 1 from rtx to rtx_insn *.
12271 * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
12272 the various locals named "insn".
12273 (expand_epilogue_reg_restore): Likewise.
12274 (frame_related_constant_load): Likewise.
12275 (add_to_reg): Likewise.
12276 (emit_link_insn): Likewise.
12277 (do_link): Likewise.
12278 (expand_interrupt_handler_prologue): Likewise.
12279 (branch_dest): Likewise for param "branch".
12280 (asm_conditional_branch): Likewise for param "insn".
12281 (gen_one_bundle): Likewise for elements of param "slot" and local
12283 (bfin_gen_bundles): Likewise for locals "insn", "next" and
12284 elements of local "slot".
12285 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
12286 "queue", "next_queue", "prev".
12287 (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
12288 (add_sched_insns_for_speculation): Likewise for local "insn".
12290 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12292 * config/avr/avr-protos.h (output_movqi): Strengthen first param
12293 from rtx to rtx_insn *.
12294 (output_movhi): Likewise.
12295 (output_movsisf): Likewise.
12296 (avr_out_tstsi): Likewise.
12297 (avr_out_tsthi): Likewise.
12298 (avr_out_tstpsi): Likewise.
12299 (avr_out_compare): Likewise.
12300 (avr_out_compare64): Likewise.
12301 (avr_out_movpsi): Likewise.
12302 (ashlqi3_out): Likewise.
12303 (ashlhi3_out): Likewise.
12304 (ashlsi3_out): Likewise.
12305 (ashrqi3_out): Likewise.
12306 (ashrhi3_out): Likewise.
12307 (ashrsi3_out): Likewise.
12308 (lshrqi3_out): Likewise.
12309 (lshrhi3_out): Likewise.
12310 (lshrsi3_out): Likewise.
12311 (avr_out_ashlpsi3): Likewise.
12312 (avr_out_ashrpsi3): Likewise.
12313 (avr_out_lshrpsi3): Likewise.
12314 (avr_out_fract): Likewise.
12315 (avr_out_sbxx_branch): Likewise.
12316 (avr_out_round): Likewise.
12317 (avr_out_xload): Likewise.
12318 (avr_out_movmem): Likewise.
12319 (adjust_insn_length): Likewise.
12320 (avr_out_lpm): Likewise.
12321 (reg_unused_after): Likewise.
12322 (_reg_unused_after): Likewise.
12323 (avr_jump_mode): Likewise for second param.
12324 (jump_over_one_insn): Likewise for first param.
12325 (avr_final_prescan_insn): Likewise.
12326 (out_shift_with_cnt): Likewise for second param.
12328 * config/avr/avr.c (get_sequence_length): Likewise for param
12329 "insns" and local "insn".
12330 (emit_push_byte): Likewise for local "insn".
12331 (emit_push_sfr): Likewise.
12332 (avr_prologue_setup_frame): Likewise for locals "insn",
12333 "fp_plus_insns", "sp_plus_insns".
12334 (avr_expand_epilogue): Likewise for local "fp_plus_insns",
12336 (avr_jump_mode): Likewise for param "insn".
12337 (avr_final_prescan_insn): Likewise.
12338 (avr_find_unused_d_reg): Likewise.
12339 (avr_out_lpm_no_lpmx): Likewise.
12340 (avr_out_lpm): Likewise.
12341 (avr_out_xload): Likewise.
12342 (output_movqi): Likewise.
12343 (output_movhi): Likewise.
12344 (out_movqi_r_mr): Likewise.
12345 (out_movhi_r_mr): Likewise.
12346 (out_movsi_r_mr): Likewise.
12347 (out_movsi_mr_r): Likewise.
12348 (output_movsisf): Likewise.
12349 (avr_out_load_psi): Likewise.
12350 (avr_out_store_psi): Likewise.
12351 (avr_out_movpsi): Likewise.
12352 (out_movqi_mr_r): Likewise.
12353 (avr_out_movhi_mr_r_xmega): Likewise.
12354 (out_movhi_mr_r): Likewise.
12355 (compare_condition): Likewise for param "insn" and local "next".
12356 (compare_sign_p): Likewise for param "insn".
12357 (compare_diff_p): Likewise.
12358 (compare_eq_p): Likewise.
12359 (avr_out_compare): Likewise.
12360 (avr_out_compare64): Likewise.
12361 (avr_out_tsthi): Likewise.
12362 (avr_out_tstpsi): Likewise.
12363 (avr_out_tstsi): Likewise.
12364 (out_shift_with_cnt): Likewise.
12365 (ashlqi3_out): Likewise.
12366 (ashlhi3_out): Likewise.
12367 (avr_out_ashlpsi3): Likewise.
12368 (ashlsi3_out): Likewise.
12369 (ashrqi3_out): Likewise.
12370 (ashrhi3_out): Likewise.
12371 (avr_out_ashrpsi3): Likewise.
12372 (ashrsi3_out): Likewise.
12373 (lshrqi3_out): Likewise.
12374 (lshrhi3_out): Likewise.
12375 (avr_out_lshrpsi3): Likewise.
12376 (lshrsi3_out): Likewise.
12377 (avr_out_fract): Likewise.
12378 (avr_out_round): Likewise.
12379 (avr_adjust_insn_length): Likewise.
12380 (reg_unused_after): Likewise.
12381 (_reg_unused_after): Likewise.
12382 (avr_compare_pattern): Likewise.
12383 (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
12384 and locals "branch1", "branch2", "insn2", "jump".
12385 (avr_reorg): Likewise for local "insn".
12386 (avr_2word_insn_p): Likewise for param "insn".
12387 (jump_over_one_insn_p): Likewise.
12388 (avr_out_sbxx_branch): Likewise.
12389 (avr_out_movmem): Likewise.
12391 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12393 * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
12394 param from rtx to rtx_insn *.
12395 (thumb1_final_prescan_insn): Likewise.
12396 (thumb2_final_prescan_insn): Likewise.
12398 * config/arm/arm.c (emit_set_insn): Strengthen return type from
12400 (struct minipool_node): Likewise for field "insn".
12401 (dump_minipool): Likewise for param "scan".
12402 (create_fix_barrier): Likewise for local "from". Strengthen local
12403 "label" from rtx to rtx_code_label *.
12404 (push_minipool_barrier): Strengthen param "insn" from rtx to
12406 (push_minipool_fix): Likewise.
12407 (note_invalid_constants): Likewise.
12408 (thumb2_reorg): Likewise for local "insn".
12409 (arm_reorg): Likewise.
12410 (thumb2_final_prescan_insn): Likewise for param
12411 "insn" and local "first_insn".
12412 (arm_final_prescan_insn): Likewise for param "insn" and locals
12413 "start_insn", "this_insn".
12414 (arm_debugger_arg_offset): Likewise for param "insn".
12415 (thumb1_emit_multi_reg_push): Likewise for return type and local
12417 (thumb1_final_prescan_insn): Likewise for param "insn".
12418 (thumb_far_jump_used_p): Likewise for local "insn".
12419 (thumb1_expand_prologue): Likewise.
12420 (arm_expand_epilogue_apcs_frame): Likewise.
12421 (arm_expand_epilogue): Likewise for locals "insn", "tmp".
12422 (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
12423 from rtx to rtx_code_label *.
12424 (arm_split_atomic_op): Likewise for local "label".
12425 (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
12427 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12429 * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
12430 first param from rtx to rtx_insn *.
12431 (arc_verify_short): Likewise.
12432 (arc_short_long): Likewise.
12433 (arc_need_delay): Likewise.
12435 * config/arc/arc.c (struct arc_ccfsm): Likewise for field
12437 (arc_ccfsm_advance): Likewise for param "insn" and locals
12438 "start_insn", "this_insn".
12439 (arc_ccfsm_record_condition): Likewise for local "seq_insn".
12440 (arc_ccfsm_post_advance): Likewise for param "insn".
12441 (arc_next_active_insn): Likewise for return type and param "insn".
12442 Convert NULL_RTX to NULL as appropriate. Add a checked cast.
12443 (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
12444 (output_short_suffix): Likewise for local "insn".
12445 (arc_final_prescan_insn): Likewise for param "insn". Remove
12446 now-redundant checked cast.
12447 (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
12448 "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
12449 rtx_insn *. Add a checked cast. Introduce local "lc_set_insn"
12450 for use where lc_set became an insn.
12451 (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
12453 (arc_get_insn_variants): Likewise for local "prev".
12454 (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
12456 (arc_predicate_delay_insns): Likewise for local "insn".
12457 (arc_pad_return): Likewise for local "prev". For now, add a
12458 checked cast when extracting the insn from "final_sequence".
12459 (arc_short_long): Likewise for param "insn".
12460 (arc_need_delay): Likewise for param "insn" and local "next".
12461 (arc_label_align): Likewise for locals "prev", "next".
12463 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12465 * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
12466 "insn" from rtx to rtx_insn *.
12467 (alpha_gp_save_rtx): Likewise for local "seq".
12468 (alpha_instantiate_decls): Likewise for local "top".
12469 (get_some_local_dynamic_name): Likewise for local "insn".
12470 (alpha_does_function_need_gp): Likewise.
12471 (set_frame_related_p): Likewise for return type and for locals
12473 (emit_frame_store_1): Likewise for local "insn".
12474 (alpha_expand_prologue): Likewise for locals "insn", "seq".
12475 (alpha_end_function): Likewise for local "insn".
12476 (alpha_output_mi_thunk_osf): Likewise.
12477 (alphaev4_insn_pipe): Likewise for param "insn".
12478 (alphaev5_insn_pipe): Likewise.
12479 (alphaev4_next_group): Likewise for return type and param 1
12481 (alphaev5_next_group): Likewise.
12482 (alpha_align_insns_1): Likewise for return type and param 1 of
12483 callback param "next_group", and for locals "i", "next", "prev",
12484 "where", "where2", "insn".
12486 2014-08-25 Bernd Schmidt <bernds@codesourcery.com>
12488 * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
12489 rather than modifying the stmt.
12491 2014-08-25 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12493 * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
12494 cgraph_state conversion.
12496 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12498 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
12499 Strengthen local "insns" from rtx to rtx_insn *.
12500 (aarch64_set_frame_expr): Likewise for local "insn".
12501 (aarch64_save_or_restore_fprs): Likewise.
12502 (aarch64_save_or_restore_callee_save_registers): Likewise.
12503 (aarch64_expand_prologue): Likewise.
12504 (aarch64_expand_epilogue): Likewise.
12505 (aarch64_output_mi_thunk): Likewise.
12506 (aarch64_split_compare_and_swap): Strengthen locals "label1" and
12507 "label2" from rtx to rtx_code_label *.
12508 (aarch64_split_atomic_op): Likewise for local "label".
12510 2014-08-25 Martin Liska <mliska@suse.cz>
12512 * cgraph.h (symtab_node):
12513 (bool needed_p (void)): created from decide_is_symbol_needed
12514 (bool referred_to_p (void)): created from referred_to_p
12515 (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
12516 * cgraph.h (cgraph_node):
12517 (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
12518 (void expand (void)): created from expand_function
12519 (static void finalize_function (tree, bool)): created from cgraph_finalize_function
12520 (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
12521 (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
12522 (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
12523 * cgraph.h (varpool_node):
12524 (static void add (tree decl): created from varpool_add_new_variable
12525 * cgraph.h (cgraph_edge):
12526 void remove (void);
12527 (void remove_caller (void)): created from cgraph_edge_remove_caller
12528 (void remove_callee (void)): created from cgraph_edge_remove_callee
12529 (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
12530 created from cgraph_set_call_stmt
12531 (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
12532 (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
12533 (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
12534 gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
12535 (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
12536 created from cgraph_speculative_call_info
12537 (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
12538 int freq_scale, bool update_original)): created from cgraph_clone_edge
12539 (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
12540 (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
12541 (bool recursive_p (void)): created from cgraph_edge_recursive_p
12542 (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
12543 (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
12544 (static void rebuild_references (void)): created from cgraph_rebuild_references
12545 * cgraph.h (symbol_table):
12546 (create_reference): renamed from add_reference
12547 (maybe_create_reference): renamed from maybe_add_reference
12548 (void register_symbol (symtab_node *node)): new function
12549 (void clear_asm_symbols (void)): new function
12550 (void unregister (symtab_node *node)): new function
12551 (void release_symbol (cgraph_node *node, int uid)): new function
12552 (cgraph_node * allocate_cgraph_symbol (void)): new function
12553 (void initialize (void)): created from cgraph_init
12554 (symtab_node *first_symbol (void)):new function
12555 (asm_node *first_asm_symbol (void)):new function
12556 (symtab_node *first_defined_symbol (void)):new function
12557 (varpool_node *first_variable (void)):new function
12558 (varpool_node *next_variable (varpool_node *node)):new function
12559 (varpool_node *first_static_initializer (void)):new function
12560 (varpool_node *next_static_initializer (varpool_node *node)):new function
12561 (varpool_node *first_defined_variable (void)):new function
12562 (varpool_node *next_defined_variable (varpool_node *node)):new function
12563 (cgraph_node *first_defined_function (void)):new function
12564 (cgraph_node *next_defined_function (cgraph_node *node)):new function
12565 (cgraph_node *first_function (void)):new function
12566 (cgraph_node *next_function (cgraph_node *node)):new function
12567 (cgraph_node *first_function_with_gimple_body (void)):new function
12568 (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
12569 (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
12570 created from symtab_remove_unreachable_nodes
12571 (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
12572 (void process_new_functions (void)): created from cgraph_process_new_functions
12573 (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
12574 (bool output_variables (void)): created from varpool_node::output_variables
12575 (void output_asm_statements (void)): created from output_asm_statements
12576 (void finalize_compilation_unit (void)): created from finalize_compilation_unit
12577 (void compile (void)): created from compile
12578 (void output_weakrefs (void)): created from output_weakrefs
12579 (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
12580 (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
12581 gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
12582 (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
12583 (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
12584 created from cgraph_next_function_with_gimple_body
12585 (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
12586 created from cgraph_remove_edge_removal_hook
12587 (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
12588 created from cgraph_add_node_removal_hook
12589 (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
12590 created from cgraph_remove_node_removal_hook
12591 (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
12592 created from varpool_add_node_removal_hook
12593 (void remove_varpool_removal_hook (varpool_node_hook_list *)):
12594 created from varpool_remove_node_removal_hook
12595 (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
12596 created from cgraph_add_function_insertion_hook
12597 (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
12598 created from cgraph_remove_function_insertion_hook
12599 (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
12600 created from varpool_add_variable_insertion_hook
12601 (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
12602 created from varpool_remove_variable_insertion_hook
12603 (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
12604 created from cgraph_add_edge_duplication_hook
12605 (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
12606 created from cgraph_remove_edge_duplication_hook
12607 (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
12608 created from cgraph_add_node_duplication_hook
12609 (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
12610 created from cgraph_remove_node_duplication_hook
12611 (void call_edge_removal_hooks (cgraph_edge *e)):
12612 created from cgraph_call_edge_removal_hooks
12613 (void call_cgraph_insertion_hooks (cgraph_node *node)):
12614 created from call_function_insertion_hooks
12615 (void call_cgraph_removal_hooks (cgraph_node *node)):
12616 created from cgraph_call_node_removal_hooks
12617 (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
12618 created from cgraph_node::call_duplication_hooks
12619 (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
12620 created from cgraph_call_edge_duplication_hooks
12621 (void call_varpool_removal_hooks (varpool_node *node)):
12622 created from varpool_call_node_removal_hooks
12623 (void call_varpool_insertion_hooks (varpool_node *node)):
12624 created from varpool_call_variable_insertion_hooks
12625 (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
12626 created from insert_to_assembler_name_hash
12627 (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
12628 created from unlink_from_assembler_name_hash
12629 (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
12630 created from symtab_prevail_in_asm_name_hash
12631 (void symtab_initialize_asm_name_hash (void)):
12632 created from symtab_initialize_asm_name_hash
12633 (void change_decl_assembler_name (tree decl, tree name)):
12634 created from change_decl_assembler_name
12635 (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
12636 (static hashval_t decl_assembler_name_hash (const_tree asmname)):
12637 created from decl_assembler_name_hash
12638 (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
12639 created from decl_assembler_name_equal
12640 (static hashval_t hash_node_by_assembler_name (const void *p)):
12641 created from hash_node_by_assembler_name
12642 (static int eq_assembler_name (const void *p1, const void *p2)):
12643 created from eq_assembler_name
12645 2014-08-25 Marek Polacek <polacek@redhat.com>
12647 * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
12649 2014-08-25 Petr Murzin <petr.murzin@intel.com>
12651 * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
12652 (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
12653 SWI1248_AVX512BW mode iterator.
12655 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
12658 * config/sh/predicates.md (general_extend_operand): Disable
12659 TRUNCATE before reload completes.
12661 2014-08-24 Gerald Pfeifer <gerald@pfeifer.com>
12663 * doc/invoke.texi (Optimize Options): Fix markup in two cases.
12665 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
12668 * config/sh/sh.opt (musermode): Allow negative form.
12669 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
12670 targets that don't support it.
12671 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
12672 Document -mno-usermode option.
12674 2014-08-24 Kito Cheng <kito@0xlab.org>
12676 * system.h (CALLER_SAVE_PROFITABLE): Poison.
12677 * regs.h (CALLER_SAVE_PROFITABLE): Remove.
12678 * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
12679 * doc/tm.texi: Regenerate.
12681 2014-08-24 Kito Cheng <kito@0xlab.org>
12683 * ira.c: Fix typo in comment.
12685 2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
12687 * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
12688 Deprecate c++1y. Change language to reflect greater confidence in C++14.
12690 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
12693 * config/pa/pa.c (pa_output_function_epilogue): Don't set
12694 last_address when the current function is a thunk.
12695 (pa_asm_output_mi_thunk): When we don't have named sections or they
12696 are not being used, check that thunk can reach the stub table with a
12699 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12701 * web.c (union_match_dups): Strengthen param "insn" from rtx to
12703 (pass_web::execute): Likewise for local "insn".
12705 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12707 * var-tracking.c (struct micro_operation_def): Strengthen field
12708 "insn" from rtx to rtx_insn *.
12709 (struct emit_note_data_def): Likewise.
12710 (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
12711 (vt_stack_adjustments): Likewise for local "insn".
12712 (adjust_insn): Likewise for param "insn".
12713 (val_store): Likewise.
12714 (val_resolve): Likewise.
12715 (struct count_use_info): Likewise for field "insn".
12716 (log_op_type): Likewise for param "insn".
12717 (reverse_op): Likewise.
12718 (prepare_call_arguments): Likewise.
12719 (add_with_sets): The initial param takes an insn, but we can't
12720 yet strengthen it from rtx to rtx_insn * since it's used as a
12721 cselib_record_sets_hook callback. For now rename initial param
12722 from "insn" to "uncast_insn", and introduce a local "insn" of
12723 the stronger rtx_insn * type, with a checked cast.
12724 (compute_bb_dataflow): Strengthen local "insn" from rtx to
12726 (emit_note_insn_var_location): Likewise.
12727 (emit_notes_for_changes): Likewise.
12728 (emit_notes_for_differences): Likewise.
12729 (next_non_note_insn_var_location): Likewise for return type and
12731 (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
12732 (vt_initialize): Likewise for local "insn".
12733 (delete_debug_insns): Likewise for locals "insn" and "next".
12735 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12737 * varasm.c (mark_constants): Strengthen param "insn" from rtx to
12739 (mark_constant_pool): Likewise for local "insn".
12741 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12743 * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
12745 (dead_debug_promote_uses): Likewise.
12746 (dead_debug_insert_temp): Likewise.
12748 2014-08-23 David Malcolm <dmalcolm@redhat.com>
12750 * store-motion.c (store_killed_in_insn): Strengthen param "insn"
12751 from const_rtx to const rtx_insn *.
12752 (store_killed_after): Likewise. Strengthen locals "last", "act"
12753 from rtx to rtx_insn *.
12754 (store_killed_before): Strengthen param "insn" from const_rtx to
12755 const rtx_insn *. Strengthen local "first" from rtx to rtx_insn *.
12756 (find_moveable_store): Strengthen param "insn" from rtx to
12758 (compute_store_table): Likewise for local "insn".
12759 (insert_insn_start_basic_block): Likewise for param "insn" and
12760 locals "prev", "before", "insn".
12761 (insert_store): For now, add a checked cast to rtx_insn * on the
12762 result of gen_move_insn.
12763 (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
12765 (replace_store_insn): Likewise. For now, add a checked cast to
12766 rtx_insn * on the result of gen_move_insn.
12768 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12770 * stmt.c (expand_case): Strengthen local "before_case" from rtx to
12772 (expand_sjlj_dispatch_table): Likewise.
12774 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12776 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
12777 "insn" from rtx to rtx_insn *.
12779 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12781 * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
12782 "insn" from rtx to rtx_insn *.
12783 (dup_block_and_redirect): Likewise for param 3 "before".
12785 * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
12786 from rtx to rtx_insn *.
12787 (move_insn_for_shrink_wrap): Likewise.
12788 (prepare_shrink_wrap): Likewise for locals "insn", "curr".
12789 (dup_block_and_redirect): Likewise for param "before" and local
12791 (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
12793 (convert_to_simple_return): Likewise for local "start".
12795 * config/i386/i386.c (ix86_finalize_stack_realign_flags):
12796 Strengthen local "insn" from rtx to rtx_insn *, for use when
12797 invoking requires_stack_frame_p.
12799 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12801 * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
12803 (speculate_expr): Likewise for locals "orig_insn_rtx",
12805 (eq_transformed_insns): Likewise for locals "i1", "i2".
12806 (check_for_new_jump): Likewise for return type and local "end".
12807 (find_new_jump): Likewise for return type and local "jump".
12808 (sel_split_edge): Likewise for local "jump".
12809 (sel_create_recovery_block): Likewise.
12810 (sel_redirect_edge_and_branch_force): Likewise.
12811 (sel_redirect_edge_and_branch): Likewise.
12813 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12815 * sel-sched.c (substitute_reg_in_expr): Strengthen local
12816 "new_insn" from rtx to rtx_insn *.
12817 (create_insn_rtx_with_rhs): Likewise for return type and for local
12819 (create_insn_rtx_with_lhs): Likewise.
12820 (create_speculation_check): Likewise for local "insn_rtx".
12821 (implicit_clobber_conflict_p): Likewise for local "insn".
12822 (get_expr_cost): Likewise.
12823 (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
12824 (move_cond_jump): Likewise for locals "next", "prev", "link",
12825 "head", "from", "to".
12827 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12829 * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
12830 "next" from rtx to rtx_insn *.
12831 (find_conditional_protection): Likewise for local "next".
12832 (is_conditionally_protected): Likewise for local "insn1".
12833 (is_pfree): Likewise for locals "insn1", "insn2".
12835 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12837 * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
12838 from rtx to rtx_insn *.
12840 * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
12841 locals "insn1", "insn2" from rtx to rtx_insn *.
12842 (add_deps_for_risky_insns): Likewise for params "head", "tail" and
12843 locals "insn", "prev", "last_jump", "next_tail".
12844 (schedule_ebb): Likewise for params "head", "tail".
12845 (schedule_ebbs): Likewise for locals "tail", "head".
12847 * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
12848 to rtx_insn on "last_insn" in one of the invocations of
12851 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12853 * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
12854 "elem", "insn" from rtx to rtx_insn *.
12855 (change_spec_dep_to_hard): Likewise.
12856 (get_back_and_forw_lists): Likewise for local "con".
12857 (sd_add_dep): Likewise for locals "elem", "insn".
12858 (sd_resolve_dep): Likewise for locals "pro", "con".
12859 (sd_unresolve_dep): Likewise.
12860 (sd_delete_dep): Likewise.
12861 (chain_to_prev_insn): Likewise for local "pro".
12862 (find_inc): Likewise for locals "pro", "con".
12864 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12866 * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
12868 (reg_set_between_p): Strengthen local "insn" from const_rtx to
12870 (modified_between_p): Strengthen local "insn" from rtx to
12872 (remove_reg_equal_equiv_notes_for_regno): Likewise.
12873 (keep_with_call_p): Strengthen local "i2" from const_rtx to
12876 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12878 * resource.c (next_insn_no_annul): Strengthen local "next" from
12880 (mark_referenced_resources): Likewise for local "insn".
12882 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12884 * reload.h (struct insn_chain): Strengthen field "insn" from rtx
12886 (find_reloads): Likewise for param 1.
12887 (subst_reloads): Likewise for sole param.
12888 (find_equiv_reg): Likwise for param 2.
12889 (regno_clobbered_p): Likwise for param 2.
12890 (reload): Likewise for param 1.
12892 * caller-save.c (save_call_clobbered_regs): Strengthen local
12893 "insn" from rtx to rtx_insn *.
12894 (insert_one_insn): Likewise for local "insn".
12896 * reload.c (this_insn): Likewise for this global.
12897 (find_reloads): Likewise for param "insn".
12898 (find_reloads_toplev): Likewise.
12899 (find_reloads_address): Likewise.
12900 (subst_reg_equivs): Likewise.
12901 (update_auto_inc_notes): Likewise.
12902 (find_reloads_address_1): Likewise.
12903 (find_reloads_subreg_address): Likewise.
12904 (subst_reloads): Likewise.
12905 (find_equiv_reg): Likewise, also for local "p".
12906 (regno_clobbered_p): Likewise for param "insn".
12908 * reload1.c (reg_reloaded_insn): Likewise for the elements of this
12910 (spill_reg_store): Likewise for the elements of this array.
12911 (remove_init_insns): Likewise for local "equiv_insn".
12912 (will_delete_init_insn_p): Likewise for param "insn".
12913 (reload): Likewise for param ""first" and local "insn".
12914 (calculate_needs_all_insns): Strengthen local "insn" from rtx to
12916 (calculate_elim_costs_all_insns): Likewise.
12917 (delete_caller_save_insns): Likewise.
12918 (spill_failure): Likewise for param "insn".
12919 (delete_dead_insn): Likewise.
12920 (set_label_offsets): Likewise.
12921 (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
12923 (elimination_costs_in_insn): Likewise for param "insn".
12924 (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
12925 when referring to an insn.
12926 (set_initial_label_offsets): Likewise.
12927 (set_offsets_for_label): Strengthen param "insn" from rtx to
12929 (init_eliminable_invariants): Likewise for param "first" and local
12931 (fixup_eh_region_note): Likewise for param "insn".
12932 (reload_as_needed): Likewise for locals "prev", "insn",
12933 "old_next", "old_prev", "next".
12934 (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
12936 (reload_inheritance_insn): Strengthen elements of this array from
12938 (failed_reload): Likewise for param "insn".
12939 (choose_reload_regs): Likewise for local "insn". Replace use of
12940 NULL_RTX with NULL when referring to an insn.
12941 (input_reload_insns): Strengthen elements of this array from rtx
12943 (other_input_address_reload_insns): Likewise for this global.
12944 (other_input_reload_insns): Likewise for this global.
12945 (input_address_reload_insns): Likwise for the elements of this
12947 (inpaddr_address_reload_insns): Likwise for the elements of this
12949 (output_reload_insns): Likewise for the elements of this array.
12950 (output_address_reload_insns): Likewise for the elements of this
12952 (outaddr_address_reload_insns): Likewise for the elements of this
12954 (operand_reload_insns): Likewise for this global.
12955 (other_operand_reload_insns): Likewise for this global.
12956 (other_output_reload_insns): Likewise for the elements of this
12958 (new_spill_reg_store): Likewise for the elements of this
12960 (emit_input_reload_insns): Likewise for locals "insn", "temp".
12961 Strengthen local "where" from rtx * to rtx_insn **.
12962 (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
12963 from rtx to rtx_insn *.
12964 (do_input_reload): Likewise for local "insn".
12965 (do_output_reload): Likewise for local "insn".
12966 (emit_reload_insns): Likewise for locals "insn" and "store_insn".
12967 (emit_insn_if_valid_for_reload): Likewise for return type and local
12968 "last". Add checked cast to rtx_insn when returning "insn" since
12969 this has been through emit_insn.
12970 (gen_reload): Strengthen return type and locals "last", "insn", "set"
12971 from rtx to rtx_insn *. Add checked cast to rtx_insn when
12972 returning "insn" since it's been through
12973 emit_insn_if_valid_for_reload at this point.
12974 (delete_output_reload): Strengthen param "insn" and locals
12975 "output_reload_insn", "i2" from rtx to rtx_insn *.
12976 (delete_address_reloads): Likewise for params "dead_insn",
12977 "current_insn" and locals "prev", "next".
12978 (delete_address_reloads_1): Likewise for params "dead_insn",
12979 "current_insn" and locals "prev", "i2".
12980 (inc_for_reload): Likewise for locals "last", "add_insn".
12981 (add_auto_inc_notes): Strengthen param "insn" from rtx to
12984 * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
12985 param of this duplicate of the prototype from reload.h
12987 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12989 * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
12991 (regstat_bb_compute_calls_crossed): Likewise.
12993 2014-08-22 David Malcolm <dmalcolm@redhat.com>
12995 * regrename.c (create_new_chain): Strengthen param "insn" from rtx
12997 (init_rename_info): Replace use of NULL_RTX with NULL when dealing
12999 (regrename_analyze): Strengthen local "insn" from rtx to
13001 (scan_rtx_reg): Likewise for param "insn".
13002 (scan_rtx_address): Likewise.
13003 (scan_rtx): Likewise.
13004 (restore_operands): Likewise.
13005 (record_out_operands): Likewise.
13006 (build_def_use): Likewise for local "insn". Replace use of
13007 NULL_RTX with NULL when dealing with an insn.
13009 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13011 * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
13012 * reginfo.c (reg_scan): Likewise, also for local "insn".
13013 (reg_scan_mark_refs): Likewise for param "insn".
13014 (init_subregs_of_mode): Likewise for local "insn".
13016 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13018 * regcprop.c (struct queued_debug_insn_change): Strengthen field
13019 "insn" from rtx to rtx_insn *.
13020 (replace_oldest_value_reg): Likewise for param "insn".
13021 (replace_oldest_value_addr): Likewise.
13022 (replace_oldest_value_mem): Likewise.
13023 (apply_debug_insn_changes): Likewise for local "last_insn".
13024 (copyprop_hardreg_forward_1): Likewise for local "insn".
13026 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13028 * reg-stack.c (next_flags_user): Strengthen return type and param
13029 "insn" from rtx to rtx_insn *.
13030 (straighten_stack): Likewise for param "insn".
13031 (check_asm_stack_operands): Likewise.
13032 (remove_regno_note): Likewise.
13033 (emit_pop_insn): Likewise for return type, param "insn", local
13035 (emit_swap_insn): Strengthen param "insn" and locals "i1", "tmp",
13036 "limit" from rtx to rtx_insn *.
13037 (swap_to_top): Likewise for param "insn".
13038 (move_for_stack_reg): Likewise.
13039 (move_nan_for_stack_reg): Likewise.
13040 (swap_rtx_condition): Likewise.
13041 (compare_for_stack_reg): Likewise.
13042 (subst_all_stack_regs_in_debug_insn): Likewise.
13043 (subst_stack_regs_pat): Likewise, and local "insn2".
13044 (subst_asm_stack_regs): Strengthen param "insn" from rtx to
13046 (subst_stack_regs): Likewise.
13047 (change_stack): Likewise.
13048 (convert_regs_1): Likewise for locals "insn", "next".
13050 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13052 * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
13054 (combine_set_extension): Likewise for param "curr_insn".
13055 (transform_ifelse): Likewise for param "def_insn".
13056 (get_defs): Likewise for param "def_insn". Strengthen param "dest"
13057 from vec<rtx> * to vec<rtx_insn *> *.
13058 (is_cond_copy_insn): Likewise for param "insn".
13059 (struct ext_state): Strengthen the four vec fields from vec<rtx>
13060 to vec<rtx_insn *>.
13061 (make_defs_and_copies_lists): Strengthen param "extend_insn" and
13062 local "def_insn" from rtx to rtx_insn *.
13063 (get_sub_rtx): Likewise for param "def_insn".
13064 (merge_def_and_ext): Likewise.
13065 (combine_reaching_defs): Likewise.
13066 (add_removable_extension): Likewise for param "insn".
13067 (find_removable_extensions): Likewise for local "insn".
13068 (find_and_remove_re): Likewise for locals "curr_insn" and
13069 "def_insn". Strengthen locals "reinsn_del_list" and
13070 "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
13072 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13074 * recog.c (split_insn): Strengthen param "insn" and locals
13075 "first", "last" from rtx to rtx_insn *.
13076 (split_all_insns): Likewise for locals "insn", "next".
13077 (split_all_insns_noflow): Likewise.
13079 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13081 * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
13083 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
13084 (debug_rtx_find): Likewise for param 1 "x".
13086 * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
13087 const_rtx to const rtx_insn *. Likewise for local "insn".
13088 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
13089 (debug_rtx_find): Likewise for param 1 "x".
13090 (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
13091 from const_rtx to const rtx_insn * within the appropriate cases of
13092 the switch statement.
13094 * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
13095 Strengthen local "insns" from rtx to rtx_insn * since this is
13096 passed to a call to debug_rtx_list.
13098 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13100 * predict.h (predict_insn_def): Strengthen param "insn" from rtx
13103 * function.c (stack_protect_epilogue): Add checked cast to
13104 rtx_insn for now when invoking predict_insn_def.
13106 * predict.c (predict_insn): Strengthen param "insn" from rtx to
13108 (predict_insn_def): Likewise.
13109 (rtl_predict_edge): Likewise for local "last_insn".
13110 (can_predict_insn_p): Strengthen param "insn" from const_rtx to
13112 (combine_predictions_for_insn): Strengthen param "insn" from rtx
13114 (bb_estimate_probability_locally): Likewise for local "last_insn".
13115 (expensive_function_p): Likewise for local "insn".
13117 * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
13118 local "jmp", since this is used when invoking predict_insn_def.
13120 2014-08-22 Marek Polacek <polacek@redhat.com>
13123 * doc/invoke.texi: Update -Wlogical-not-parentheses description.
13125 2014-08-22 Marek Polacek <polacek@redhat.com>
13128 * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
13129 a comparison in parens.
13130 * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
13133 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13135 * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
13138 * cprop.c (fis_get_condition): Likewise.
13140 * postreload.c (reload_cse_regs): Likewise for param "first".
13141 (reload_cse_simplify): Likewise for param "insn".
13142 (reload_cse_regs_1): Likewise for local "insn".
13143 (reload_cse_simplify_set): Likewise for param "insn".
13144 (reload_cse_simplify_operands): Likewise.
13145 (struct reg_use): Likewise for field "insn".
13146 (reload_combine_purge_insn_uses): Likewise for param "insn".
13147 (fixup_debug_insns): Likewise for params "from", "to" and local
13149 (try_replace_in_use): Likewise for local "use_insn".
13150 (reload_combine_recognize_const_pattern): Likewise for param
13151 "insn" and locals "add_moved_after_insn", "use_insn".
13152 (reload_combine_recognize_pattern): Likewise for param "insn" and
13154 (reload_combine): Likewise for locals "insn", "prev".
13155 (reload_combine_note_use): Likewise for param "insn".
13156 (move2add_use_add2_insn): Likewise.
13157 (move2add_use_add3_insn): Likewise.
13158 (reload_cse_move2add): Likewise, also for local "next".
13159 (move2add_note_store): Likewise for local "insn".
13161 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13163 * postreload-gcse.c (struct occr): Strengthen field "insn" from
13165 (struct unoccr): Likewise.
13166 (struct modifies_mem): Likewise.
13167 (alloc_mem): Likewise for local "insn".
13168 (insert_expr_in_table): Likewise for param "insn".
13169 (dump_expr_hash_table_entry): Likewise for local "insn".
13170 (oprs_unchanged_p): Likewise for param "insn".
13171 (load_killed_in_block_p): Likewise for local "setter".
13172 (record_last_reg_set_info): Likewise for param "insn".
13173 (record_last_reg_set_info_regno): Likewise.
13174 (record_last_mem_set_info): Likewise.
13175 (record_last_set_info): Likewise for local "last_set_insn".
13176 (record_opr_changes): Likewise for param "insn".
13177 (hash_scan_set): Likewise.
13178 (compute_hash_table): Likewise for local "insn".
13179 (get_avail_load_store_reg): Likewise for param "insn".
13180 (eliminate_partially_redundant_load): Likewise, also for locals
13181 "avail_insn", "next_pred_bb_end". Replace use of NULL_RTX with
13183 (eliminate_partially_redundant_loads): Likewise for local "insn".
13185 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13187 * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
13189 (expand_binop): Likewise for locals "entry_last", "last", "insns"
13190 (expand_twoval_unop): Likewise for locals entry_last", "last".
13191 (expand_twoval_binop): Likewise.
13192 (expand_twoval_binop_libfunc): Likewise for local "insns".
13193 (widen_leading): Likewise for local "last".
13194 (expand_doubleword_clz): Likewise for local "seq". Strengthen
13195 locals "hi0_label", "after_label" from rtx to rtx_code_label *.
13196 (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
13197 (expand_parity): Likewise for locals "last" and "seq".
13198 (expand_ffs): Likewise for local "seq". Strengthen local
13199 "nonzero_label" from rtx to rtx_code_label *.
13200 (expand_absneg_bit): Strengthen local "insns" from rtx to
13202 (expand_unop_direct): Likewise for local "last".
13203 (expand_unop): Likewise for locals "last", "insns".
13204 (expand_abs_nojump): Likewise for local "last".
13205 (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
13206 (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
13208 (expand_copysign_absneg): Strengthen local "label" from rtx to
13210 (expand_copysign_bit): Strengthen local "insns" from rtx to
13212 (struct no_conflict_data): Likewise for fields "first", "insn".
13213 (emit_libcall_block_1): Likewise for param "insns" and locals
13214 "next", "last", "insn".
13215 (emit_libcall_block): For now, add a checked cast to rtx_insn *
13216 on "insns" when invoking emit_libcall_block_1. Ultimately we
13217 want to strengthen insns itself.
13218 (prepare_cmp_insn): Strengthen local "last" from rtx to
13220 (emit_cmp_and_jump_insn_1): Likewise for local "insn".
13221 (prepare_float_lib_cmp): Likewise for local "insns".
13222 (emit_conditional_move): Likewise for local "last".
13223 (emit_conditional_add): Likewise.
13224 (have_sub2_insn): Likewise for local "seq".
13225 (expand_float): Likewise for local "insns". Strengthen locals
13226 "label", "neglabel" from rtx to rtx_code_label *.
13227 (expand_fix): Likewise for locals "last", "insn", "insns" (to
13228 rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
13229 (expand_fixed_convert): Likewise for local "insns" (to
13231 (expand_sfix_optab): Likewise for local "last".
13232 (expand_compare_and_swap_loop): Strengthen local "label" from rtx
13233 to rtx_code_label *.
13234 (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
13235 from rtx to rtx_insn *.
13236 (expand_atomic_fetch_op): Likewise for local "insn".
13237 (maybe_legitimize_operand_same_code): Likewise for local "last".
13238 (maybe_legitimize_operands): Likewise.
13240 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13242 * modulo-sched.c (struct ps_reg_move_info): Strengthen field
13243 "insn" from rtx to rtx_insn *.
13244 (ps_rtl_insn): Likewise for return type.
13245 (doloop_register_get): Likewise for params "head", "tail" and
13246 locals "insn", "first_insn_not_to_check".
13247 (schedule_reg_move): Likewise for local "this_insn".
13248 (schedule_reg_moves): Add a checked cast to rtx_insn * to result
13249 of gen_move_insn for now.
13250 (reset_sched_times): Strengthen local "insn" from rtx to
13252 (permute_partial_schedule): Likewise.
13253 (duplicate_insns_of_cycles): Likewise for local "u_insn".
13254 (dump_insn_location): Likewise for param "insn".
13255 (loop_canon_p): Likewise for local "insn".
13256 (sms_schedule): Likewise.
13257 (print_partial_schedule): Likewise.
13258 (ps_has_conflicts): Likewise.
13260 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13262 * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
13263 "tailp" from rtx * to rtx_insn **.
13265 * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
13266 from rtx to rtx_insn *.
13267 * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
13268 "tailp" from rtx * to rtx_insn **. Strengthen locals "beg_head",
13269 "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
13271 * modulo-sched.c (const_iteration_count): Strengthen return type
13272 and locals "insn", "head", "tail" from rtx to rtx_insn *. Replace
13273 use of NULL_RTX with NULL when working with insns.
13274 (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
13276 (sms_schedule): Likewise.
13277 * sched-rgn.c (init_ready_list): Likewise, also for locals
13278 "src_head" and "src_next_tail".
13279 (compute_block_dependences): Likewise.
13280 (free_block_dependencies): Likewise.
13281 (debug_rgn_dependencies): Likewise.
13282 (free_rgn_deps): Likewise.
13283 (compute_priorities): Likewise.
13284 (schedule_region): Likewise.
13285 * sel-sched.c (find_ebb_boundaries): Likewise.
13287 * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
13288 "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
13290 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13292 * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
13293 from rtx to rtx_insn *.
13294 (new_seginfo): Likewise for param "insn".
13295 (create_pre_exit): Likewise for locals "last_insn",
13296 "before_return_copy", "return_copy".
13297 (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
13300 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13302 * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
13303 from rtx to rtx_insn *.
13304 (lra_push_insn): Likewise for 1st param.
13305 (lra_push_insn_and_update_insn_regno_info): Likewise.
13306 (lra_pop_insn): Likewise for return type.
13307 (lra_invalidate_insn_data): Likewise for 1st param.
13308 (lra_set_insn_deleted): Likewise.
13309 (lra_delete_dead_insn): Likewise.
13310 (lra_process_new_insns): Likewise for first 3 params.
13311 (lra_set_insn_recog_data): Likewise for 1st param.
13312 (lra_update_insn_recog_data): Likewise.
13313 (lra_set_used_insn_alternative): Likewise.
13314 (lra_invalidate_insn_regno_info): Likewise.
13315 (lra_update_insn_regno_info): Likewise.
13316 (lra_former_scratch_operand_p): Likewise.
13317 (lra_eliminate_regs_1): Likewise.
13318 (lra_get_insn_recog_data): Likewise.
13320 * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
13323 * lra-coalesce.c (move_freq_compare_func): Likewise for locals
13325 (substitute_within_insn): New.
13326 (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
13327 rtx_insn *. Strengthen sorted_moves from rtx * to rxt_insn **.
13328 Replace call to "substitute" with call to substitute_within_insn.
13330 * lra-constraints.c (curr_insn): Strengthen from rtx to
13332 (get_equiv_with_elimination): Likewise for param "insn".
13333 (match_reload): Strengthen params "before" and "after" from rtx *
13335 (emit_spill_move): Likewise for return type. Add a checked cast
13336 to rtx_insn * on result of gen_move_insn for now.
13337 (check_and_process_move): Likewise for local "before". Replace
13338 NULL_RTX with NULL when referring to insns.
13339 (process_addr_reg): Strengthen params "before" and "after" from
13340 rtx * to rtx_insn **.
13341 (insert_move_for_subreg): Likewise.
13342 (simplify_operand_subreg): Strengthen locals "before" and "after"
13343 from rtx to rtx_insn *.
13344 (process_address_1): Strengthen params "before" and "after" from
13345 rtx * to rtx_insn **. Strengthen locals "insns", "last_insn" from
13347 (process_address): Strengthen params "before" and "after" from
13348 rtx * to rtx_insn **.
13349 (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
13350 (curr_insn_transform): Strengthen locals "before" and "after"
13351 from rtx to rtx_insn *. Replace NULL_RTX with NULL when referring
13353 (loc_equivalence_callback): Update cast of "data", changing
13354 resulting type from rtx to rtx_insn *.
13355 (substitute_pseudo_within_insn): New.
13356 (inherit_reload_reg): Strengthen param "insn" from rtx to
13357 rtx_insn *; likewise for local "new_insns". Replace NULL_RTX with
13358 NULL when referring to insns. Add a checked cast to rtx_insn *
13359 when using usage_insn to invoke lra_update_insn_regno_info.
13360 (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
13361 likewise for locals "restore", "save". Add checked casts to
13362 rtx_insn * when using usage_insn to invoke
13363 lra_update_insn_regno_info and lra_process_new_insns. Replace
13364 NULL_RTX with NULL when referring to insns.
13365 (split_if_necessary): Strengthen param "insn" from rtx to
13367 (update_ebb_live_info): Likewise for params "head", "tail" and local
13369 (get_last_insertion_point): Likewise for return type and local "insn".
13370 (get_live_on_other_edges): Likewise for local "last".
13371 (inherit_in_ebb): Likewise for params "head", "tail" and locals
13372 "prev_insn", "next_insn", "restore".
13373 (remove_inheritance_pseudos): Likewise for local "prev_insn".
13374 (undo_optional_reloads): Likewise for local "insn".
13376 * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
13378 (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
13380 (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
13382 (spill_pseudos): Likewise for local "insn".
13383 (init_elimination): Likewise.
13384 (process_insn_for_elimination): Likewise for param "insn".
13386 * lra-lives.c (curr_insn): Likewise.;
13388 * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
13389 (remove_pseudos): Likewise for param "insn".
13390 (spill_pseudos): Likewise for local "insn".
13391 (lra_final_code_change): Likewise for locals "insn", "curr".
13393 * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
13394 (lra_set_insn_deleted): Likewise.
13395 (lra_delete_dead_insn): Likewise, and for local "prev".
13396 (new_insn_reg): Likewise for param "insn".
13397 (lra_set_insn_recog_data): Likewise.
13398 (lra_update_insn_recog_data): Likewise.
13399 (lra_set_used_insn_alternative): Likewise.
13400 (get_insn_freq): Likewise.
13401 (invalidate_insn_data_regno_info): Likewise.
13402 (lra_invalidate_insn_regno_info): Likewise.
13403 (lra_update_insn_regno_info): Likewise.
13404 (lra_constraint_insn_stack): Strengthen from vec<rtx> to
13406 (lra_push_insn_1): Strengthen param "insn" from rtx to
13408 (lra_push_insn): Likewise.
13409 (lra_push_insn_and_update_insn_regno_info): Likewise.
13410 (lra_pop_insn): Likewise for return type and local "insn".
13411 (push_insns): Likewise for params "from", "to", and local "insn".
13412 (setup_sp_offset): Likewise for params "from", "last" and locals
13414 (lra_process_new_insns): Likewise for params "insn", "before",
13415 "after" and local "last".
13416 (struct sloc): Likewise for field "insn".
13417 (lra_former_scratch_operand_p): Likewise for param "insn".
13418 (remove_scratches): Likewise for locals "insn", "last".
13419 (check_rtl): Likewise for local "insn".
13420 (add_auto_inc_notes): Likewise for param "insn".
13421 (update_inc_notes): Likewise for local "insn".
13422 (lra): Replace NULL_RTX with NULL when referring to insn.
13424 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13426 * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
13428 (resolve_reg_notes): Likewise.
13429 (resolve_simple_move): Likewise for return type, param "insn", and
13430 locals "insns", "minsn".
13431 (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
13432 (resolve_use): Likewise.
13433 (resolve_debug): Likewise.
13434 (find_decomposable_shift_zext): Likewise.
13435 (resolve_shift_zext): Likewise for return type, param "insn", and
13436 locals "insns", "in". Eliminate use of NULL_RTX in favor of NULL.
13437 (decompose_multiword_subregs): Likewise for local "insn",
13438 "orig_insn", "decomposed_shift", "end".
13440 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13442 * basic-block.h (basic_block split_edge_and_insert): Strengthen
13443 param "insns" from rtx to rtx_insn *.
13445 * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
13447 (struct iv_to_split): Likewise.
13448 (loop_exit_at_end_p): Likewise for local "insn".
13449 (split_edge_and_insert): Likewise for param "insns".
13450 (compare_and_jump_seq): Likewise for return type, param "cinsn",
13451 and locals "seq", "jump".
13452 (unroll_loop_runtime_iterations): Likewise for locals "init_code",
13453 "branch_code"; update invocations of compare_and_jump_seq to
13454 eliminate NULL_RTX in favor of NULL.
13455 (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
13457 (reset_debug_uses_in_loop): Likewise.
13458 (analyze_insn_to_expand_var): Likewise for param "insn".
13459 (analyze_iv_to_split_insn): Likewise.
13460 (analyze_insns_in_loop): Likewise for local "insn".
13461 (insert_base_initialization): Likewise for param
13462 "insn" and local "seq".
13463 (split_iv): Likewise for param "insn" and local "seq".
13464 (expand_var_during_unrolling): Likewise for param "insn".
13465 (insert_var_expansion_initialization): Likewise for local "seq".
13466 (combine_var_copies_in_loop_exit): Likewise.
13467 (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
13469 (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
13470 (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
13473 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13475 * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
13477 (iv_analyze_result): Likewise.
13478 (iv_analyze_expr): Likewise.
13481 * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
13482 local "def_insn" from rtx to rtx_insn *.
13483 (get_biv_step_1): Likewise for local "insn".
13484 (iv_analyze_expr): Likewise for param "insn".
13485 (iv_analyze_def): Likewise for local "insn".
13486 (iv_analyze_op): Likewise for param "insn".
13487 (iv_analyze): Likewise.
13488 (iv_analyze_result): Likewise.
13490 (suitable_set_for_replacement): Likewise.
13491 (simplify_using_initial_values): Likewise for local "insn".
13492 (iv_number_of_iterations): Likewise for param "insn".
13493 (check_simple_exit): Add checked cast to rtx_insn when invoking
13494 iv_number_of_iterations for now (until get_condition is
13497 * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
13498 "insn" from rtx to rtx_insn *.
13499 (analyze_insns_in_loop): Likewise for local "insn".
13501 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13503 * loop-invariant.c (struct use): Strengthen field "insn" from rtx
13505 (struct invariant): Likewise.
13506 (hash_invariant_expr_1): Likewise for param "insn".
13507 (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
13508 (find_exits): Likewise for local "insn".
13509 (create_new_invariant): Likewise for param "insn".
13510 (check_dependencies): Likewise.
13511 (find_invariant_insn): Likewise.
13512 (record_uses): Likewise.
13513 (find_invariants_insn): Likewise.
13514 (find_invariants_bb): Likewise for local "insn".
13515 (get_pressure_class_and_nregs): Likewise for param "insn".
13516 (calculate_loop_reg_pressure): Likewise for local "insn".
13518 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13520 * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
13522 (add_test): Likewise for locals "seq", "jump".
13523 (doloop_modify): Likewise for locals "sequence", "jump_insn".
13525 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13527 * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
13529 (rebuild_jump_labels_chain): Likewise for param "chain".
13531 * cfgexpand.c (pass_expand::execute): Add checked cast to
13532 rtx_insn * when calling rebuild_jump_labels_chain in region where
13533 we know e->insns.r is non-NULL.
13535 * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
13537 (rebuild_jump_labels): Likewise.
13538 (rebuild_jump_labels_chain): Likewise for param "chain".
13539 (cleanup_barriers): Likewise for locals "insn", "next", "prev".
13540 (init_label_info): Likewise for param "f".
13541 (maybe_propagate_label_ref): Likewise for params "jump_insn",
13542 "prev_nonjump_insn".
13543 (mark_all_labels): Likewise for param "f" and locals "insn",
13544 "prev_nonjump_insn".
13546 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13548 * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
13549 from rtx to rtx_insn *insn.
13550 (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
13551 (ira_add_allocno_copy): Likewise.
13552 * ira-build.c (find_allocno_copy): Strengthen param "insn" from
13554 (ira_create_copy): Likewise.
13555 (ira_add_allocno_copy): Likewise.
13556 (create_bb_allocnos): Likewise for local "insn".
13557 * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
13558 (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
13559 process_regs_for_copy for rtx_insn * param.
13560 (add_insn_allocno_copies): Strengthen param "insn" from rtx to
13561 rtx_insn *insn. Update NULL_RTX to NULL in invocation of
13562 process_regs_for_copy for rtx_insn * param.
13563 (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
13564 * ira-costs.c (record_reg_classes): Likewise for param "insn".
13565 (record_operand_costs): Likewise.
13566 (scan_one_insn): Likewise for return type, and for param "insn".
13567 (process_bb_for_costs): Likewise for local "insn".
13568 (process_bb_node_for_hard_reg_moves): Likewise.
13569 * ira-emit.c (struct move): Likewise for field "insn".
13570 (create_move): Eliminate use of NULL_RTX when dealing with an
13572 (emit_move_list): Strengthen return type and locals "result",
13573 "insn" from rtx to rtx_insn *insn.
13574 (emit_moves): Likewise for locals "insns", "tmp".
13575 (ira_emit): Likewise for local "insn".
13576 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
13578 (find_call_crossed_cheap_reg): Likewise.
13579 (process_bb_node_lives): Likewise for local "insn".
13580 * ira.c (decrease_live_ranges_number): Likewise.
13581 (compute_regs_asm_clobbered): Likewise.
13582 (build_insn_chain): Likewise.
13583 (find_moveable_pseudos): Likewise, also locals "def_insn",
13584 "use_insn", "x". Also strengthen local "closest_uses" from rtx *
13585 to rtx_insn **. Add a checked cast when assigning from
13586 "closest_use" into closest_uses array in a region where we know
13587 it's a non-NULL insn.
13588 (interesting_dest_for_shprep): Strengthen param "insn" from rtx
13590 (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
13591 "last_interesting_insn", "uin".
13592 (move_unallocated_pseudos): Likewise for locals "def_insn",
13593 "move_insn", "newinsn".
13595 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13597 * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
13598 Strengthen locals "done_label", "do_error" from rtx to
13600 (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
13601 from rtx to rtx_insn *. Strengthen local "sub_check from rtx to
13603 (ubsan_expand_si_overflow_neg_check): Likewise for locals
13604 "done_label", "do_error" to rtx_code_label * and local "last" to
13606 (ubsan_expand_si_overflow_mul_check): Likewise for locals
13607 "done_label", "do_error", "large_op0", "small_op0_large_op1",
13608 "one_small_one_large", "both_ops_large", "after_hipart_neg",
13609 "after_lopart_neg", "do_overflow", "hipart_different" to
13610 rtx_code_label * and local "last" to rtx_insn *.
13612 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13614 * init-regs.c (initialize_uninitialized_regs): Strengthen locals
13615 "insn" and "move_insn" from rtx to rtx_insn *.
13617 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13619 * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
13621 (cheap_bb_rtx_cost_p): Likewise.
13622 (first_active_insn): Likewise for return type and local "insn".
13623 (last_active_insn): Likewise for return type and locals "insn",
13625 (struct noce_if_info): Likewise for fields "jump", "insn_a",
13627 (end_ifcvt_sequence): Likewise for return type and locals "insn",
13629 (noce_try_move): Likewise for local "seq".
13630 (noce_try_store_flag): Likewise.
13631 (noce_try_store_flag_constants): Likewise.
13632 (noce_try_addcc): Likewise.
13633 (noce_try_store_flag_mask): Likewise.
13634 (noce_try_cmove): Likewise.
13635 (noce_try_minmax): Likewise.
13636 (noce_try_abs): Likewise.
13637 (noce_try_sign_mask): Likewise.
13638 (noce_try_bitop): Likewise.
13639 (noce_can_store_speculate_p): Likewise for local "insn".
13640 (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
13642 (check_cond_move_block): Likewise for local "insn".
13643 (cond_move_convert_if_block): Likewise.
13644 (cond_move_process_if_block): Likewise for locals "seq",
13646 (noce_find_if_block): Likewise for local "jump".
13647 (merge_if_block): Likewise for local "last".
13648 (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
13649 (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
13650 (block_has_only_trap): Likewise for return type and local "trap".
13651 (find_if_case_1): Likewise for local "jump".
13652 (dead_or_predicable): Likewise for locals "head", "end", "jump",
13655 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13657 * hw-doloop.h (struct hwloop_info_d): Strengthen fields
13658 "last_insn", "loop_end" from rtx to rtx_insn *.
13660 * hw-doloop.c (scan_loop): Likewise for local "insn".
13661 (discover_loop): Likewise for param "tail_insn".
13662 (discover_loops): Likewise for local "tail".
13664 * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
13665 cast to rtx_insn * when assigning from an rtx local to a
13666 hwloop_info's "last_insn" field.
13668 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13670 * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
13671 (add_delay_dependencies): Strengthen local "pro" from rtx to
13673 (recompute_todo_spec): Likewise.
13674 (dep_cost_1): Likewise for locals "insn", "used".
13675 (schedule_insn): Likewise for local "dbg".
13676 (schedule_insn): Likewise for locals "pro", "next".
13677 (unschedule_insns_until): Likewise for local "con".
13678 (restore_pattern): Likewise for local "next".
13679 (estimate_insn_tick): Likewise for local "pro".
13680 (resolve_dependencies): Likewise for local "next".
13681 (fix_inter_tick): Likewise.
13682 (fix_tick_ready): Likewise for local "pro".
13683 (add_to_speculative_block): Likewise for locals "check", "twin",
13685 (sched_extend_bb): Likewise for locals "end", "insn".
13686 (init_before_recovery): Likewise for local "x".
13687 (sched_create_recovery_block): Likewise for local "barrier".
13688 (create_check_block_twin): Likewise for local "pro".
13689 (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
13691 (unlink_bb_notes): Update for change to type of bb_header.
13692 Strengthen locals "prev", "label", "note", "next" from rtx to
13694 (clear_priorities): Likewise for local "pro".
13696 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13698 * gcse.c (struct occr): Strengthen field "insn" from rtx to
13700 (test_insn): Likewise for this global.
13701 (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
13703 (oprs_anticipatable_p): Likewise.
13704 (oprs_available_p): Likewise.
13705 (insert_expr_in_table): Strengthen param "insn" from rtx to
13707 (hash_scan_set): Likewise.
13708 (hash_scan_clobber): Likewise.
13709 (hash_scan_call): Likewise.
13710 (hash_scan_insn): Likewise.
13711 (compute_hash_table_work): Likewise for local "insn".
13712 (process_insert_insn): Likewise for return type and local "pat".
13713 (insert_insn_end_basic_block): Likewise for locals "new_insn",
13714 "pat", "pat_end", "maybe_cc0_setter".
13715 (pre_edge_insert): Likewise for local "insn".
13716 (pre_insert_copy_insn): Likewise for param "insn".
13717 (pre_insert_copies): Likewise for local "insn".
13718 (struct set_data): Likewise for field "insn".
13719 (single_set_gcse): Likewise for param "insn".
13720 (gcse_emit_move_after): Likewise.
13721 (pre_delete): Likewise for local "insn".
13722 (update_bb_reg_pressure): Likewise for param "from" and local
13724 (should_hoist_expr_to_dom): Likewise for param "from".
13725 (hoist_code): Likewise for local "insn".
13726 (get_pressure_class_and_nregs): Likewise for param "insn".
13727 (calculate_bb_reg_pressure): Likewise for local "insn".
13728 (compute_ld_motion_mems): Likewise.
13730 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13732 * genpeep.c (main): Rename param back from "uncast_ins1" to
13733 "ins1", strengthening from rtx to rtx_insn *. Drop now-redundant
13736 * output.h (peephole): Strengthen param from rtx to rtx_insn *.
13738 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
13741 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
13742 documentation to state it is only for VSX operations.
13744 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
13745 constraint only active if VSX.
13747 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
13748 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
13749 (lfiwzx): Likewise.
13751 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13753 * fwprop.c (single_def_use_dom_walker::before_dom_children):
13754 Strengthen local "insn" from rtx to rtx_insn *.
13755 (use_killed_between): Likewise for param "target_insn".
13756 (all_uses_available_at): Likewise for param "target_insn" and
13758 (update_df_init): Likewise for params "def_insn", "insn".
13759 (update_df): Likewise for param "insn".
13760 (try_fwprop_subst): Likewise for param "def_insn" and local
13762 (free_load_extend): Likewise for param "insn".
13763 (forward_propagate_subreg): Likewise for param "def_insn" and
13765 (forward_propagate_asm): Likewise for param "def_insn" and local
13767 (forward_propagate_and_simplify): Likewise for param "def_insn"
13768 and local "use_insn".
13769 (forward_propagate_into): Likewise for locals "def_insn" and
13772 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13774 * function.c (emit_initial_value_sets): Strengthen local "seq"
13775 from rtx to rtx_insn *.
13776 (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
13778 (instantiate_virtual_regs): Likewise for local "insn".
13779 (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
13780 (reorder_blocks_1): Likewise for param "insns" and local "insn".
13781 (expand_function_end): Likewise for locals "insn" and "seq".
13782 (epilogue_done): Likewise for local "insn".
13783 (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
13785 (reposition_prologue_and_epilogue_notes): Likewise for locals
13786 "insn", "last", "note", "first".
13787 (match_asm_constraints_1): Likewise for param "insn" and local "insns".
13788 (pass_match_asm_constraints::execute): Likewise for local "insn".
13790 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13792 * output.h (final_scan_insn): Strengthen return type from rtx to
13794 (final_forward_branch_p): Likewise for param.
13795 (current_output_insn): Likewise for this global.
13797 * final.c (rtx debug_insn): Likewise for this variable.
13798 (current_output_insn): Likewise.
13799 (get_attr_length_1): Rename param "insn" to "uncast_insn",
13800 adding "insn" back in as an rtx_insn * with a checked cast, so
13801 that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
13803 (compute_alignments): Strengthen local "label" from rtx to
13805 (shorten_branches): Rename param from "first" to "uncast_first",
13806 introducing a new local rtx_insn * "first" using a checked cast to
13807 effectively strengthen "first" from rtx to rtx_insn * without
13808 affecting the type signature. Strengthen locals "insn", "seq",
13809 "next", "label" from rtx to rtx_insn *.
13810 (change_scope): Strengthen param "orig_insn" and local "insn" from
13812 (final_start_function): Rename param from "first" to "uncast_first",
13813 introducing a new local rtx_insn * "first" using a checked cast to
13814 effectively strengthen "first" from rtx to rtx_insn * without
13815 affecting the type signature. Strengthen local "insn" from rtx to
13817 (dump_basic_block_info): Strengthen param "insn" from rtx to
13819 (final): Rename param from "first" to "uncast_first",
13820 introducing a new local rtx_insn * "first" using a checked cast to
13821 effectively strengthen "first" from rtx to rtx_insn * without
13822 affecting the type signature. Strengthen locals "insn", "next"
13823 from rtx to rtx_insn *.
13824 (output_alternate_entry_point): Strengthen param "insn" from rtx to
13826 (call_from_call_insn): Strengthen param "insn" from rtx to
13828 (final_scan_insn): Rename param from "insn" to "uncast_insn",
13829 introducing a new local rtx_insn * "insn" using a checked cast to
13830 effectively strengthen "insn" from rtx to rtx_insn * without
13831 affecting the type signature. Strengthen return type and locals
13832 "next", "note", "prev", "new_rtx" from rtx to rtx_insn *. Remove
13833 now-redundant checked cast to rtx_insn * from both invocations of
13834 debug_hooks->var_location. Convert CALL_P into a dyn_cast,
13835 introducing a local "call_insn" for use when invoking
13836 call_from_call_insn.
13837 (notice_source_line): Strengthen param "insn" from rtx to
13839 (leaf_function_p): Likewise for local "insn".
13840 (final_forward_branch_p): Likewise.
13841 (leaf_renumber_regs): Likewise for param "first".
13842 (rest_of_clean_state): Likewise for locals "insn" and "next".
13843 (self_recursive_call_p): Likewise for param "insn".
13844 (collect_fn_hard_reg_usage): Likewise for local "insn".
13845 (get_call_fndecl): Likewise for param "insn".
13846 (get_call_cgraph_rtl_info): Likewise.
13847 (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
13848 introducing a new local rtx_insn * "insn" using a checked cast to
13849 effectively strengthen "insn" from rtx to rtx_insn * without
13850 affecting the type signature.
13852 * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
13853 cast when assigning from param "insn" to current_output_insn.
13854 (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
13855 so that we can assign it back to current_output_insn.
13857 2014-08-20 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13859 * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
13860 atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
13861 atmxt540s and atmxt540sreva devices.
13862 * config/avr/avr-tables.opt: Regenerate.
13863 * config/avr/t-multilib: Regenerate.
13864 * doc/avr-mmcu.texi: Regenerate.
13866 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13868 * expr.c (convert_move): Strengthen local "insns" from rtx to
13870 (emit_block_move_via_loop): Strengthen locals "cmp_label" and
13871 "top_label" from rtx to rtx_code_label *.
13872 (move_block_to_reg): Strengthen local "insn", "last" from rtx to
13874 (emit_single_push_insn): Likewise for locals "prev", "last".
13875 (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
13876 to rtx_code_label *.
13877 (store_constructor): Likewise for locals "loop_start", "loop_end".
13878 (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
13880 (expand_expr_real_2): Likewise.
13881 (expand_expr_real_1): Strengthen local "label" from rtx to
13884 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13886 * expmed.c (store_bit_field_using_insv): Strengthen local "last"
13887 from rtx to rtx_insn *.
13888 (store_bit_field_1): Likewise.
13889 (extract_bit_field_1): Likewise.
13890 (expand_mult_const): Likewise for local "insns".
13891 (expmed_mult_highpart): Strengthen local "label" from rtx to
13893 (expand_smod_pow2): Likewise.
13894 (expand_sdiv_pow2): Likewise.
13895 (expand_divmod): Strengthen locals "last", "insn" from rtx to
13896 rtx_insn *. Strengthen locals "label", "label1", "label2",
13897 "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
13898 (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
13899 (emit_store_flag): Likewise.
13900 (emit_store_flag_force): Strengthen local "label" from rtx to
13902 (do_cmp_and_jump): Likewise for param "label".
13904 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13906 * explow.c (force_reg): Strengthen local "insn" from rtx to
13908 (adjust_stack_1): Likewise.
13909 (allocate_dynamic_stack_space): Likewise. Strengthen locals
13910 "final_label", "available_label", "space_available" from rtx to
13912 (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
13913 (anti_adjust_stack_and_probe): Likewise.
13915 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13917 * except.h (sjlj_emit_function_exit_after): Strengthen param
13918 "after" from rtx to rtx_insn *. This is only called with
13919 result of get_last_insn (in function.c) so type-change should be
13922 * function.h (struct rtl_eh): Strengthen field "ehr_label" from
13923 rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
13924 to rtx_insn *. These fields are only used from except.c so this
13925 type-change should be self-contained to this patch.
13927 * except.c (emit_to_new_bb_before): Strengthen param "seq" and
13928 local "last" from rtx to rtx_insn *.
13929 (dw2_build_landing_pads): Likewise for local "seq".
13930 (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
13931 (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
13932 rtx to rtx_code_label *. Strengthen locals "fn_begin", "seq" from
13934 (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
13936 (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
13937 (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
13938 (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
13939 referring to an insn. Strengthen local "dispatch_label" from
13940 rtx to rtx_code_label *.
13941 (set_nothrow_function_flags): Strengthen local "insn" from rtx to
13943 (expand_eh_return): Strengthen local "around_label" from
13944 rtx to rtx_code_label *.
13945 (convert_to_eh_region_ranges): Strengthen locals "iter",
13946 "last_action_insn", "first_no_action_insn",
13947 "first_no_action_insn_before_switch",
13948 "last_no_action_insn_before_switch", from rtx to rtx_insn *.
13950 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13952 * dwarf2out.c (last_var_location_insn): Strengthen this variable
13953 from rtx to rtx_insn *.
13954 (cached_next_real_insn): Likewise.
13955 (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
13956 working with insns.
13957 (dwarf2out_var_location): Strengthen locals "next_real",
13958 "next_note", "expected_next_loc_note", "last_start", "insn" from
13961 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13963 * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
13964 from rtx to rtx_insn *.
13965 (create_pseudo_cfg): Likewise for local "insn".
13967 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13969 * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
13970 from rtx to rtx_insn *.
13971 (df_bb_regno_last_def_find): Likewise.
13973 * df-problems.c (df_rd_bb_local_compute): Likewise.
13974 (df_lr_bb_local_compute): Likewise.
13975 (df_live_bb_local_compute): Likewise.
13976 (df_chain_remove_problem): Likewise.
13977 (df_chain_create_bb): Likewise.
13978 (df_word_lr_bb_local_compute): Likewise.
13979 (df_remove_dead_eq_notes): Likewise for param "insn".
13980 (df_note_bb_compute): Likewise for local "insn".
13981 (simulate_backwards_to_point): Likewise.
13982 (df_md_bb_local_compute): Likewise.
13984 * df-scan.c (df_scan_free_bb_info): Likewise.
13985 (df_scan_start_dump): Likewise.
13986 (df_scan_start_block): Likewise.
13987 (df_install_ref_incremental): Likewise for local "insn".
13988 (df_insn_rescan_all): Likewise.
13989 (df_reorganize_refs_by_reg_by_insn): Likewise.
13990 (df_reorganize_refs_by_insn_bb): Likewise.
13991 (df_recompute_luids): Likewise.
13992 (df_bb_refs_record): Likewise.
13993 (df_update_entry_exit_and_calls): Likewise.
13994 (df_bb_verify): Likewise.
13996 2014-08-22 David Malcolm <dmalcolm@redhat.com>
13998 * ddg.h (struct ddg_node): Strengthen fields "insn" and
13999 "first_note" from rtx to rtx_insn *.
14000 (get_node_of_insn): Likewise for param 2 "insn".
14001 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
14003 * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
14005 (mem_write_insn_p): Likewise.
14006 (mem_access_insn_p): Likewise.
14007 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
14008 (def_has_ccmode_p): Likewise for param "insn".
14009 (add_cross_iteration_register_deps): Likewise for locals
14010 "def_insn" and "use_insn".
14011 (insns_may_alias_p): Likewise for params "insn1" and "insn2".
14012 (build_intra_loop_deps): Likewise for local "src_insn".
14013 (create_ddg): Strengthen locals "insn" and "first_note" from rtx
14015 (get_node_of_insn): Likewise for param "insn".
14017 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14019 * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
14020 (deletable_insn_p): Strengthen param "insn" from rtx to
14021 rtx_insn *. Add checked cast to rtx_call_insn when invoking
14022 find_call_stack_args, since this is guarded by CALL_P (insn).
14023 (marked_insn_p): Strengthen param "insn" from rtx to
14025 (mark_insn): Likewise. Add checked cast to rtx_call_insn when
14026 invoking find_call_stack_args, since this is guarded by
14028 (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
14029 rtx_insn *; we know this is an insn since this was called by
14030 mark_nonreg_stores.
14031 (mark_nonreg_stores_2): Likewise.
14032 (mark_nonreg_stores): Strengthen param "insn" from rtx to
14034 (find_call_stack_args): Strengthen param "call_insn" from rtx to
14035 rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
14037 (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
14038 from rtx to rtx_insn *.
14039 (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
14040 "next", "ref_insn".
14041 (delete_unmarked_insns): Likewise for locals "insn", "next".
14042 (prescan_insns_for_dce): Likewise for locals "insn", "prev".
14043 (mark_reg_dependencies): Likewise for param "insn".
14044 (rest_of_handle_ud_dce): Likewise for local "insn".
14045 (word_dce_process_block): Likewise.
14046 (dce_process_block): Likewise.
14048 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14050 * cse.c (struct qty_table_elem): Strengthen field "const_insn"
14051 from rtx to rtx_insn *.
14052 (struct change_cc_mode_args): Likewise for field "insn".
14053 (this_insn): Strengthen from rtx to rtx_insn *.
14054 (make_new_qty): Replace use of NULL_RTX with NULL when dealing
14056 (validate_canon_reg): Strengthen param "insn" from rtx to
14058 (canon_reg): Likewise.
14059 (fold_rtx): Likewise. Replace use of NULL_RTX with NULL when
14061 (record_jump_equiv): Strengthen param "insn" from rtx to
14063 (try_back_substitute_reg): Likewise, also for locals "prev",
14065 (find_sets_in_insn): Likewise for param "insn".
14066 (canonicalize_insn): Likewise.
14067 (cse_insn): Likewise. Add a checked cast.
14068 (invalidate_from_clobbers): Likewise for param "insn".
14069 (invalidate_from_sets_and_clobbers): Likewise.
14070 (cse_process_notes_1): Replace use of NULL_RTX with NULL when
14072 (cse_prescan_path): Strengthen local "insn" from rtx to
14074 (cse_extended_basic_block): Likewise for locals "insn" and
14076 (cse_main): Likewise for param "f".
14077 (check_for_label_ref): Likewise for local "insn".
14078 (set_live_p): Likewise for second param ("insn").
14079 (insn_live_p): Likewise for first param ("insn") and for local
14081 (cse_change_cc_mode_insn): Likewise for first param "insn".
14082 (cse_change_cc_mode_insns): Likewise for first and second params
14084 (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
14086 (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
14089 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
14090 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14091 Anna Tikhonova <anna.tikhonova@intel.com>
14092 Ilya Tocar <ilya.tocar@intel.com>
14093 Andrey Turetskiy <andrey.turetskiy@intel.com>
14094 Ilya Verbin <ilya.verbin@intel.com>
14095 Kirill Yukhin <kirill.yukhin@intel.com>
14096 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14098 * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
14100 * config/i386/sse.md
14101 (define_mode_iterator VI248_AVX2): Delete.
14102 (define_mode_iterator VI2_AVX2_AVX512BW): New.
14103 (define_mode_iterator VI48_AVX2): Ditto.
14104 (define_insn <shift_insn><mode>3): Delete.
14105 (define_insn "<shift_insn><mode>3<mask_name>" with
14106 VI2_AVX2_AVX512BW): New.
14107 (define_insn "<shift_insn><mode>3<mask_name>" with
14110 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
14111 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14112 Anna Tikhonova <anna.tikhonova@intel.com>
14113 Ilya Tocar <ilya.tocar@intel.com>
14114 Andrey Turetskiy <andrey.turetskiy@intel.com>
14115 Ilya Verbin <ilya.verbin@intel.com>
14116 Kirill Yukhin <kirill.yukhin@intel.com>
14117 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14119 * config/i386/sse.md
14120 (define_mode_iterator VI4F_BRCST32x2): New.
14121 (define_mode_attr 64x2_mode): Ditto.
14122 (define_mode_attr 32x2mode): Ditto.
14123 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
14124 with VI4F_BRCST32x2): Ditto.
14125 (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
14126 with V16FI mode iterator): Ditto.
14127 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
14128 with V16FI): Ditto.
14129 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
14130 with VI8F_BRCST64x2): Ditto.
14132 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
14133 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14134 Anna Tikhonova <anna.tikhonova@intel.com>
14135 Ilya Tocar <ilya.tocar@intel.com>
14136 Andrey Turetskiy <andrey.turetskiy@intel.com>
14137 Ilya Verbin <ilya.verbin@intel.com>
14138 Kirill Yukhin <kirill.yukhin@intel.com>
14139 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14141 * config/i386/sse.md
14142 (define_mode_iterator VI8_AVX512VL): New.
14143 (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
14145 2014-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
14147 * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
14148 (define_mode_iterator V48_AVX512VL): New.
14149 (define_mode_iterator V12_AVX512VL): Ditto.
14150 (define_insn <avx512>_load<mode>_mask): Split into two similar
14151 patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
14152 Refactor output template.
14153 (define_insn "<avx512>_store<mode>_mask"): Ditto.
14155 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14157 * cprop.c (struct occr): Strengthen field "insn" from rtx to
14159 (reg_available_p): Likewise for param "insn".
14160 (insert_set_in_table): Likewise.
14161 (hash_scan_set): Likewise.
14162 (hash_scan_insn): Likewise.
14163 (make_set_regs_unavailable): Likewise.
14164 (compute_hash_table_work): Likewise for local "insn".
14165 (reg_not_set_p): Strengthen param "insn" from const_rtx to
14167 (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
14168 (try_replace_reg): Likewise.
14169 (find_avail_set): Likewise.
14170 (cprop_jump): Likewise for params "setcc", "jump".
14171 (constprop_register): Likewise for param "insn".
14172 (cprop_insn): Likewise.
14173 (do_local_cprop): Likewise.
14174 (local_cprop_pass): Likewise for local "insn".
14175 (bypass_block): Likewise for params "setcc" and "jump".
14176 (bypass_conditional_jumps): Likewise for locals "setcc" and
14178 (one_cprop_pass): Likewise for local "insn".
14180 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14182 * compare-elim.c (struct comparison_use): Strengthen field "insn"
14183 from rtx to rtx_insn *.
14184 (struct comparison): Likewise, also for field "prev_clobber".
14185 (conforming_compare): Likewise for param "insn".
14186 (arithmetic_flags_clobber_p): Likewise.
14187 (find_flags_uses_in_insn): Likewise.
14188 (find_comparison_dom_walker::before_dom_children): Likewise for
14189 locals "insn", "next", "last_clobber".
14190 (try_eliminate_compare): Likewise for locals "insn", "bb_head".
14192 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14194 * combine-stack-adj.c (struct csa_reflist): Strengthen field
14195 "insn" from rtx to rtx_insn *.
14196 (single_set_for_csa): Likewise for param "insn".
14197 (record_one_stack_ref): Likewise.
14198 (try_apply_stack_adjustment): Likewise.
14199 (struct record_stack_refs_data): Likewise for field "insn".
14200 (maybe_move_args_size_note): Likewise for params "last" and "insn".
14201 (prev_active_insn_bb): Likewise for return type and param "insn".
14202 (next_active_insn_bb): Likewise.
14203 (force_move_args_size_note): Likewise for params "prev" and "last"
14204 and locals "test", "next_candidate", "prev_candidate".
14205 (combine_stack_adjustments_for_block): Strengthen locals
14206 "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
14209 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14211 * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
14212 (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
14213 (subst_insn): Likewise for this variable.
14214 (added_links_insn): Likewise.
14215 (struct insn_link): Likewise for field "insn".
14216 (alloc_insn_link): Likewise for param "insn".
14217 (struct undobuf): Likewise for field "other_insn".
14218 (find_single_use): Likewise for param "insn" and local "next".
14219 (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
14220 (delete_noop_moves): Likewise for locals "insn", "next".
14221 (create_log_links): Likewise for locals "insn", "use_insn".
14222 Strengthen local "next_use" from rtx * to rtx_insn **.
14223 (insn_a_feeds_b): Likewise for params "a", "b".
14224 (combine_instructions): Likewise for param "f" and locals "insn",
14225 "next", "prev", "first", "last_combined_insn", "link", "link1",
14226 "temp". Replace use of NULL_RTX with NULL when referring to
14228 (setup_incoming_promotions): Likewise for param "first"
14229 (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
14230 (can_combine_p): Likewise for params "insn", "i3", "pred",
14231 "pred2", "succ", "succ2" and for local "p".
14232 (combinable_i3pat): Likewise for param "i3".
14233 (cant_combine_insn_p): Likewise for param "insn".
14234 (likely_spilled_retval_p): Likewise.
14235 (adjust_for_new_dest): Likewise.
14236 (update_cfg_for_uncondjump): Likewise, also for local "insn".
14237 (try_combine): Likewise for return type and for params "i3", "i2",
14238 "i1", "i0", "last_combined_insn", and for locals "insn",
14239 "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
14240 "i0_insn". Eliminate local "tem" in favor of new locals
14241 "tem_note" and "tem_insn", the latter being an rtx_insn *. Add a
14242 checked cast for now to rtx_insn * on the return type of
14243 gen_rtx_INSN. Replace use of NULL_RTX with NULL when referring to
14245 (find_split_point): Strengthen param "insn" from rtx to
14247 (simplify_set): Likewise for local "other_insn".
14248 (recog_for_combine): Likewise for param "insn".
14249 (record_value_for_reg): Likewise.
14250 (record_dead_and_set_regs_1): Likewise for local
14251 "record_dead_insn".
14252 (record_dead_and_set_regs): Likewise for param "insn".
14253 (record_promoted_value): Likewise.
14254 (check_promoted_subreg): Likewise.
14255 (get_last_value_validate): Likewise.
14256 (reg_dead_at_p): Likewise.
14257 (move_deaths): Likewise for param "to_insn".
14258 (distribute_notes): Likewise for params "from_insn", "i3", "i2"
14259 and locals "place", "place2", "cc0_setter". Eliminate local "tem
14260 in favor of new locals "tem_note" and "tem_insn", the latter being
14262 (distribute_links): Strengthen locals "place", "insn" from rtx to
14265 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14267 * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
14269 (can_delete_label_p): Require a const rtx_code_label * rather than
14271 (delete_insn): Add checked cast to rtx_code_label * when we know
14272 we're dealing with LABEL_P (insn). Strengthen local "bb_note" from
14274 (delete_insn_chain): Strengthen locals "prev" and "current" from
14275 rtx to rtx_insn *. Add a checked cast when assigning from
14276 "finish" (strengthening the params will come later). Add a
14277 checked cast to rtx_note * in region where we know
14279 (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
14281 (compute_bb_for_insn): Likewise.
14282 (free_bb_for_insn): Likewise for local "insn".
14283 (compute_bb_for_insn): Likewise.
14284 (update_bb_for_insn_chain): Strengthen params "begin", "end" and
14285 local "insn" from rtx to rtx_insn *
14286 (flow_active_insn_p): Require a const rtx_insn * rather than a
14288 (contains_no_active_insn_p): Strengthen local "insn" from rtx to
14290 (can_fallthru): Likewise for locals "insn" and "insn2".
14291 (bb_note): Likewise for local "note".
14292 (first_insn_after_basic_block_note): Likewise for local "note" and
14294 (rtl_split_block): Likewise for locals "insn" and "next".
14295 (unique_locus_on_edge_between_p): Likewise for locals "insn" and
14297 (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
14298 "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
14300 (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
14301 them), "kill_from", "barrier", "new_insn".
14302 (patch_jump_insn): Likewise for params "insn", "old_label".
14303 (redirect_branch_edge): Likewise for locals "old_label", "insn".
14304 (force_nonfallthru_and_redirect): Likewise for locals "insn",
14305 "old_label", "new_label".
14306 (rtl_tidy_fallthru_edge): Likewise for local "q".
14307 (rtl_split_edge): Likewise for locals "before", "last".
14308 (commit_one_edge_insertion): Likewise for locals "before",
14309 "after", "insns", "tmp", "last", adding a checked cast where
14310 currently necessary.
14311 (commit_edge_insertions): Likewise.
14312 (rtl_dump_bb): Likewise for locals "insn", "last".
14313 (print_rtl_with_bb): Likewise for local "x".
14314 (rtl_verify_bb_insns): Likewise for local "x".
14315 (rtl_verify_bb_pointers): Likewise for local "insn".
14316 (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
14318 (rtl_verify_fallthru): Likewise for local "insn".
14319 (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
14320 (purge_dead_edges): Likewise for local "insn".
14321 (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
14322 (skip_insns_after_block): Likewise for return type and for locals
14323 "insn", "last_insn", "next_head", "prev".
14324 (record_effective_endpoints): Likewise for locals "next_insn",
14326 (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
14327 (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
14328 (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
14329 (duplicate_insn_chain): For now, add checked cast from rtx to
14330 rtx_insn * when returning insn.
14331 (cfg_layout_duplicate_bb): Likewise for local "insn".
14332 (cfg_layout_delete_block): Likewise for locals "insn", "next",
14333 "prev", "remaints".
14334 (cfg_layout_merge_blocks): Likewise for local "insn", "last".
14335 (rtl_block_empty_p): Likewise.
14336 (rtl_split_block_before_cond_jump): Likewise for locals "insn",
14337 "split_point", "last".
14338 (rtl_block_ends_with_call_p): Likewise for local "insn".
14339 (need_fake_edge_p): Strengthen param "insn" from const_rtx to
14341 (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
14342 "split_at_insn" from rtx to rtx_insn *.
14343 (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
14344 (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
14345 to const rtx_insn *.
14346 (rtl_account_profile_record): Likewise.
14348 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14350 * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
14352 (average_num_loop_insns): Likewise.
14353 (init_set_costs): Likewise for local "seq".
14354 (seq_cost): Likewise for param "seq", from const_rtx to const
14357 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14359 * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
14362 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14364 * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
14365 "f1" and "f2" from rtx * to rtx_insn **.
14366 (flow_find_head_matching_sequence): Likewise.
14368 * cfgcleanup.c (try_simplify_condjump): Strengthen local
14369 "cbranch_insn" from rtx to rtx_insn *.
14370 (thread_jump): Likewise for local "insn".
14371 (try_forward_edges): Likewise for local "last".
14372 (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
14373 (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
14375 (can_replace_by): Likewise for params "i1", "i2".
14376 (old_insns_match_p): Likewise.
14377 (merge_notes): Likewise.
14378 (walk_to_nondebug_insn): Likewise for param "i1".
14379 (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
14380 to rtx_insn **. Strengthen locals "i1", "i2", "last1", "last2",
14381 "afterlast1", "afterlast2" from rtx to rtx_insn *.
14382 (flow_find_head_matching_sequence): Strengthen params "f1" and
14383 "f2" from rtx * to rtx_insn **. Strengthen locals "i1", "i2",
14384 "last1", "last2", "beforelast1", "beforelast2" from rtx to
14386 (outgoing_edges_match): Likewise for locals "last1", "last2".
14387 (try_crossjump_to_edge): Likewise for local "insn".
14388 Replace call to for_each_rtx with for_each_rtx_in_insn.
14390 (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
14391 (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
14392 "e0_last", "e_last", "head", "curr", "insn". Strengthen locals
14393 "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
14394 (try_optimize_cfg): Strengthen local "last" from rtx to
14396 (delete_dead_jumptables): Likewise for locals "insn", "next",
14399 * ifcvt.c (cond_exec_process_if_block): Likewise for locals
14400 "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
14401 "rtx else_first_tail", to reflect the basic-block.h changes above.
14403 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14405 * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
14407 (purge_dead_tablejump_edges): Likewise.
14408 (find_bb_boundaries): Likewise for locals "insn", "end",
14409 "flow_transfer_insn".
14411 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14413 * caller-save.c (save_call_clobbered_regs): Strengthen locals
14414 "ins" and "prev" from rtx to rtx_insn *.
14416 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14418 * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
14420 (internal_arg_pointer_exp_state): Likewise for field "scan_start".
14421 (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
14423 (load_register_parameters): Likewise for local "before_arg".
14424 (check_sibcall_argument_overlap): Likewise for param "insn".
14425 (expand_call): Likewise for locals "normal_call_insns",
14426 "tail_call_insns", "insns", "before_call", "after_args",
14427 "before_arg", "last", "prev". Strengthen one of the "last" from
14428 rtx to rtx_call_insn *.
14429 (fixup_tail_calls): Strengthen local "insn" from rtx to
14431 (emit_library_call_value_1): Likewise for locals "before_call" and
14434 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14436 * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
14437 and "last" from rtx to rtx_insn *.
14438 (expand_builtin_nonlocal_goto): Likewise for local "insn".
14439 (expand_builtin_apply): Strengthen local "call_insn" from rtx to
14441 (expand_errno_check): Strengthen local "lab" from rtx to
14443 (expand_builtin_mathfn): Strengthen local "insns" from rtx to
14445 (expand_builtin_mathfn_2): Likewise.
14446 (expand_builtin_mathfn_ternary): Likewise.
14447 (expand_builtin_mathfn_3): Likewise.
14448 (expand_builtin_interclass_mathfn): Likewise for local "last".
14449 (expand_builtin_int_roundingfn): Likewise for local "insns".
14450 (expand_builtin_int_roundingfn_2): Likewise.
14451 (expand_builtin_strlen): Likewise for local "before_strlen".
14452 (expand_builtin_strncmp): Likewise for local "seq".
14453 (expand_builtin_signbit): Likewise for local "last".
14454 (expand_builtin_atomic_compare_exchange): Strengthen local "label"
14455 from rtx to rtx_code_label *.
14456 (expand_stack_restore): Strengthen local "prev" from rtx to
14459 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14461 * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
14463 (struct btr_def_s): Likewise.
14464 (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
14466 (add_btr_def): Likewise.
14467 (new_btr_user): Likewise.
14468 (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
14470 (link_btr_uses): Likewise.
14471 (move_btr_def): Likewise for locals "insp", "old_insn",
14472 "new_insn". Add checked cast to rtx_insn * for now on result of
14474 (can_move_up): Strengthen param "insn" from const_rtx to
14477 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14479 * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
14481 (get_uncond_jump_length): Likewise for locals "label", "jump".
14482 (fix_up_crossing_landing_pad): Likewise for locals "new_label",
14484 (add_labels_and_missing_jumps): Likewise for local "new_jump".
14485 (fix_up_fall_thru_edges): Likewise for local "old_jump".
14486 (find_jump_block): Likewise for local "insn".
14487 (fix_crossing_conditional_branches): Likewise for locals
14488 "old_jump", "new_jump".
14489 (fix_crossing_unconditional_branches): Likewise for locals
14490 "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
14491 (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
14493 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14495 * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
14497 (struct mem_insn): Likewise for field "insn".
14498 (reg_next_use): Strengthen from rtx * to rtx_insn **.
14499 (reg_next_inc_use): Likewise.
14500 (reg_next_def): Likewise.
14501 (move_dead_notes): Strengthen params "to_insn" and "from_insn"
14502 from rtx to rtx_insn *.
14503 (move_insn_before): Likewise for param "next_insn" and local "insns".
14504 (attempt_change): Likewise for local "mov_insn".
14505 (try_merge): Likewise for param "last_insn".
14506 (get_next_ref): Likewise for return type and local "insn".
14507 Strengthen param "next_array" from rtx * to rtx_insn **.
14508 (parse_add_or_inc): Strengthen param "insn" from rtx to
14510 (find_inc): Likewise for locals "insn" and "other_insn" (three of
14512 (merge_in_block): Likewise for locals "insn", "curr",
14514 (pass_inc_dec::execute): Update allocations of the arrays to
14515 reflect the stronger types.
14517 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14519 * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
14520 and "jump" from rtx to rtx_insn *. Strengthen local "top_label"
14521 from rtx to rtx_code_label *.
14523 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14525 * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
14528 2014-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
14530 * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
14531 generated a warning and prevented bootstrapping the compiler.
14533 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14535 * rtl.h (delete_related_insns): Strengthen return type from rtx to
14538 * jump.c (delete_related_insns): Likewise, also for locals "next"
14541 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14543 * genautomata.c (output_internal_insn_latency_func): When writing
14544 the function "internal_insn_latency" to insn-automata.c,
14545 strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
14546 allowing the optional guard function of (define_bypass) clauses to
14547 expect a pair of rtx_insn *, rather than a pair of rtx.
14548 (output_insn_latency_func): When writing the function
14549 "insn_latency", add an "uncast_" prefix to params "insn" and
14550 "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
14551 using checked casts from the params, thus enabling the above
14552 change to the generated "internal_insn_latency" function.
14554 2014-08-21 Jan Hubicka <hubicka@ucw.cz>
14556 PR tree-optimization/62091
14557 * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
14558 handle correctly arrays.
14559 (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
14560 inheritance binfos.
14561 (record_known_type): Walk into inner type.
14562 (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
14563 condition on no type changes.
14565 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14567 * genattrtab.c (write_attr_get): Within the generated get_attr_
14568 functions, rename param "insn" to "uncast_insn" and reintroduce
14569 "insn" as an local rtx_insn * using a checked cast, so that "insn"
14570 is an rtx_insn * within insn-attrtab.c
14572 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14574 * output.h (peephole): Strengthen return type from rtx to
14576 * rtl.h (delete_for_peephole): Likewise for both params.
14577 * genpeep.c (main): In generated "peephole" function, strengthen
14578 return type and local "insn" from rtx to rtx_insn *. For now,
14579 rename param "ins1" to "uncast_ins1", adding "ins1" back as an
14580 rtx_insn *, with a checked cast.
14581 * jump.c (delete_for_peephole): Strengthen params "from", "to" and
14582 locals "insn", "next", "prev" from rtx to rtx_insn *.
14584 2014-08-21 Marc Glisse <marc.glisse@inria.fr>
14586 PR tree-optimization/62112
14587 * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
14588 * gimple-iterator.h (gsi_replace): Return bool.
14589 * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
14590 moved from ref_may_alias_global_p.
14591 (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
14593 (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
14594 (stmt_kills_ref_p_1): Rename...
14595 (stmt_kills_ref_p): ... to this.
14596 * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
14597 stmt_kills_ref_p): Declare.
14598 * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
14599 Move the self-assignment case...
14600 (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
14602 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14604 * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
14606 * emit-rtl.c (try_split): Likewise, also for locals "before" and
14607 "after". For now, don't strengthen param "trial", which requires
14608 adding checked casts when returning it.
14610 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14612 * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
14613 "label" from rtx to rtx_code_label *. Strengthen param 1 of
14614 "var_location" hook from rtx to rtx_insn *.
14615 (debug_nothing_rtx): Delete in favor of...
14616 (debug_nothing_rtx_code_label): New prototype.
14617 (debug_nothing_rtx_rtx): Delete unused prototype.
14618 (debug_nothing_rtx_insn): New prototype.
14620 * final.c (final_scan_insn): Add checked cast to rtx_insn * when
14621 invoking debug_hooks->var_location (in two places, one in a NOTE
14622 case of a switch statement, the other guarded by a CALL_P
14623 conditional. Add checked cast to rtx_code_label * when invoking
14624 debug_hooks->label (within CODE_LABEL case of switch statement).
14626 * dbxout.c (dbx_debug_hooks): Update "label" hook from
14627 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
14628 "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
14629 (xcoff_debug_hooks): Likewise.
14630 * debug.c (do_nothing_debug_hooks): Likewise.
14631 (debug_nothing_rtx): Delete in favor of...
14632 (debug_nothing_rtx_insn): New function.
14633 (debug_nothing_rtx_rtx): Delete unused function.
14634 (debug_nothing_rtx_code_label): New function.
14635 * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
14636 debug_nothing_rtx to debug_nothing_rtx_code_label.
14637 (dwarf2out_var_location): Strengthen param "loc_note" from rtx
14639 * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
14640 debug_nothing_rtx to debug_nothing_rtx_insn.
14641 (sdbout_label): Strengthen param "insn" from rtx to
14643 * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
14644 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
14645 "var_location" hook from debug_nothing_rtx to
14646 debug_nothing_rtx_insn.
14648 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14650 * recog.h (insn_output_fn): Update this function typedef to match
14651 the changes below to the generated output functions, strengthening
14652 the 2nd param from rtx to rtx_insn *.
14654 * final.c (get_insn_template): Add a checked cast to rtx_insn * on
14655 insn when invoking an output function, to match the new signature
14656 of insn_output_fn with a stronger second param.
14658 * genconditions.c (write_header): In the generated code for
14659 gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
14660 to match the other changes in this patch.
14662 * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
14663 the generated "gen_" functions from rtx to rtx_insn * within their
14666 * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
14667 the subfunctions within the generated "recog_", "split", "peephole2"
14668 function trees from rtx to rtx_insn *. For now, the top-level
14669 generated functions ("recog", "split", "peephole2") continue to
14670 take a plain rtx for "insn", to avoid introducing dependencies on
14671 other patches. Rename this 2nd param from "insn" to
14672 "uncast_insn", and reintroduce "insn" as a local variable of type
14673 rtx_insn *, initialized at the top of the generated function with
14674 a checked cast on "uncast_insn".
14675 (make_insn_sequence): Strengthen the 1st param "curr_insn" of
14676 the generated "gen_" functions from rtx to rtx_insn * within their
14679 * genoutput.c (process_template): Strengthen the 2nd param within
14680 the generated "output_" functions "insn" from rtx to rtx_insn *.
14682 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
14684 * tree-profile.c (tree_profiling): Skip external functions
14685 when doing coverage instrumentation.
14686 * cgraphunit.c (compile): Do not assert that all nodes are reachable.
14688 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14690 * config/rs6000/altivec.h (vec_cpsgn): New #define.
14691 (vec_mergee): Likewise.
14692 (vec_mergeo): Likewise.
14693 (vec_cntlz): Likewise.
14694 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
14695 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
14696 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
14697 VMRGEW, and VMRGOW.
14698 * doc/extend.texi: Document various forms of vec_cpsgn,
14699 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
14700 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
14701 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
14702 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
14703 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
14705 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14707 * config/rs6000/rs6000.c (context.h): New include.
14708 (tree-pass.h): Likewise.
14709 (make_pass_analyze_swaps): New decl.
14710 (rs6000_option_override): Register pass_analyze_swaps.
14711 (swap_web_entry): New subsclass of web_entry_base (df.h).
14712 (special_handling_values): New enum.
14713 (union_defs): New function.
14714 (union_uses): Likewise.
14715 (insn_is_load_p): Likewise.
14716 (insn_is_store_p): Likewise.
14717 (insn_is_swap_p): Likewise.
14718 (rtx_is_swappable_p): Likewise.
14719 (insn_is_swappable_p): Likewise.
14720 (chain_purpose): New enum.
14721 (chain_contains_only_swaps): New function.
14722 (mark_swaps_for_removal): Likewise.
14723 (swap_const_vector_halves): Likewise.
14724 (adjust_subreg_index): Likewise.
14725 (permute_load): Likewise.
14726 (permute_store): Likewise.
14727 (handle_special_swappables): Likewise.
14728 (replace_swap_with_copy): Likewise.
14729 (dump_swap_insn_table): Likewise.
14730 (rs6000_analyze_swaps): Likewise.
14731 (pass_data_analyze_swaps): New pass_data.
14732 (pass_analyze_swaps): New rtl_opt_pass.
14733 (make_pass_analyze_swaps): New function.
14734 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
14736 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14738 * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
14739 type from rtx to rtx_insn *.
14740 (create_copy_of_insn_rtx): Likewise.
14741 * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
14742 (create_copy_of_insn_rtx): Likewise, also for local "res".
14744 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14746 * rtl.h (find_first_parameter_load): Strengthen return type from
14748 * rtlanal.c (find_first_parameter_load): Strengthen return type
14749 from rtx to rtx_insn *. Add checked cast for now, to postpone
14750 strengthening the params.
14752 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
14755 * diagnostic.c: Set default caret.
14756 (diagnostic_show_locus): Use it. Tell pretty-printer that a new
14758 * diagnostic.h (struct diagnostic_context):
14760 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14762 * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
14763 (sel_bb_head): Strengthen return type insn_t (currently just an
14764 rtx) to rtx_insn *.
14765 (sel_bb_end): Likewise.
14767 * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
14768 (sel_bb_head): Strengthen return type and local "head" from
14769 insn_t (currently just an rtx) to rtx_insn *.
14770 (sel_bb_end): Likewise for return type.
14771 (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
14774 2014-08-21 David Malcolm <dmalcolm@redhat.com>
14776 * basic-block.h (get_last_bb_insn): Strengthen return type from
14778 * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
14781 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
14784 * diagnostic.c (default_diagnostic_finalizer): Move caret printing
14786 (diagnostic_report_diagnostic): ... from here.
14787 * toplev.c (general_init): Move code to c-family.
14789 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14791 * df.h (web_entry_base): Replace existing struct web_entry with a
14792 new class web_entry_base with only the predecessor member.
14793 (unionfind_root): Remove declaration and move to class member.
14794 (unionfind_union): Remove declaration and move to friend
14796 (union_defs): Remove declaration.
14797 * web.c (web_entry_base::unionfind_root): Modify to be member
14798 function and adjust accessors.
14799 (unionfind_union): Modify to be friend function and adjust
14801 (web_entry): New subclass of web_entry_base containing the reg
14803 (union_match_dups): Modify for struct -> class changes.
14804 (union_defs): Likewise.
14805 (entry_register): Likewise.
14806 (pass_web::execute): Likewise.
14808 2014-08-20 Bill Schmidt <wschmidt@vnet.ibm.com>
14810 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
14811 builtin define __VEC_ELEMENT_REG_ORDER__.
14813 2014-08-20 Martin Jambor <mjambor@suse.cz>
14814 Wei Mi <wmi@google.com>
14817 PR middle-end/61776
14818 * tree-ssa-operands.c (update_stmt_operands): Remove
14819 MODIFIED_NORETURN_CALLS.
14820 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
14821 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
14822 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
14823 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
14824 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
14825 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
14826 (gimple_call_set_ctrl_altering): New func.
14827 (gimple_call_ctrl_altering_p): Ditto.
14828 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
14829 (make_blocks): Use gimple_call_initialize_ctrl_altering.
14830 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
14831 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
14832 remove MODIFIED_NORETURN_CALLS.
14834 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
14836 * coverage.c (coverage_compute_profile_id): Return non-0;
14837 also handle symbols with unique name.
14838 (coverage_end_function): Do not skip DECL_EXTERNAL functions.
14840 2014-08-20 Steve Ellcey <sellcey@mips.com>
14842 PR middle-end/49191
14843 * doc/sourcebuild.texi (non_strict_align): New.
14845 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
14847 * cgraphunit.c (ipa_passes, compile): Reshedule
14848 symtab_remove_unreachable_nodes passes; update comments.
14849 * ipa-inline.c (pass_data_ipa_inline): Do not schedule
14850 TODO_remove_functions before the pass; the functions ought to be
14852 * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
14853 TODO_remove_functions.
14854 * passes.c (pass_data_early_local_passes): Do not schedule function
14856 (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
14858 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
14861 * opts-common.c (set_option): Call diagnostic_classify_diagnostic
14862 before setting the option.
14863 * diagnostic.c (diagnostic_classify_diagnostic): Record
14864 command-line status.
14866 2014-08-20 Richard Biener <rguenther@suse.de>
14869 * tree.c (build_common_tree_nodes): Use make_or_reuse_type
14870 to build uint{16,32,64}_type_node.
14872 2014-08-20 Terry Guo <terry.guo@arm.com>
14874 * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
14875 with immediate_operand.
14877 2014-08-20 David Malcolm <dmalcolm@redhat.com>
14879 * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
14880 "insn" from an as_a to a safe_as_a, for the case when "insn" is
14883 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
14885 PR preprocessor/51303
14886 * incpath.c (remove_duplicates): Use cpp_warning.
14888 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
14892 * doc/options.texi (CPP): Document it.
14893 * doc/invoke.texi (Wvariadic-macros): Fix documentation.
14894 * optc-gen.awk: Handle CPP.
14895 * opth-gen.awk: Likewise.
14897 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14899 * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
14901 (duplicate_insn_chain): Likewise.
14902 * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
14903 rtx_insn *, also for locals "prevfirst" and "nextlast". Add a
14904 checked cast for now (until we can strengthen the params in the
14906 (duplicate_insn_chain): Likewise.
14908 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14910 * rtl.h (next_cc0_user): Strengthen return type from rtx to
14912 (prev_cc0_setter): Likewise.
14914 * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
14915 rtx_insn *, adding checked casts for now as necessary.
14916 (prev_cc0_setter): Likewise.
14918 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14920 * expr.h (emit_move_insn): Strengthen return type from rtx to
14922 (emit_move_insn_1): Likewise.
14923 (emit_move_complex_push): Likewise.
14924 (emit_move_complex_parts): Likewise.
14926 * expr.c (emit_move_via_integer): Strengthen return type from rtx
14927 to rtx_insn *. Replace use of NULL_RTX with NULL when working
14929 (emit_move_complex_push): Strengthen return type from rtx to
14931 (emit_move_complex): Likewise, also for local "ret".
14932 (emit_move_ccmode): Likewise.
14933 (emit_move_multi_word): Likewise for return type and locals
14934 "last_insn", "seq".
14935 (emit_move_insn_1): Likewise for return type and locals "result",
14937 (emit_move_insn): Likewise for return type and local "last_insn".
14938 (compress_float_constant): Likewise.
14940 2014-08-19 David Malcolm <dmalcolm@redhat.com>
14942 * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
14943 from rtx to rtx_insn *.
14945 * rtl.h (emit_insn_before): Likewise.
14946 (emit_insn_before_noloc): Likewise.
14947 (emit_insn_before_setloc): Likewise.
14948 (emit_jump_insn_before): Likewise.
14949 (emit_jump_insn_before_noloc): Likewise.
14950 (emit_jump_insn_before_setloc): Likewise.
14951 (emit_call_insn_before): Likewise.
14952 (emit_call_insn_before_noloc): Likewise.
14953 (emit_call_insn_before_setloc): Likewise.
14954 (emit_debug_insn_before): Likewise.
14955 (emit_debug_insn_before_noloc): Likewise.
14956 (emit_debug_insn_before_setloc): Likewise.
14957 (emit_label_before): Likewise.
14958 (emit_insn_after): Likewise.
14959 (emit_insn_after_noloc): Likewise.
14960 (emit_insn_after_setloc): Likewise.
14961 (emit_jump_insn_after): Likewise.
14962 (emit_jump_insn_after_noloc): Likewise.
14963 (emit_jump_insn_after_setloc): Likewise.
14964 (emit_call_insn_after): Likewise.
14965 (emit_call_insn_after_noloc): Likewise.
14966 (emit_call_insn_after_setloc): Likewise.
14967 (emit_debug_insn_after): Likewise.
14968 (emit_debug_insn_after_noloc): Likewise.
14969 (emit_debug_insn_after_setloc): Likewise.
14970 (emit_label_after): Likewise.
14971 (emit_insn): Likewise.
14972 (emit_debug_insn): Likewise.
14973 (emit_jump_insn): Likewise.
14974 (emit_call_insn): Likewise.
14975 (emit_label): Likewise.
14976 (gen_clobber): Likewise.
14977 (emit_clobber): Likewise.
14978 (gen_use): Likewise.
14979 (emit_use): Likewise.
14982 (emit_barrier_before): Strengthen return type from rtx to
14984 (emit_barrier_after): Likewise.
14985 (emit_barrier): Likewise.
14987 * emit-rtl.c (emit_pattern_before_noloc): Strengthen return type
14988 from rtx to rtx_insn *. Add checked casts for now when converting
14989 "last" from rtx to rtx_insn *.
14990 (emit_insn_before_noloc): Likewise for return type.
14991 (emit_jump_insn_before_noloc): Likewise.
14992 (emit_call_insn_before_noloc): Likewise.
14993 (emit_debug_insn_before_noloc): Likewise.
14994 (emit_barrier_before): Strengthen return type and local "insn"
14995 from rtx to rtx_barrier *.
14996 (emit_label_before): Strengthen return type from rtx to
14997 rtx_insn *. Add checked cast for now when returning param
14998 (emit_pattern_after_noloc): Strengthen return type from rtx to
14999 rtx_insn *. Add checked casts for now when converting "last" from
15001 (emit_insn_after_noloc): Strengthen return type from rtx to
15003 (emit_jump_insn_after_noloc): Likewise.
15004 (emit_call_insn_after_noloc): Likewise.
15005 (emit_debug_insn_after_noloc): Likewise.
15006 (emit_barrier_after): Strengthen return type from rtx to
15008 (emit_label_after): Strengthen return type from rtx to rtx_insn *.
15009 Add checked cast for now when converting "label" from rtx to
15011 (emit_pattern_after_setloc): Strengthen return type from rtx to
15012 rtx_insn *. Add checked casts for now when converting "last" from
15014 (emit_pattern_after): Strengthen return type from rtx to
15016 (emit_insn_after_setloc): Likewise.
15017 (emit_insn_after): Likewise.
15018 (emit_jump_insn_after_setloc): Likewise.
15019 (emit_jump_insn_after): Likewise.
15020 (emit_call_insn_after_setloc): Likewise.
15021 (emit_call_insn_after): Likewise.
15022 (emit_debug_insn_after_setloc): Likewise.
15023 (emit_debug_insn_after): Likewise.
15024 (emit_pattern_before_setloc): Likewise. Add checked casts for now
15025 when converting "last" from rtx to rtx_insn *.
15026 (emit_pattern_before): Strengthen return type from rtx to
15028 (emit_insn_before_setloc): Likewise.
15029 (emit_insn_before): Likewise.
15030 (emit_jump_insn_before_setloc): Likewise.
15031 (emit_jump_insn_before): Likewise.
15032 (emit_call_insn_before_setloc): Likewise.
15033 (emit_call_insn_before): Likewise.
15034 (emit_debug_insn_before_setloc): Likewise.
15035 (emit_debug_insn_before): Likewise.
15036 (emit_insn): Strengthen return type and locals "last", "insn",
15037 "next" from rtx to rtx_insn *. Add checked cast to rtx_insn
15038 within cases where we know we have an insn.
15039 (emit_debug_insn): Likewise.
15040 (emit_jump_insn): Likewise.
15041 (emit_call_insn): Strengthen return type and local "insn" from rtx
15043 (emit_label): Strengthen return type from rtx to rtx_insn *. Add
15044 a checked cast to rtx_insn * for now on "label".
15045 (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
15046 (emit_clobber): Strengthen return type from rtx to rtx_insn *.
15047 (emit_use): Likewise.
15048 (gen_use): Likewise, also for local "seq".
15049 (emit): Likewise for return type and local "insn".
15050 (rtx_insn): Likewise for return type and local "new_rtx".
15052 * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
15053 from rtx to rtx_barrier *.
15055 * config/sh/sh.c (output_stack_adjust): Since emit_insn has
15056 changed return type from rtx to rtx_insn *, we must update
15057 "emit_fn" type, and this in turn means updating...
15058 (frame_insn): ...this. Strengthen return type from rtx to
15059 rtx_insn *. Introduce a new local "insn" of the appropriate type.
15061 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15063 * emit-rtl.c (emit_jump_table_data): Strengthen return type from
15064 rtx to rtx_jump_table_data *. Also for local.
15065 * rtl.h (emit_jump_table_data): Likewise.
15067 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15069 * basic-block.h (create_basic_block_structure): Strengthen third
15070 param "bb_note" from rtx to rtx_note *.
15071 * rtl.h (emit_note_before): Strengthen return type from rtx to
15073 (emit_note_after): Likewise.
15074 (emit_note): Likewise.
15075 (emit_note_copy): Likewise. Also, strengthen param similarly.
15076 * function.h (struct rtl_data): Strengthen field
15077 "x_stack_check_probe_note" from rtx to rtx_note *.
15079 * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
15080 from rtx to rtx_note *.
15081 * cfgrtl.c (create_basic_block_structure): Strengthen third param
15082 "bb_note" from rtx to rtx_note *.
15083 (duplicate_insn_chain): Likewise for local "last". Add a checked cast
15084 when calling emit_note_copy.
15085 * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
15087 (emit_note_after): Likewise.
15088 (emit_note_before): Likewise.
15089 (emit_note_copy): Likewise. Also, strengthen param similarly.
15090 (emit_note): Likewise.
15091 * except.c (emit_note_eh_region_end): Likewise for return type.
15092 Strengthen local "next" from rtx to rtx_insn *.
15093 (convert_to_eh_region_ranges): Strengthen local "note"
15094 from rtx to rtx_note *.
15095 * final.c (change_scope): Likewise.
15096 (reemit_insn_block_notes): Likewise, for both locals named "note".
15097 Also, strengthen local "insn" from rtx to rtx_insn *.
15098 * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
15100 * reg-stack.c (compensate_edge): Likewise for local "after". Also,
15101 strengthen local "seq" from rtx to rtx_insn *.
15102 * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
15104 * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
15106 (get_bb_note_from_pool): Strengthen return type from rtx to
15108 (sel_create_basic_block): Strengthen local "new_bb_note" from
15109 insn_t to rtx_note *.
15110 * var-tracking.c (emit_note_insn_var_location): Strengthen local
15111 "note" from rtx to rtx_note *.
15112 (emit_notes_in_bb): Likewise.
15114 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15116 * function.h (struct rtl_data): Strengthen field
15117 "x_parm_birth_insn" from rtx to rtx_insn *.
15118 * function.c (struct assign_parm_data_all): Strengthen fields
15119 "first_conversion_insn" and "last_conversion_insn" from rtx to
15122 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15124 * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
15125 to rtx_insn *; also for local "var_end_seq".
15126 (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
15127 (maybe_cleanup_end_of_block): Likewise for param "last" and local
15129 (expand_gimple_cond): Likewise for locals "last2" and "last".
15130 (mark_transaction_restart_calls): Likewise for local "insn".
15131 (expand_gimple_stmt): Likewise for return type and locals "last"
15133 (expand_gimple_tailcall): Likewise for locals "last2" and "last".
15134 (avoid_complex_debug_insns): Likewise for param "insn".
15135 (expand_debug_locations): Likewise for locals "insn", "last",
15136 "prev_insn" and "insn2".
15137 (expand_gimple_basic_block): Likewise for local "last".
15138 (construct_exit_block): Likewise for locals "head", "end",
15140 (pass_expand::execute): Likewise for locals "var_seq",
15141 "var_ret_seq", "next".
15143 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15145 * asan.h (asan_emit_stack_protection): Strengthen return type from
15147 * asan.c (asan_emit_stack_protection): Likewise. Add local
15148 "insns" to hold the return value.
15150 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15152 * basic-block.h (bb_note): Strengthen return type from rtx to
15154 * sched-int.h (bb_note): Likewise.
15155 * cfgrtl.c (bb_note): Likewise. Add a checked cast to rtx_note *.
15157 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15159 * rtl.h (make_insn_raw): Strengthen return type from rtx to
15162 * emit-rtl.c (make_insn_raw): Strengthen return type and local
15163 "insn" from rtx to rtx_insn *.
15164 (make_debug_insn_raw): Strengthen return type from rtx to
15165 rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
15166 (make_jump_insn_raw): Strengthen return type from rtx to
15167 rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
15168 (make_call_insn_raw): Strengthen return type from rtx to
15169 rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
15170 (emit_pattern_before_noloc): Strengthen return type of "make_raw"
15171 callback from rtx to rtx_insn *; likewise for local "insn" and
15172 "next", adding a checked cast to rtx_insn in the relevant cases of
15173 the switch statement.
15174 (emit_pattern_after_noloc): Strengthen return type of "make_raw"
15175 callback from rtx to rtx_insn *.
15176 (emit_pattern_after_setloc): Likewise.
15177 (emit_pattern_after): Likewise.
15178 (emit_pattern_before_setloc): Likewise.
15179 (emit_pattern_before): Likewise.
15181 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15183 * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
15185 * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
15186 accepting an rtx_insn *.
15187 (last_call_insn): Strengthen return type from rtx to
15190 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15192 * rtl.h (delete_trivially_dead_insns): Strengthen initial param
15193 "insns" from rtx to rtx_insn *.
15194 * cse.c (delete_trivially_dead_insns): Likewise, also do it for
15195 locals "insn" and "prev".
15197 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15199 * rtl.h (tablejump_p): Strengthen third param from rtx * to
15200 rtx_jump_table_data **.
15202 * cfgbuild.c (make_edges): Introduce local "table", using it in
15203 place of "tmp" for jump table data.
15204 (find_bb_boundaries): Strengthen local "table" from rtx to
15205 rtx_jump_table_data *.
15206 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
15207 (outgoing_edges_match): Likewise for locals "table1" and "table2".
15208 (try_crossjump_to_edge): Likewise.
15209 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
15211 (patch_jump_insn): Introduce local "table", using it in place of
15212 "tmp" for jump table data.
15213 (force_nonfallthru_and_redirect): Introduce local "table", so that
15214 call to tablejump_p can receive an rtx_jump_table_data **. Update
15215 logic around the call to overwrite "note" appropriately if
15216 tablejump_p returns non-zero.
15217 (get_last_bb_insn): Introduce local "table", using it in place of
15218 "tmp" for jump table data.
15219 * dwarf2cfi.c (create_trace_edges): Likewise.
15221 * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
15222 from rtx to rtx_jump_table_data *.
15223 (create_fix_barrier): Strengthen local "tmp" from rtx to
15224 rtx_jump_table_data *.
15225 (arm_reorg): Likewise for local "table".
15227 * config/s390/s390.c (s390_chunkify_start): Likewise.
15229 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
15231 * jump.c (delete_related_insns): Strengthen local "lab_next" from
15232 rtx to rtx_jump_table_data *.
15234 * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
15235 rtx_jump_table_data **. Add a checked cast when writing through
15236 the pointer: we know there that local "table" is non-NULL and that
15237 JUMP_TABLE_DATA_P (table) holds.
15238 (label_is_jump_target_p): Introduce local "table", using it in
15239 place of "tmp" for jump table data.
15241 2014-08-19 Marek Polacek <polacek@redhat.com>
15244 * doc/invoke.texi: Document -Wbool-compare.
15246 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15248 * rtl.h (entry_of_function): Strengthen return type from rtx to
15250 * cfgrtl.c (entry_of_function): Likewise.
15252 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15254 * emit-rtl.h (get_insns): Strengthen return type from rtx to
15255 rtx_insn *, adding a checked cast for now.
15256 (get_last_insn): Likewise.
15258 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15260 * rtl.h (gen_label_rtx): Strengthen return type from rtx to
15263 * emit-rtl.c (gen_label_rtx): Likewise.
15265 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15267 * rtl.h (previous_insn): Strengthen return type from rtx to
15269 (next_insn): Likewise.
15270 (prev_nonnote_insn): Likewise.
15271 (prev_nonnote_insn_bb): Likewise.
15272 (next_nonnote_insn): Likewise.
15273 (next_nonnote_insn_bb): Likewise.
15274 (prev_nondebug_insn): Likewise.
15275 (next_nondebug_insn): Likewise.
15276 (prev_nonnote_nondebug_insn): Likewise.
15277 (next_nonnote_nondebug_insn): Likewise.
15278 (prev_real_insn): Likewise.
15279 (next_real_insn): Likewise.
15280 (prev_active_insn): Likewise.
15281 (next_active_insn): Likewise.
15283 * emit-rtl.c (next_insn): Strengthen return type from rtx to
15284 rtx_insn *, adding a checked cast.
15285 (previous_insn): Likewise.
15286 (next_nonnote_insn): Likewise.
15287 (next_nonnote_insn_bb): Likewise.
15288 (prev_nonnote_insn): Likewise.
15289 (prev_nonnote_insn_bb): Likewise.
15290 (next_nondebug_insn): Likewise.
15291 (prev_nondebug_insn): Likewise.
15292 (next_nonnote_nondebug_insn): Likewise.
15293 (prev_nonnote_nondebug_insn): Likewise.
15294 (next_real_insn): Likewise.
15295 (prev_real_insn): Likewise.
15296 (next_active_insn): Likewise.
15297 (prev_active_insn): Likewise.
15299 * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
15300 param "stepfunc" so that it returns an rtx_insn * rather than an
15301 rtx, to track the change to prev_nonnote_insn_bb, which is the
15302 only function this is called with.
15303 * config/sh/sh.c (sh_find_set_of_reg): Likewise.
15305 2014-08-19 Jan Hubicka <hubicka@ucw.cz>
15307 * ipa-visibility.c (update_visibility_by_resolution_info): Fix
15310 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15312 * coretypes.h (class rtx_debug_insn): Add forward declaration.
15313 (class rtx_nonjump_insn): Likewise.
15314 (class rtx_jump_insn): Likewise.
15315 (class rtx_call_insn): Likewise.
15316 (class rtx_jump_table_data): Likewise.
15317 (class rtx_barrier): Likewise.
15318 (class rtx_code_label): Likewise.
15319 (class rtx_note): Likewise.
15321 * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
15322 adding the invariant DEBUG_INSN_P (X).
15323 (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
15324 the invariant NONJUMP_INSN_P (X).
15325 (class rtx_jump_insn): New, a subclass of rtx_insn, adding
15326 the invariant JUMP_P (X).
15327 (class rtx_call_insn): New, a subclass of rtx_insn, adding
15328 the invariant CALL_P (X).
15329 (class rtx_jump_table): New, a subclass of rtx_insn, adding the
15330 invariant JUMP_TABLE_DATA_P (X).
15331 (class rtx_barrier): New, a subclass of rtx_insn, adding the
15332 invariant BARRIER_P (X).
15333 (class rtx_code_label): New, a subclass of rtx_insn, adding
15334 the invariant LABEL_P (X).
15335 (class rtx_note): New, a subclass of rtx_insn, adding
15336 the invariant NOTE_P(X).
15337 (is_a_helper <rtx_debug_insn *>::test): New.
15338 (is_a_helper <rtx_nonjump_insn *>::test): New.
15339 (is_a_helper <rtx_jump_insn *>::test): New.
15340 (is_a_helper <rtx_call_insn *>::test): New.
15341 (is_a_helper <rtx_jump_table_data *>::test): New functions,
15342 overloaded for both rtx and rtx_insn *.
15343 (is_a_helper <rtx_barrier *>::test): New.
15344 (is_a_helper <rtx_code_label *>::test): New functions, overloaded
15345 for both rtx and rtx_insn *.
15346 (is_a_helper <rtx_note *>::test): New.
15348 2014-08-19 Marek Polacek <polacek@redhat.com>
15350 * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
15351 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
15352 * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
15353 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
15355 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15357 * sel-sched-ir.h (BND_TO): insn_t will eventually be an
15358 rtx_insn *. To help with transition, for now, convert from an
15359 access macro into a pair of functions: BND_TO, returning an
15361 (SET_BND_TO): New function, for use where BND_TO is used as an
15364 * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
15366 (BND_TO): New function, adding a checked cast.
15367 (SET_BND_TO): New function.
15369 * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
15371 (compute_av_set_on_boundaries): Likewise.
15373 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
15375 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
15376 destination if it is used in source.
15377 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
15378 (*popcount<mode>2_falsedep_1): Likewise.
15380 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
15383 * configure.ac: Set install_gold_as_default to no first.
15384 * configure: Regenerated.
15386 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15388 * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
15389 "note_list" field will eventually be an rtx_insn *. To help with
15390 transition, for now, convert from an access macro into a pair of
15391 functions: BB_NOTE_LIST, returning an rtx_insn *, and...
15392 (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
15395 * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
15396 of BB_NOTE_LIST to SET_BB_NOTE_LIST.
15398 * sel-sched-ir.c (init_bb): Likewise.
15399 (sel_restore_notes): Likewise.
15400 (move_bb_info): Likewise.
15401 (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
15402 (SET_BB_NOTE_LIST): New function.
15404 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15406 * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
15407 field will eventually be an rtx_insn *. To help with transition,
15408 for now, convert from an access macro into a pair of functions:
15409 VINSN_INSN_RTX, returning an rtx_insn *, and...
15410 (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
15411 is used as an lvalue.
15413 * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
15414 SET_VINSN_INSN_RTX where it's used as an lvalue.
15415 (VINSN_INSN_RTX): New function.
15416 (SET_VINSN_INSN_RTX): New function.
15418 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15420 * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
15421 eventually be rtx_insn *, but to help with transition, for now,
15422 convert from an access macro into a pair of functions: DEP_PRO
15423 returning an rtx_insn * and...
15424 (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
15425 lvalue, returning an rtx&.
15426 (DEP_CON): Analogous changes to DEP_PRO above.
15427 (SET_DEP_CON): Likewise.
15429 * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
15430 an lvalue to SET_DEP_CON.
15431 * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
15432 (sd_copy_back_deps): Likewise for DEP_CON.
15433 (DEP_PRO): New function, adding a checked cast for now.
15434 (DEP_CON): Likewise.
15435 (SET_DEP_PRO): New function.
15436 (SET_DEP_CON): Likewise.
15438 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
15440 * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
15441 (extra_options): Add i386/cygwin.opt.
15442 * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
15443 (CPP_SPEC): Accept -pthread.
15444 (LINK_SPEC): Ditto.
15445 (GOMP_SELF_SPECS): Update comment.
15446 * config/i386/cygwin.opt: New file for -pthread flag.
15448 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15450 * df-core.c (DF_REF_INSN): New, using a checked cast for now.
15451 * df.h (DF_REF_INSN): Convert from a macro to a function, so
15452 that we can return an rtx_insn *.
15454 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
15456 * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
15457 when building executables, not DLLs. Add --large-address-aware
15458 under the same conditions.
15459 * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
15460 when building executables, not DLLs. Add --large-address-aware
15461 under the same conditions when using -m32.
15463 * config/i386/cygwin-stdint.h: Throughout, make type
15464 definitions dependent on target architecture, not host.
15466 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15468 * rtl.h (PREV_INSN): Convert to an inline function. Strengthen
15469 the return type from rtx to rtx_insn *, which will enable various
15470 conversions in followup patches. For now this is is done by a
15472 (NEXT_INSN): Likewise.
15473 (SET_PREV_INSN): Convert to an inline function. This is intended
15474 for use as an lvalue, and so returns an rtx& to allow in-place
15476 (SET_NEXT_INSN): Likewise.
15478 2014-07-08 Mark Wielaard <mjw@redhat.com>
15481 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
15483 2014-08-19 Marek Polacek <polacek@redhat.com>
15486 * cgraphunit.c (handle_alias_pairs): Fix condition.
15488 2014-08-19 Richard Biener <rguenther@suse.de>
15490 * gimple-fold.c (fold_gimple_assign): Properly build a
15491 null-pointer constant when devirtualizing addresses.
15493 2014-07-07 Mark Wielaard <mjw@redhat.com>
15495 * dwarf2out.c (decl_quals): New function.
15496 (modified_type_die): Take one cv_quals argument instead of two,
15497 one for const and one for volatile.
15498 (add_type_attribute): Likewise.
15499 (generic_parameter_die): Call add_type_attribute with one modifier
15501 (base_type_for_mode): Likewise.
15502 (add_bounds_info): Likewise.
15503 (add_subscript_info): Likewise.
15504 (gen_array_type_die): Likewise.
15505 (gen_descr_array_type_die): Likewise.
15506 (gen_entry_point_die): Likewise.
15507 (gen_enumeration_type_die): Likewise.
15508 (gen_formal_parameter_die): Likewise.
15509 (gen_subprogram_die): Likewise.
15510 (gen_variable_die): Likewise.
15511 (gen_const_die): Likewise.
15512 (gen_field_die): Likewise.
15513 (gen_pointer_type_die): Likewise.
15514 (gen_reference_type_die): Likewise.
15515 (gen_ptr_to_mbr_type_die): Likewise.
15516 (gen_inheritance_die): Likewise.
15517 (gen_subroutine_type_die): Likewise.
15518 (gen_typedef_die): Likewise.
15519 (force_type_die): Likewise.
15521 2014-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15523 * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
15525 * configure: Regenerate.
15527 2014-08-19 Richard Biener <rguenther@suse.de>
15529 * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
15530 DECL_EXTERNALs in BLOCKs as non-references.
15531 * tree-streamer-out.c (streamer_write_chain): Likewise.
15533 2014-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
15534 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15535 Anna Tikhonova <anna.tikhonova@intel.com>
15536 Ilya Tocar <ilya.tocar@intel.com>
15537 Andrey Turetskiy <andrey.turetskiy@intel.com>
15538 Ilya Verbin <ilya.verbin@intel.com>
15539 Kirill Yukhin <kirill.yukhin@intel.com>
15540 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15542 * config/i386/sse.md
15543 (define_mode_iterator VI48_AVX512F): Delete.
15544 (define_mode_iterator VI48_AVX512F_AVX512VL): New.
15545 (define_mode_iterator VI2_AVX512VL): Ditto.
15546 (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
15549 ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
15551 (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
15552 (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
15553 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
15554 with VI48_AVX512F_AVX512VL): New.
15555 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
15556 with VI2_AVX512VL): Ditto.
15558 2014-08-19 Marek Polacek <polacek@redhat.com>
15560 * doc/invoke.texi: Document -Wc99-c11-compat.
15562 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15564 * rtl.h (PREV_INSN): Split macro in two: the existing one,
15565 for rvalues, and...
15566 (SET_PREV_INSN): New macro, for use as an lvalue.
15567 (NEXT_INSN, SET_NEXT_INSN): Likewise.
15569 * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
15570 PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
15571 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
15572 (fixup_abnormal_edges): Likewise.
15573 (unlink_insn_chain): Likewise.
15574 (fixup_reorder_chain): Likewise.
15575 (cfg_layout_delete_block): Likewise.
15576 (cfg_layout_merge_blocks): Likewise.
15577 * combine.c (update_cfg_for_uncondjump): Likewise.
15578 * emit-rtl.c (link_insn_into_chain): Likewise.
15579 (remove_insn): Likewise.
15580 (delete_insns_since): Likewise.
15581 (reorder_insns_nobb): Likewise.
15582 (emit_insn_after_1): Likewise.
15583 * final.c (rest_of_clean_state): Likewise.
15584 (final_scan_insn): Likewise.
15585 * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
15586 * haifa-sched.c (concat_note_lists): Likewise.
15587 (remove_notes): Likewise.
15588 (restore_other_notes): Likewise.
15589 (move_insn): Likewise.
15590 (unlink_bb_notes): Likewise.
15591 (restore_bb_notes): Likewise.
15592 * jump.c (delete_for_peephole): Likewise.
15593 * optabs.c (emit_libcall_block_1): Likewise.
15594 * reorg.c (emit_delay_sequence): Likewise.
15595 (fill_simple_delay_slots): Likewise.
15596 * sel-sched-ir.c (sel_move_insn): Likewise.
15597 (sel_remove_insn): Likewise.
15598 (get_bb_note_from_pool): Likewise.
15599 * sel-sched.c (move_nop_to_previous_block): Likewise.
15601 * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
15602 * config/c6x/c6x.c (gen_one_bundle): Likewise.
15603 (c6x_gen_bundles): Likewise.
15604 (hwloop_optimize): Likewise.
15605 * config/frv/frv.c (frv_function_prologue): Likewise.
15606 (frv_register_nop): Likewise.
15607 * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
15608 (ia64_reorg): Likewise.
15609 * config/mep/mep.c (mep_reorg_addcombine): Likewise.
15610 (mep_make_bundle): Likewise.
15611 (mep_bundle_insns): Likewise.
15612 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
15613 * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
15614 * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
15616 2014-08-19 David Malcolm <dmalcolm@redhat.com>
15618 * basic-block.h (BB_HEAD): Convert to a function. Strengthen the
15619 return type from rtx to rtx_insn *.
15620 (BB_END): Likewise.
15621 (BB_HEADER): Likewise.
15622 (BB_FOOTER): Likewise.
15623 (SET_BB_HEAD): Convert to a function.
15624 (SET_BB_END): Likewise.
15625 (SET_BB_HEADER): Likewise.
15626 (SET_BB_FOOTER): Likewise.
15628 * cfgrtl.c (BB_HEAD): New function, from macro of same name.
15629 Strengthen the return type from rtx to rtx_insn *. For now, this
15630 is done by adding a checked cast, but this will eventually
15631 become a field lookup.
15632 (BB_END): Likewise.
15633 (BB_HEADER): Likewise.
15634 (BB_FOOTER): Likewise.
15635 (SET_BB_HEAD): New function, from macro of same name. This is
15636 intended for use as an lvalue, and so returns an rtx& to allow
15637 in-place modification.
15638 (SET_BB_END): Likewise.
15639 (SET_BB_HEADER): Likewise.
15640 (SET_BB_FOOTER): Likewise.
15642 2014-08-18 David Malcolm <dmalcolm@redhat.com>
15644 * basic-block.h (BB_HEAD): Split macro in two: the existing one,
15645 for rvalues, and...
15646 (SET_BB_HEAD): New macro, for use as a lvalue.
15647 (BB_END, SET_BB_END): Likewise.
15648 (BB_HEADER, SET_BB_HEADER): Likewise.
15649 (BB_FOOTER, SET_BB_FOOTER): Likewise.
15651 * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
15652 of BB_* macros into SET_BB_* macros.
15653 (fix_crossing_unconditional_branches): Likewise.
15654 * caller-save.c (save_call_clobbered_regs): Likewise.
15655 (insert_one_insn): Likewise.
15656 * cfgbuild.c (find_bb_boundaries): Likewise.
15657 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
15658 (outgoing_edges_match): Likewise.
15659 (try_optimize_cfg): Likewise.
15660 * cfgexpand.c (expand_gimple_cond): Likewise.
15661 (expand_gimple_tailcall): Likewise.
15662 (expand_gimple_basic_block): Likewise.
15663 (construct_exit_block): Likewise.
15664 * cfgrtl.c (delete_insn): Likewise.
15665 (create_basic_block_structure): Likewise.
15666 (rtl_delete_block): Likewise.
15667 (rtl_split_block): Likewise.
15668 (emit_nop_for_unique_locus_between): Likewise.
15669 (rtl_merge_blocks): Likewise.
15670 (block_label): Likewise.
15671 (try_redirect_by_replacing_jump): Likewise.
15672 (emit_barrier_after_bb): Likewise.
15673 (fixup_abnormal_edges): Likewise.
15674 (record_effective_endpoints): Likewise.
15675 (relink_block_chain): Likewise.
15676 (fixup_reorder_chain): Likewise.
15677 (fixup_fallthru_exit_predecessor): Likewise.
15678 (cfg_layout_duplicate_bb): Likewise.
15679 (cfg_layout_split_block): Likewise.
15680 (cfg_layout_delete_block): Likewise.
15681 (cfg_layout_merge_blocks): Likewise.
15682 * combine.c (update_cfg_for_uncondjump): Likewise.
15683 * emit-rtl.c (add_insn_after): Likewise.
15684 (remove_insn): Likewise.
15685 (reorder_insns): Likewise.
15686 (emit_insn_after_1): Likewise.
15687 * haifa-sched.c (get_ebb_head_tail): Likewise.
15688 (restore_other_notes): Likewise.
15689 (move_insn): Likewise.
15690 (sched_extend_bb): Likewise.
15691 (fix_jump_move): Likewise.
15692 * ifcvt.c (noce_process_if_block): Likewise.
15693 (dead_or_predicable): Likewise.
15694 * ira.c (update_equiv_regs): Likewise.
15695 * reg-stack.c (change_stack): Likewise.
15696 * sel-sched-ir.c (sel_move_insn): Likewise.
15697 * sel-sched.c (move_nop_to_previous_block): Likewise.
15699 * config/c6x/c6x.c (hwloop_optimize): Likewise.
15700 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
15702 2014-08-18 David Malcolm <dmalcolm@redhat.com>
15704 * rtl.h (for_each_rtx_in_insn): New function.
15705 * rtlanal.c (for_each_rtx_in_insn): Likewise.
15707 2014-08-18 David Malcolm <dmalcolm@redhat.com>
15709 * coretypes.h (class rtx_insn): Add forward declaration.
15711 * rtl.h: Include is-a.h.
15712 (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
15713 workaround to ensure gengtype knows inheritance is occurring,
15714 whilst continuing to use the pre-existing special-casing for
15716 (class rtx_insn): New subclass of rtx_def, adding the
15717 invariant that we're dealing with something we can sanely use
15718 INSN_UID, NEXT_INSN, PREV_INSN on.
15719 (is_a_helper <rtx_insn *>::test): New.
15720 (is_a_helper <const rtx_insn *>::test): New.
15722 2014-08-18 David Malcolm <dmalcolm@redhat.com>
15724 * is-a.h (template<T, U> safe_as_a <U *p>) New function.
15726 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
15728 * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
15731 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
15733 * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
15734 to BUILT_IN_UNREACHABLE.
15736 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
15739 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
15741 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
15742 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
15743 (ffs<mode>2): Do not expand with tzcnt for
15744 TARGET_AVOID_FALSE_DEP_FOR_BMI.
15745 (ffssi2_no_cmove): Ditto.
15746 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
15747 (ctz<mode>2): New expander.
15748 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
15749 (*ctz<mode>2_falsedep): New insn.
15750 (*ctz<mode>2): Rename from ctz<mode>2.
15751 (clz<mode>2_lzcnt): New expander.
15752 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
15753 (*clz<mode>2_lzcnt_falsedep): New insn.
15754 (*clz<mode>2): Rename from ctz<mode>2.
15755 (popcount<mode>2): New expander.
15756 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
15757 (*popcount<mode>2_falsedep): New insn.
15758 (*popcount<mode>2): Rename from ctz<mode>2.
15759 (*popcount<mode>2_cmp): Remove.
15760 (*popcountsi2_cmp_zext): Ditto.
15762 2014-08-18 Ajit Agarwal <ajitkum@xilinx.com>
15764 * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
15765 (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
15766 * config/microblaze/microblaze.h
15767 (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
15769 2014-08-18 H.J. Lu <hongjiu.lu@intel.com>
15772 * configure.ac: Set install_gold_as_default to no for
15774 * configure: Regenerated.
15776 2014-08-18 Roman Gareev <gareevroman@gmail.com>
15778 * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
15779 * config.in: Add undef of HAVE_isl.
15780 * configure: Regenerate.
15781 * configure.ac: Add definition of HAVE_isl.
15782 * graphite-blocking.c: Add checking of HAVE_isl.
15783 * graphite-dependences.c: Likewise.
15784 * graphite-interchange.c: Likewise.
15785 * graphite-isl-ast-to-gimple.c: Likewise.
15786 * graphite-optimize-isl.c: Likewise.
15787 * graphite-poly.c: Likewise.
15788 * graphite-scop-detection.c: Likewise.
15789 * graphite-sese-to-poly.c: Likewise.
15790 * graphite.c: Likewise.
15791 * toplev.c: Replace the checking of HAVE_cloog with the checking
15794 2014-08-18 Richard Biener <rguenther@suse.de>
15796 PR tree-optimization/62090
15797 * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
15798 (fold_builtin_3): Do not fold snprintf.
15799 (fold_builtin_4): Likewise.
15800 * gimple-fold.c (gimple_fold_builtin_snprintf): New function
15801 moved from builtins.c.
15802 (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
15803 (gimple_fold_builtin): Do not fold sprintf here.
15805 2014-08-18 Richard Biener <rguenther@suse.de>
15807 * gimple-fold.c (maybe_fold_reference): Move re-gimplification
15809 (maybe_canonicalize_mem_ref_addr): ... this function.
15810 (fold_stmt_1): Apply it here before all simplification.
15812 2014-08-18 Ilya Enkovich <ilya.enkovich@intel.com>
15815 * cgraph.h (cgraph_node::create_indirect_edge): Add
15816 compute_indirect_info param.
15817 * cgraph.c (cgraph_node::create_indirect_edge): Compute
15818 indirect_info only when it is required.
15819 * cgraphclones.c (cgraph_clone_edge): Do not recompute
15820 indirect_info fore cloned indirect edge.
15822 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15823 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15824 Anna Tikhonova <anna.tikhonova@intel.com>
15825 Ilya Tocar <ilya.tocar@intel.com>
15826 Andrey Turetskiy <andrey.turetskiy@intel.com>
15827 Ilya Verbin <ilya.verbin@intel.com>
15828 Kirill Yukhin <kirill.yukhin@intel.com>
15829 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15831 * config/i386/sse.md
15832 (define_mode_iterator VI8_AVX2_AVX512BW): New.
15833 (define_insn "<sse2_avx2>_psadbw"): Add evex version.
15835 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15836 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15837 Anna Tikhonova <anna.tikhonova@intel.com>
15838 Ilya Tocar <ilya.tocar@intel.com>
15839 Andrey Turetskiy <andrey.turetskiy@intel.com>
15840 Ilya Verbin <ilya.verbin@intel.com>
15841 Kirill Yukhin <kirill.yukhin@intel.com>
15842 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15844 * config/i386/sse.md
15845 (define_mode_iterator VF1_AVX512VL): New.
15846 (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
15847 (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
15850 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15851 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15852 Anna Tikhonova <anna.tikhonova@intel.com>
15853 Ilya Tocar <ilya.tocar@intel.com>
15854 Andrey Turetskiy <andrey.turetskiy@intel.com>
15855 Ilya Verbin <ilya.verbin@intel.com>
15856 Kirill Yukhin <kirill.yukhin@intel.com>
15857 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15859 * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
15860 * config/i386/i386.md
15861 (define_code_iterator any_float): New.
15862 (define_code_attr floatsuffix): New.
15863 * config/i386/sse.md
15864 (define_mode_iterator VF1_128_256VL): New.
15865 (define_mode_iterator VF2_512_256VL): New.
15866 (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
15868 (define_insn "ufloatv8siv8df<mask_name>"): Delete.
15869 (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
15871 (define_mode_attr qq2pssuff): New.
15872 (define_mode_attr sselongvecmode): New.
15873 (define_mode_attr sselongvecmodelower): New.
15874 (define_mode_attr sseintvecmode3): New.
15875 (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
15877 (define_insn "*<floatsuffix>floatv2div2sf2"): New.
15878 (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
15879 (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
15880 (define_insn "ufloatv2siv2df2<mask_name>"): New.
15882 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15883 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15884 Anna Tikhonova <anna.tikhonova@intel.com>
15885 Ilya Tocar <ilya.tocar@intel.com>
15886 Andrey Turetskiy <andrey.turetskiy@intel.com>
15887 Ilya Verbin <ilya.verbin@intel.com>
15888 Kirill Yukhin <kirill.yukhin@intel.com>
15889 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15891 * config/i386/sse.md
15892 (define_mode_iterator VF2_AVX512VL): New.
15893 (define_mode_attr sseintvecmode2): New.
15894 (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
15895 (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
15896 (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
15898 "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
15900 (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15902 (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15905 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15906 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15907 Anna Tikhonova <anna.tikhonova@intel.com>
15908 Ilya Tocar <ilya.tocar@intel.com>
15909 Andrey Turetskiy <andrey.turetskiy@intel.com>
15910 Ilya Verbin <ilya.verbin@intel.com>
15911 Kirill Yukhin <kirill.yukhin@intel.com>
15912 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15914 * config/i386/i386.md
15915 (define_insn "*movoi_internal_avx"): Add evex version.
15916 (define_insn "*movti_internal"): Ditto.
15918 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15919 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15920 Anna Tikhonova <anna.tikhonova@intel.com>
15921 Ilya Tocar <ilya.tocar@intel.com>
15922 Andrey Turetskiy <andrey.turetskiy@intel.com>
15923 Ilya Verbin <ilya.verbin@intel.com>
15924 Kirill Yukhin <kirill.yukhin@intel.com>
15925 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15927 * config/i386/i386.md
15928 (define_attr "isa"): Add avx512dq, noavx512dq.
15929 (define_attr "enabled"): Ditto.
15930 * config/i386/sse.md
15931 (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
15933 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
15934 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15935 Anna Tikhonova <anna.tikhonova@intel.com>
15936 Ilya Tocar <ilya.tocar@intel.com>
15937 Andrey Turetskiy <andrey.turetskiy@intel.com>
15938 Ilya Verbin <ilya.verbin@intel.com>
15939 Kirill Yukhin <kirill.yukhin@intel.com>
15940 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15942 * config/i386/i386.c
15943 (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
15944 avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
15945 avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
15946 avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
15947 avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
15948 avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
15949 avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
15950 avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
15951 * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
15952 * config/i386/sse.md
15953 (define_mode_iterator VMOVE): Allow V4TI mode.
15954 (define_mode_iterator V_AVX512VL): New.
15955 (define_mode_iterator V): New handling for AVX512VL.
15956 (define_insn "avx512f_load<mode>_mask"): Delete.
15957 (define_insn "<avx512>_load<mode>_mask"): New.
15958 (define_insn "avx512f_store<mode>_mask"): Delete.
15959 (define_insn "<avx512>_store<mode>_mask"): New.
15962 2014-08-18 Yury Gribov <y.gribov@samsung.com>
15965 * asan.c (instrument_derefs): Fix bitfield check.
15967 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
15969 * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
15970 * config/rs6000/htm.md (ttest): Remove clobber.
15971 * config/rs6000/predicates.md (any_mask_operand): New predicate.
15972 (and_operand): Reformat.
15973 (and_2rld_operand): New predicate.
15974 * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
15976 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
15977 parameter. Handle AND directly.
15978 (rs6000_split_logical_di): Remove last parameter.
15979 (rs6000_split_logical): Remove last parameter. Remove obsolete
15981 * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
15982 (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
15983 (ctz<mode>2, ffs<mode>2): Delete clobber. Reformat.
15984 (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
15985 *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
15986 and 5 anonymous splitters): Delete.
15987 (and<mode>3): New expander.
15988 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
15989 (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
15990 (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
15991 (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
15992 (floatdisf2_internal1): Remove clobbers.
15993 (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
15994 *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
15995 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
15996 (and<mode>3 for BOOL_128): Remove clobber.
15997 (*and<mode>3_internal for BOOL_128): Remove clobber. Adjust call of
15998 rs6000_split_logical.
15999 (*bool<mode>3_internal for BOOL_128): Adjust call of
16000 rs6000_split_logical.
16001 (*boolc<mode>3_internal1 for BOOL_128,
16002 *boolc<mode>3_internal2 for BOOL_128,
16003 *boolcc<mode>3_internal1 for BOOL_128,
16004 *boolcc<mode>3_internal2 for BOOL_128,
16005 *eqv<mode>3_internal1 for BOOL_128,
16006 *eqv<mode>3_internal2 for BOOL_128,
16007 *one_cmpl<mode>3_internal for BOOL_128): Ditto.
16008 * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
16010 (*vec_reload_and_reg_<mptrsize>): Delete.
16012 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
16014 * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
16015 and split, *boolccsi3_internal3 and split): Delete.
16016 (*boolccdi3_internal1, *boolccdi3_internal2 and split,
16017 *boolccdi3_internal3 and split): Delete.
16018 (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
16019 (*eqv<mode>3): Move. Add TODO comment. Fix attributes.
16021 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
16023 * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
16024 and split, *boolcsi3_internal3 and split): Delete.
16025 (*boolcdi3_internal1, *boolcdi3_internal2 and split,
16026 *boolcdi3_internal3 and split): Delete.
16027 (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
16029 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
16031 * config/rs6000/rs6000.c (print_operand) <'e'>: New.
16032 <'u'>: Also support printing the low-order 16 bits.
16033 * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
16034 *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
16035 (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
16036 *booldi3_internal3 and split): Delete.
16037 (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
16038 *bool<mode>3_dot2): New.
16039 (two anonymous define_splits for non_logical_cint_operand): Merge.
16041 2014-08-17 Marek Polacek <polacek@redhat.com>
16042 Manuel López-Ibáñez <manu@gcc.gnu.org>
16045 * diagnostic.c (adjust_line): Add gcc_checking_assert.
16046 (diagnostic_show_locus): Don't print caret diagnostic
16047 if a column is larger than the line_width.
16049 2014-08-17 Roman Gareev <gareevroman@gmail.com>
16051 * common.opt: Make the ISL AST generator to be the main code generator
16054 2014-08-16 Gerald Pfeifer <gerald@pfeifer.com>
16056 * wide-int.h (generic_wide_int): Declare as class instead of struct.
16058 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
16061 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
16063 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
16064 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
16065 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
16067 * config/pa/pa.md (begin_brtab): Delete insn.
16068 (end_brtab): Likewise.
16070 2014-08-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
16072 * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
16074 2014-08-15 Jan Hubicka <hubicka@ucw.cz>
16076 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
16077 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
16078 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
16079 (get_dynamic_type): Remove.
16080 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
16081 (clear_speculation): Bring to ipa-deivrt.h
16082 (get_class_context): Rename to ...
16083 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
16084 (contains_type_p): Update.
16085 (get_dynamic_type): Rename to ...
16086 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
16087 (possible_polymorphic_call_targets): UPdate.
16088 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
16089 * ipa-prop.c (ipa_analyze_call_uses): Update.
16091 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
16093 * doc/invoke.texi (SH options): Document missing processor variant
16094 options. Remove references to Hitachi. Undocument deprecated mspace
16097 2014-08-15 Jason Merrill <jason@redhat.com>
16099 * tree.c (type_hash_canon): Uncomment assert.
16101 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
16103 * input.h (in_system_header_at): Add comment.
16105 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
16108 * diagnostic.c (build_message_string): Make it extern.
16109 * diagnostic.h (build_message_string): Make it extern.
16111 2014-08-15 Vladimir Makarov <vmakarov@redhat.com>
16113 * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
16114 load/store from/to non-floating class pseudo.
16116 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
16118 * input.c (diagnostic_file_cache_fini): Fix typo in comment.
16120 2014-08-15 Richard Biener <rguenther@suse.de>
16122 * tree-ssa-structalias.c (readonly_id): Rename to string_id.
16123 (get_constraint_for_ssa_var): Remove dead code.
16124 (get_constraint_for_1): Adjust.
16125 (find_what_var_points_to): Likewise.
16126 (init_base_vars): Likewise. STRING_CSTs do not contain pointers.
16128 2014-08-15 Ilya Tocar <tocarip@gmail.com>
16131 * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
16132 (_mm512_mask_cmpge_epu32_mask): Ditto.
16133 (_mm512_cmpge_epu32_mask): Ditto.
16134 (_mm512_mask_cmpge_epi64_mask): Ditto.
16135 (_mm512_cmpge_epi64_mask): Ditto.
16136 (_mm512_mask_cmpge_epu64_mask): Ditto.
16137 (_mm512_cmpge_epu64_mask): Ditto.
16138 (_mm512_mask_cmple_epi32_mask): Ditto.
16139 (_mm512_cmple_epi32_mask): Ditto.
16140 (_mm512_mask_cmple_epu32_mask): Ditto.
16141 (_mm512_cmple_epu32_mask): Ditto.
16142 (_mm512_mask_cmple_epi64_mask): Ditto.
16143 (_mm512_cmple_epi64_mask): Ditto.
16144 (_mm512_mask_cmple_epu64_mask): Ditto.
16145 (_mm512_cmple_epu64_mask): Ditto.
16146 (_mm512_mask_cmplt_epi32_mask): Ditto.
16147 (_mm512_cmplt_epi32_mask): Ditto.
16148 (_mm512_mask_cmplt_epu32_mask): Ditto.
16149 (_mm512_cmplt_epu32_mask): Ditto.
16150 (_mm512_mask_cmplt_epi64_mask): Ditto.
16151 (_mm512_cmplt_epi64_mask): Ditto.
16152 (_mm512_mask_cmplt_epu64_mask): Ditto.
16153 (_mm512_cmplt_epu64_mask): Ditto.
16154 (_mm512_mask_cmpneq_epi32_mask): Ditto.
16155 (_mm512_mask_cmpneq_epu32_mask): Ditto.
16156 (_mm512_cmpneq_epu32_mask): Ditto.
16157 (_mm512_mask_cmpneq_epi64_mask): Ditto.
16158 (_mm512_cmpneq_epi64_mask): Ditto.
16159 (_mm512_mask_cmpneq_epu64_mask): Ditto.
16160 (_mm512_cmpneq_epu64_mask): Ditto.
16161 (_mm512_castpd_ps): Ditto.
16162 (_mm512_castpd_si512): Ditto.
16163 (_mm512_castps_pd): Ditto.
16164 (_mm512_castps_si512): Ditto.
16165 (_mm512_castsi512_ps): Ditto.
16166 (_mm512_castsi512_pd): Ditto.
16167 (_mm512_castpd512_pd128): Ditto.
16168 (_mm512_castps512_ps128): Ditto.
16169 (_mm512_castsi512_si128): Ditto.
16170 (_mm512_castpd512_pd256): Ditto.
16171 (_mm512_castps512_ps256): Ditto.
16172 (_mm512_castsi512_si256): Ditto.
16173 (_mm512_castpd128_pd512): Ditto.
16174 (_mm512_castps128_ps512): Ditto.
16175 (_mm512_castsi128_si512): Ditto.
16176 (_mm512_castpd256_pd512): Ditto.
16177 (_mm512_castps256_ps512): Ditto.
16178 (_mm512_castsi256_si512): Ditto.
16179 (_mm512_cmpeq_epu32_mask): Ditto.
16180 (_mm512_mask_cmpeq_epu32_mask): Ditto.
16181 (_mm512_mask_cmpeq_epu64_mask): Ditto.
16182 (_mm512_cmpeq_epu64_mask): Ditto.
16183 (_mm512_cmpgt_epu32_mask): Ditto.
16184 (_mm512_mask_cmpgt_epu32_mask): Ditto.
16185 (_mm512_mask_cmpgt_epu64_mask): Ditto.
16186 (_mm512_cmpgt_epu64_mask): Ditto.
16187 * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
16188 V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
16189 * config/i386/i386.c (enum ix86_builtins): Add
16190 IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
16191 IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
16192 IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
16193 (bdesc_args): Add __builtin_ia32_si512_256si,
16194 __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
16195 __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
16196 __builtin_ia32_pd512_pd.
16197 (ix86_expand_args_builtin): Handle new FTYPEs.
16198 * config/i386/sse.md (castmode): Add 512-bit modes.
16199 (AVX512MODE2P): New.
16200 (avx512f_<castmode><avxsizesuffix>_<castmode): New.
16201 (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
16203 2014-08-15 Richard Biener <rguenther@suse.de>
16205 * fold-const.c (tree_swap_operands_p): Put all constants
16206 last, also strip sign-changing NOPs when considering further
16207 canonicalization. Canonicalize also when optimizing for size.
16209 2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16211 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
16212 one_match > zero_match case to just before simple_sequence.
16214 2014-08-15 Richard Biener <rguenther@suse.de>
16216 * data-streamer.h (streamer_string_index, string_for_index):
16218 * data-streamer-out.c (streamer_string_index): Make static.
16219 * data-streamer-in.c (string_for_index): Likewise.
16220 * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
16221 * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
16223 2014-08-15 Richard Biener <rguenther@suse.de>
16225 PR tree-optimization/62031
16226 * tree-data-ref.c (dr_analyze_indices): Do not set
16227 DR_UNCONSTRAINED_BASE.
16228 (dr_may_alias_p): All indirect accesses have to go the
16229 formerly DR_UNCONSTRAINED_BASE path.
16230 * tree-data-ref.h (struct indices): Remove
16231 unconstrained_base member.
16232 (DR_UNCONSTRAINED_BASE): Remove.
16234 2014-08-15 Jakub Jelinek <jakub@redhat.com>
16236 PR middle-end/62092
16237 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
16238 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
16239 in OMP_CLAUSE_MAP in some outer target region.
16241 2014-08-15 Bin Cheng <bin.cheng@arm.com>
16243 * tree-ssa-loop-ivopts.c (ivopts_data): New field
16244 name_expansion_cache.
16245 (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
16246 (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
16247 (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
16248 (difference_cannot_overflow_p): New parameter. Use affine
16249 expansion for equality check.
16250 (iv_elimination_compare_lt): Pass new argument.
16252 2014-08-14 DJ Delorie <dj@redhat.com>
16254 * config/rl78/rl78-real.md (addqi3_real): Allow adding global
16255 variables to the accumulator.
16257 * config/rl78/predicates.md (rl78_near_mem_operand): New.
16258 * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
16259 (movhi_virt_mm): Split out near mem-mem moves to avoid problems
16260 with far-far moves.
16262 * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
16263 * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
16264 (umulqihi3_virt): Likewise.
16265 * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
16266 (umulqihi3_real): Likewise.
16268 * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
16270 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
16272 PR tree-optimization/62091
16273 * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
16274 function_entry_reached.
16275 (walk_aliased_vdefs): Clear it here.
16276 * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
16278 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
16280 * ipa-utils.h (compare_virtual_tables): Declare.
16281 * ipa-devirt.c (odr_subtypes_equivalent_p): New function
16283 2014-08-14 Marek Polacek <polacek@redhat.com>
16286 * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
16287 (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
16289 2014-08-14 Tom de Vries <tom@codesourcery.com>
16291 * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
16293 2014-08-14 Tom de Vries <tom@codesourcery.com>
16295 PR rtl-optimization/62004
16296 PR rtl-optimization/62030
16297 * ifcvt.c (rtx_interchangeable_p): New function.
16298 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
16299 * emit-rtl.h (mem_attrs_eq_p): Declare.
16301 2014-08-14 Roman Gareev <gareevroman@gmail.com>
16303 * graphite-scop-detection.c:
16304 Add inclusion of cp-tree.h.
16305 (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
16306 in case they are pointers to object types
16308 2014-08-14 Richard Biener <rguenther@suse.de>
16310 * BASE-VER: Change to 5.0.0
16312 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
16313 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16314 Anna Tikhonova <anna.tikhonova@intel.com>
16315 Ilya Tocar <ilya.tocar@intel.com>
16316 Andrey Turetskiy <andrey.turetskiy@intel.com>
16317 Ilya Verbin <ilya.verbin@intel.com>
16318 Kirill Yukhin <kirill.yukhin@intel.com>
16319 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16321 * config/i386/sse.md (define_mode_attr avx512): New.
16322 (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
16324 (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
16325 (define_mode_attr ssse3_avx2): Ditto.
16326 (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
16327 (define_mode_attr avx2_avx512bw): New.
16328 (define_mode_attr ssedoublemodelower): New.
16329 (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
16330 V32HI, V64QI modes.
16331 (define_mode_attr ssebytemode): Allow V8DI modes.
16332 (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
16333 (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
16334 (define_mode_attr ssePSmode2): New.
16335 (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
16336 V16HI, V32HI modes.
16337 (define_mode_attr dbpsadbwmode): New.
16338 (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
16339 V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
16340 (vi8_sse4_1_avx2_avx512): New.
16341 (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
16343 (define_mode_attr blendbits): Move before its immediate use.
16345 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
16346 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16347 Anna Tikhonova <anna.tikhonova@intel.com>
16348 Ilya Tocar <ilya.tocar@intel.com>
16349 Andrey Turetskiy <andrey.turetskiy@intel.com>
16350 Ilya Verbin <ilya.verbin@intel.com>
16351 Kirill Yukhin <kirill.yukhin@intel.com>
16352 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16354 * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
16355 * config/i386/subst.md
16356 (define_mode_iterator SUBST_V): Update.
16357 (define_mode_iterator SUBST_A): Ditto.
16358 (define_subst_attr "mask_operand7"): New.
16359 (define_subst_attr "mask_operand10"): New.
16360 (define_subst_attr "mask_operand_arg34") : New.
16361 (define_subst_attr "mask_expand_op3"): New.
16362 (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
16363 (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
16364 (define_subst_attr "mask_avx512vl_condition"): New.
16365 (define_subst_attr "round_mask_operand4"): Ditto.
16366 (define_subst_attr "round_mask_scalar_op3"): Delete.
16367 (define_subst_attr "round_mask_op4"): New.
16368 (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
16370 (define_subst_attr "round_modev8sf_condition"): New.
16371 (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
16373 (define_subst_attr "round_saeonly_mask_operand4"): New.
16374 (define_subst_attr "round_saeonly_mask_op4"): New.
16375 (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
16376 V8DImode, V16SImode.
16377 (define_subst_attr "round_saeonly_modev8sf_condition"): New.
16378 (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
16379 (define_subst_attr "mask_expand4_args"): New.
16380 (define_subst "mask_expand4"): New.
16382 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
16383 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16384 Anna Tikhonova <anna.tikhonova@intel.com>
16385 Ilya Tocar <ilya.tocar@intel.com>
16386 Andrey Turetskiy <andrey.turetskiy@intel.com>
16387 Ilya Verbin <ilya.verbin@intel.com>
16388 Kirill Yukhin <kirill.yukhin@intel.com>
16389 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16391 * config/i386/i386.md
16392 (define_attr "isa"): Add avx512bw,noavx512bw.
16393 (define_attr "enabled"): Ditto.
16394 (define_split): Add 32/64-bit mask logic.
16395 (define_insn "*k<logic>qi"): New.
16396 (define_insn "*k<logic>hi"): New.
16397 (define_insn "*anddi_1"): Add mask version.
16398 (define_insn "*andsi_1"): Ditto.
16399 (define_insn "*<code><mode>_1"): Ditto.
16400 (define_insn "*<code>hi_1"): Ditto.
16401 (define_insn "kxnor<mode>"): New.
16402 (define_insn "kunpcksi"): New.
16403 (define_insn "kunpckdi"): New.
16404 (define_insn "*one_cmpl<mode>2_1"): Add mask version.
16405 (define_insn "*one_cmplhi2_1"): Ditto.
16407 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
16408 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16409 Anna Tikhonova <anna.tikhonova@intel.com>
16410 Ilya Tocar <ilya.tocar@intel.com>
16411 Andrey Turetskiy <andrey.turetskiy@intel.com>
16412 Ilya Verbin <ilya.verbin@intel.com>
16413 Kirill Yukhin <kirill.yukhin@intel.com>
16414 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16416 * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
16419 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
16420 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16421 Anna Tikhonova <anna.tikhonova@intel.com>
16422 Ilya Tocar <ilya.tocar@intel.com>
16423 Andrey Turetskiy <andrey.turetskiy@intel.com>
16424 Ilya Verbin <ilya.verbin@intel.com>
16425 Kirill Yukhin <kirill.yukhin@intel.com>
16426 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16428 * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
16430 (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
16431 (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
16432 xmm/ymm16+ when availble.
16433 * config/i386/i386.h
16434 (HARD_REGNO_NREGS): Add mask regs.
16435 (VALID_AVX512F_REG_MODE): Ditto.
16436 (VALID_AVX512F_REG_MODE) : Define.
16437 (VALID_MASK_AVX512BW_MODE): Ditto.
16438 (reg_class) (MASK_REG_P(X)): Define.
16439 * config/i386/i386.md: Do not split long moves with mask register,
16440 use kmovb if avx512bw is availible.
16441 (movdi_internal): Handle mask registers.
16443 2014-08-14 Richard Biener <rguenther@suse.de>
16445 PR tree-optimization/62081
16446 * tree-ssa-loop.c (pass_fix_loops): New pass.
16447 (pass_tree_loop::gate): Do not fixup loops here.
16448 * tree-pass.h (make_pass_fix_loops): Declare.
16449 * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
16451 2014-08-14 Richard Biener <rguenther@suse.de>
16453 * tree.c (type_hash_lookup, type_hash_add): Merge into ...
16454 (type_hash_canon): ... this and avoid 2nd lookup for the add.
16456 2014-08-14 Richard Biener <rguenther@suse.de>
16458 PR tree-optimization/62090
16459 * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
16460 (fold_builtin_2): Do not fold sprintf.
16461 (fold_builtin_3): Likewise.
16462 * gimple-fold.c (gimple_fold_builtin_sprintf): New function
16463 moved from builtins.c.
16464 (gimple_fold_builtin): Fold sprintf.
16466 2014-08-14 Richard Biener <rguenther@suse.de>
16468 PR rtl-optimization/62079
16469 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
16472 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
16474 * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
16475 current_function_decl.
16477 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
16479 * cgraph.c (cgraph_node::function_symbol): Fix wrong
16480 cgraph_function_node to cgraph_node::function_symbol
16483 2014-08-14 Zhenqiang Chen <zhenqiang.chen@arm.com>
16485 * config/arm/arm.c (arm_option_override): Set max_insns_skipped
16486 to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
16488 2014-08-13 Chen Gang gang.chen.5i5j@gmail.com
16490 * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
16493 2014-08-13 Roman Gareev <gareevroman@gmail.com>
16495 * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
16498 2014-08-12 Jakub Jelinek <jakub@redhat.com>
16501 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
16502 any registers that are used in mem_insn.
16504 2014-08-12 Steve Ellcey <sellcey@mips.com>
16506 * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
16508 2014-08-12 Steve Ellcey <sellcey@mips.com>
16510 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
16511 (MULTILIB_DIRNAMES): Ditto.
16512 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
16513 * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
16514 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
16515 * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
16516 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
16517 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
16519 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16522 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
16523 of __ARM_SIZEOF_WCHAR_T.
16525 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16528 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
16529 Remove unnecessary attributes.
16531 2014-08-12 Yury Gribov <y.gribov@samsung.com>
16533 * internal-fn.c (init_internal_fns): Fix off-by-one.
16535 2014-08-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
16536 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16537 Anna Tikhonova <anna.tikhonova@intel.com>
16538 Ilya Tocar <ilya.tocar@intel.com>
16539 Andrey Turetskiy <andrey.turetskiy@intel.com>
16540 Ilya Verbin <ilya.verbin@intel.com>
16541 Kirill Yukhin <kirill.yukhin@intel.com>
16542 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16544 * config/i386/i386.c (standard_sse_constant_opcode): Use
16545 vpxord/vpternlog if avx512 is availible.
16547 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
16549 PR middle-end/62103
16550 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
16551 bitfields, that is when size doesn't match the size of type or the
16552 size of the constructor.
16554 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
16556 * config/rs6000/constraints.md (wh constraint): New constraint,
16557 for FP registers if direct move is available.
16558 (wi constraint): New constraint, for VSX/FP registers that can
16559 handle 64-bit integers.
16560 (wj constraint): New constraint for VSX/FP registers that can
16561 handle 64-bit integers for direct moves.
16562 (wk constraint): New constraint for VSX/FP registers that can
16563 handle 64-bit doubles for direct moves.
16564 (wy constraint): Make documentation match implementation.
16566 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
16567 scalar_in_vmx_p field to simplify tests of whether SFmode or
16568 DFmode can go in the Altivec registers.
16569 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
16570 (rs6000_setup_reg_addr_masks): Likewise.
16571 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
16572 field, and wh/wi/wj/wk constraints.
16573 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
16574 the wh/wi/wj/wk constraints.
16575 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
16576 upper registers, prefer VSX registers unless the operation is a
16577 memory operation with REG+OFFSET addressing.
16579 * config/rs6000/vsx.md (VSr mode attribute): Add support for
16580 DImode. Change SFmode to use ww constraint instead of d to allow
16581 SF registers in the upper registers.
16584 (VSr5): Fix thinko in comment.
16585 (VSa): New mode attribute that is an alternative to wa, that
16586 returns the VSX register class that a mode can go in, but may not
16587 be the preferred register class.
16588 (VS_64dm): New mode attribute for appropriate register classes for
16589 referencing 64-bit elements of vectors for direct moves and normal
16591 (VS_64reg): Likewise.
16592 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
16593 register allocator to only registers the data type can handle.
16594 (vsx_le_perm_load_<mode>): Likewise.
16595 (vsx_le_perm_store_<mode>): Likewise.
16596 (vsx_xxpermdi2_le_<mode>): Likewise.
16597 (vsx_xxpermdi4_le_<mode>): Likewise.
16598 (vsx_lxvd2x2_le_<mode>): Likewise.
16599 (vsx_lxvd2x4_le_<mode>): Likewise.
16600 (vsx_stxvd2x2_le_<mode>): Likewise.
16601 (vsx_add<mode>3): Likewise.
16602 (vsx_sub<mode>3): Likewise.
16603 (vsx_mul<mode>3): Likewise.
16604 (vsx_div<mode>3): Likewise.
16605 (vsx_tdiv<mode>3_internal): Likewise.
16606 (vsx_fre<mode>2): Likewise.
16607 (vsx_neg<mode>2): Likewise.
16608 (vsx_abs<mode>2): Likewise.
16609 (vsx_nabs<mode>2): Likewise.
16610 (vsx_smax<mode>3): Likewise.
16611 (vsx_smin<mode>3): Likewise.
16612 (vsx_sqrt<mode>2): Likewise.
16613 (vsx_rsqrte<mode>2): Likewise.
16614 (vsx_tsqrt<mode>2_internal): Likewise.
16615 (vsx_fms<mode>4): Likewise.
16616 (vsx_nfma<mode>4): Likewise.
16617 (vsx_eq<mode>): Likewise.
16618 (vsx_gt<mode>): Likewise.
16619 (vsx_ge<mode>): Likewise.
16620 (vsx_eq<mode>_p): Likewise.
16621 (vsx_gt<mode>_p): Likewise.
16622 (vsx_ge<mode>_p): Likewise.
16623 (vsx_xxsel<mode>): Likewise.
16624 (vsx_xxsel<mode>_uns): Likewise.
16625 (vsx_copysign<mode>3): Likewise.
16626 (vsx_float<VSi><mode>2): Likewise.
16627 (vsx_floatuns<VSi><mode>2): Likewise.
16628 (vsx_fix_trunc<mode><VSi>2): Likewise.
16629 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
16630 (vsx_x<VSv>r<VSs>i): Likewise.
16631 (vsx_x<VSv>r<VSs>ic): Likewise.
16632 (vsx_btrunc<mode>2): Likewise.
16633 (vsx_b2trunc<mode>2): Likewise.
16634 (vsx_floor<mode>2): Likewise.
16635 (vsx_ceil<mode>2): Likewise.
16636 (vsx_<VS_spdp_insn>): Likewise.
16637 (vsx_xscvspdp): Likewise.
16638 (vsx_xvcvspuxds): Likewise.
16639 (vsx_float_fix_<mode>2): Likewise.
16640 (vsx_set_<mode>): Likewise.
16641 (vsx_extract_<mode>_internal1): Likewise.
16642 (vsx_extract_<mode>_internal2): Likewise.
16643 (vsx_extract_<mode>_load): Likewise.
16644 (vsx_extract_<mode>_store): Likewise.
16645 (vsx_splat_<mode>): Likewise.
16646 (vsx_xxspltw_<mode>): Likewise.
16647 (vsx_xxspltw_<mode>_direct): Likewise.
16648 (vsx_xxmrghw_<mode>): Likewise.
16649 (vsx_xxmrglw_<mode>): Likewise.
16650 (vsx_xxsldwi_<mode>): Likewise.
16651 (vsx_xscvdpspn): Tighten constraints to only use register classes
16653 (vsx_xscvspdpn): Likewise.
16654 (vsx_xscvdpspn_scalar): Likewise.
16656 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
16657 wj, and wk constraints.
16658 (GPR_REG_CLASS_P): New helper macro for register classes targeting
16659 general purpose registers.
16661 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
16663 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
16664 DImode instead of wm. Use wk constraint for direct move of DFmode
16666 (extendsidi2_lfiwax): Likewise.
16667 (lfiwax): Likewise.
16668 (lfiwzx): Likewise.
16669 (movdi_internal64): Likewise.
16671 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
16672 wk constraints. Make the wy constraint documentation match them
16675 2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr>
16677 Replacement of isl_int by isl_val
16678 * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
16679 (compute_bounds_for_param): use isl_val instead of isl_int
16680 (compute_bounds_for_loop): likewise
16681 * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
16682 (build_linearized_memory_access): use isl_val instead of isl_int
16683 (pdr_stride_in_loop): likewise
16684 * graphite-optimize-isl.c:
16685 (getPrevectorMap): use isl_val instead of isl_int
16687 (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
16688 graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
16689 (extern the_isl_ctx): declare
16690 (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
16691 (extract_affine_gmp): likewise
16693 (build_loop_iteration_domains): likewise
16694 (add_param_constraints): likewise
16696 2014-08-11 Richard Biener <rguenther@suse.de>
16698 PR tree-optimization/62075
16699 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
16700 handle uses in patterns.
16702 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
16703 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16704 Anna Tikhonova <anna.tikhonova@intel.com>
16705 Ilya Tocar <ilya.tocar@intel.com>
16706 Andrey Turetskiy <andrey.turetskiy@intel.com>
16707 Ilya Verbin <ilya.verbin@intel.com>
16708 Kirill Yukhin <kirill.yukhin@intel.com>
16709 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16711 * common/config/i386/i386-common.c
16712 (OPTION_MASK_ISA_AVX512VL_SET): Define.
16713 (OPTION_MASK_ISA_AVX512F_UNSET): Update.
16714 (ix86_handle_option): Handle OPT_mavx512vl.
16715 * config/i386/cpuid.h (bit_AVX512VL): Define.
16716 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
16717 set -mavx512vl accordingly.
16718 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16719 OPTION_MASK_ISA_AVX512VL.
16720 * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
16721 (ix86_option_override_internal): Define PTA_AVX512VL, handle
16722 PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
16723 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
16724 * config/i386/i386.h (TARGET_AVX512VL): Define.
16725 (TARGET_AVX512VL_P(x)): Ditto.
16726 * config/i386/i386.opt: Add mavx512vl.
16728 2014-08-11 Felix Yang <fei.yang0953@gmail.com>
16730 PR tree-optimization/62073
16731 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
16734 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
16735 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16736 Anna Tikhonova <anna.tikhonova@intel.com>
16737 Ilya Tocar <ilya.tocar@intel.com>
16738 Andrey Turetskiy <andrey.turetskiy@intel.com>
16739 Ilya Verbin <ilya.verbin@intel.com>
16740 Kirill Yukhin <kirill.yukhin@intel.com>
16741 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16743 * common/config/i386/i386-common.c
16744 (OPTION_MASK_ISA_AVX512BW_SET) : Define.
16745 (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
16746 (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
16747 (ix86_handle_option): Handle OPT_mavx512bw.
16748 * config/i386/cpuid.h (bit_AVX512BW): Define.
16749 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
16750 set -mavx512bw accordingly.
16751 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16752 OPTION_MASK_ISA_AVX512BW.
16753 * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
16754 (ix86_option_override_internal): Define PTA_AVX512BW, handle
16755 PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
16756 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
16757 * config/i386/i386.h (TARGET_AVX512BW): Define.
16758 (TARGET_AVX512BW_P(x)): Ditto.
16759 * config/i386/i386.opt: Add mavx512bw.
16761 2014-08-11 Richard Biener <rguenther@suse.de>
16763 PR tree-optimization/62070
16764 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
16765 Remove SSA checking.
16767 2014-08-11 Yury Gribov <y.gribov@samsung.com>
16769 * asan.c (asan_check_flags): New enum.
16770 (build_check_stmt_with_calls): Removed function.
16771 (build_check_stmt): Split inlining logic to
16772 asan_expand_check_ifn.
16773 (instrument_derefs): Rename parameter.
16774 (instrument_mem_region_access): Rename parameter.
16775 (instrument_strlen_call): Likewise.
16776 (asan_expand_check_ifn): New function.
16777 (asan_instrument): Remove old code.
16778 (pass_sanopt::execute): Change handling of
16779 asan-instrumentation-with-call-threshold.
16780 (asan_clear_shadow): Fix formatting.
16781 (asan_function_start): Likewise.
16782 (asan_emit_stack_protection): Likewise.
16783 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
16784 Update description.
16785 * internal-fn.c (expand_ASAN_CHECK): New function.
16786 * internal-fn.def (ASAN_CHECK): New internal function.
16787 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
16788 Update description.
16789 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
16790 * tree.c: Small comment fix.
16792 2014-08-11 Yury Gribov <y.gribov@samsung.com>
16794 * gimple.c (gimple_call_fnspec): Support internal functions.
16795 (gimple_call_return_flags): Use const.
16796 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
16797 * internal-fn.def: Add fnspec information.
16798 * internal-fn.h (internal_fn_fnspec): New function.
16799 (init_internal_fns): Declare new function.
16800 * internal-fn.c (internal_fn_fnspec_array): New global variable.
16801 (init_internal_fns): New function.
16802 * tree-core.h: Update macro call.
16803 * tree.c (build_common_builtin_nodes): Initialize internal fns.
16805 2014-08-10 Gerald Pfeifer <gerald@pfeifer.com>
16807 * lto-streamer.h (struct output_block::symbol): Change from
16808 struct symtab_node to plain symtab_node.
16809 (referenced_from_this_partition_p): Change first parameter
16810 from struct symtab_node to plain symtab_node.
16812 2014-08-10 Marek Polacek <polacek@redhat.com>
16815 * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
16817 2014-08-09 Jan Hubicka <hubicka@ucw.cz>
16819 * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
16820 DECL correctly; do not give up on types in static storage.
16822 2014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
16824 * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
16826 2014-08-09 Roman Gareev <gareevroman@gmail.com>
16828 * graphite-isl-ast-to-gimple.c:
16829 (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
16831 * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
16833 2014-08-08 Guozhi Wei <carrot@google.com>
16835 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
16837 2014-08-08 Cary Coutant <ccoutant@google.com>
16839 * dwarf2out.c (get_skeleton_type_unit): Remove.
16840 (output_skeleton_debug_sections): Remove skeleton type units.
16841 (output_comdat_type_unit): Likewise.
16842 (dwarf2out_finish): Likewise.
16844 2014-08-07 Yi Yang <ahyangyi@google.com>
16846 * predict.c (expr_expected_value_1): Remove the redundant assignment.
16848 2014-08-08 Richard Biener <rguenther@suse.de>
16850 * lto-streamer.h (struct lto_input_block): Make it a class
16851 with a constructor.
16852 (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
16853 (struct lto_function_header, struct lto_simple_header,
16854 struct lto_simple_header_with_strings,
16855 struct lto_decl_header, struct lto_function_header): Make
16856 a simple inheritance hieararchy. Remove unused fields.
16857 (struct lto_asm_header): Remove.
16858 * lto-streamer-out.c (produce_asm): Adjust.
16859 (lto_output_toplevel_asms): Likewise.
16860 (produce_asm_for_decls): Likewise.
16861 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16862 * data-streamer-in.c (string_for_index): Likewise.
16863 * ipa-inline-analysis.c (inline_read_section): Likewise.
16864 * ipa-prop.c (ipa_prop_read_section): Likewise.
16865 (read_replacements_section): Likewise.
16866 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
16867 * lto-section-in.c (lto_create_simple_input_block): Likewise.
16868 (lto_destroy_simple_input_block): Likewise.
16869 * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
16870 (lto_input_toplevel_asms): Likewise.
16872 2014-08-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
16873 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16874 Anna Tikhonova <anna.tikhonova@intel.com>
16875 Ilya Tocar <ilya.tocar@intel.com>
16876 Andrey Turetskiy <andrey.turetskiy@intel.com>
16877 Ilya Verbin <ilya.verbin@intel.com>
16878 Kirill Yukhin <kirill.yukhin@intel.com>
16879 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16881 * common/config/i386/i386-common.c
16882 (OPTION_MASK_ISA_AVX512DQ_SET): Define.
16883 (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
16884 (ix86_handle_option): Handle OPT_mavx512dq.
16885 * config/i386/cpuid.h (bit_AVX512DQ): Define.
16886 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
16887 set -mavx512dq accordingly.
16888 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16889 OPTION_MASK_ISA_AVX512DQ.
16890 * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
16891 (ix86_option_override_internal): Define PTA_AVX512DQ, handle
16892 PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
16893 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
16894 * config/i386/i386.h (TARGET_AVX512DQ): Define.
16895 (TARGET_AVX512DQ_P(x)): Ditto.
16896 * config/i386/i386.opt: Add mavx512dq.
16898 2014-08-08 Richard Biener <rguenther@suse.de>
16900 * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
16901 target_percent, target_percent_s): Export.
16902 (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
16903 fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
16904 fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
16905 fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
16906 fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
16907 Move to gimple-fold.c.
16908 (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
16910 (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
16911 mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
16912 (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
16913 memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
16914 (rewrite_call_expr_array): Remove.
16915 (fold_builtin_sprintf_chk): Likewise.
16916 (fold_builtin_snprintf_chk): Likewise.
16917 (fold_builtin_varargs): Remove handling of sprintf_chk,
16918 vsprintf_chk, snprintf_chk and vsnprintf_chk.
16919 (gimple_fold_builtin_sprintf_chk): Remove.
16920 (gimple_fold_builtin_snprintf_chk): Likewise.
16921 (gimple_fold_builtin_varargs): Likewise.
16922 (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
16923 * predict.c (optimize_bb_for_size_p): Handle NULL bb.
16924 * gimple.c (gimple_seq_add_seq_without_update): New function.
16925 * gimple.h (gimple_seq_add_seq_without_update): Declare.
16926 * gimple-fold.c: Include output.h.
16927 (gsi_replace_with_seq_vops): New function, split out from ...
16928 (gimplify_and_update_call_from_tree): ... here.
16929 (replace_call_with_value): New function.
16930 (replace_call_with_call_and_fold): Likewise.
16931 (var_decl_component_p): Moved from builtins.c.
16932 (gimple_fold_builtin_memory_op): Moved from builtins.c
16933 fold_builtin_memory_op and rewritten to GIMPLE.
16934 (gimple_fold_builtin_memset): Likewise.
16935 (gimple_fold_builtin_strcpy): Likewise.
16936 (gimple_fold_builtin_strncpy): Likewise.
16937 (gimple_fold_builtin_strcat): Likewise.
16938 (gimple_fold_builtin_fputs): Likewise.
16939 (gimple_fold_builtin_memory_chk): Likewise.
16940 (gimple_fold_builtin_stxcpy_chk): Likewise.
16941 (gimple_fold_builtin_stxncpy_chk): Likewise.
16942 (gimple_fold_builtin_snprintf_chk): Likewise.
16943 (gimple_fold_builtin_sprintf_chk): Likewise.
16944 (gimple_fold_builtin_strlen): New function.
16945 (gimple_fold_builtin_with_strlen): New function split out from
16946 gimple_fold_builtin.
16947 (gimple_fold_builtin): Change signature and handle
16948 bzero, memset, bcopy, memcpy, mempcpy and memmove folding
16949 here. Call gimple_fold_builtin_with_strlen.
16950 (gimple_fold_call): Adjust.
16952 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
16954 * calls.c (precompute_arguments): Check
16955 promoted_for_signed_and_unsigned_p and set the promoted mode.
16956 (promoted_for_signed_and_unsigned_p): New function.
16957 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
16958 and set the promoted mode.
16959 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
16960 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
16961 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
16964 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
16966 * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
16967 instead of SUBREG_PROMOTED_UNSIGNED_SET.
16968 (expand_call): Likewise.
16969 * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
16970 to get promoted mode.
16971 * combine.c (record_promoted_value): Skip > 0 comparison with
16972 SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
16973 * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
16974 of SUBREG_PROMOTED_UNSIGNED_P.
16975 (convert_modes): Likewise.
16976 (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
16977 Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
16978 (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
16979 SUBREG_PROMOTED_UNSIGNED_SET.
16980 * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
16981 instead of SUBREG_PROMOTED_UNSIGNED_SET.
16982 * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
16983 SUBREG_PROMOTED_SET.
16984 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
16985 SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
16986 * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
16987 of SUBREG_PROMOTED_UNSIGNED_P.
16988 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
16989 (SUBREG_PROMOTED_SET): New define.
16990 (SUBREG_PROMOTED_GET): Likewise.
16991 (SUBREG_PROMOTED_SIGN): Likewise.
16992 (SUBREG_PROMOTED_SIGNED_P): Likewise.
16993 (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
16994 (SUBREG_PROMOTED_UNSIGNED_P): Updated.
16995 * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
16996 instead of SUBREG_PROMOTED_UNSIGNED_GET.
16997 (nonzero_bits1): Skip > 0 comparison with the results as
16998 SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
16999 (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
17000 of !SUBREG_PROMOTED_UNSIGNED_P.
17001 * simplify-rtx.c (simplify_unary_operation_1): Use new
17002 SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
17003 (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
17004 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
17005 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
17007 2014-08-07 Jan Hubicka <hubicka@ucw.cz>
17009 * ipa-devirt.c: Include gimple-pretty-print.h
17010 (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
17012 (decl_maybe_in_construction_p): Fix conditional on cdtor check
17013 (get_polymorphic_call_info): Fix return value
17014 (type_change_info): New sturcture based on ipa-prop
17016 (noncall_stmt_may_be_vtbl_ptr_store): New predicate
17017 based on ipa-prop variant.
17018 (extr_type_from_vtbl_ptr_store): New function
17019 based on ipa-prop variant.
17020 (record_known_type): New function.
17021 (check_stmt_for_type_change): New function.
17022 (get_dynamic_type): New function.
17023 * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
17024 * tree-ssa-pre.c: ipa-utils.h
17025 (eliminate_dom_walker::before_dom_children): Use ipa-devirt
17026 machinery; sanity check with ipa-prop devirtualization.
17027 * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
17030 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
17032 * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
17033 * alias.c, cfgexpand.c, cgraphbuild.c,
17034 config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
17035 config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
17036 config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
17037 config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
17038 config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
17039 config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
17040 config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
17041 dse.c, except.c, gengtype.c, gimple-expr.c,
17042 gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
17043 ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
17044 tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
17045 tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
17046 tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
17047 tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
17049 * pointer-set.c: Remove file.
17050 * pointer-set.h: Remove file.
17052 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17054 * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
17055 * config/arm/types.md (f_sels, f_seld): Delete.
17057 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17059 * config/aarch64/aarch64.md (absdi2): Set simd attribute.
17060 (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
17061 (aarch64_movdi_<mode>high): Likewise.
17062 (aarch64_mov<mode>high_di): Likewise.
17063 (aarch64_movdi_<mode>low): Likewise.
17064 (aarch64_mov<mode>low_di): Likewise.
17065 (aarch64_movtilow_tilow): Likewise.
17066 Add comment explaining usage of fp,simd attributes and of
17067 TARGET_FLOAT and TARGET_SIMD.
17069 2014-08-07 Ian Bolton <ian.bolton@arm.com>
17070 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17072 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
17073 Use MOVN when one of the half-words is 0xffff.
17075 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
17077 * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
17079 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17081 * haifa-sched.c (SCHED_SORT): Delete. Macro used exactly once.
17082 (enum rfs_decition:RFS_*): New constants wrapped in an enum.
17083 (rfs_str): String corresponding to RFS_* constants.
17084 (rank_for_schedule_stats_t): New typedef.
17085 (rank_for_schedule_stats): New static variable.
17086 (rfs_result): New static function.
17087 (rank_for_schedule): Track statistics for deciding heuristics.
17088 (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
17090 (ready_sort): Use them for debug printouts.
17091 (schedule_block): Init statistics state. Print statistics on
17092 rank_for_schedule decisions.
17094 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17096 * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
17098 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
17100 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
17103 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
17105 * hash-map.h (default_hashmap_traits): Adjust overloads of hash
17106 function to not conflict.
17107 * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
17108 gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
17109 lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
17110 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
17111 tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
17114 2014-08-07 Marek Polacek <polacek@redhat.com>
17116 * fold-const.c (fold_binary_loc): Add folding of
17117 (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
17119 2013-08-07 Ilya Enkovich <ilya.enkovich@intel.com>
17121 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
17122 instead of type size.
17123 (ASM_FINISH_DECLARE_OBJECT): Likewise.
17125 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
17127 * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
17128 (*thumb1_movqi_insn): Likewise.
17129 * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
17131 2014-08-07 Tom de Vries <tom@codesourcery.com>
17133 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
17134 (glibc_2_11_or_earlier): Remove effective-target keywords.
17136 2014-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
17138 * config/arm/arm.c (bdesc_2arg): Fix typo.
17139 (arm_atomic_assign_expand_fenv): Remove The default implementation.
17141 2014-08-07 Zhenqiang Chen <zhenqiang.chen@arm.com>
17143 * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
17145 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
17148 * haifa-sched.c (advance_one_cycle): Fix dump.
17149 (schedule_block): Don't advance cycle if we are already at the
17150 beginning of the cycle.
17152 2014-08-06 Martin Jambor <mjambor@suse.cz>
17155 * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
17157 2014-08-06 Richard Biener <rguenther@suse.de>
17160 * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
17162 (lto_input_tree): Pop SCCs here.
17164 2014-08-06 Richard Biener <rguenther@suse.de>
17166 PR tree-optimization/61320
17167 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
17168 handle misaligned loads.
17170 2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
17172 * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
17173 (aarch64_expand_vec_perm_const): Check for dup before zip.
17175 2014-08-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17177 * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
17178 CONST_INT_P instead of GET_CODE and compare.
17179 (aarch64_select_cc_mode): Likewise.
17180 (aarch64_print_operand): Likewise.
17181 (aarch64_rtx_costs): Likewise.
17182 (aarch64_simd_valid_immediate): Likewise.
17183 (aarch64_simd_check_vect_par_cnst_half): Likewise.
17184 (aarch64_simd_emit_pair_result_insn): Likewise.
17186 2014-08-05 David Malcolm <dmalcolm@redhat.com>
17188 * gdbhooks.py (find_gcc_source_dir): New helper function.
17189 (class PassNames): New class, locating and parsing passes.def.
17190 (class BreakOnPass): New command "break-on-pass".
17192 2014-08-05 Trevor Saunders <tsaunders@mozilla.com>
17194 * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
17197 2014-08-05 Richard Biener <rguenther@suse.de>
17199 PR rtl-optimization/61672
17200 * emit-rtl.h (mem_attrs_eq_p): Declare.
17201 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
17202 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
17203 * cfgcleanup.c (merge_memattrs): Likewise.
17204 Include emit-rtl.h.
17206 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17208 * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
17209 rather than singleton vectors.
17210 (vqdmlsls_lane_s32): Likewise.
17212 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17214 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
17215 Use VSDQ_HSI mode iterator.
17216 (aarch64_sqrdmulh_laneq<mode>): Likewise.
17217 (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
17218 * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
17219 Use BUILTIN_VDQHS macro.
17220 (sqrdmulh_laneq): Likewise.
17221 * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
17222 (vqdmlals_laneq_s32): Likewise.
17223 (vqdmlslh_laneq_s16): Likewise.
17224 (vqdmlsls_laneq_s32): Likewise.
17225 (vqdmulhh_laneq_s16): Likewise.
17226 (vqdmulhs_laneq_s32): Likewise.
17227 (vqrdmulhh_laneq_s16): Likewise.
17228 (vqrdmulhs_laneq_s32): Likewise.
17230 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17232 * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
17233 (vmuld_laneq_f64): Likewise.
17234 (vmuls_laneq_f32): Likewise.
17235 (vmul_n_f64): Likewise.
17236 (vmuld_lane_f64): Reimplement in C.
17237 (vmuls_lane_f32): Likewise.
17239 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17241 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
17243 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
17245 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17247 * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
17248 (rbitsi2): Likewise.
17249 (*arm_rev): Set predicable and predicable_short_it attributes.
17251 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17253 * convert.c (convert_to_integer): Guard transformation to lrint by
17256 2014-08-05 James Greenhalgh <james.greenhalgh@arm.com>
17258 * config/aarch64/aarch64-builtins.c
17259 (aarch64_simd_builtin_type_mode): Delete.
17260 (v8qi_UP): Remap to V8QImode.
17261 (v4hi_UP): Remap to V4HImode.
17262 (v2si_UP): Remap to V2SImode.
17263 (v2sf_UP): Remap to V2SFmode.
17264 (v1df_UP): Remap to V1DFmode.
17265 (di_UP): Remap to DImode.
17266 (df_UP): Remap to DFmode.
17267 (v16qi_UP):V16QImode.
17268 (v8hi_UP): Remap to V8HImode.
17269 (v4si_UP): Remap to V4SImode.
17270 (v4sf_UP): Remap to V4SFmode.
17271 (v2di_UP): Remap to V2DImode.
17272 (v2df_UP): Remap to V2DFmode.
17273 (ti_UP): Remap to TImode.
17274 (ei_UP): Remap to EImode.
17275 (oi_UP): Remap to OImode.
17276 (ci_UP): Map to CImode.
17277 (xi_UP): Remap to XImode.
17278 (si_UP): Remap to SImode.
17279 (sf_UP): Remap to SFmode.
17280 (hi_UP): Remap to HImode.
17281 (qi_UP): Remap to QImode.
17282 (aarch64_simd_builtin_datum): Make mode a machine_mode.
17283 (VAR1): Build builtin name.
17284 (aarch64_init_simd_builtins): Remove dead code.
17286 2014-08-05 Roman Gareev <gareevroman@gmail.com>
17288 * graphite-isl-ast-to-gimple.c:
17289 (set_options): New function.
17290 (scop_to_isl_ast): Add calling of set_options.
17292 2014-08-05 Jakub Jelinek <jakub@redhat.com>
17294 * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
17295 (analyze_iv_to_split_insn): Don't initialize them.
17296 (get_ivts_expr): Removed.
17297 (allocate_basic_variable, insert_base_initialization): Use
17298 SET_SRC instead of *get_ivts_expr.
17299 (split_iv): Use &SET_SRC instead of get_ivts_expr.
17301 2014-08-05 Roman Gareev <gareevroman@gmail.com>
17303 * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
17304 (translate_isl_ast_for_loop): Add checking of the
17305 flag_loop_parallelize_all.
17306 (ast_build_before_for): New function.
17307 (scop_to_isl_ast): Add checking of the
17308 flag_loop_parallelize_all.
17309 * graphite-dependences.c: Move the defenition of the
17310 scop_get_dependences from graphite-optimize-isl.c to this file.
17311 (apply_schedule_on_deps): Add checking of the ux's emptiness.
17312 (carries_deps): Add checking of the x's value.
17313 * graphite-optimize-isl.c: Move the defenition of the
17314 scop_get_dependences to graphite-dependences.c.
17315 * graphite-poly.h: Add declarations of scop_get_dependences
17318 2014-08-04 Rohit <rohitarulraj@freescale.com>
17321 * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
17323 (alt_reg_names): Likewise.
17324 (rs6000_dwarf_register_span): For SPE high registers, replace
17325 dwarf register numbers with GCC hard register numbers.
17326 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
17327 (rs6000_dbx_register_number): For SPE high registers, return dwarf
17328 register number for the corresponding GCC hard register number.
17329 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
17330 newly added GCC hard register numbers for SPE high registers.
17331 (DWARF_FRAME_REGISTERS): Likewise.
17332 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
17333 (DWARF_FRAME_REGNUM): Likewise.
17334 (FIXED_REGISTERS): Likewise.
17335 (CALL_USED_REGISTERS): Likewise.
17336 (CALL_REALLY_USED_REGISTERS): Likewise.
17337 (REG_ALLOC_ORDER): Likewise.
17338 (enum reg_class): Likewise.
17339 (REG_CLASS_NAMES): Likewise.
17340 (REG_CLASS_CONTENTS): Likewise.
17341 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
17343 2014-08-04 Richard Biener <rguenther@suse.de>
17345 * gimple-fold.h (gimple_fold_builtin): Remove.
17346 * gimple-fold.c (gimple_fold_builtin): Make static.
17347 * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
17348 fold_stmt, not gimple_fold_builtin.
17350 2014-08-04 Martin Liska <mliska@suse.cz>
17352 * cgraph.h (csi_end_p): Removed.
17353 (csi_next): Likewise.
17354 (csi_node): Likewise.
17355 (csi_start): Likewise.
17356 (cgraph_node_in_set_p): Likewise.
17357 (cgraph_node_set_size): Likewise.
17358 (vsi_end_p): Likewise.
17359 (vsi_next): Likewise.
17360 (vsi_node): Likewise.
17361 (vsi_start): Likewise.
17362 (varpool_node_set_size): Likewise.
17363 (cgraph_node_set_nonempty_p): Likewise.
17364 (varpool_node_set_nonempty_p): Likewise.
17365 * cgraphunit.c (cgraph_process_new_functions): vec replaces
17367 * ipa-inline-transform.c: Likewise.
17368 * ipa-utils.c (cgraph_node_set_new): Removed.
17369 (cgraph_node_set_add): Likewise.
17370 (cgraph_node_set_remove): Likewise.
17371 (cgraph_node_set_find): Likewise.
17372 (dump_cgraph_node_set): Likewise.
17373 (debug_cgraph_node_set): Likewise.
17374 (free_cgraph_node_set): Likewise.
17375 (varpool_node_set_new): Likewise.
17376 (varpool_node_set_add): Likewise.
17377 (varpool_node_set_remove): Likewise.
17378 (varpool_node_set_find): Likewise.
17379 (dump_varpool_node_set): Likewise.
17380 (free_varpool_node_set): Likewise.
17381 (debug_varpool_node_set): Likewise.
17382 * tree-emutls.c (struct tls_var_data):
17383 (emutls_index): Removed.
17384 (emutls_decl): Likewise.
17385 (gen_emutls_addr): Function implementation uses newly added
17386 hash_map<varpool_node *, tls_var_data>.
17387 (clear_access_vars): Likewise.
17388 (create_emultls_var): Likewise.
17389 (ipa_lower_emutls): Likewise.
17390 (reset_access): New function.
17392 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17394 * config/i386/i386.c (ix86_option_override_internal): Add
17395 PTA_RDRND and PTA_MOVBE for bdver4.
17397 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17398 James Greenhalgh <james.greenhalgh@arm.com>
17400 * doc/md.texi (clrsb): Document.
17401 (clz): Change reference to x into operand 1.
17403 (popcount): Likewise.
17405 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17408 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
17409 move to subtarget in serial version if result is ignored.
17411 2014-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17412 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17414 * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
17415 to any two insns. Update comment. Rename to sched_macro_fuse_insns.
17416 (sched_analyze_insn): Update use of try_group_insn to
17417 sched_macro_fuse_insns.
17418 * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
17419 arguments that are not conditional jumps.
17421 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17423 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
17424 family information. Handle BTVER2 cpu with cpuid family value.
17426 2014-08-04 Tom de Vries <tom@codesourcery.com>
17428 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
17429 (glibc_2_11_or_earlier): Document effective-target keywords.
17431 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
17433 * ipa-devirt.c (odr_type_warn_count): Add type.
17434 (possible_polymorphic_call_targets): Set it.
17435 (ipa_devirt): Use it.
17437 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
17439 * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
17441 * ipa-devirt.c: Include hash-map.h
17442 (struct polymorphic_call_target_d): Add type_warning and decl_warning.
17443 (clear_speculation): Break out of ...
17444 (get_class_context): ... here; speed up handling obviously useless
17446 (odr_type_warn_count, decl_warn_count): New structures.
17447 (final_warning_record): New structure.
17448 (final_warning_records): New static variable.
17449 (possible_polymorphic_call_targets): Cleanup handling of
17450 speculative info; do not build speculation when user do not care;
17451 record info about warnings when asked for.
17452 (add_decl_warning): New function.
17453 (type_warning_cmp): New function.
17454 (decl_warning_cmp): New function.
17455 (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
17456 (gate): Enable pass when warnings are requested.
17457 * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
17460 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
17462 * hash-map.h (default_hashmap_traits::mark_key_deleted):
17464 (hash_map::remove): New method.
17465 (hash_map::traverse): New method.
17466 * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
17467 ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
17468 tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
17469 tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
17470 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
17471 tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
17474 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
17476 * hash-set.h: new File.
17477 * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
17478 cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
17479 ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
17480 lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
17481 tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
17482 tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
17483 tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
17484 varpool.c: Use hash_set instead of pointer_set.
17486 2014-08-01 Alan Lawrence <alan.lawrence@arm.com>
17488 * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
17490 2014-08-01 Jiong Wang <jiong.wang@arm.com>
17492 * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
17493 for frame access when strict_p is false.
17495 2014-08-01 Renlin Li <renlin.li@arm.com>
17496 2014-08-01 Jiong Wang <jiong.wang@arm.com>
17498 * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
17499 aarch64_offset_7bit_signed_scaled_p, remove static and use it.
17500 * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
17502 * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
17504 * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
17505 aarch64_mem_pair_offset.
17507 2014-08-01 Jiong Wang <jiong.wang@arm.com>
17509 * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
17511 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
17512 * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
17514 2014-08-01 Matthew Fortune <matthew.fortune@imgtec.com>
17516 * config/mips/mips.h (REGISTER_PREFIX): Define macro.
17518 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
17520 PR regression/61510
17521 * cgraphunit.c (analyze_functions): Use get_create rather than get
17522 for decls which are clones of abstract functions.
17524 2014-08-01 Martin Liska <mliska@suse.cz>
17526 * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
17527 * ipa-prop.h (count_formal_params): Global function created from static.
17528 * ipa-prop.c (count_formal_params): Likewise.
17529 * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
17530 profiles for semantically equivalent functions.
17531 * passes.c (do_per_function): If we load body of a function
17532 during WPA, this condition should behave same.
17533 * varpool.c (ctor_for_folding): More tolerant assert for variable
17534 aliases created during WPA.
17536 2014-08-01 Martin Liska <mliska@suse.cz>
17538 * doc/invoke.texi (Options That Control Optimization): Documentation
17539 for -foptimize-strlen introduced. Optimization levels default options
17542 2014-08-01 Jakub Jelinek <jakub@redhat.com>
17544 * opts.c (common_handle_option): Handle -fsanitize=alignment.
17545 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
17546 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
17548 * stor-layout.h (min_align_of_type): New prototype.
17549 * asan.c (pass_sanopt::execute): Don't perform gsi_next if
17550 ubsan_expand* told us not to do it. Remove the extra gsi_end_p
17552 * ubsan.c: Include builtins.h.
17553 (ubsan_expand_bounds_ifn): Change return type to bool,
17554 always return true.
17555 (ubsan_expand_null_ifn): Change return type to bool, change
17556 argument to gimple_stmt_iterator *. Handle both null and alignment
17557 sanitization, take type from ckind argument's type rather than
17559 (instrument_member_call): Removed.
17560 (instrument_mem_ref): Remove t argument, add mem and base arguments.
17561 Handle both null and alignment sanitization, don't say whole
17562 struct access is member access. Build 3 argument IFN_UBSAN_NULL
17563 call instead of 2 argument.
17564 (instrument_null): Adjust instrument_mem_ref caller. Don't
17565 instrument calls here.
17566 (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
17567 like SANITIZE_NULL.
17568 * stor-layout.c (min_align_of_type): New function.
17569 * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
17570 Or it into SANITIZE_UNDEFINED.
17571 * doc/invoke.texi (-fsanitize=alignment): Document.
17573 2014-07-31 Andi Kleen <ak@linux.intel.com>
17575 * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
17577 2014-07-31 Andi Kleen <ak@linux.intel.com>
17579 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
17581 (vn_reference_compute_hash): Dito.
17582 (vn_nary_op_compute_hash): Dito.
17583 (vn_phi_compute_hash): Dito.
17584 * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
17586 2014-07-31 Andi Kleen <ak@linux.intel.com>
17588 * tree-ssa-dom.c (iterative_hash_exprs_commutative):
17589 Rename to inchash:add_expr_commutative. Convert to inchash.
17590 (iterative_hash_hashable_expr): Rename to
17591 inchash:add_hashable_expr. Convert to inchash.
17592 (avail_expr_hash): Dito.
17594 2014-07-31 Andi Kleen <ak@linux.intel.com>
17596 * ipa-devirt.c (polymorphic_call_target_hasher::hash):
17597 Convert to inchash.
17599 2014-07-31 Andi Kleen <ak@linux.intel.com>
17601 * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
17603 2014-07-31 Andi Kleen <ak@linux.intel.com>
17605 * Makefile.in (OBJS): Add rtlhash.o
17606 * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
17607 (loc_checksum): Dito.
17608 (loc_checksum_ordered): Dito.
17609 (hash_loc_operands): Dito.
17611 (hash_loc_list): Dito.
17612 * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
17613 * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
17614 * rtlhash.c: New file.
17615 * rtlhash.h: New file.
17617 2014-07-31 Andi Kleen <ak@linux.intel.com>
17619 * inchash.h (inchash): Change inchash class to namespace.
17620 (class hash): ... Rename from inchash.
17621 (add_object): Move from macro to class template.
17622 * lto-streamer-out.c (hash_tree): Change inchash
17624 * tree.c (build_type_attribute_qual_variant): Dito.
17625 (type_hash_list): Dito.
17626 (attribute_hash_list): Dito.
17627 (iterative_hstate_expr): Rename to inchash::add_expr
17628 (build_range_type_1): Change inchash to inchash::hash
17629 and use hash::add_expr.
17630 (build_array_type_1): Dito.
17631 (build_function_type): Dito
17632 (build_method_type_directly): Dito.
17633 (build_offset_type): Dito.
17634 (build_complex_type): Dito.
17635 (make_vector_type): Dito.
17636 * tree.h (iterative_hash_expr): Dito.
17638 2014-07-31 Chen Gang <gang.chen.5i5j@gmail.com>
17640 * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
17642 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
17644 * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
17645 correct alphabetical position.
17646 (vpaddd_f64): Rewrite using builtins.
17647 (vpaddd_s64): Move to correct alphabetical position.
17650 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
17653 * config/sh/sh.c (sh_legitimate_address_p,
17654 sh_legitimize_reload_address): Handle reg+reg address modes when
17655 ALLOW_INDEXED_ADDRESS is false.
17656 * config/sh/predicates.md (general_movsrc_operand,
17657 general_movdst_operand): Likewise.
17659 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
17661 * config/aarch64/aarch64-builtins.c
17662 (aarch64_gimple_fold_builtin): Don't fold reduction operations for
17665 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
17667 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
17668 the generated mask based on BYTES_BIG_ENDIAN.
17669 (aarch64_simd_check_vect_par_cnst_half): New.
17670 * config/aarch64/aarch64-protos.h
17671 (aarch64_simd_check_vect_par_cnst_half): New.
17672 * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
17673 the check out to aarch64_simd_check_vect_par_cnst_half.
17674 (vect_par_cnst_lo_half): Likewise.
17675 * config/aarch64/aarch64-simd.md
17676 (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
17677 (move_hi_quad_<mode>): Always generate a low mask.
17679 2014-07-30 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
17681 * doc/invoke.texi (AVR Options): Add documentation about
17682 __AVR_DEVICE_NAME__ built-in macro.
17684 2014-07-31 Charles Baylis <charles.baylis@linaro.org>
17687 * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
17688 constraints are satisfied.
17689 (<shift>di3_neon): Likewise.
17691 2014-07-31 Richard Biener <rguenther@suse.de>
17693 PR tree-optimization/61964
17694 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
17695 by structural equality.
17697 2014-07-31 Yury Gribov <y.gribov@samsung.com>
17699 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
17700 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
17701 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
17703 * gcc.c (sanitize_spec_function): Support new option.
17704 (SANITIZER_SPEC): Remove now redundant check.
17705 * opts.c (common_handle_option): Support new option.
17706 (finish_options): Check for incompatibilities.
17707 * toplev.c (process_options): Split userspace-specific checks.
17709 2014-07-31 Richard Biener <rguenther@suse.de>
17711 * lto-streamer.h (struct output_block): Remove global.
17712 (struct data_in): Remove labels, num_named_labels and
17713 num_unnamed_labels.
17714 * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
17715 * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
17717 2014-07-31 Marc Glisse <marc.glisse@inria.fr>
17720 * common.opt (-Wreturn-local-addr): Moved from c.opt.
17721 * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
17722 (isolate_path): New argument to avoid inserting a trap.
17723 (find_implicit_erroneous_behaviour): Handle returning the address
17724 of a local variable.
17725 (find_explicit_erroneous_behaviour): Likewise.
17727 2014-07-31 Bingfeng Mei <bmei@broadcom.com>
17730 * toplev.c (init_random_seed): Move piece of code never called to
17732 (set_random_seed): see above.
17734 2014-07-31 Tom de Vries <tom@codesourcery.com>
17736 * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
17738 2014-07-31 Richard Sandiford <rdsandiford@googlemail.com>
17740 * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
17741 (compute_regs_asm_clobbered): Use extract_asm_operands instead.
17743 2014-07-31 Richard Biener <rguenther@suse.de>
17745 * data-streamer.h (streamer_write_data_stream): Declare here,
17747 * lto-streamer.h (lto_output_data_stream): ... this. Remove.
17748 * lto-cgraph.c (lto_output_node): Adjust.
17749 (lto_output_varpool_node): Likewise.
17750 * data-streamer-out.c (streamer_string_index): Likewise.
17751 (streamer_write_data_stream, lto_append_block): Move from ...
17752 * lto-section-out.c (lto_output_data_stream,
17753 lto_append_block): ... here.
17755 2014-07-30 Mike Stump <mikestump@comcast.net>
17757 * configure.ac: Also check for popen.
17758 * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
17759 * configure: Regenerate.
17760 * config.in: Regenerate.
17762 2014-07-30 Martin Jambor <mjambor@suse.cz>
17764 * tree-sra.c (sra_ipa_modify_assign): Change type of the first
17765 parameter to gimple.
17767 2014-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17769 * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
17770 address as second parameter to __tpf_eh_return routine.
17772 2014-07-30 Jiong Wang <jiong.wang@arm.com>
17774 * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
17777 2014-07-30 Tom Tromey <tromey@redhat.com>
17780 * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
17781 * doc/extend.texi (Type Attributes): Document designated_init
17784 2014-07-30 Roman Gareev <gareevroman@gmail.com>
17786 * graphite-isl-ast-to-gimple.c:
17787 (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
17788 (gcc_expression_from_isl_expression): Pass type to
17789 gcc_expression_from_isl_ast_expr_id.
17791 2014-07-30 Richard Biener <rguenther@suse.de>
17793 * lto-streamer.h (lto_write_data): New function.
17794 * langhooks.c (lhd_append_data): Do not free block.
17795 * lto-section-out.c (lto_write_data): New function writing
17796 raw data to the current section.
17797 (lto_write_stream): Adjust for langhook semantic change.
17798 (lto_destroy_simple_output_block): Write header directly.
17799 * lto-opts.c (lto_write_options): Write options directly.
17800 * lto-streamer-out.c (produce_asm): Write heaeder directly.
17801 (lto_output_toplevel_asms): Likewise.
17802 (copy_function_or_variable): Copy data directly.
17803 (write_global_references): Output index table directly.
17804 (lto_output_decl_state_refs): Likewise.
17805 (write_symbol): Write data directly.
17806 (produce_symtab): Adjust.
17807 (produce_asm_for_decls): Output header and refs directly.
17809 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
17811 * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
17812 to speculative_targets
17813 (get_class_context): Fix handling of contextes without outer type;
17814 avoid matching non-polymorphic types in LTO.
17815 (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
17816 parameter to speculative_targetsp; handle speculation.
17817 (dump_possible_polymorphic_call_targets): Update dumping.
17819 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
17821 * common.opt (Wodr): Enable by default.
17823 2014-07-29 Olivier Hainque <hainque@adacore.com>
17825 * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
17827 2014-07-29 H.J. Lu <hongjiu.lu@intel.com>
17830 * gengtype.c (strtoken): New function.
17831 (create_user_defined_type): Replace strtok with strtoken.
17833 2014-07-29 Nathan Sidwell <nathan@acm.org>
17835 * gcov-io.c (gcov_var): Make hidden.
17836 * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
17837 (gcov_do_dump): Declare.
17838 (gcov_output_files): Call gcov_do_dump, not gcov_exit).
17840 2014-07-29 Martin Jambor <mjambor@suse.cz>
17842 * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
17843 parameter to gimple.
17844 (sra_modify_assign): Likewise.
17846 2014-07-29 Richard Biener <rguenther@suse.de>
17848 PR middle-end/52478
17849 * expr.c (expand_expr_real_2): Revert last change.
17851 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
17853 * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
17854 * cgraph.h (cgraph_indirect_call_info): Add speculative data.
17855 * gimple-fold.c (fold_gimple_assign): Fix check for virtual
17857 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
17858 (contains_type_p): Forward declare.
17859 (polymorphic_call_target_hasher::hash): Hash speculative info.
17860 (polymorphic_call_target_hasher::equal): Compare speculative info.
17861 (get_class_context): Handle speuclation.
17862 (contains_type_p): Update.
17863 (get_polymorphic_call_info_for_decl): Update.
17864 (walk_ssa_copies): Break out from ...
17865 (get_polymorphic_call_info): ... here; set speculative context
17867 * ipa-prop.c (ipa_write_indirect_edge_info,
17868 ipa_read_indirect_edge_info): Stream speculative context.
17869 * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
17870 (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
17871 SPECULATIVE_MAYBE_DERIVED_TYPE).
17872 (possible_polymorphic_call_targets overriders): Update.
17873 (dump_possible_polymorphic_call_targets overriders): Update.
17874 (dump_possible_polymorphic_call_target_p overriders): Update.
17876 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
17878 * gimple-fold.c (fold_gimple_assign): Fix condition guarding
17879 ipa-devirt path; fix thinko there.
17881 2014-07-28 Trevor Saunders <tsaunders@mozilla.com>
17883 * config/i386/i386.c (ix86_return_in_memory): Replace one
17884 ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
17886 2014-07-28 Marek Polacek <polacek@redhat.com>
17888 * doc/invoke.texi (-Wno-odr): Fix @item entry. Tweak wording.
17890 2014-07-28 Peter Bergner <bergner@vnet.ibm.com>
17892 * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
17893 * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
17894 * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
17895 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17896 (USE_LD_AS_NEEDED): Likewise.
17897 (ASM_APP_ON): Likewise.
17898 (ASM_APP_OFF): Likewise.
17899 (TARGET_POSIX_IO): Likewise.
17900 * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
17901 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17902 (USE_LD_AS_NEEDED): Likewise.
17903 (ASM_APP_ON): Likewise.
17904 (ASM_APP_OFF): Likewise.
17905 (TARGET_POSIX_IO): Likewise.
17907 2014-07-28 Eric Botcazou <ebotcazou@adacore.com>
17909 PR middle-end/61734
17910 * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
17911 operators other than the equality operators.
17913 2014-07-28 Richard Biener <rguenther@suse.de>
17915 PR middle-end/52478
17916 * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
17917 sure to register SImode ones, not only >= word_mode ones.
17918 * expr.c (expand_expr_real_2): When expanding -ftrapv
17919 binops do not use OPTAB_LIB_WIDEN.
17921 2014-07-28 Richard Sandiford <rdsandiford@googlemail.com>
17923 PR middle-end/61919
17924 * tree-outof-ssa.c (insert_partition_copy_on_edge)
17925 (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
17926 (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
17927 inserting them in the insn stream.
17929 2014-07-28 Marek Polacek <polacek@redhat.com>
17931 PR middle-end/61913
17932 * common.opt (Wodr): Add Var.
17934 2014-07-28 Richard Biener <rguenther@suse.de>
17936 PR tree-optimization/61921
17937 * tree-ssa-structalias.c (create_variable_info_for_1): Check
17938 if there is a varpool node before dereferencing it.
17940 2014-07-28 Roman Gareev <gareevroman@gmail.com>
17942 * graphite-sese-to-poly.c:
17943 (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
17944 id of the pbb), which contains pointer to the pbb1.
17946 * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
17948 2014-07-28 Roman Gareev <gareevroman@gmail.com>
17950 * graphite-isl-ast-to-gimple.c:
17951 (graphite_create_new_guard): New function.
17952 (translate_isl_ast_node_if): New function.
17953 (translate_isl_ast): Add calling of translate_isl_ast_node_if.
17955 * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
17957 2014-07-27 Anthony Green <green@moxielogic.com>
17959 * config.gcc: Add moxie-*-moxiebox* configuration.
17960 * config/moxie/moxiebox.h: New file.
17962 2014-07-26 Andrew Pinski <apinski@cavium.com>
17964 * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
17965 from the read only register.
17967 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
17969 * ira-costs.c (find_costs_and_classes): For -O0, use the best class
17970 as the allocation class if it isn't likely to be spilled.
17972 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
17974 * rtl.h (tls_referenced_p): Declare.
17975 * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
17976 * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
17977 (mips_cannot_force_const_mem): Use tls_referenced_p.
17978 * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
17979 * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
17980 instead of pa_tls_referenced_p.
17981 * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
17982 (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
17983 (pa_legitimate_constant_p): Likewise.
17984 (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
17985 * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
17986 (rs6000_cannot_force_const_mem, rs6000_emit_move)
17987 (rs6000_address_for_altivec): Use tls_referenced_p instead of
17988 rs6000_tls_referenced_p.
17989 (rs6000_tls_symbol_ref_1): Delete.
17991 2014-07-26 Marc Glisse <marc.glisse@inria.fr>
17994 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
17995 Optimize inverse of a VEC_CONCAT.
17997 2014-07-25 Xinliang David Li <davidxl@google.com>
17999 * params.def: New parameter.
18000 * coverage.c (get_coverage_counts): Check new flag.
18001 (coverage_compute_profile_id): Check new flag.
18002 (coverage_begin_function): Check new flag.
18003 (coverage_end_function): Check new flag.
18004 * value-prof.c (coverage_node_map_initialized_p): New function.
18005 (init_node_map): Populate map with all functions.
18006 * doc/invoke.texi: Document new parameter.
18008 2014-07-25 Jan Hubicka <hubicka@ucw.cz>
18009 Richard Biener <rguenther@suse.de>
18011 * lto-streamer-out.c (struct sccs): Turn to ...
18012 (class DFS): ... this one; refactor the DFS walk so it can
18013 be re-done on per-SCC basis.
18014 (DFS::DFS): New constructor.
18015 (DFS::~DFS): New destructor.
18016 (hash_tree): Add new MAP argument holding in-SCC hash values;
18017 remove POINTER_TYPE hashing hack.
18018 (scc_entry_compare): Rename to ...
18019 (DFS::scc_entry_compare): ... this one.
18020 (hash_scc): Rename to ...
18021 (DFS::hash_scc): ... this one; pass output_block instead
18022 of streamer_cache; work harder to get unique and stable SCC
18024 (DFS_write_tree): Rename to ...
18025 (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
18026 (lto_output_tree): Update.
18028 2014-07-25 Andi Kleen <ak@linux.intel.com>
18030 * lto-streamer-out.c (hash_tree): Convert to inchash.
18032 2014-07-25 Andi Kleen <ak@linux.intel.com>
18034 * tree.c (build_type_attribute_qual_variant): Use inchash.
18035 (type_hash_list): Dito.
18036 (attribute_hash_list): Dito
18037 (iterative_hstate_expr): Dito.
18038 (iterative_hash_expr): Dito.
18039 (build_range_type_1): Dito.
18040 (build_array_type_1): Dito.
18041 (build_function_type): Dito.
18042 (build_method_type_directly): Dito.
18043 (build_offset_type): Dito.
18044 (build_complex_type): Dito.
18045 (make_vector_type): Dito.
18046 * tree.h (iterative_hash_expr): Add compat wrapper.
18047 (iterative_hstate_expr): Add.
18049 2014-07-25 Andi Kleen <ak@linux.intel.com>
18051 * Makefile.in (OBJS): Add inchash.o.
18052 (PLUGIN_HEADERS): Add inchash.h.
18053 * ipa-devirt.c: Include inchash.h.
18054 * lto-streamer-out.c: Dito.
18055 * tree-ssa-dom.c: Dito.
18056 * tree-ssa-pre.c: Dito.
18057 * tree-ssa-sccvn.c: Dito.
18058 * tree-ssa-tail-merge.c: Dito.
18060 * tree.c (iterative_hash_hashval_t): Move to ...
18061 (iterative_hash_host_wide_int): Move to ...
18062 * inchash.c: Here. New file.
18063 * tree.h (iterative_hash_hashval_t): Move to ...
18064 (iterative_hash_host_wide_int): Move to ...
18065 * inchash.h: Here. New file.
18067 2014-07-25 Richard Biener <rguenther@suse.de>
18069 PR middle-end/61762
18070 PR middle-end/61894
18071 * fold-const.c (native_encode_int): Add and handle offset
18072 parameter to do partial encodings of expr.
18073 (native_encode_fixed): Likewise.
18074 (native_encode_real): Likewise.
18075 (native_encode_complex): Likewise.
18076 (native_encode_vector): Likewise.
18077 (native_encode_string): Likewise.
18078 (native_encode_expr): Likewise.
18079 * fold-const.c (native_encode_expr): Add offset parameter
18081 * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
18082 (fold_ctor_reference): Handle all reads from tcc_constant
18085 2014-07-25 Richard Biener <rguenther@suse.de>
18087 * tree-inline.c (estimate_move_cost): Mark speed_p argument
18088 as possibly unused.
18090 2014-07-23 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
18092 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
18094 2014-07-24 Kyle McMartin <kyle@redhat.com>
18096 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
18098 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18100 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
18102 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
18104 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
18105 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
18106 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
18108 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18110 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
18111 and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
18112 aggregate types. Instead, *all* aggregate types, except for single-
18113 element or homogeneous float/vector aggregates, are quadword-aligned
18114 if required by their type alignment. Issue -Wpsabi note when a type
18115 is now treated differently than before.
18117 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18119 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
18120 does not fit fully into floating-point registers, and there is still
18121 space in the register parameter area, use GPRs to pass those parts
18122 of the argument. Issue -Wpsabi note if any parameter is now treated
18123 differently than before.
18124 (rs6000_arg_partial_bytes): Update.
18126 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
18128 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
18130 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
18132 * rtl.h (target_rtl): Remove lang_dependent_initialized.
18133 * toplev.c (initialize_rtl): Don't use it. Move previously
18134 "language-dependent" calls to...
18135 (backend_init): ...here.
18136 (lang_dependent_init_target): Don't set lang_dependent_initialized.
18137 Assert that RTL initialization hasn't happend yet.
18139 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
18141 PR rtl-optimization/61629
18142 * reginfo.c (reinit_regs): Only call ira_init and recog_init if
18143 they have already been initialized.
18145 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
18147 PR middle-end/61268
18148 * function.c (assign_parm_setup_reg): Prevent invalid sharing of
18149 DECL_INCOMING_RTL and entry_parm.
18150 (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
18151 * calls.c (load_register_parameters): Likewise argument values.
18152 (emit_library_call_value_1, store_one_arg): Likewise argument
18154 * config/i386/i386.c (assign_386_stack_local): Likewise the local
18156 * explow.c (validize_mem): Modify the argument in-place.
18158 2014-07-24 Jiong Wang <jiong.wang@arm.com>
18160 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
18161 (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
18163 2014-07-24 Jiong Wang <jiong.wang@arm.com>
18165 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
18166 (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
18168 2014-07-24 Jiong Wang <jiong.wang@arm.com>
18170 * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
18171 (aarch64_save_callee_saves): New parameter "skip_wb".
18172 (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
18174 2014-07-24 Jiong Wang <jiong.wang@arm.com>
18176 * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
18178 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
18180 2014-07-24 Roman Gareev <gareevroman@gmail.com>
18182 * graphite-isl-ast-to-gimple.c:
18183 (graphite_create_new_loop): Add calling of isl_id_free to properly
18184 decrement reference counts.
18186 * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
18188 2014-07-24 Martin Liska <mliska@suse.cz>
18189 * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
18191 * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
18192 (rs6000_code_end): Likewise.
18194 2014-07-24 Martin Liska <mliska@suse.cz>
18196 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
18197 symtab_node funtion used.
18198 (rs6000_xcoff_declare_object_name): Likewise.
18200 2014-07-24 Martin Liska <mliska@suse.cz>
18202 * cgraphunit.c (compile): Correct function used.
18204 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
18206 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
18209 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
18212 * varasm.c (bss_initializer_p): Handle offlined ctors.
18213 (align_variable, get_variable_align): Likewise.
18214 (make_decl_one_only): Likewise.
18215 (default_binds_local_p_1): Likewise.
18216 (decl_binds_to_current_def_p): Likewise.
18217 (get_variable_section): Get constructor if it is offlined.
18218 (assemble_variable_contents): Sanity check that the caller
18219 streamed in the ctor in LTO.
18221 2014-07-24 Roman Gareev <gareevroman@gmail.com>
18223 * graphite-isl-ast-to-gimple.c:
18224 (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
18225 (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
18226 isl_ast_op_pdiv_r to the different case.
18228 * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
18230 2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18232 PR middle-end/61876
18233 * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
18234 when flag_errno_math is on.
18236 2014-07-24 Martin Liska <mliska@suse.cz>
18238 * cgraph.h (varpool_node):
18239 (availability get_availability (void)):
18240 created from cgraph_variable_initializer_availability
18241 (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
18242 created from: cgraph_variable_initializer_availability
18243 (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
18244 (void finalize_named_section_flags (void)):
18245 created from varpool_finalize_named_section_flags
18246 (bool assemble_decl (void)): created from varpool_assemble_decl
18247 (void analyze (void)): created from varpool_analyze_node
18248 (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
18249 void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
18250 (void remove_initializer (void)): created from varpool_remove_initializer
18251 (tree get_constructor (void)): created from varpool_get_constructor
18252 (bool externally_visible_p (void)): created from varpool_externally_visible_p
18253 (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
18254 (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
18255 (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
18256 (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
18257 (static void finalize_decl (tree decl)): created from varpool_finalize_decl
18258 (static bool output_variables (void)): created from varpool_output_variables
18259 (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
18260 created from varpool_extra_name_alias
18261 (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
18262 (static void dump_varpool (FILE *f)): created from dump_varpool
18263 (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
18264 (static varpool_node *create_empty (void)): created from varpool_create_empty_node
18265 (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
18266 (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
18267 (void assemble_aliases (void)): created from assemble_aliases
18269 2014-07-24 Martin Liska <mliska@suse.cz>
18271 * cgraph.h (symtab_node):
18272 (void register_symbol (void)): created from symtab_register_node
18273 (void remove (void)): created from symtab_remove_node
18274 (void dump (FILE *f)): created from dump_symtab_node
18275 (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
18276 (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
18277 (struct ipa_ref *add_reference (symtab_node *referred_node,
18278 enum ipa_ref_use use_type)): created from add_reference
18279 (struct ipa_ref *add_reference (symtab_node *referred_node,
18280 enum ipa_ref_use use_type, gimple stmt)): created from add_reference
18281 (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
18282 gimple stmt)): created from maybe_add_reference
18283 (bool semantically_equivalent_p (symtab_node *target)): created from
18284 symtab_semantically_equivalent_p
18285 (void remove_from_same_comdat_group (void)): created from
18286 remove_from_same_comdat_group
18287 (void add_to_same_comdat_group (symtab_node *old_node)): created from
18288 symtab_add_to_same_comdat_group
18289 (void dissolve_same_comdat_group_list (void)): created from
18290 symtab_dissolve_same_comdat_group_list
18291 (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
18292 (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
18293 created from symtab_alias_ultimate_target
18294 (inline symtab_node *next_defined_symbol (void)): created from
18295 symtab_next_defined_symbol
18296 (bool resolve_alias (symtab_node *target)): created from
18297 symtab_resolve_alias
18298 (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
18299 void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
18300 (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
18301 (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
18302 (void set_section (const char *section)): created from set_section_1
18303 (enum availability get_availability (void)): created from symtab_node_availability
18304 (void make_decl_local (void)): created from symtab_make_decl_local
18305 (bool real_symbol_p (void)): created from symtab_read_node
18306 (can_be_discarded_p (void)): created from symtab_can_be_discarded
18307 (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
18308 (inline bool in_same_comdat_group_p (symtab_node *target)): created from
18309 symtab_in_same_comdat_p;
18310 (bool address_taken_from_non_vtable_p (void)): created from
18311 address_taken_from_non_vtable_p
18312 (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
18313 (static void dump_table (FILE *)): created from dump_symtab
18314 (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
18315 (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
18316 (static bool used_from_object_file_p_worker (symtab_node *node)): created from
18317 symtab_used_from_object_file_p
18318 (void dump_base (FILE *)): created from dump_symtab_base
18319 (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
18320 (void unregister (void)): created from symtab_unregister_node
18321 (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
18322 (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
18323 (static bool noninterposable_alias (symtab_node *node, void *data)): created from
18324 symtab_nonoverwritable_alias_1
18325 * cgraph.h (cgraph_node):
18326 (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
18327 created from cgraph_remove_node_and_inline_clones
18328 (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
18329 (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
18330 bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
18331 (cgraph_node *function_symbol (enum availability *avail = NULL)):
18332 created from cgraph_function_node
18333 (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
18334 vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
18335 struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
18336 created from cgraph_create_clone
18337 (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
18338 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
18339 created from cgraph_create_virtual_clone
18340 (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
18341 (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
18342 bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
18343 (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
18344 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
18345 bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
18346 created from cgraph_function_version_info
18347 (struct cgraph_function_version_info *insert_new_function_version (void)):
18348 created from insert_new_cgraph_node_version
18349 (struct cgraph_function_version_info *function_version (void)): created from
18350 get_cgraph_node_version
18351 (void analyze (void)): created from analyze_function
18352 (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
18353 HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
18354 tree real_alias) cgraph_add_thunk
18355 (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
18356 (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
18357 created from cgraph_function_or_thunk_node
18358 (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
18359 created from expand_thunk
18360 (void reset (void)): created from cgraph_reset_node
18361 (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
18362 (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
18363 (void remove (void)): created from cgraph_remove_node
18364 (void dump (FILE *f)): created from dump_cgraph_node
18365 (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
18366 (bool get_body (void)): created from cgraph_get_body
18367 (void release_body (void)): created from cgraph_release_function_body
18368 (void unnest (void)): created from cgraph_unnest_node
18369 (void make_local (void)): created from cgraph_make_node_local
18370 (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
18371 (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
18372 gcov_type count, int freq)): created from cgraph_create_edge
18373 (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
18374 gcov_type count, int freq)): created from cgraph_create_indirect_edge
18375 (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
18376 gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
18377 created from cgraph_create_edge_including_clones
18378 (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
18379 (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
18380 (void remove_callers (void)): created from cgraph_node_remove_callers
18381 (void remove_callees (void)): created from cgraph_node_remove_callees
18382 (enum availability get_availability (void)): created from cgraph_function_body_availability
18383 (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
18384 (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
18385 (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
18386 (void call_duplication_hooks (cgraph_node *node2)): created from
18387 cgraph_call_node_duplication_hooks
18388 (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
18389 void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
18390 (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
18391 void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
18392 (void call_function_insertion_hooks (void)):
18393 created from cgraph_call_function_insertion_hooks
18394 (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
18395 (bool local_p (void)): created from cgraph_local_node
18396 (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
18397 (bool cannot_return_p (void)): created from cgraph_node_cannot_return
18398 (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
18399 (inline bool only_called_directly_or_aliased_p (void)):
18400 created from cgraph_only_called_directly_or_aliased_p
18401 (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
18402 created from cgraph_will_be_removed_from_program_if_no_direct_calls
18403 (bool can_remove_if_no_direct_calls_and_refs_p (void)):
18404 created from cgraph_can_remove_if_no_direct_calls_and_refs_p
18405 (bool can_remove_if_no_direct_calls_p (void)):
18406 created from cgraph_can_remove_if_no_direct_calls_p
18407 (inline bool has_gimple_body_p (void)):
18408 created from cgraph_function_with_gimple_body_p
18409 (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
18410 (static void dump_cgraph (FILE *f)): created from dump_cgraph
18411 (static inline void debug_cgraph (void)): created from debug_cgraph
18412 (static void record_function_versions (tree decl1, tree decl2)):
18413 created from record_function_versions
18414 (static void delete_function_version (tree decl)):
18415 created from delete_function_version
18416 (static void add_new_function (tree fndecl, bool lowered)):
18417 created from cgraph_add_new_function
18418 (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
18419 (static cgraph_node * create (tree decl)): created from cgraph_create_node
18420 (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
18421 (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
18422 (static cgraph_node *get_for_asmname (tree asmname)):
18423 created from cgraph_node_for_asm
18424 (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
18425 created from cgraph_same_body_alias
18426 (static bool used_from_object_file_p_worker (cgraph_node *node,
18427 void *): new function
18428 (static bool non_local_p (cgraph_node *node, void *)):
18429 created from cgraph_non_local_node_p_1
18430 (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
18431 created from verify_cgraph
18432 (static bool make_local (cgraph_node *node, void *)):
18433 created from cgraph_make_node_local
18434 (static cgraph_node *create_alias (tree alias, tree target)):
18435 created from cgraph_create_function_alias
18436 (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
18437 gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
18438 created from cgraph_create_edge_1
18439 * cgraph.h (varpool_node):
18440 (void remove (void)): created from varpool_remove_node
18441 (void dump (FILE *f)): created from dump_varpool_node
18443 2014-07-24 Richard Biener <rguenther@suse.de>
18446 * tree-ssa-structalias.c (create_variable_info_for_1):
18447 Use varpool_get_constructor.
18448 (create_variable_info_for): Likewise.
18450 2014-07-24 Jiong Wang <jiong.wang@arm.com>
18452 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
18453 subtract outgoing area size when restoring stack_pointer_rtx.
18455 2014-07-24 Nick Clifton <nickc@redhat.com>
18457 * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
18458 that operations are taking place in parallel.
18459 * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
18461 2014-07-24 Thomas Schwinge <thomas@codesourcery.com>
18463 * omp-low.c (extract_omp_for_data): Add missing break statement.
18465 2014-07-24 Richard Biener <rguenther@suse.de>
18467 * tree-inline.h (estimate_move_cost): Add speed_p parameter.
18468 * tree-inline.c (estimate_move_cost): Add speed_p parameter
18469 and adjust MOVE_RATIO query accordingly.
18470 (estimate_num_insns): Adjust callers.
18471 * ipa-prop.c (ipa_populate_param_decls): Likewise.
18472 * ipa-cp.c (gather_context_independent_values,
18473 estimate_local_effects): Likewise.
18474 * ipa-split.c (consider_split): Likewise.
18476 2014-07-24 Trevor Saunders <tsaunders@mozilla.com>
18478 * config/i386/driver-i386.c: Remove names of unused arguments and
18479 unnecessary unused attributes.
18480 * config/i386/host-mingw32.c: Likewise.
18481 * config/i386/i386.c: Likewise.
18482 * config/i386/winnt-stubs.c: Likewise.
18483 * config/i386/winnt.c: Likewise.
18485 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18487 * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
18488 (aarch64_gen_loadwb_pair): New helper function.
18489 (aarch64_expand_epilogue): Simplify code using new helper functions.
18490 * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
18492 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18494 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
18495 (aarch64_gen_storewb_pair): New helper function.
18496 (aarch64_expand_prologue): Simplify code using new helper functions.
18497 * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
18499 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18501 * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
18502 Rename to aarch64_save_callee_saves, remove restore code.
18503 (aarch64_restore_callee_saves): New function.
18505 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18507 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
18508 (aarch64_save_callee_saves): New function to handle reg save
18509 for both core and vectore regs.
18511 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18513 * config/aarch64/aarch64.c (aarch64_gen_load_pair)
18514 (aarch64_gen_store_pair): New helper function.
18515 (aarch64_save_or_restore_callee_save_registers)
18516 (aarch64_save_or_restore_fprs): Use new helper functions.
18518 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18520 * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
18521 (aarch64_save_or_restore_callee_save_registers)
18522 (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
18524 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18526 * config/aarch64/aarch64.c
18527 (aarch64_save_or_restore_callee_save_registers)
18528 (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
18530 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18532 * config/aarch64/aarch64.c
18533 (aarch64_save_or_restore_callee_save_registers)
18534 (aarch64_save_or_restore_fprs): Remove 'increment'.
18536 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18538 * config/aarch64/aarch64.c
18539 (aarch64_save_or_restore_callee_save_registers)
18540 (aarch64_save_or_restore_fprs): Use register offset in
18541 cfun->machine->frame.reg_offset.
18543 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18545 * config/aarch64/aarch64.c
18546 (aarch64_save_or_restore_callee_save_registers)
18547 (aarch64_save_or_restore_fprs): Remove base_rtx.
18549 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18551 * config/aarch64/aarch64.c
18552 (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
18553 to 'start_offset'. Remove local variable 'start_offset'.
18555 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18557 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
18558 type to HOST_WIDE_INT.
18560 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18562 * config/aarch64/aarch64.c (aarch64_expand_prologue)
18563 (aarch64_save_or_restore_fprs)
18564 (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
18566 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
18568 * config/arm/t-rtems-eabi: Add
18569 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
18570 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
18571 mbig-endian/mthumb/march=armv7-r, and
18572 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
18575 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
18576 Chris Johns <chrisj@rtems.org>
18577 Joel Sherrill <joel.sherrill@oarcorp.com>
18579 * config.gcc: Add nios2-*-rtems*.
18580 * config/nios2/rtems.h: New file.
18581 * gcc/config/nios2/t-rtems: New file.
18583 2014-07-23 Segher Boessenkool <segher@kernel.crashing.org>
18586 * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
18587 constant numbers, not general constants.
18588 (rs6000_expand_vector_init): Ditto.
18590 2014-07-23 Nathan Sidwell <nathan@acm.org>
18592 * gcov-tool.c (gcov_list): Declare here.
18593 (set_gcov_list): Remove.
18594 (gcov_output_files): Set gcov_list directly.
18596 2014-07-23 Host Schirmeier <horst@schirmeier.com>
18598 * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
18600 2014-07-23 Jiong Wang <jiong.wang@arm.com>
18602 * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
18603 callee-saved registers are available for padding purpose
18604 and r3 is not mandatory, then prefer use those callee-saved
18607 2014-07-23 Richard Biener <rguenther@suse.de>
18609 * params.def (PARAM_MAX_COMBINE_INSNS): New.
18610 * combine.c: Include statistics.h and params.h.
18611 (combine_instructions): Guard three and four insn combines
18612 with max-combine-insns value. Record statistics for combines
18614 * doc/invoke.texi (max-combine-insns): Document new param.
18616 2014-07-23 Roman Gareev <gareevroman@gmail.com>
18618 * graphite-isl-ast-to-gimple.c:
18619 (translate_isl_ast_node_block): New function.
18620 (translate_isl_ast): Add calling of translate_isl_ast_node_block.
18622 * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
18623 * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
18625 2014-07-23 Roman Gareev <gareevroman@gmail.com>
18627 * graphite-isl-ast-to-gimple.c:
18628 (get_max_schedule_dimensions): New function.
18629 (extend_schedule): Likewise.
18630 (generate_isl_schedule): Add calling of extend_schedule and
18631 get_max_schedule_dimensions.
18633 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18635 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
18636 (case UNSPEC): Handle UNSPEC_RBIT.
18638 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18640 * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
18641 (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
18643 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18645 * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
18647 2014-07-22 Roman Gareev <gareevroman@gmail.com>
18649 * graphite-isl-ast-to-gimple.c:
18650 Add inclusion of gimple-ssa.h, tree-into-ssa.h.
18651 (ivs_params_clear):
18652 (build_iv_mapping): New function.
18653 (translate_isl_ast_node_user): Likewise.
18654 (translate_isl_ast): Add calling of translate_isl_ast_node_user.
18656 * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
18657 * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
18658 * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
18660 2014-07-21 Bin Cheng <bin.cheng@arm.com>
18663 * config/arm/arm.md (setmem): New pattern.
18664 * config/arm/arm-protos.h (struct tune_params): New fields.
18665 (arm_gen_setmem): New prototype.
18666 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
18667 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
18668 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
18669 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
18670 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
18671 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
18672 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
18673 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
18674 (arm_const_inline_cost): New function.
18675 (arm_block_set_max_insns): New function.
18676 (arm_block_set_non_vect_profit_p): New function.
18677 (arm_block_set_vect_profit_p): New function.
18678 (arm_block_set_unaligned_vect): New function.
18679 (arm_block_set_aligned_vect): New function.
18680 (arm_block_set_unaligned_non_vect): New function.
18681 (arm_block_set_aligned_non_vect): New function.
18682 (arm_block_set_vect, arm_gen_setmem): New functions.
18684 2014-07-21 Bin Cheng <bin.cheng@arm.com>
18686 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
18688 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
18691 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
18692 out of #ifdef __OPTIMIZE__.
18694 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
18696 * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
18697 different trapping status if -fnon-call-exceptions is enabled.
18699 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
18701 * expr.c (store_field): Handle VOIDmode for calls that return values
18702 in multiple locations.
18704 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18706 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
18707 (altivec_vsldoi_<mode>): Likewise.
18709 2014-07-20 Roman Gareev <gareevroman@gmail.com>
18711 * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
18712 to the number of characters in the line.
18714 2014-07-20 Roman Gareev <gareevroman@gmail.com>
18716 * graphite-isl-ast-to-gimple.c: Add using of
18717 build_nonstandard_integer_type instead of int128_integer_type_node.
18719 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
18721 * toplev.c (output_stack_usage): Adjust the location of the warning.
18723 2014-07-19 Daniel Cederman <cederman@gaisler.com>
18725 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
18726 (*membar_storeload): Disable for LEON3.
18728 2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
18730 PR rtl-optimization/61461
18731 * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
18733 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
18736 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
18737 Fix instruction constraint.
18738 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
18740 2014-07-18 Jonathan Wakely <jwakely@redhat.com>
18742 * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
18744 2014-07-18 Chung-Ju Wu <jasonwucj@gmail.com>
18746 * config/nds32/nds32.c (nds32_can_eliminate): Follow the
18747 GNU coding standards.
18748 (nds32_register_move_cost): Likewise.
18749 (nds32_memory_move_cost): Likewise.
18750 (nds32_address_cost): Likewise.
18752 2014-07-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
18754 * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
18756 2014-07-17 John David Anglin <danglin@gcc.gnu.org>
18758 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
18759 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
18760 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
18761 (HAVE_sync_compare_and_swapqi): Define.
18762 (HAVE_sync_compare_and_swaphi): Likewise.
18763 (HAVE_sync_compare_and_swapsi): Likewise.
18765 2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
18767 * config/mips/p5600.md: Add missing cpu tests.
18769 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18771 * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
18772 (vmla_f64): Likewise.
18773 (vfms_f64): Likewise.
18774 (vmls_f64): Likewise.
18776 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18778 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
18779 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
18781 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18783 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
18784 (vmlal_high_lane_s32): Likewise.
18785 (vmlal_high_lane_u16): Likewise.
18786 (vmlal_high_lane_u32): Likewise.
18787 (vmlsl_high_lane_s16): Likewise.
18788 (vmlsl_high_lane_s32): Likewise.
18789 (vmlsl_high_lane_u16): Likewise.
18790 (vmlsl_high_lane_u32): Likewise.
18792 2014-07-17 Terry Guo <terry.guo@arm.com>
18794 * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
18795 (alus_reg): Renamed to alus_sreg.
18796 * config/arm/arm-fixed.md: Change type of non-dsp instructions
18797 from alu_reg to alu_sreg. Change type of dsp instructions from
18798 alu_reg to alu_dsp_reg.
18799 * config/arm/thumb1.md: Likewise.
18800 * config/arm/thumb2.md: Likewise.
18801 * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
18802 * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
18803 with alu_sreg and alus_sreg.
18804 * config/arm/arm1026ejs.md (alu_op): Likewise.
18805 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
18806 * config/arm/arm926ejs.md (9_alu_op): Likewise.
18807 * config/arm/fa526.md (526_alu_op): Likewise.
18808 * config/arm/fa606te.md (606te_alu_op): Likewise.
18809 * config/arm/fa626te.md (626te_alu_op): Likewise.
18810 * config/arm/fa726te.md (726te_alu_op): Likewise.
18811 * config/arm/fmp626.md (mp626_alu_op): Likewise.
18812 * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
18813 alu_sreg, alu_dsp_reg and alus_sreg.
18814 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
18815 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18816 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18817 * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
18818 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
18819 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18820 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18821 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18822 * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
18823 * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
18824 subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
18825 *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
18826 (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
18827 sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
18828 subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
18829 alus_reg to alus_sreg.
18831 2014-07-17 Andreas Schwab <schwab@linux-m68k.org>
18833 * real.c (encode_ieee_extended_motorola): Clear integer bit in the
18836 2014-07-17 Richard Biener <rguenther@suse.de>
18838 PR rtl-optimization/61801
18839 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
18840 don't set reg_pending_barrier if it appears in a debug-insn.
18842 2014-07-16 DJ Delorie <dj@redhat.com>
18844 * config/rx/rx.c (rx_option_override): Fix alignment values.
18845 (rx_align_for_label): Likewise.
18847 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
18850 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
18851 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18852 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
18854 (cris_print_index, cris_print_operand, cris_constant_index_p)
18855 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
18856 (cris_address_cost): Ditto last CONSTANT_P.
18857 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
18858 callers changed. Yield cris_offsettable_symbol for non-PIC
18859 constant symbolic expressions including labels. Yield cris_unspec
18861 (cris_expand_pic_call_address): New parameter MARKERP. Set its
18862 target to pic_offset_table_rtx for calls that will likely go
18863 through PLT, const0_rtx when they can't. All callers changed.
18864 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
18865 symbolic expressions to be PICified. Remove second, redundant,
18866 assert on can_create_pseudo_p returning non-zero. Use
18867 replace_equiv_address_nv, not replace_equiv_address, for final
18869 * config/cris/cris.md ("movsi"): Move variable t to pattern
18870 toplevel. Adjust assert for new cris_symbol_type member. Use
18871 CONSTANT_P instead of CONSTANT_ADDRESS_P.
18872 ("*movsi_internal") <case 9>: Make check for valid unspec operands
18874 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
18875 ("call", "call_value"): Use second incoming operand as a marker
18876 for pic-offset-table-register being used.
18877 ("*expanded_call_non_v32", "*expanded_call_v32")
18878 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
18879 second incoming operand to CALL, match cris_call_type_marker.
18880 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
18881 ("*expanded_call_side"): Ditto. Fix typo in comment.
18882 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
18884 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
18885 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
18886 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
18887 users changed. Add members cris_offsettable_symbol and cris_unspec.
18888 (cris_symbol_type): Rename from cris_pic_symbol_type.
18889 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
18891 * config/cris/cris-protos.h (cris_symbol_type_of,
18892 cris_expand_pic_call_address): Adjust prototypes.
18893 (cris_legitimate_constant_p): New prototype.
18895 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
18896 an existing tmake_file. Don't add t-slibgcc and t-linux.
18898 2014-07-17 Jason Merrill <jason@redhat.com>
18901 * symtab.c (symtab_remove_from_same_comdat_group): Also
18902 set_comdat_group to NULL_TREE.
18903 (verify_symtab): Fix diagnostic.
18905 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
18908 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
18910 2014-07-16 Dodji Seketeli <dodji@redhat.com>
18912 Support location tracking for built-in macro tokens
18913 * input.h (is_location_from_builtin_token): New function declaration.
18914 * input.c (is_location_from_builtin_token): New function definition.
18915 * toplev.c (general_init): Tell libcpp what the pre-defined
18916 spelling location for built-in tokens is.
18918 2014-07-16 Jakub Jelinek <jakub@redhat.com>
18920 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
18921 on the FUNCTION_DECL.
18923 2014-07-16 Richard Biener <rguenther@suse.de>
18926 * doc/extend.texi (always_inline): Clarify.
18928 2014-07-15 Eric Christopher <echristo@gmail.com>
18930 * doc/invoke.texi (Link Options): Document -z option.
18932 2014-07-15 Uros Bizjak <ubizjak@gmail.com>
18934 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
18935 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18937 2014-07-15 Jan Hubicka <hubicka@ucw.cz>
18939 * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
18941 2014-07-15 Bernd Schmidt <bernds@codesourcery.com>
18943 * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
18944 varpool_assemble_decl.
18945 * varpool.c (varpool_assemble_decl): Assert that node->definition is
18948 2014-07-15 Michael Matz <matz@suse.de>
18950 PR rtl-optimization/61772
18951 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
18953 2014-07-15 Richard Biener <rguenther@suse.de>
18955 * opts.c (default_options_table): Disable bit-ccp at -Og.
18957 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
18959 * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
18961 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
18963 * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
18964 NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
18965 call langhook for unknown declaration.
18966 (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
18967 * tree.h (DECL_ARGUMENTS): Update.
18968 * print-tree.c (print_node): Update.
18969 * tree-core.h (tree_decl_non_common): Remove arguments.
18970 (tree_function_decl): Add arguments.
18972 2014-07-14 Richard Earnshaw <rearnsha@arm.com>
18974 * aarch64.md (add_losym_<mode>): Set type to alu_imm.
18976 2014-07-14 Richard Biener <rguenther@suse.de>
18978 PR tree-optimization/61779
18979 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
18980 simplifying a condition.
18982 2014-07-14 Richard Biener <rguenther@suse.de>
18984 * builtins.c (c_strlen): Make only_value == 2 really only
18985 affect warning generation.
18987 2014-07-14 Richard Biener <rguenther@suse.de>
18989 PR tree-optimization/61757
18990 PR tree-optimization/61783
18991 PR tree-optimization/61787
18992 * tree-ssa-dom.c (record_equality): Revert canonicalization
18993 change and add comment.
18994 (propagate_rhs_into_lhs): Revert previous fix, removing
18995 loop depth restriction again.
18997 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18999 * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
19000 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
19001 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
19002 * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
19003 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
19004 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
19005 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
19007 2014-07-14 Richard Biener <rguenther@suse.de>
19009 * cgraph.h (decl_in_symtab_p): Make inline.
19011 2014-07-14 Jakub Jelinek <jakub@redhat.com>
19013 PR middle-end/61294
19014 * doc/invoke.texi (-Wmemset-transposed-args): Document.
19017 * config/i386/i386.c (classify_argument): Don't merge classes above
19020 2014-07-13 Jan Hubicka <hubicka@ucw.cz>
19022 * cgraph.h (symtab_node): Add nonzero_address.
19023 (decl_in_symtab_p): Break out from ...
19024 (symtab_get_node): ... here.
19025 * fold-const.c: Include cgraph.h
19026 (tree_single_nonzero_warnv_p): Use symtab to determine
19027 if symbol is non-zero.
19028 * symtab.c (symtab_node::nonzero_address): New method.
19030 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
19032 * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
19033 forgotten in previous commit.
19035 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
19037 * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
19039 * ipa-devirt.c: Include stor-layout.h and intl.h
19040 (odr_subtypes_equivalent_p): New function.
19041 (warn_odr): New function.
19042 (warn_type_mismatch): New function.
19043 (odr_types_equivalent_p): New function.
19044 (add_type_duplicate): Use it.
19045 * common.opt (Wodr): New flag.
19046 * doc/invoke.texi (Wodr): Document new warning.
19048 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
19050 * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
19051 (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
19052 * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
19053 (varpool_get_constructor): Push CTORS_IN timevar.
19054 * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
19056 2014-07-12 Uros Bizjak <ubizjak@gmail.com>
19058 * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
19059 Remove VOID_FTYPE_PUSHORT.
19060 * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
19061 Change code to USHORT_FTYPE_VOID.
19062 (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
19063 (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
19064 (ix86_atomic_assign_expand_fenv): Update for
19065 __builtin_ia32_fnstsw changes.
19066 * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
19067 (fnstsw): Change operand 0 to nonimmediate operand.
19069 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
19071 * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
19072 (varpool_get_constructor): New function.
19073 (varpool_ctor_useable_for_folding_p): Break out from ...
19074 (ctor_for_folding): ... here; use varpool_get_constructor.
19075 (varpool_assemble_decl): Likewise.
19076 * lto-streamer.h (struct output_block): Turn cgraph_node
19078 (lto_input_variable_constructor): Declare.
19079 * ipa-visibility.c (function_and_variable_visibility): Use
19080 varpool_get_constructor.
19081 * cgraph.h (varpool_get_constructor): Declare.
19082 (varpool_ctor_useable_for_folding_p): New function.
19083 * lto-streamer-out.c (get_symbol_initial_value): Take encoder
19084 parameter; return error_mark_node for non-trivial constructors.
19085 (lto_write_tree_1, DFS_write_tree): Update use of
19086 get_symbol_initial_value.
19087 (output_function): Update initialization of symbol.
19088 (output_constructor): New function.
19089 (copy_function): Rename to ..
19090 (copy_function_or_variable): ... this one; handle vars too.
19091 (lto_output): Output variable sections.
19092 * lto-streamer-in.c (input_constructor): New function.
19093 (lto_read_body): Rename from ...
19094 (lto_read_body_or_constructor): ... this one; handle vars too.
19095 (lto_input_variable_constructor): New function.
19096 * ipa-prop.c (ipa_prop_write_jump_functions,
19097 ipa_prop_write_all_agg_replacement): Update.
19098 * lto-cgraph.c (compute_ltrans_boundary): Use it.
19099 (output_cgraph_opt_summary): Set symbol to NULL.
19101 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
19103 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
19104 non-polymorphic types.
19105 * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
19106 * ipa-devirt.c (types_same_for_odr): Do not explode when one
19107 of types is not polymorphic.
19109 2014-07-11 Vladimir Makarov <vmakarov@redhat.com>
19111 * lra-constraints.c (remove_inheritance_pseudos): Process
19112 destination pseudo too.
19114 2014-07-11 Rong Xu <xur@google.com>
19116 * gcov-tool.c (gcov_output_files): Fix build error introduced in
19119 2014-07-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
19121 * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
19122 * config/avr/avr-devices.c (AVR_MCU): Same.
19123 (avr_mcu_types): add text start value to end of device list.
19124 * config/avr/avr-mcus.def: Add text section start for all devices.
19125 (ata5782): Add new avr5 device.
19127 * config/avr/avr-tables.opt: Regenerate.
19128 * config/avr/avr.h: Add declaration for text section start handler.
19129 (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
19131 (LINK_SPEC): Include text section start handler to linker spec.
19132 * config/avr/driver-avr.c (avr_device_to_text_start): New function to
19133 pass -Ttext option to linker if the text section start for the device
19135 * config/avr/t-multilib: Regenerate.
19136 * doc/avr-mmcu.texi: Regenerate.
19138 2014-07-11 David Edelsohn <dje.gcc@gmail.com>
19140 * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
19141 * config/rs6000/aix52.h (LINK_SPEC): Same.
19142 * config/rs6000/aix53.h (LINK_SPEC): Same.
19143 * config/rs6000/aix61.h (LINK_SPEC): Same.
19144 * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
19146 2014-07-11 Roman Gareev <gareevroman@gmail.com>
19148 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
19149 (graphite_verify): New function.
19150 (ivs_params_clear): New function.
19151 (gcc_expression_from_isl_ast_expr_id): New function.
19152 (gcc_expression_from_isl_expr_int): New function.
19153 (binary_op_to_tree): New function.
19154 (ternary_op_to_tree): New function.
19155 (unary_op_to_tree): New function.
19156 (nary_op_to_tree): New function.
19157 (gcc_expression_from_isl_expr_op): New function.
19158 (gcc_expression_from_isl_expression): New function.
19159 (graphite_create_new_loop): New function.
19160 (translate_isl_ast_for_loop): New function.
19161 (get_upper_bound): New function.
19162 (graphite_create_new_loop_guard): New function.
19163 (translate_isl_ast_node_for): New function.
19164 (translate_isl_ast): New function.
19165 (add_parameters_to_ivs_params): New function.
19166 (scop_to_isl_ast): New parameter ip.
19167 (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
19169 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
19171 * config/xtensa/predicates.md (call expander): Update for
19172 DECL_SECTION_NAME being string.
19174 2014-07-11 Richard Biener <rguenther@suse.de>
19176 PR middle-end/61473
19177 * builtins.c (fold_builtin_memory_op): Inline memory moves that
19178 can be implemented with a single load followed by a single store.
19179 (c_strlen): Only warn when only_value is not 2.
19181 2014-07-11 Evgeny Stupachenko <evstupac@gmail.com>
19183 * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
19185 2014-07-11 Marat Zakirov <m.zakirov@samsung.com>
19188 * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
19189 (*movhi_bytes): Likewise.
19190 (*arm_movqi_insn): Likewise.
19192 2014-07-11 Uros Bizjak <ubizjak@gmail.com>
19195 * config/alpha/alpha.c: Include tree-pass.h, context.h
19196 and pass_manager.h.
19197 (pass_data_handle_trap_shadows): New pass.
19198 (pass_handle_trap_shadows::gate): New pass gate function.
19199 (make_pass_handle_trap_shadows): New function.
19200 (rest_of_handle_trap_shadows): Ditto.
19202 (alpha_align_insns_1): Rename from alpha_align_insns.
19203 (pass_data_align_insns): New pass.
19204 (pass_align_insns::gate): New pass gate function.
19205 (make_pass_aling_insns): New function.
19206 (rest_of_align_insns): Ditto.
19207 (alpha_align_insns): Ditto.
19209 (alpha_option_override): Declare handle_trap_shadows info
19210 and align_insns_info. Register handle_trap_shadows and align_insns
19212 (alpha_reorg): Do not call alpha_trap_shadows and
19213 alpha_align_insn from here.
19215 (alpha_pad_function_end): Do not skip BARRIERs.
19217 2014-07-10 Rong Xu <xur@google.com>
19219 Add gcov-tool: an offline gcda profile processing tool support.
19220 * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
19221 (gcov_is_error): Ditto.
19222 (gcov_read_string): Ditto.
19223 (gcov_read_sync): Ditto.
19224 * gcov-io.h: Move counter defines to gcov-counter.def.
19225 * gcov-dump.c (tag_counters): Use gcov-counter.def.
19226 * coverage.c: Ditto.
19227 * gcov-tool.c: Offline gcda profile processing tool.
19228 (unlink_gcda_file): Remove one gcda file.
19229 (unlink_profile_dir): Remove gcda files from the profile path.
19230 (gcov_output_files): Output gcda files to an output dir.
19231 (profile_merge): Merge two profiles in directory.
19232 (print_merge_usage_message): Print merge usage.
19233 (merge_usage): Print merge usage and exit.
19234 (do_merge): Driver for profile merge sub-command.
19235 (profile_rewrite): Rewrite profile.
19236 (print_rewrite_usage_message): Print rewrite usage.
19237 (rewrite_usage): Print rewrite usage and exit.
19238 (do_rewrite): Driver for profile rewrite sub-command.
19239 (print_usage): Print gcov-info usage and exit.
19240 (print_version): Print gcov-info version.
19241 (process_args): Process arguments.
19242 (main): Main routine for gcov-tool.
19243 * Makefile.in: Build and install gcov-tool.
19244 * gcov-counter.def: New file split from gcov-io.h.
19245 * doc/gcc.texi: Include gcov-tool.texi.
19246 * doc/gcov-tool.texi: Document for gcov-tool.
19248 2014-07-10 Richard Biener <rguenther@suse.de>
19250 PR tree-optimization/61757
19251 * tree-ssa-dom.c (loop_depth_of_name): Restore.
19252 (propagate_rhs_into_lhs): Revert part of last change.
19254 2014-07-10 Thomas Schwinge <thomas@codesourcery.com>
19256 * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
19259 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
19261 PR middle-end/53590
19262 * function.c (allocate_struct_function): Revert r188667 change.
19264 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
19266 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
19268 * doc/install.texi: Remove links to defunct package providers for
19271 2014-07-09 Tom de Vries <tom@codesourcery.com>
19273 * final.c (get_call_fndecl): Declare.
19274 (self_recursive_call_p): New function.
19275 (collect_fn_hard_reg_usage): Handle self-recursive function calls.
19277 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19279 * ipa-devirt.c (record_node): Walk through aliases.
19281 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19283 * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
19285 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19288 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
19290 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19292 * ipa-visibility.c (function_and_variable_visibility): Remove
19293 temporary hack disabling local aliases on AIX.
19295 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19297 * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
19298 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
19300 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19302 * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
19303 * rs6000/rs6000.c: Inline output of .set instruction.
19304 (declare_alias_data): New struct.
19305 (rs6000_declare_alias): New function.
19306 (rs6000_xcoff_declare_function_name): Use it.
19307 (rs6000_xcoff_declare_object_name): New function.
19308 * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
19309 (ASM_OUTPUT_DEF): Turn to empty definition.
19311 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
19314 * hash-table.h: use hash_table::value_type instead of
19315 Descriptor::value_type in the return types of several methods.
19317 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
19319 * tree-pass.h (pass_data): Remove has_execute member.
19320 * passes.c (execute_one_pass): Don't check pass->has_execute.
19321 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
19322 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
19323 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
19324 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
19325 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
19326 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
19327 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
19328 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
19329 gimple-low.c, gimple-ssa-isolate-paths.c,
19330 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
19331 ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
19332 ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
19333 ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
19334 lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
19335 postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
19336 reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
19337 stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
19338 tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
19339 tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
19340 tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
19341 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
19342 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
19343 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
19344 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
19345 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
19346 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
19347 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
19348 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
19349 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
19350 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
19351 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
19352 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
19353 web.c: Remove initializer for pass_data::has_execute.
19355 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
19357 * graphite-htab.h: Use hash_map instead of hash_table.
19358 * graphite-clast-to-gimple.c: Adjust.
19359 * passes.c: Use hash_map instead of hash_table.
19360 * sese.c: Likewise.
19361 * sese.h: Remove now unused code.
19363 2014-07-08 Sriraman Tallam <tmsriram@google.com>
19366 * config/i386/i386.c (ix86_in_large_data_p): Check for size less
19369 2014-07-08 Jakub Jelinek <jakub@redhat.com>
19371 PR rtl-optimization/61673
19372 * combine.c (simplify_comparison): Test just mode's sign bit
19373 in tmode rather than the sign bit and any bits above it.
19375 2014-07-08 Roman Gareev <gareevroman@gmail.com>
19377 * graphite-isl-ast-to-gimple.c (generate_isl_context):
19378 Add __isl_give to the declaration.
19379 (generate_isl_schedule): Likewise.
19380 (scop_to_isl_ast): Likewise.
19382 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19384 * config/arm/arm.c (cortexa5_extra_costs): New table.
19385 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
19387 2014-07-08 Jakub Jelinek <jakub@redhat.com>
19389 PR tree-optimization/61725
19390 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
19391 range, use range_includes_zerop_p instead of integer_zerop on
19392 vr0->min, only use log2 of max if min is not negative.
19394 2014-07-08 Richard Biener <rguenther@suse.de>
19396 * tree-ssa-dom.h (loop_depth_of_name): Remove.
19397 * tree-ssa-dom.c (record_equivalences_from_phis): Remove
19398 restriction on loop depth difference.
19399 (record_equality): Likewise.
19400 (propagate_rhs_into_lhs): Likewise. Simplify condition.
19401 (loop_depth_of_name): Remove.
19402 * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
19403 restriction on loop depth difference.
19404 (init_copy_prop): Likewise.
19406 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
19408 * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
19410 (walk_aliased_vdefs): Likewise.
19411 * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
19412 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
19413 (detect_type_change_from_memory_writes): Check if entry was reached.
19415 2014-07-08 Richard Biener <rguenther@suse.de>
19417 PR tree-optimization/61681
19418 * tree-ssa-structalias.c (find_what_var_points_to): Expand
19419 NONLOCAL inside ESCAPED.
19421 2014-07-08 Richard Biener <rguenther@suse.de>
19423 PR tree-optimization/61680
19424 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19425 Handle properly all read-write dependences with group accesses.
19427 2014-07-08 Yuri Rumyantsev <ysrumyan@gmail.com>
19429 PR tree-optimization/61576
19430 * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
19431 block containing reduction statement is predecessor of phi basi block.
19433 2014-07-08 Marek Polacek <polacek@redhat.com>
19436 * fold-const.c (round_up_loc): Change the parameter type.
19438 * fold-const.h (round_up_loc): Adjust declaration.
19439 * stor-layout.c (finalize_record_size): Check for too large types.
19441 2014-07-07 Jan Hubicka <hubicka@ucw.cz>
19443 * symtab.c: Include calls.h.
19444 (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
19446 2014-07-07 Maciej W. Rozycki <macro@codesourcery.com>
19448 * config/rs6000/rs6000.c (output_vec_const_move): Handle
19449 little-endian code generation.
19450 * config/rs6000/spe.md (spe_evmergehi): Rename to...
19451 (vec_perm00_v2si): ... this. Handle little-endian code generation.
19452 (spe_evmergehilo): Rename to...
19453 (vec_perm01_v2si): ... this. Handle little-endian code generation.
19454 (spe_evmergelo): Rename to...
19455 (vec_perm11_v2si): ... this. Handle little-endian code generation.
19456 (spe_evmergelohi): Rename to...
19457 (vec_perm10_v2si): ... this. Handle little-endian code generation.
19458 (spe_evmergehi, spe_evmergehilo): New expanders.
19459 (spe_evmergelo, spe_evmergelohi): Likewise.
19460 (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
19461 (*frob_tf_ti): Likewise.
19462 (*frob_<mode>_di_2): Likewise.
19463 (*frob_tf_di_8_2): Likewise.
19464 (*frob_di_<mode>): Likewise.
19465 (*frob_ti_tf): Likewise.
19466 (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
19467 (*frob_ti_<mode>_8_2): Likewise.
19468 (*frob_ti_tf_2): Likewise.
19469 (mov_si<mode>_e500_subreg0): Rename to...
19470 (mov_si<mode>_e500_subreg0_be): ... this. Restrict to the big
19472 (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
19473 (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
19474 (*mov_si<mode>_e500_subreg0_elf_low_be): ... this. Restrict to
19475 the big endianness only.
19476 (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
19477 (*mov_si<mode>_e500_subreg0_2): Rename to...
19478 (*mov_si<mode>_e500_subreg0_2_be): ... this. Restrict to the
19479 big big endianness only.
19480 (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
19481 (*mov_si<mode>_e500_subreg4): Rename to...
19482 (*mov_si<mode>_e500_subreg4_be): ... this. Restrict to the big
19484 (mov_si<mode>_e500_subreg4_le): New instruction pattern.
19485 (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
19486 (*mov_si<mode>_e500_subreg4_elf_low_be): ... this. Restrict to
19487 the big endianness only.
19488 (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
19490 (*mov_si<mode>_e500_subreg4_2): Rename to...
19491 (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big
19493 (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
19494 (*mov_sitf_e500_subreg8): Rename to...
19495 (*mov_sitf_e500_subreg8_be): ... this. Restrict to the big
19497 (*mov_sitf_e500_subreg8_le): New instruction pattern.
19498 (*mov_sitf_e500_subreg8_2): Rename to...
19499 (*mov_sitf_e500_subreg8_2_be): ... this. Restrict to the big
19501 (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
19502 (*mov_sitf_e500_subreg12): Rename to...
19503 (*mov_sitf_e500_subreg12_be): ... this. Restrict to the big
19505 (*mov_sitf_e500_subreg12_le): New instruction pattern.
19506 (*mov_sitf_e500_subreg12_2): Rename to...
19507 (*mov_sitf_e500_subreg12_2_be): ... this. Restrict to the big
19509 (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
19511 2014-07-07 Max Ostapenko <m.ostapenko@partner.samsung.com>
19513 * asan.c (instrument_strlen_call): Do not instrument first byte
19514 in strlen if already instrumented.
19516 2014-07-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19518 * config/arm/arm.opt (mwords-little-endian): Delete.
19519 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
19520 of TARGET_LITTLE_WORDS.
19521 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
19522 * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
19524 * doc/invoke.texi: Remove references to -mwords-little-endian.
19526 2014-07-07 Jakub Jelinek <jakub@redhat.com>
19528 * expmed.c (struct init_expmed_rtl): Change all fields but
19529 pow2 and cint from struct rtx_def to rtx.
19530 (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
19531 (init_expmed): Likewise. Allocate all the 18 rtxes and ggc_free them
19534 2014-07-06 Marek Polacek <polacek@redhat.com>
19537 * doc/invoke.texi: Document -Wsizeof-array-argument.
19539 2014-07-05 Gerald Pfeifer <gerald@pfeifer.com>
19541 * wide-int.h (wide_int_storage): Change declaration from struct
19544 2014-07-05 Jan Hubicka <hubicka@ucw.cz>
19546 * cgraph.c (cgraph_create_indirect_edge): Update call of
19547 get_polymorphic_call_info.
19548 * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
19549 (possible_polymorphic_call_targets): Add parameter call.
19550 (decl_maybe_in_construction_p): New predicate.
19551 (get_polymorphic_call_info): Add parameter call;
19552 use decl_maybe_in_construction_p.
19553 * gimple-fold.c (fold_gimple_assign): Update use of
19554 possible_polymorphic_call_targets.
19555 (gimple_fold_call): Likewise.
19556 * ipa-prop.c: Inlcude calls.h
19557 (ipa_binfo_from_known_type_jfunc): Check that known type is record.
19558 (param_type_may_change_p): New predicate.
19559 (detect_type_change_from_memory_writes): Break out from ...
19560 (detect_type_change): ... this one; use param_type_may_change_p.
19561 (detect_type_change_ssa): Use param_type_may_change_p.
19562 (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
19564 2014-07-05 Charles Baylis <charles.baylis@linaro.org>
19567 * config/arm/arm-protos.h (arm_legitimate_address_p,
19568 arm_is_constant_pool_ref): Add prototypes.
19569 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
19570 (arm_is_constant_pool_ref) New function.
19571 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
19572 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
19573 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
19574 operand. Remove pool_range and neg_pool_range attributes.
19575 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
19576 pool_range and neg_pool_range attributes.
19577 * config/arm/constraints.md (Uh): New constraint.
19578 (Uq): Don't allow constant pool references.
19580 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
19582 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
19583 (move_lo_quad_internal_be_<mode>): Likewise.
19584 (move_lo_quad_<mode>): Convert to define_expand.
19585 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
19586 (aarch64_simd_move_hi_quad_be_<mode>): New.
19587 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
19588 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
19589 (aarch64_combinez_be<mode>): New.
19590 (aarch64_combine<mode>): Convert to define_expand.
19591 (aarch64_combine_internal<mode>): New.
19592 (aarch64_simd_combine<mode>): Remove bogus RTL description.
19594 2014-07-04 Tom de Vries <tom@codesourcery.com>
19596 * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
19597 combination of earlyclobber and read/write modifiers.
19599 2014-07-04 Tom de Vries <tom@codesourcery.com>
19601 * config/aarch64/aarch64-simd.md
19602 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
19604 2014-07-04 Richard Earnshaw <rearnsha@arm.com>
19607 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
19609 2014-07-04 Jakub Jelinek <jakub@redhat.com>
19611 PR middle-end/61654
19612 * cgraphunit.c (expand_thunk): Call free_dominance_info.
19614 PR tree-optimization/61684
19615 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
19616 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
19618 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19619 Kito Cheng <kito@0xlab.org>
19620 Monk Chiang <sh.chiang04@gmail.com>
19622 * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
19623 (nds32_symbol_load_store_p): Move to ...
19624 (nds32_fp_as_gp_check_available): Move to ...
19625 * config/nds32/nds32-fp-as-gp.c: ... here.
19626 * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
19627 extern declaration.
19629 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19630 Kito Cheng <kito@0xlab.org>
19631 Monk Chiang <sh.chiang04@gmail.com>
19633 * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
19634 (nds32_expand_store_multiple): Move to ...
19635 (nds32_expand_movmemqi): Move to ...
19636 * config/nds32/nds32-memory-manipulation.c: ... here.
19638 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19639 Kito Cheng <kito@0xlab.org>
19640 Monk Chiang <sh.chiang04@gmail.com>
19642 * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
19643 (nds32_output_casesi_pc_relative): Move to ...
19644 (nds32_output_casesi): Move to ...
19645 (nds32_mem_format): Move to ...
19646 (nds32_output_16bit_store): Move to ...
19647 (nds32_output_16bit_load): Move to ...
19648 (nds32_output_32bit_store): Move to ...
19649 (nds32_output_32bit_load): Move to ...
19650 (nds32_output_32bit_load_s): Move to ...
19651 (nds32_output_stack_push): Move to ...
19652 (nds32_output_stack_pop): Move to ...
19653 * config/nds32/nds32-md-auxiliary.c: ... here.
19655 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19656 Ling-Hua Tseng <uranus@tinlans.org>
19658 * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
19659 the purpose of this file.
19661 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19662 Kito Cheng <kito@0xlab.org>
19663 Monk Chiang <sh.chiang04@gmail.com>
19665 * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
19666 (nds32_address_cost): Move implementation to ...
19667 * config/nds32/nds32-cost.c: ... here.
19668 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
19669 (nds32_address_cost_impl): Declare.
19671 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19672 Kito Cheng <kito@0xlab.org>
19673 Monk Chiang <sh.chiang04@gmail.com>
19675 * config/nds32/nds32.c
19676 (nds32_consecutive_registers_load_store_p): Move to ...
19677 (nds32_valid_multiple_load_store): Move to ...
19678 (nds32_valid_stack_push_pop): Move to ...
19679 (nds32_can_use_bclr_p): Move to ...
19680 (nds32_can_use_bset_p): Move to ...
19681 (nds32_can_use_btgl_p): Move to ...
19682 (nds32_can_use_bitci_p): Move to ...
19683 * config/nds32/nds32-predicates.c: ... here.
19685 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19686 Kito Cheng <kito@0xlab.org>
19687 Monk Chiang <sh.chiang04@gmail.com>
19689 * config/nds32/nds32.c
19690 (nds32_expand_builtin_null_ftype_reg): Move to ...
19691 (nds32_expand_builtin_reg_ftype_imm): Move to ...
19692 (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
19693 (nds32_init_builtins): Move implementation to ...
19694 (nds32_expand_builtin): Move implementation to ...
19695 * config/nds32/nds32-intrinsic.c: ... here.
19696 * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
19697 (nds32_expand_builtin_impl): Declare.
19699 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19700 Kito Cheng <kito@0xlab.org>
19701 Monk Chiang <sh.chiang04@gmail.com>
19703 * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
19704 (nds32_emit_section_tail_template): Move to ...
19705 (nds32_emit_isr_jmptbl_section): Move to ...
19706 (nds32_emit_isr_vector_section): Move to ...
19707 (nds32_emit_isr_reset_conten): Move to ...
19708 (nds32_check_isr_attrs_conflict): Move to ...
19709 (nds32_construct_isr_vectors_information): Move to ...
19710 (nds32_asm_file_start): Move implementation to ...
19711 (nds32_asm_file_end): Move implementation to ...
19712 * config/nds32/nds32-isr.c: ... here.
19713 * config/nds32/nds32-protos.h
19714 (nds32_check_isr_attrs_conflict): Declare.
19715 (nds32_construct_isr_vectors_information): Declare.
19716 (nds32_asm_file_start_for_isr): Declare.
19717 (nds32_asm_file_end_for_isr): Declare.
19719 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
19720 Kito Cheng <kito@0xlab.org>
19721 Monk Chiang <sh.chiang04@gmail.com>
19723 * config.gcc (nds32*): Add new modules to extra_objs.
19724 (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
19725 (nds32be-*-*): Likewise.
19726 * config/nds32/nds32-cost.c: New file.
19727 * config/nds32/nds32-fp-as-gp.c: New file.
19728 * config/nds32/nds32-intrinsic.c: New file.
19729 * config/nds32/nds32-isr.c: New file.
19730 * config/nds32/nds32-md-auxiliary.c: New file.
19731 * config/nds32/nds32-memory-manipulation.c: New file.
19732 * config/nds32/nds32-pipelines-auxiliary.c: New file.
19733 * config/nds32/nds32-predicates.c: New file.
19734 * config/nds32/t-nds32: New file.
19736 2014-07-03 Jakub Jelinek <jakub@redhat.com>
19738 PR tree-optimization/61682
19739 * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
19740 using cases and when one of the operands is equal to 1.
19742 2014-07-03 Segher Boessenkool <segher@kernel.crashing.org>
19744 * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
19745 ashr<mode>3): Correct mode of operands[2].
19746 (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
19747 lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
19748 Correct mode of operands[2]. Fix split condition.
19750 2014-07-03 Richard Earnshaw <rearnsha@arm.com>
19752 * arm.md (arch): Add armv6_or_vfpv3.
19753 (arch_enabled): Add test for the above.
19754 * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
19756 (sqrtsf_vfp, sqrtdf_vfp): Likewise.
19758 2014-07-03 Jakub Jelinek <jakub@redhat.com>
19760 * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
19761 * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
19762 HWI 1 and negate the unsigned value.
19763 * expmed.c (expand_sdiv_pow2): For modes wider than word always
19764 use AND instead of shift.
19765 * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
19767 2014-07-03 Marek Polacek <polacek@redhat.com>
19769 * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
19770 (-fsanitize=float-divide-by-zero): Move to the table with
19771 -fsanitize=undefined suboptions.
19772 (-fsanitize=float-cast-overflow): Likewise.
19774 2014-07-03 Maciej W. Rozycki <macro@codesourcery.com>
19776 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
19777 BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
19780 2014-07-03 Zhenqiang Chen <zhenqiang.chen@linaro.org>
19782 * loop-invariant.c (struct invariant): Add a new member: eqno;
19783 (find_identical_invariants): Update eqno;
19784 (create_new_invariant): Init eqno;
19785 (get_inv_cost): Compute comp_cost with eqno;
19787 2014-07-02 Segher Boessenkool <segher@kernel.crashing.org>
19789 * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
19790 (walk_insn_part) <ROTATE, ROTATERT>: New cases.
19791 (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
19792 * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
19793 Only do the transformation if both HAVE_rotate and HAVE_rotatert.
19795 2014-07-02 Christian Bruel <christian.bruel@st.com>
19799 * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
19800 (make_preds_opaque): Delete.
19801 (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
19802 (commit_mode_sets): New function.
19803 (optimize_mode_switching): Handle current_mode to mode_switching_emit.
19804 Process all modes at once.
19805 * basic-block.h (pre_edge_lcm_avs): Declare.
19806 * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
19807 Call clear_aux_for_edges. Fix comments.
19808 (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
19809 (pre_edge_rev_lcm): Idem.
19810 * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
19812 * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
19813 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
19815 * config/i386/i386.c (x96_emit_mode_set): Idem.
19816 * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
19817 * config/sh/sh.md (toggle_pr): Defined if TARGET_FPU_SINGLE.
19818 (fpscr_toggle) Disallow from delay slot.
19819 * target.def (emit_mode_set): Add prev_mode parameter.
19820 * doc/tm.texi: Regenerate.
19822 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19824 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
19827 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
19829 * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
19830 vtable_pointer_value_to_vtable): Constify.
19831 (contains_polymorphic_type_p): Declare.
19832 * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
19833 vtable_pointer_value_to_vtable): Constify.
19834 (contains_polymorphic_type_p): New predicate.
19835 * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
19837 (ipa_set_ancestor_jf): Likewise.
19838 (detect_type_change): Return false in easy cases.
19839 (compute_complex_assign_jump_func): Require type to contain
19841 (compute_known_type_jump_func): Likewise.
19843 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
19845 * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
19847 (type_in_anonymous_namespace_p): Constify argument.
19848 * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
19849 * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
19850 (main_odr_variant): New function.
19851 (hash_type_name): Make static; update assert; do not ICE on
19853 (types_same_for_odr): Bring here from tree.c; simplify and remove
19854 old structural comparing code that doesn't work for templates.
19855 (odr_hasher::equal): Update assert.
19856 (add_type_duplicate): Return true when bases should be computed;
19857 replace incomplete loader by complete; do not output duplicated
19858 warnings; do not ICE on non-records; set odr_violated flag.
19859 (get_odr_type): Be ready to replace incomplete type by complete
19860 one; work on ODR variants instead of main variants; reorder item
19861 in array so bases have still smaller indexes.
19862 (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
19863 (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
19865 2014-07-01 Cary Coutant <ccoutant@google.com>
19867 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
19869 (resolve_addr_in_expr): When replacing the rtx in a location list
19870 entry, get a new address table entry.
19871 (dwarf2out_finish): Call index_location_lists even if there are no
19872 addr_index_table entries yet.
19874 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
19876 * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
19877 change for not being obvious.
19879 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
19881 * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
19884 2014-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19886 * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
19887 (vcagt_f64): Likewise.
19888 (vcale_f64): Likewise.
19889 (vcaled_f64): Likewise.
19890 (vcales_f32): Likewise.
19891 (vcalt_f64): Likewise.
19892 (vcaltd_f64): Likewise.
19893 (vcalts_f32): Likewise.
19895 2014-07-01 Marek Polacek <polacek@redhat.com>
19897 * doc/invoke.texi: Document -Wint-conversion.
19899 2014-07-01 Marek Polacek <polacek@redhat.com>
19902 * doc/invoke.texi: Document -Wincompatible-pointer-types.
19904 2014-07-01 Martin Liska <mliska@suse.cz>
19906 IPA REF alias refactoring
19907 * cgraph.h (iterate_direct_aliases): New function.
19908 (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
19909 * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
19910 FOR_EACH_ALIAS added.
19911 (cgraph_for_node_and_aliases): Likewise.
19912 * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
19913 * ipa-inline.c (reset_edge_caches): Likewise.
19914 (update_caller_keys): Likewise.
19915 * trans-mem.c (ipa_tm_execute): Likewise.
19916 *varpool.c (varpool_analyze_node): Likewise.
19917 (varpool_for_node_and_aliases): Likewise.
19918 * ipa-ref.h (first_alias): New function.
19919 (last_alias): Likewise.
19920 (has_aliases_p): Likewise.
19921 * ipa-ref.c (ipa_ref::remove_reference): Removal function
19922 is sensitive to IPA_REF_ALIASes.
19923 * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
19924 are put at the beginning of the list.
19925 (symtab_node::iterate_direct_aliases): New function.
19927 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
19930 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19932 (write_ts_type_common_tree_pointers): Do not stream fields not set
19933 for incomplete types; do not stream duplicated fields for variants;
19934 sanity check that variant and type match.
19935 (write_ts_type_non_common_tree_pointers): Likewise.
19936 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19937 TYPE_SIZE whether type is complete.
19938 (lto_input_ts_type_common_tree_pointers): Do same changes as in
19939 write_ts_type_common_tree_pointers
19940 (lto_input_ts_type_non_common_tree_pointers): Likewise.
19942 2014-06-30 Joseph Myers <joseph@codesourcery.com>
19944 * var-tracking.c (add_stores): Return instead of asserting if old
19945 and new values for conditional store are the same.
19947 2014-06-30 Richard Henderson <rth@redhat.com>
19951 * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
19952 the cfg if there were any changes.
19953 * passes.def: Revert move of peephole2 after reorder_blocks;
19954 move duplicate_computed_gotos before peephole2.
19956 2014-06-30 Uros Bizjak <ubizjak@gmail.com>
19958 * except.c (emit_note_eh_region_end): New helper function.
19959 (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
19960 emit EH_REGION_END note.
19961 * jump.c (cleanup_barriers): Do not split a call and its
19962 corresponding CALL_ARG_LOCATION note.
19964 2014-06-30 Jeff Law <law@redhat.com>
19966 PR tree-optimization/61607
19967 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
19968 deeper into the SSA_NAME_VALUE chain.
19970 2014-06-30 Marek Polacek <polacek@redhat.com>
19972 * convert.c (convert_to_integer): Don't instrument conversions if the
19973 function has no_sanitize_undefined attribute.
19974 * ubsan.c: Don't run the ubsan pass if the function has
19975 no_sanitize_undefined attribute.
19977 2014-06-30 Jakub Jelinek <jakub@redhat.com>
19979 * doc/invoke.texi (-fsanitize=bounds): Move to the table with
19980 -fsanitize=undefined suboptions.
19982 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
19984 * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
19985 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
19986 against bigendian and adjust indices.
19988 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
19990 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
19992 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
19995 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
19996 Add alternative; make early clobber. Adjust both split patterns
19997 to use operand 0 as the working register.
19999 2014-06-30 Jakub Jelinek <jakub@redhat.com>
20001 * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
20002 as ira_object_id_map might be NULL, or 1.
20004 2014-06-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
20006 * loop-invariant.c (get_inv_cost): Handle register class.
20007 (gain_for_invariant): Check the register pressure of the inv
20008 and its overlapped register class, other than all.
20010 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
20012 * doc/invoke.texi (Optimize Options): Fix descriptions of
20013 ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
20015 2014-06-29 David Wohlferd <dw@LimeGreenSocks.com>
20017 * doc/extend.texi (Function Attributes): Update 'naked' attribute
20020 2014-06-29 Tobias Grosser <tobias@grosser.es>
20023 * graphite-isl-ast-to-gimple.c: Add missing guards.
20025 2014-06-29 Roman Gareev <gareevroman@gmail.com>
20027 * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
20028 * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
20029 * flag-types.h: Add new enum fgraphite_generator.
20030 * graphite-isl-ast-to-gimple.c: New.
20031 * graphite-isl-ast-to-gimple.h: New.
20032 * graphite.c (graphite_transform_loops): Add choice of Graphite
20033 code generator, which depends on flag_graphite_code_gen.
20035 2014-06-29 Roman Gareev <gareevroman@gmail.com>
20037 * graphite-dependences.c (subtract_commutative_associative_deps):
20038 Add NULL checking of the following variables: must_raw_no_source,
20039 may_raw_no_source, must_war_no_source, may_war_no_source,
20040 must_waw_no_source, may_waw_no_source, must_raw, may_raw,
20041 must_war, may_war, must_waw, may_waw.
20043 2014-06-29 Roman Gareev <gareevroman@gmail.com>
20045 * graphite-clast-to-gimple.c: gloog is renamed to
20046 graphite_regenerate_ast_cloog. gloog_error is renamed to
20047 graphite_regenerate_error.
20048 * graphite-clast-to-gimple.h: The definition of the struct
20049 bb_pbb_def is moved to graphite-htab.h.
20050 Add inclusion of the hash-table.h.
20051 * graphite-htab.h: The declaration of the function gloog is moved
20052 to graphite-clast-to-gimple.h and renamed to
20053 graphite_regenerate_ast_cloog.
20054 * graphite.c (graphite_transform_loops): gloog is renamed
20055 to graphite_regenerate_ast_cloog.
20057 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
20059 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
20061 (write_ts_type_common_tree_pointers): Do not stream fields not set
20062 for incomplete types; do not stream duplicated fields for variants;
20063 sanity check that variant and type match.
20064 (write_ts_type_non_common_tree_pointers): Likewise.
20065 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
20066 TYPE_SIZE whether type is complete.
20067 (lto_input_ts_type_common_tree_pointers): Do same changes as in
20068 write_ts_type_common_tree_pointers
20069 (lto_input_ts_type_non_common_tree_pointers): Likewise.
20071 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
20073 * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
20075 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
20077 * tree-inline.c (remap_type_1): Do not duplicate fields
20078 that are shared in between type and its main variant.
20080 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
20082 * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
20084 (ipa_set_ancestor_jf) Likewise.
20085 (check_stmt_for_type_change): Check that we work on main variant.
20086 (detect_type_change): Look into main variant.
20087 (compute_known_type_jump_func): Check that main variant has BINFO.
20089 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
20091 * ipa-devirt.c (set_type_binfo): New function.
20092 (add_type_duplicate): Use it.
20093 (get_odr_type): Sanity check that binfos points to main variants.
20094 (get_class_context): Be sure the context's outer_type is main variant.
20095 (contains_type_p): Walk main variant.
20096 (get_polymorphic_call_info_for_decl): Set outer_type to be
20098 (get_polymorphic_call_info): Likewise.
20099 (possible_polymorphic_call_targets): Sanity check that we operate
20102 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
20104 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
20106 2014-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20108 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
20109 accidental change due to wide-int branch merge.
20111 2014-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20113 * configure.ac (gcc_cv_as_compress_debug): Check for assembler
20114 compressed debug support.
20115 (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
20116 * configure: Regenerate.
20117 * config.in: Regenerate.
20118 * common.opt (compressed_debug_sections): New enum.
20119 (gz, gz=): New options.
20120 * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
20121 (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
20122 (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
20123 * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
20124 LINK_COMPRESS_DEBUG_SPEC.
20125 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
20126 * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
20127 * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
20128 (Debugging Options): Document -gz[=type].
20130 2014-06-27 Martin Jambor <mjambor@suse.cz>
20133 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
20134 args_to_skip, use those from node instead. Copy args_to_skip and
20135 combined_args_to_skip from node to the new thunk.
20136 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
20137 (cgraph_create_virtual_clone): Moved computation of
20138 combined_args_to_skip...
20139 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
20141 2014-06-27 trevor Saunders <tsaunders@mozilla.com>
20143 * config/i386/winnt.c (i386_pe_section_type_flags): Remove
20144 redundant diagnostic machinary.
20146 2014-06-27 Richard Biener <rguenther@suse.de>
20148 * tree-ssa-math-opts.c (bswap_replace): Fix
20149 SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
20151 2014-06-27 Martin Liska <mliska@suse.cz>
20153 * gimple.h (gimple_location_safe): New function introduced.
20154 * cgraphunit.c (walk_polymorphic_call_targets): Usage
20155 of gimple_location_safe replaces gimple_location.
20156 (gimple_fold_call): Likewise.
20157 * ipa-devirt.c (ipa_devirt): Likewise.
20158 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
20159 * ipa.c (walk_polymorphic_call_targets): Likewise.
20160 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
20162 2014-06-27 Jakub Jelinek <jakub@redhat.com>
20164 PR tree-optimization/57233
20165 PR tree-optimization/61299
20166 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
20168 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
20169 would be lowered to scalar shifts, check if corresponding
20170 shifts and vector BIT_IOR_EXPR are supported and don't lower
20171 or lower just to narrower vector type in that case.
20172 * expmed.c (expand_shift_1): Fix up handling of vector
20173 shifts and rotates.
20175 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
20178 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
20180 2014-06-26 Jan Hubicka <hubicka@ucw.cz>
20182 * doc/invoke.texi (-fsemantic-interposition): Document.
20183 * common.opt (fsemantic-interposition): New flag.
20184 * varasm.c (decl_replaceable_p): Use it.
20186 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20189 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
20190 extraction other than index 3.
20192 2014-06-26 Teresa Johnson <tejohnson@google.com>
20194 * doc/invoke.texi: Fix typo.
20195 * dumpfile.c: Add support for documented -fdump-* options
20196 optimized/missed/note/optall.
20198 2014-06-26 Martin Jambor <mjambor@suse.cz>
20200 * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
20201 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
20202 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
20203 (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
20204 * opts.c (default_options_optimization): Set
20205 PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
20206 * doc/invoke.texi (allow-load-data-races)
20207 (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
20208 (allow-store-data-races): Document the new default.
20210 2014-06-26 Martin Jambor <mjambor@suse.cz>
20212 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
20213 renamed to ipa_impossible_devirt_target. Fix typo.
20214 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
20215 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
20216 ipa_impossible_devirt_target.
20218 2014-06-26 Richard Biener <rguenther@suse.de>
20220 PR tree-optimization/61607
20221 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
20222 explaining why we restrict copies on loop depth.
20223 * tree-ssa-dom.c (cprop_operand): Remove restriction on
20225 (record_equivalences_from_phis): Instead add it here.
20227 2014-06-26 Bernd Schmidt <bernds@codesourcery.com>
20229 * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
20230 (LTO_WRAPPER_OBJS): New variable.
20231 (lto-wrapper$(exeext)): Use it.
20232 * collect2.c: Include "collect-utils.h".
20233 (verbose, debug): Remove variables.
20234 (at_file_supplied): No longer static.
20235 (tool_name): New variable.
20236 (do_wait, fork_execute, maybe_unlink): Don't declare.
20237 (tool_cleanup): No longer static.
20238 (notice): Remove function.
20239 (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
20240 fork_execute calls.
20241 (collect_wait, do_wait, collect_execute): Remove functions.
20242 (maybe_unlink): No longer static.
20243 * collect2.h (verbose, debug): Don't declare.
20244 (at_file_supplied): Declare.
20245 * collect-utils.c (utils_cleanup): New arg from_signal. All callers
20247 (collect_execute): Replace with implementation from collect2, plus a
20248 new arg use_atfile. All callers changed.
20249 (collect_wait): Replace with implementation from collect2.
20250 (maybe_unlink_file): Remove function.
20251 (fork_execute): Replace with implementation from collect2, plus a
20252 new arg use_atfile. All callers changed.
20253 (do_wait): Add call to utils_cleanup to the error path.
20254 * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
20255 (tool_cleanup): Adjust declarations.
20256 * lto-wrapper.c (tool_cleanup): Add unused bool argument.
20257 * tlink.c: Include "collect-utils.h".
20258 (tlink_execute): New arg use_atfile. All callers changed.
20259 (tlink_init, tlink_execute): Remove declarations.
20261 * collect-utils.c (save_temps): New variable.
20262 (do_wait): Use it instead of debug. Use fatal_error.
20263 * collect-utils.h (save_temps): Declare.
20264 * collect2.c (verbose): Rename from vflag. All uses changed.
20265 (tool_cleanup): New function, copied from collect_atexit.
20266 (collect_atexit, handler): Just call it.
20267 * collect2.h (verbose): Declaration renamed from vflag.
20268 * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
20271 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
20272 (lto-wrapper$(exeext)): Link with collect-utils.o.
20273 * collect-utils.c: New file.
20274 * collect-utils.h: New file.
20275 * lto-wrapper.c: Include "collect-utils.h".
20276 (args_name): Delete variable.
20277 (tool_name): New variable.
20278 (tool_cleanup): New function.
20279 (maybe_unlink): Renamed from maybe_unlink_file. All callers changed.
20280 (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
20281 (fork_execute): Remove functions.
20283 2014-06-26 Nick Clifton <nickc@redhat.com>
20285 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
20287 * doc/extend.texi (Function Attributes): Fix typo in description
20288 of RX vector attribute.
20290 2014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
20292 * config.gcc (supported_defaults): Error when passing either
20293 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
20295 2014-06-26 Richard Biener <rguenther@suse.de>
20297 * tree-ssa-dom.c (cprop_operand): Remove restriction on
20298 propagating volatile pointers.
20300 2014-06-26 Richard Biener <rguenther@suse.de>
20302 PR tree-optimization/61607
20303 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
20304 loop if we redirected its latch edge.
20305 (thread_block_1): Do not cancel loops prematurely.
20307 2014-06-25 Jan Hubicka <hubicka@ucw.cz>
20309 * toplev.c (backend_init_target): Move init_emit_regs and
20311 (backend_init) ... here; skip ira_init_once and backend_init_target.
20312 (target_reinit) ... and here; clear
20313 this_target_rtl->lang_dependent_initialized.
20314 (lang_dependent_init_target): Clear
20315 this_target_rtl->lang_dependent_initialized;
20316 break out rtl initialization to ...
20317 (initialize_rtl): ... here; call also backend_init_target
20319 * toplev.h (initialize_rtl): New function.
20320 * function.c: Include toplev.h
20321 (init_function_start): Call initialize_rtl.
20322 * rtl.h (target_rtl): Add target_specific_initialized,
20323 lang_dependent_initialized.
20325 2014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
20326 Jakub Jelinek <jakub@redhat.com>
20328 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
20330 2014-06-25 Tom de Vries <tom@codesourcery.com>
20332 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
20334 2014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
20336 * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
20337 check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
20338 Issue a strict overflow warning if appropriate.
20340 2014-06-25 Martin Liska <mliska@suse.cz>
20342 IPA REF refactoring
20343 * Makefile.in: Removed header file (ipa-ref-inline.h).
20344 * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
20346 (cgraph_speculative_call_info): Likewise.
20347 (cgraph_for_node_thunks_and_aliases): Likewise.
20348 (cgraph_for_node_and_aliases): Likewise.
20349 (verify_cgraph_node): Likewise.
20350 * cgraph.h: Batch of IPA REF functions become member functions of
20351 symtab_node: add_reference, maybe_add_reference, clone_references,
20352 clone_referring, clone_reference, find_reference,
20353 remove_stmt_references, remove_all_references,
20354 remove_all_referring, dump_references, dump_referring,
20355 has_alias_p, iterate_reference, iterate_referring.
20356 * cgraphbuild.c (record_reference): New IPA REF function used.
20357 (record_type_list): Likewise.
20358 (record_eh_tables): Likewise.
20359 (mark_address): Likewise.
20360 (mark_load): Likewise.
20361 (mark_store): Likewise.
20362 (pass_build_cgraph_edges): Likewise.
20363 (rebuild_cgraph_edge): Likewise.
20364 (cgraph_rebuild_references): Likewise.
20365 (pass_remove_cgraph_callee_edges): Likewise.
20366 * cgraphclones.c (cgraph_clone_node): Likewise.
20367 (cgraph_create_virtual_clone): Likewise.
20368 (cgraph_materialize_clone): Likewise.
20369 (cgraph_materialize_all_clones): Likewise.
20370 * cgraphunit.c (cgraph_reset_node): Likewise.
20371 (cgraph_reset_node): Likewise.
20372 (analyze_function): Likewise.
20373 (assemble_thunks_and_aliases): Likewise.
20374 (expand_function): Likewise.
20375 * ipa-comdats.c (propagate_comdat_group): Likewise.
20376 (enqueue_references): Likewise.
20377 * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
20378 (create_specialized_node): Likewise.
20379 * ipa-devirt.c (referenced_from_vtable_p): Likewise.
20380 * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
20381 * ipa-inline.c (reset_edge_caches): Likewise.
20382 (update_caller_keys): Likewise.
20383 (execute): Likewise.
20384 * ipa-prop.c (remove_described_reference): Likewise.
20385 (propagate_controlled_uses): Likewise.
20386 (ipa_edge_duplication_hook): Likewise.
20387 (ipa_modify_call_arguments): Likewise.
20388 * ipa-pure-const.c (propagate_pure_const): Likewise.
20389 * ipa-ref-inline.h: Header file removed, functions moved
20390 to symtab_node class.
20391 * ipa-ref.c (remove_reference): New class member function.
20392 (cannot_lead_to_return): New class member function.
20393 (referring_ref_list): Likewise.
20394 (referred_ref_list): Likewise.
20395 Rest of functions moved to symtab_node class.
20396 * ipa-ref.h: New member functions remove_reference,
20397 cannot_lead_to_return, referring_ref_list, referred_ref_list added
20399 ipa_ref_list class has new member functions: first_reference,
20400 first_referring, clear, nreferences.
20401 * ipa-reference.c (analyze_function): New IPA REF function used.
20402 (write_node_summary_p): Likewise.
20403 (ipa_reference_write_optimization_summary): Likewise.
20404 * ipa-split.c (split_function): Likewise.
20405 * ipa-utils.c (ipa_reverse_postorder): Likewise.
20406 * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
20407 (function_and_variable_visibility): Likewise.
20408 * ipa.c (has_addr_references_p): Likewise.
20409 (process_references): Argument type changed.
20410 (symtab_remove_unreachable_nodes): New IPA REF function used.
20411 (process_references): Likewise.
20412 (set_writeonly_bit): Likewise.
20413 * lto-cgraph.c: Implementation of new symtab_node member functions
20414 that uses new IPA REF functions.
20415 * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
20417 * lto-streamer-out.c (output_symbol_p): Likewise.
20418 * lto-streamer.h (referenced_from_this_partition_p): Argument type
20420 * symtab.c: Implementation of new IPA REF API.
20421 * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
20422 (ipa_tm_create_version): Likewise.
20423 (ipa_tm_execute): Likewise.
20424 * tree-emutls.c (gen_emutls_addr): Likewise.
20425 * tree-inline.c (copy_bb): Likewise.
20426 (delete_unreachable_blocks_update_callgraph): Likewise.
20427 * varpool.c (varpool_remove_unreferenced_decls): Likewise.
20428 (varpool_for_node_and_aliases): Likewise.
20430 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
20432 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
20434 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
20437 * fold-const.c (fold_checksum_tree): Use a hash_table of const
20438 tree_node * instead of tree_node *.
20440 (print_fold_checksum): Likewise.
20441 (fold_check_failed): Likewise.
20442 (debug_fold_checksum): Likewise.
20443 (fold_build1_stat_loc): Likewise.
20444 (fold_build2_stat_loc): Likewise.
20445 (fold_build3_stat_loc): Likewise.
20446 (fold_build_call_array_loc): Likewise.
20448 2014-06-25 David Edelsohn <dje.gcc@gmail.com>
20450 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
20451 implementation with call to...
20452 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
20454 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
20457 2014-06-25 Marc Glisse <marc.glisse@inria.fr>
20459 PR tree-optimization/57742
20460 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
20461 after replacing the statement.
20463 2014-06-25 Nick Clifton <nickc@redhat.com>
20465 * config/v850/v850.c (GHS_default_section_names): Change to const
20467 (GHS_current_section_names): Likewise.
20468 (v850_insert_attributes): Do not build strings, just assign the
20469 names directly. Change the type of 'chosen_section' to const
20471 * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
20472 directly to the array entry.
20473 * config/v850/v850.h (GHS_default_section_names): Change to const
20475 (GHS_current_section_names): Likewise.
20477 2014-06-25 Jakub Jelinek <jakub@redhat.com>
20479 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
20480 (LANG_HOOKS_DECLS): Add it.
20481 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
20483 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
20484 * langhooks.h (struct lang_hooks_for_decls): Add
20485 omp_clause_linear_ctor hook.
20486 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
20487 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
20488 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
20489 combined simd loop use omp_clause_linear_ctor hook.
20491 2014-06-24 Cong Hou <congh@google.com>
20493 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
20494 pattern recognition.
20495 (type_conversion_p): PROMOTION is true if it's a type promotion
20496 conversion, and false otherwise. Return true if the given expression
20497 is a type conversion one.
20498 * tree-vectorizer.h: Adjust the number of patterns.
20499 * tree.def: Add SAD_EXPR.
20500 * optabs.def: Add sad_optab.
20501 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
20502 * expr.c (expand_expr_real_2): Likewise.
20503 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
20504 * gimple.c (get_gimple_rhs_num_ops): Likewise.
20505 * optabs.c (optab_for_tree_code): Likewise.
20506 * tree-cfg.c (estimate_operator_cost): Likewise.
20507 * tree-ssa-operands.c (get_expr_operands): Likewise.
20508 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
20509 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
20510 * doc/generic.texi: Add document for SAD_EXPR.
20511 * doc/md.texi: Add document for ssad and usad.
20513 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
20515 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
20516 qualification in cast.
20518 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
20520 * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
20521 * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
20522 * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
20523 (tree_function_decl): ... here.
20524 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
20525 streaming of vindex to ...
20526 (write_ts_function_decl_tree_pointers): ... here.
20527 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
20528 Do not stream DECL_VINDEX.
20529 (lto_input_ts_function_decl_tree_pointers): Stream it here.
20531 2014-06-24 Catherine Moore <clm@codesourcery.com>
20532 Sandra Loosemore <sandra@codesourcery.com>
20534 * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
20535 * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
20536 * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
20538 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
20540 * doc/invoke.texi (Warning Options): Remove duplicated
20541 -Wmaybe-uninitialized.
20543 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
20545 PR tree-optimization/57742
20546 * tree-ssa-strlen.c (get_string_length): Ignore malloc.
20547 (handle_builtin_malloc, handle_builtin_memset): New functions.
20548 (strlen_optimize_stmt): Call them.
20549 * passes.def: Move strlen after loop+dom but before vrp.
20551 2014-06-24 Jakub Jelinek <jakub@redhat.com>
20554 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
20555 model family 6 CPU with has_longmode never use a CPU without
20558 2014-06-24 H.J. Lu <hongjiu.lu@intel.com>
20561 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
20564 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
20566 * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
20567 * dominance.c (iterate_fix_dominators): Use hash_map instead of
20569 * hash-map.h: New file.
20570 * ipa-comdats.c: Use hash_map instead of pointer_map.
20572 * lto-section-out.c: Adjust.
20573 * lto-streamer.h: Replace pointer_map with hash_map.
20574 * symtab.c (verify_symtab): Likewise.
20575 * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
20576 * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
20577 * tree-streamer.h: Likewise.
20578 * tree-streamer.c: Adjust.
20579 * pointer-set.h: Remove pointer_map.
20581 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
20583 * hash-table.h: Add a template arg to choose between storing values
20584 and storing pointers to values, and then provide partial
20585 specializations for both.
20586 * tree-browser.c (tree_upper_hasher): Provide the type the hash table
20587 should store, not the type values should point to.
20588 * tree-into-ssa.c (var_info_hasher): Likewise.
20589 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
20590 * tree-complex.c: Adjust.
20591 * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
20592 table instead of int_tree_map *.
20593 * tree-parloops.c: Adjust.
20594 * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
20595 type is being stored.
20596 * tree-vectorizer.c: Adjust.
20598 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
20600 * hash-table.h: Remove a layer of indirection from hash_table so that
20601 it contains the hash table's data instead of a pointer to the data.
20602 * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
20603 config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
20604 config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
20605 data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
20606 fold-const.c, gcse.c, ggc-common.c,
20607 gimple-ssa-strength-reduction.c, gimplify.c,
20608 graphite-clast-to-gimple.c, graphite-dependences.c,
20609 graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
20610 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
20611 loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
20612 lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
20613 postreload-gcse.c, sese.c, statistics.c, store-motion.c,
20614 trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
20615 tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
20616 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
20617 tree-ssa-live.c, tree-ssa-loop-im.c,
20618 tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
20619 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
20620 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
20621 tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
20622 tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
20623 tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
20624 vtable-verify.c, vtable-verify.h: Adjust.
20626 2014-06-24 Richard Biener <rguenther@suse.de>
20628 PR tree-optimization/61572
20629 * tree-ssa-sink.c (statement_sink_location): Do not sink
20630 loads from hard registers.
20632 2014-06-24 Jakub Jelinek <jakub@redhat.com>
20634 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
20635 not mentioned in clauses use private clause if the iterator is
20636 declared in #pragma omp for simd, and when adding lastprivate
20637 instead, add it to the outer #pragma omp for too. Diagnose
20638 if the variable is private in outer context. For simd collapse > 1
20639 loops, replace all iterators with temporaries.
20640 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
20641 same even in collapse > 1 loops.
20643 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
20644 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
20646 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
20647 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
20649 (gimplify_adjust_omp_clauses): Likewise.
20650 * omp-low.c (lower_rec_simd_input_clauses,
20651 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
20652 safelen the same as safelen(1).
20653 * tree-nested.c (convert_nonlocal_omp_clauses,
20654 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
20655 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
20656 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
20657 Fixup handling of GIMPLE_OMP_TARGET.
20658 (convert_tramp_reference_stmt, convert_gimple_call): Handle
20661 2014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
20663 PR tree-optimization/61554
20664 * tree-ssa-propagate.c: Include "bitmap.h".
20665 (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
20666 properly update constructor/destructor.
20667 (substitute_and_fold_dom_walker::before_dom_children):
20668 Remove call to gimple_purge_dead_eh_edges, add bb->index to
20669 need_eh_cleaup instead.
20670 (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
20673 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
20675 * varpool.c (dump_varpool_node): Dump used_by_single_function.
20676 * tree-pass.h (make_pass_ipa_single_use): New pass.
20677 * cgraph.h (used_by_single_function): New flag.
20678 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
20680 * passes.def (pass_ipa_single_use): Scedule.
20681 * ipa.c (BOTTOM): New macro.
20682 (meet): New function
20683 (propagate_single_user): New function.
20684 (ipa_single_use): New function.
20685 (pass_data_ipa_single_use): New pass.
20686 (pass_ipa_single_use): New pass.
20687 (pass_ipa_single_use::gate): New gate.
20688 (make_pass_ipa_single_use): New function.
20690 2014-06-23 Kai Tietz <ktietz@redhat.com>
20693 * passes.def (peephole2): Move peephole2 pass before sched2 pass.
20694 * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
20696 2014-06-23 Richard Biener <rguenther@suse.de>
20698 * tree-ssa-loop.c (gate_loop): New function.
20699 (pass_tree_loop::gate): Call it.
20700 (pass_data_tree_no_loop, pass_tree_no_loop,
20701 make_pass_tree_no_loop): New.
20702 * tree-vectorizer.c: Include tree-scalar-evolution.c
20703 (pass_slp_vectorize::execute): Initialize loops and SCEV if
20705 (pass_slp_vectorize::clone): New method.
20706 * timevar.def (TV_TREE_NOLOOP): New.
20707 * tree-pass.h (make_pass_tree_no_loop): Declare.
20708 * passes.def (pass_tree_no_loop): New pass group with
20711 2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
20714 * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
20715 to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
20717 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
20719 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
20720 "yes" where needed.
20722 2014-06-23 Alan Modra <amodra@gmail.com>
20725 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
20726 to zero on debug statements.
20728 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
20731 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
20732 Ignore third operand if present by marking qualifier_internal.
20734 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
20736 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
20738 (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
20739 arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
20740 (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
20741 vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
20742 vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
20743 vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
20744 vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
20745 vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
20746 vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
20747 vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
20748 vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
20749 vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
20750 vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
20751 vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
20752 vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
20753 vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
20754 logic in GCC vector extensions
20756 (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
20757 vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
20758 vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
20759 vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
20760 vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
20761 vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
20762 vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
20763 vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
20764 vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
20765 vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
20767 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
20769 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
20772 (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
20773 (vget_low_s64): Use __GET_LOW macro.
20774 (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
20775 gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
20776 (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
20777 (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
20778 __builtin_aarch64_lane_boundsi, use GCC vector extensions.
20780 (vcombine_s64): Use GCC vector extensions; remove cast.
20781 (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
20782 vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
20783 vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
20784 Fix type signature; remove cast.
20786 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
20789 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
20791 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
20793 (BUILTIN_VD1): New.
20794 (BUILTIN_VD_RE): Remove.
20795 (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
20796 (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
20797 * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
20798 variant but not df.
20799 (vreinterpretv1df*, vreinterpret*v1df): New.
20800 (vreinterpretdf*, vreinterpret*df): Remove.
20801 * config/aarch64/aarch64-simd.md (aarch64_create,
20802 aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
20803 * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
20805 * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
20806 (vcreate_f64): Remove cast, use v1df builtin.
20807 (vcombine_f64): Remove cast, get elements with gcc vector extensions.
20808 (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
20809 vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
20810 vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
20811 vmov_n_f64, vst1_f64): Use gcc vector extensions.
20812 (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
20813 add range check using __builtin_aarch64_im_lane_boundsi.
20814 (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
20815 vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
20816 type signature, use gcc vector extensions.
20817 (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
20818 vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
20819 vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
20820 vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
20821 vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
20822 vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
20823 vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
20824 vreinterpret_u64_f64): Use v1df builtin not df.
20826 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
20828 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
20831 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
20833 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
20836 2014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
20838 * loop-invariant.c (pre_check_invariant_p): New function.
20839 (find_invariant_insn): Call pre_check_invariant_p.
20841 2014-06-22 Richard Henderson <rth@redhat.com>
20844 * compare-elim.c (struct comparison): Add eh_note.
20845 (find_comparison_dom_walker::before_dom_children): Don't eliminate
20846 a redundant comparison in a different EH region. Purge EH edges if
20849 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20851 * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
20852 (var_shift): Use it.
20853 (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
20854 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
20855 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
20856 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
20857 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
20858 *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
20859 *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
20860 *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
20861 *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
20862 *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
20863 *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
20864 *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
20865 *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
20866 *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
20867 *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
20868 *rotldi3_internal15be): Use the new attribute. Merge register and
20869 integer alternatives.
20871 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20873 * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
20874 define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
20875 split, *ashrdi3_internal3 and split): Delete, merge into...
20876 (ashr<mode>3): New expander.
20877 (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
20878 (*ashrsi3_64): Fix formatting. Replace "i" by "n".
20880 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20882 * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
20883 *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
20884 *rotldi3_internal3 and split): Delete, merge into...
20885 (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
20886 (*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
20887 Use "rotlw" extended mnemonic.
20889 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20891 * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
20892 and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
20893 and split, *ashldi3_internal3 and split): Delete, merge into...
20894 (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
20895 (*ashlsi3_64): Fix formatting. Replace "i" by "n".
20897 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20899 * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
20900 (lshrsi3, two anonymous define_insns and define_splits,
20901 lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
20902 *lshrdi3_internal3 and split): Delete, merge into...
20903 (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
20904 (*lshrsi3_64): Fix formatting. Replace "i" by "n".
20906 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
20908 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
20909 Remove "O" alternative.
20911 2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
20913 * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
20914 (mips_move_from_gpr_cost): Likewise.
20915 (mips_register_move_cost): Update accordingly.
20916 (mips_secondary_reload_class): Remove name of in_p.
20918 2014-06-22 Marc Glisse <marc.glisse@inria.fr>
20921 * config/i386/i386.md (x86_64_shrd, x86_shrd,
20922 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
20924 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
20926 * config/nios2/nios2.c: Include "builtins.h".
20928 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
20930 * cgraph.h (tls_model_names): New variable.
20931 * print-tree.c (print_node): Simplify.
20932 * varpool.c (tls_model_names): New variable.
20933 (dump_varpool_node): Output tls model.
20935 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
20937 * ipa-visibility.c (function_and_variable_visibility): Disable
20938 temporarily local aliases for some targets.
20940 2014-06-20 Marek Polacek <polacek@redhat.com>
20942 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
20943 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
20944 into SANITIZE_UNDEFINED.
20945 * doc/invoke.texi: Describe -fsanitize=bounds.
20946 * gimplify.c (gimplify_call_expr): Add gimplification of internal
20947 functions created in the FEs.
20948 * internal-fn.c: Move "internal-fn.h" after "tree.h".
20949 (expand_UBSAN_BOUNDS): New function.
20950 * internal-fn.def (UBSAN_BOUNDS): New internal function.
20951 * internal-fn.h: Don't define internal functions here.
20952 * opts.c (common_handle_option): Add -fsanitize=bounds.
20953 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
20954 BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
20955 * tree-core.h: Define internal functions here.
20956 (struct tree_base): Add ifn field.
20957 * tree-pretty-print.c: Include "internal-fn.h".
20958 (dump_generic_node): Handle functions without CALL_EXPR_FN.
20959 * tree.c (get_callee_fndecl): Likewise.
20960 (build_call_expr_internal_loc): New function.
20961 * tree.def (CALL_EXPR): Update description.
20962 * tree.h (CALL_EXPR_IFN): Define.
20963 (build_call_expr_internal_loc): Declare.
20964 * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
20966 (ubsan_type_descriptor): Change bool parameter to enum
20967 ubsan_print_style. Adjust the code. Add handling of
20969 (ubsan_expand_bounds_ifn): New function.
20970 (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
20971 (ubsan_build_overflow_builtin): Likewise.
20972 (instrument_bool_enum_load): Likewise.
20973 (ubsan_instrument_float_cast): Likewise.
20974 * ubsan.h (enum ubsan_print_style): New enum.
20975 (ubsan_expand_bounds_ifn): Declare.
20976 (ubsan_type_descriptor): Adjust declaration. Use a default parameter.
20978 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
20980 * config/rs6000/rs6000.md: Append `DONE' to preparation
20981 statements of `bswap' pattern splitters.
20983 2014-06-20 Tom de Vries <tom@codesourcery.com>
20985 * target.def (call_fusage_contains_non_callee_clobbers): Update
20987 * doc/tm.texi: Regenerate.
20989 2014-06-20 Yury Gribov <y.gribov@samsung.com>
20990 Max Ostapenko <m.ostapenko@partner.samsung.com>
20993 * asan.c (instrument_strlen_call): Fixed instrumentation of
20996 2014-06-20 Martin Jambor <mjambor@suse.cz>
20999 * ipa-prop.c (impossible_devirt_target): New function.
21000 (try_make_edge_direct_virtual_call): Use it, also instead of
21003 2014-06-20 Yury Gribov <y.gribov@samsung.com>
21004 Max Ostapenko <m.ostapenko@partner.samsung.com>
21007 * asan.c (build_check_stmt): Add condition.
21009 2014-06-20 Martin Jambor <mjambor@suse.cz>
21012 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
21015 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21017 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
21019 (VCONQ): Make comment more helpful.
21021 * config/aarch64/aarch64-simd.md
21022 (aarch64_sqdmulh_lane<mode>):
21023 Use VCOND for operands 2. Update lane checking and flipping logic.
21024 (aarch64_sqrdmulh_lane<mode>): Likewise.
21025 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
21026 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
21027 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
21028 attribute of operand 3 to VCOND.
21029 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
21030 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
21031 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
21032 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
21033 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
21034 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
21036 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
21037 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
21038 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
21039 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
21040 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
21041 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
21042 operand to VCOND. Update lane flipping and bounds checking logic.
21043 (aarch64_sqdmlal2_lane<mode>): Likewise.
21044 (aarch64_sqdmlsl_lane<mode>): Likewise.
21045 (aarch64_sqdmull_lane<mode>): Likewise.
21046 (aarch64_sqdmull2_lane<mode>): Likewise.
21047 (aarch64_sqdmlal_laneq<mode>):
21048 Replace VCON usage with VCONQ.
21049 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
21050 (aarch64_sqdmlal2_laneq<mode>): Emit
21051 aarch64_sqdmlal2_laneq<mode>_internal insn.
21052 Replace VCON with VCONQ.
21053 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
21054 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
21055 (aarch64_sqdmull_laneq<mode>): Emit
21056 aarch64_sqdmull_laneq<mode>_internal insn.
21057 Replace VCON with VCONQ.
21058 (aarch64_sqdmull2_laneq<mode>): Emit
21059 aarch64_sqdmull2_laneq<mode>_internal insn.
21060 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
21061 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
21062 of 3rd argument to int16x4_t.
21063 (vqdmlalh_lane_s16): Likewise.
21064 (vqdmlslh_lane_s16): Likewise.
21065 (vqdmull_high_lane_s16): Likewise.
21066 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
21067 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
21068 (vqdmlsl_lane_s16): Likewise.
21069 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
21070 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
21071 (vqdmlals_lane_s32): Likewise.
21072 (vqdmlsls_lane_s32): Likewise.
21073 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
21074 (vqdmulls_lane_s32): Likewise.
21075 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
21076 (vqdmlsl_lane_s32): Likewise.
21077 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
21078 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
21079 (vqrdmulhh_lane_s16): Likewise.
21080 (vqdmlsl_high_lane_s16): Likewise.
21081 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
21082 (vqdmlsl_high_lane_s32): Likewise.
21083 (vqrdmulhs_lane_s32): Likewise.
21085 2014-06-20 Tom de Vries <tom@codesourcery.com>
21087 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
21088 get_call_reg_set_usage.
21090 2014-06-20 Tom de Vries <tom@codesourcery.com>
21092 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
21093 it contains all call_used_regs.
21095 2014-06-20 Tom de Vries <tom@codesourcery.com>
21097 * final.c (collect_fn_hard_reg_usage): Add and use variable
21098 function_used_regs.
21100 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
21102 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
21103 (set_init_priority, get_init_priority, set_fini_priority,
21104 get_fini_priority): New methods.
21105 * tree.c (init_priority_for_decl): Remove.
21106 (init_ttree): Do not initialize init priority.
21107 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
21108 (decl_priority_info): Remove.
21109 (decl_init_priority_insert): Rewrite.
21110 (decl_fini_priority_insert): Rewrite.
21111 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
21112 tree_priority_map_marked_p): Remove.
21113 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
21114 * lto-streamer-out.c (hash_tree): Do not hash priorities.
21115 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
21116 not output priorities.
21117 (pack_ts_function_decl_value_fields): Likewise.
21118 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
21119 not input priorities.
21120 (unpack_ts_function_decl_value_fields): Likewise.
21121 * symtab.c (symbol_priority_map): Declare.
21122 (init_priority_hash): Declare.
21123 (symtab_unregister_node): Unregister from priority hash, too.
21124 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
21126 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
21127 (symbol_priority_info): New function.
21128 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
21130 * tree-core.h (tree_priority_map): Remove.
21132 2014-06-20 Jakub Jelinek <jakub@redhat.com>
21134 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
21135 0xff to uint64_t before shifting it up.
21137 2014-06-20 Julian Brown <julian@codesourcery.com>
21138 Chung-Lin Tang <cltang@codesourcery.com>
21140 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
21141 TARGET_THUMB1_ONLY. Add comments.
21143 2014-06-19 Tom de Vries <tom@codesourcery.com>
21145 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
21146 return type to void.
21147 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
21149 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
21151 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
21152 as "move", from depends_on.
21154 2014-06-19 Terry Guo <terry.guo@arm.com>
21156 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
21159 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
21161 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
21163 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
21165 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
21168 * config/sh/sh.c (prepare_move_operands): Don't process TLS
21169 addresses here if reload in progress or completed.
21171 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
21173 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
21174 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
21175 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
21176 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
21177 (mips_register_priority): New function that implements the target
21178 hook TARGET_REGISTER_PRIORITY.
21179 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
21180 (mips_lra_p): Likewise for TARGET_LRA_P.
21181 (TARGET_REGISTER_PRIORITY): Define macro.
21182 (TARGET_SPILL_CLASS): Likewise.
21183 (TARGET_LRA_P): Likewise.
21184 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
21186 (REG_CLASS_NAMES): Likewise.
21187 (REG_CLASS_CONTENTS): Likewise.
21188 (BASE_REG_CLASS): Use M16_SP_REGS.
21189 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
21190 New set attribute to enable alternatives depending on the register
21192 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
21193 (*lea64): Disable pattern for MIPS16.
21194 * config/mips/mips.opt (mlra): New option.
21196 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
21198 * lra-constraints.c (base_to_reg): New function.
21199 (process_address): Use new function.
21201 2014-06-18 Tom de Vries <tom@codesourcery.com>
21203 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
21204 * config/aarch64/aarch64.c
21205 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
21206 (aarch64_emit_call_insn): New function.
21207 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
21209 * config/aarch64/aarch64.md (define_expand "call_internal")
21210 (define_expand "call_value_internal", define_expand "sibcall_internal")
21211 (define_expand "sibcall_value_internal"): New.
21212 (define_expand "call", define_expand "call_value")
21213 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
21214 expand variant and aarch64_emit_call_insn.
21216 2014-06-18 Radovan Obradovic <robradovic@mips.com>
21217 Tom de Vries <tom@codesourcery.com>
21219 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
21220 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
21222 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
21223 clobbers to CALL_INSN_FUNCTION_USAGE.
21224 (define_expand "sibcall_internal")
21225 (define_expand "sibcall_value_internal"): New.
21226 (define_expand "call", define_expand "call_value"): Add argument to
21227 arm_emit_call_insn.
21228 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
21229 (define_expand "sibcall_value"): Use sibcall_value_internal and
21230 arm_emit_call_insn.
21232 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21234 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
21236 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21238 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
21241 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21243 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
21244 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
21245 annotations. Fix DWARF information.
21247 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21249 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
21250 __udivmoddi4, and fixups for negative operands.
21252 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21254 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
21256 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21258 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
21261 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21263 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
21266 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21268 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
21269 describing register usage on function entry and exit.
21271 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21273 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
21274 (__aeabi_ldivmod): Fix whitespace.
21276 2014-06-18 Andreas Schwab <schwab@suse.de>
21278 * doc/md.texi (Standard Names): Use @itemx for grouped items.
21279 Remove blank line after @item.
21281 2014-06-18 Richard Henderson <rth@redhat.com>
21284 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
21286 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
21288 * config/arm/arm.c (neon_vector_mem_operand): Allow register
21289 POST_MODIFY for neon loads and stores.
21290 (arm_print_operand): Output post-index register for neon loads and
21293 2014-06-18 Richard Biener <rguenther@suse.de>
21295 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
21297 2014-06-18 Richard Biener <rguenther@suse.de>
21299 * tree-pass.h (make_pass_dce_loop): Remove.
21300 * passes.def: Replace pass_dce_loop with pass_dce.
21301 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
21302 changed free niter estimates and reset the scev cache.
21303 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
21304 make_pass_dce_loop): Remove.
21305 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
21306 (fini_copy_prop): Return whether something changed. Always
21307 let substitute_and_fold perform DCE and free niter estimates
21308 and reset the scev cache if so.
21309 (execute_copy_prop): If sth changed schedule cleanup-cfg.
21310 (pass_data_copy_prop): Do not unconditionally schedule
21311 cleanup-cfg or update-ssa.
21313 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
21315 PR tree-optimization/61518
21316 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
21317 reduction var is used in reduction stmt or phi-function only.
21319 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21321 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
21323 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
21325 PR tree-optimization/61517
21326 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
21327 whose rhs's first tree is the source expression instead of the
21329 (find_bswap_or_nop): Likewise.
21330 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
21331 gimple stmt whose rhs's first tree is the source. In the memory source
21332 case, move the stmt to be replaced close to one of the original load to
21333 avoid the problem of a store between the load and the stmt's original
21335 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
21338 2014-06-18 Andreas Schwab <schwab@suse.de>
21340 PR rtl-optimization/54555
21341 * postreload.c (move2add_use_add2_insn): Substitute
21342 STRICT_LOW_PART only if it is cheaper.
21344 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
21346 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
21347 Do not use unspec as call operand. Use memory_operand instead of
21348 memory_nox32_operand and add "m" operand constraint. Disable
21349 pattern for TARGET_X32.
21350 (*sibcall_pop_memory): Ditto.
21351 (*sibcall_value_memory): Ditto.
21352 (*sibcall_value_pop_memory): Ditto.
21353 (sibcall peepholes): Merge SImode and DImode patterns using
21354 W mode iterator. Use memory_operand instead of memory_nox32_operand.
21355 Disable pattern for TARGET_X32. Check if eliminated register is
21356 really dead after call insn. Generate call RTX without unspec operand.
21357 (sibcall_value peepholes): Ditto.
21358 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
21359 instead of memory_nox32_operand. Check if eliminated register is
21360 really dead after call insn. Generate call RTX without unspec operand.
21361 (sibcall_value_pop peepholes): Ditto.
21362 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
21364 2014-06-18 Terry Guo <terry.guo@arm.com>
21367 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
21370 2014-06-18 Olivier Hainque <hainque@adacore.com>
21372 * tree-core.h (tree_block): Add an "end_locus" field, allowing
21373 memorization of the end of block source location.
21374 * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
21375 * gimplify.c (gimplify_bind_expr): Propagate the block start and
21376 end source location info we have on the block entry/exit code we
21379 2014-06-18 Richard Biener <rguenther@suse.de>
21381 * common.opt (fssa-phiopt): New option.
21382 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
21384 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
21385 * doc/invoke.texi (-fssa-phiopt): Document.
21387 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21389 * genattrtab.c (n_bypassed): New variable.
21390 (process_bypasses): Initialise n_bypassed.
21391 Count number of bypassed reservations.
21392 (make_automaton_attrs): Allocate space for bypassed reservations
21393 rather than number of bypasses.
21395 2014-06-18 Richard Biener <rguenther@suse.de>
21397 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
21398 we propagated anything.
21399 (substitute_and_fold_dom_walker::before_dom_children): Something
21400 changed if we propagated into PHI arguments.
21401 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
21404 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
21406 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
21408 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
21409 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
21410 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
21411 Introduces alternative way of loads group permutaions.
21412 (vect_transform_grouped_load): Try alternative way of permutations.
21414 2014-06-18 Jakub Jelinek <jakub@redhat.com>
21416 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
21417 changed in ORT_TARGET region, don't jump to do_outer.
21418 (struct gimplify_adjust_omp_clauses_data): New type.
21419 (gimplify_adjust_omp_clauses_1): Adjust for data being
21420 a struct gimplify_adjust_omp_clauses_data pointer instead
21421 of tree *. Pass pre_p as a new argument to
21422 lang_hooks.decls.omp_finish_clause hook.
21423 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
21424 splay_tree_foreach to pass both list_p and pre_p.
21425 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
21426 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
21427 gimplify_adjust_omp_clauses callers.
21428 * langhooks.c (lhd_omp_finish_clause): New function.
21429 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
21430 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
21431 * langhooks.h (struct lang_hooks_for_decls): Add a new
21432 gimple_seq * argument to omp_finish_clause hook.
21433 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
21434 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
21435 (scan_omp_parallel, lower_omp_for): When adding
21436 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
21437 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
21438 * tree-nested.c (convert_nonlocal_omp_clauses,
21439 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
21440 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
21442 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
21444 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
21445 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
21447 2014-06-17 Xinliang David Li <davidxl@google.com>
21449 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
21450 * passes.c (pass_init_dump_file): Do not set initialize
21451 flag to false unconditionally.
21453 2014-06-17 Richard Biener <rguenther@suse.de>
21455 * genopinit.c (main): Use vec<>::qsort method.
21456 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
21458 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
21460 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
21462 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
21463 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
21464 (mips_move_to_gpr_cost): Remove ST_REGS case.
21465 (mips_move_from_gpr_cost): Likewise.
21466 (mips_register_move_cost): Likewise.
21467 (mips_secondary_reload_class): Likewise.
21469 2014-06-17 Richard Biener <rguenther@suse.de>
21471 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
21472 (pass_all_optimizations): Move 3rd copy-prop pass from after
21473 fre to before ifcombine/phiopt.
21475 2014-06-17 Richard Biener <rguenther@suse.de>
21477 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
21478 and allow all blocks to be forwarders.
21480 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
21483 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
21484 variable 'size'; calculate 'size' right in the front; use
21485 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
21486 pcum->aapcs_stack_words.
21488 2014-06-17 Nick Clifton <nickc@redhat.com>
21490 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
21491 (umulhi3, mulsidi3, umulsidi3): Likewise.
21493 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
21495 PR middle-end/61508
21496 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
21497 check for section name.
21499 2014-06-17 Richard Biener <rguenther@suse.de>
21501 * tree-ssa-propagate.c: Include domwalk.h.
21502 (substitute_and_fold): Outline main worker into a domwalker ...
21503 (substitute_and_fold_dom_walker::before_dom_children): ... here.
21504 Schedule stmts we can fully propagate for removal. Remove
21506 (substitute_and_fold): Apply a dominator walk to perform
21507 substitution. Process stmts scheduled for removal here.
21509 2014-06-17 Richard Biener <rguenther@suse.de>
21511 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
21512 of PHI node moving.
21514 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
21516 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
21517 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
21518 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
21519 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
21520 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
21522 (get_fpscr) : Likewise.
21524 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
21526 PR rtl-optimization/61325
21527 * lra-constraints.c (valid_address_p): Add forward declaration.
21528 (simplify_operand_subreg): Check address validity before and after
21529 alter_reg of memory subreg.
21531 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
21533 * config/i386/i386.c (decide_alg): Correctly handle
21534 maximum size of stringop algorithm.
21536 2014-06-16 Yury Gribov <y.gribov@samsung.com>
21538 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
21540 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
21542 PR rtl-optimization/61522
21543 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
21545 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
21548 * symtab.c (symtab_node::reset_section): New method.
21549 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21551 * cgraph.h (reset_section): Declare.
21552 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21553 do not consider comdat locals.
21554 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21556 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21557 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21558 reset sections of symbols dragged out of the comdats.
21559 (function_and_variable_visibility): Reset sections of
21562 2014-06-16 Richard Biener <rguenther@suse.de>
21564 PR tree-optimization/61482
21565 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
21566 [-INF(OVF), +INF(OVF)] range.
21568 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
21570 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
21571 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
21572 handling 32-bit multiplication.
21574 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
21576 PR middle-end/61430
21577 * lra-lives.c (process_bb_lives): Skip creating copy during
21578 insn scan when src/dest has constrained to same regno.
21580 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
21582 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
21583 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
21585 2014-06-16 Yury Gribov <y.gribov@samsung.com>
21587 * asan.c (check_func): New function.
21588 (maybe_create_ssa_name): Likewise.
21589 (build_check_stmt_with_calls): Likewise.
21590 (use_calls_p): Likewise.
21591 (report_error_func): Change interface.
21592 (build_check_stmt): Allow non-integer lengths; add support
21594 (asan_instrument): Likewise.
21595 (instrument_mem_region_access): Moved code to build_check_stmt.
21596 (instrument_derefs): Likewise.
21597 (instrument_strlen_call): Likewise.
21598 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
21599 * doc/invoke.texi: Describe new parameter.
21600 * params.def: Define new parameter.
21601 * params.h: Likewise.
21602 * sanitizer.def: Describe new builtins.
21604 2014-06-16 Richard Biener <rguenther@suse.de>
21606 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21607 Make all defs available at the end.
21608 (eliminate): If we remove a PHI node schedule cfg-cleanup.
21610 2014-06-18 Jakub Jelinek <jakub@redhat.com>
21613 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
21615 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
21618 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
21619 initialization. Replace remaining use of uid.
21621 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
21623 * c-family/c-common.c (handle_tls_model_attribute): Use
21624 set_decl_tls_model.
21625 * c-family/c-common.c (handle_tls_model_attribute): Use
21626 set_decl_tls_model.
21627 * cgraph.h (struct varpool_node): Add tls_model.
21628 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
21629 * tree.h (DECL_TLS_MODEL): Update.
21630 (DECL_THREAD_LOCAL_P): Check that variable is static.
21631 (decl_tls_model): Declare.
21632 (set_decl_tls_model): Declare.
21633 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
21634 set symbol prorperties.
21635 (get_emutls_init_templ_addr): Cleanup.
21636 (new_emutls_decl): Update.
21637 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
21638 (lto_input_varpool_node): Likewise.
21639 * lto-streamer-out.c (hash_tree): Likewise.
21640 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
21641 not stream DECL_TLS_MODEL.
21642 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
21643 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
21645 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21647 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
21649 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21651 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
21652 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
21654 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
21655 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
21656 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
21657 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
21658 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
21659 (df_get_artificial_defs, df_get_artificial_uses)
21660 (df_single_def, df_single_use): Update accordingly.
21661 (df_refs_chain_dump): Take the first element in a linked list as
21662 parameter, rather than a pointer to an array of pointers.
21663 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
21664 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
21665 (df_chain_create_bb_process_use): Likewise.
21666 (df_md_bb_local_compute_process_def): Likewise.
21667 * fwprop.c (process_defs, process_uses): Likewise.
21668 (register_active_defs, update_uses): Likewise.
21669 (forward_propagate_asm): Update for new df_ref linking.
21670 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
21671 (df_null_ref_rec, df_null_mw_rec): Likewise.
21672 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
21674 (df_scan_free_bb_info): Remove check for null artificial_defs.
21675 (df_install_ref_incremental): Adjust for new df_ref linking.
21676 Use a single-element insertion rather than a full sort.
21677 (df_ref_chain_delete_du_chain): Take the first element
21678 in a linked list as parameter, rather than a pointer to an array of
21680 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
21681 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
21682 (df_insn_info_delete): Remove check for null defs and call to
21683 df_scan_free_mws_vec.
21684 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
21685 null rather than df_null_*_rec.
21686 (df_insn_rescan_debug_internal): Likewise, and update null
21687 checks in the same way. Remove check for null defs.
21688 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
21689 Move a single element rather doing a full sort.
21690 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
21692 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
21693 Initialize df_ref and df_mw_hardreg lists to null rather than
21695 (df_ref_compare): Take df_refs as parameter, transferring the
21696 old interface to...
21697 (df_ref_ptr_compare): ...this new function.
21698 (df_sort_and_compress_refs): Update accordingly.
21699 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
21700 old interface to...
21701 (df_mw_ptr_compare): ...this new function.
21702 (df_sort_and_compress_mws): Update accordingly.
21703 (df_install_refs, df_install_mws): Return a linked list rather than
21704 an array of pointers.
21705 (df_refs_add_to_chains): Assert that old lists are empty rather
21707 (df_insn_refs_verify): Don't handle null defs speciailly.
21708 * web.c (union_match_dups): Update for new df_ref linking.
21710 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21712 * df.h (df_ref_create, df_ref_remove): Delete.
21713 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
21714 (df_ref_remove): Likewise.
21716 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21718 * df.h (df_single_def, df_single_use): New functions.
21719 * ira.c (find_moveable_pseudos): Use them.
21721 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21723 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
21724 * df-problems.c (df_note_bb_compute): Use it.
21725 * regstat.c (regstat_bb_compute_ri): Likewise.
21727 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21729 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
21730 * cse.c (cse_extended_basic_block): Use them.
21731 * dce.c (mark_artificial_use): Likewise.
21732 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
21733 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21734 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
21735 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
21736 (df_simulate_initialize_backwards): Likewise.
21737 (df_simulate_finalize_backwards): Likewise.
21738 (df_simulate_initialize_forwards): Likewise.
21739 (df_md_simulate_artificial_defs_at_top): Likewise.
21740 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21741 * regrename.c (init_rename_info): Likewise.
21742 * regstat.c (regstat_bb_compute_ri): Likewise.
21743 (regstat_bb_compute_calls_crossed): Likewise.
21745 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
21747 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
21748 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
21749 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
21750 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
21751 * combine.c (create_log_links): Likewise.
21752 * compare-elim.c (find_flags_uses_in_insn): Likewise.
21753 (try_eliminate_compare): Likewise.
21754 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
21755 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
21756 (remove_reg_equal_equiv_notes_for_defs): Likewise.
21757 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
21758 (word_dce_process_block, dce_process_block): Likewise.
21759 * ddg.c (def_has_ccmode_p): Likewise.
21760 * df-core.c (df_bb_regno_first_def_find): Likewise.
21761 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
21762 * df-problems.c (df_rd_simulate_one_insn): Likewise.
21763 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21764 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
21765 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
21766 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
21767 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
21768 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
21769 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
21770 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
21771 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21772 * fwprop.c (local_ref_killed_between_p): Likewise.
21773 (all_uses_available_at, free_load_extend): Likewise.
21774 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
21775 * hw-doloop.c (scan_loop): Likewise.
21776 * ifcvt.c (dead_or_predicable): Likewise.
21777 * init-regs.c (initialize_uninitialized_regs): Likewise.
21778 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
21779 (process_bb_node_lives): Likewise.
21780 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
21781 (find_moveable_pseudos): Likewise.
21782 * loop-invariant.c (check_dependencies, record_uses): Likewise.
21783 * recog.c (peep2_find_free_register): Likewise.
21784 * ree.c (get_defs): Likewise.
21785 * regstat.c (regstat_bb_compute_ri): Likewise.
21786 (regstat_bb_compute_calls_crossed): Likewise.
21787 * sched-deps.c (find_inc, find_mem): Likewise.
21788 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
21789 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
21790 * shrink-wrap.c (requires_stack_frame_p): Likewise.
21791 (prepare_shrink_wrap): Likewise.
21792 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
21793 * web.c (union_defs, pass_web::execute): Likewise.
21794 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
21795 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
21797 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
21799 * lra-assign.c (assign_by_spills): Add code to assign vector regs
21800 to inheritance pseudos.
21801 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
21803 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
21806 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
21807 (BU_MISC_2): Rename to ...
21808 (BU_LDBL128_2): ... this.
21809 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
21810 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
21811 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
21812 RS6000_BTM_LDBL128.
21813 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
21814 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
21815 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
21816 (unpacktf_1): Likewise.
21817 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
21818 (__builtin_longdouble_dw1): Likewise.
21819 * doc/sourcebuild.texi (longdouble128): Document.
21821 2014-06-13 Jeff Law <law@redhat.com>
21823 PR rtl-optimization/61094
21824 PR rtl-optimization/61446
21825 * ree.c (combine_reaching_defs): Get the mode for the copy from
21826 the extension insn rather than the defining insn.
21828 2014-06-13 Dehao Chen <dehao@google.com>
21830 * dwarf2out.c (add_linkage_name): Emit more linkage name.
21832 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
21834 * doc/install.texi (--enable-linker-plugin-configure-flags)
21835 (--enable-linker-plugin-flags): Document new flags.
21837 2014-06-13 Martin Jambor <mjambor@suse.cz>
21840 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
21841 cache_token if returning early.
21843 2014-06-13 Nick Clifton <nickc@redhat.com>
21845 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
21846 requested alignment is active.
21847 (LABEL_ALIGN): Likewise.
21848 (LOOP_ALIGN): Likewise.
21850 2014-06-13 Richard Biener <rguenther@suse.de>
21852 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21853 Rewrite to propagate the VN result into all uses where
21854 possible and to remove stmts becoming dead because of that.
21855 (eliminate): Generalize stmt removal handling, remove in
21856 reverse dominator order to support proper debug stmt
21857 generation. Update stmts before removing stmts.
21858 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
21860 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
21862 PR tree-optimization/61375
21863 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
21864 symbolic number cannot be represented in an uint64_t.
21865 (find_bswap_or_nop_1): Likewise.
21867 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
21869 * symtab.c (symtab_node::reset_section): New method.
21870 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21872 * cgraph.h (reset_section): Declare.
21873 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21874 do not consider comdat locals.
21875 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21877 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21878 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21879 reset sections of symbols dragged out of the comdats.
21880 (function_and_variable_visibility): Reset sections of
21883 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
21885 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
21886 to use symtab and decl_binds_to_current_def_p
21887 * tree-vectorizer.c (increase_alignment): Increase alignment
21888 of alias target, too.
21890 2014-06-12 Jakub Jelinek <jakub@redhat.com>
21892 PR middle-end/61486
21893 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
21894 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
21895 if outer combined construct is distribute.
21896 (gimplify_omp_for): For OMP_DISTRIBUTE set
21897 gimplify_omp_ctxp->distribute.
21898 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
21899 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
21900 mapping into decl map.
21902 2014-06-12 Jason Merrill <jason@redhat.com>
21904 * common.opt (fabi-version): Change default to 0.
21906 2014-06-12 Jason Merrill <jason@redhat.com>
21908 * toplev.c (process_options): Reject -fabi-version=1.
21910 2014-06-12 Jeff Law <law@redhat.com>
21912 PR tree-optimization/61009
21913 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
21914 value when we stop processing a block due to problematic PHIs.
21916 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
21918 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
21919 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
21920 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
21921 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
21922 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
21923 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
21924 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
21925 are not in the spec.
21927 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
21930 * config/aarch64/aarch64-modes.def: Add V1DFmode.
21931 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
21934 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
21936 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
21938 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
21941 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
21942 loading from address spaces.
21944 2014-06-12 Martin Liska <mliska@suse.cz>
21947 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
21948 statement is reachable.
21950 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
21952 * symtab.c (section_hash): New hash.
21953 (symtab_unregister_node): Clear section before freeing.
21954 (hash_section_hash_entry): New haser.
21955 (eq_sections): New function.
21956 (symtab_node::set_section_for_node): New method.
21957 (set_section_1): Update.
21958 (symtab_node::set_section): Take string instead of tree as parameter.
21959 (symtab_resolve_alias): Update.
21960 * cgraph.h (section_hash_entry_d): New structure.
21961 (section_hash_entry): New typedef.
21962 (cgraph_node): Change comdat_group_ to x_comdat_group,
21963 change section_ to x_section and turn into section_hash_entry;
21964 update accestors; put set_section_for_node offline.
21965 * tree.c (decl_section_name): Turn into string.
21966 (set_decl_section_name): Change parameter to be string.
21967 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
21968 * sdbout.c (sdbout_one_type): Update.
21969 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
21970 * varasm.c (IN_NAMED_SECTION, get_named_section,
21971 resolve_unique_section, hot_function_section, get_named_text_section,
21972 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
21973 make_decl_rtl, default_unique_section): Update.
21974 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
21975 (c6x_elf_unique_section): Update.
21976 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
21977 * config/pa/pa.c (pa_function_section): Update.
21978 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
21979 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
21980 * config/arc/arc.c (arc_in_small_data_p): Update.
21981 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
21982 * config/mcore/mcore.c (mcore_unique_section): Update.
21983 * config/mips/mips.c (mips16_build_function_stub): Update.
21984 (mips16_build_call_stub): Update.
21985 (mips_function_rodata_section): Update.
21986 (mips_in_small_data_p): Update.
21987 * config/score/score.c (score_in_small_data_p): Update.
21988 * config/rx/rx.c (rx_in_small_data): Update.
21989 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
21990 (rs6000_xcoff_asm_named_section): Update.
21991 (rs6000_xcoff_unique_section): Update.
21992 * config/frv/frv.c (frv_string_begins_with): Update.
21993 (frv_in_small_data_p): Update.
21994 * config/v850/v850.c (v850_encode_data_area): Update.
21995 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
21996 (bfin_handle_l1_data_attribute): Update.
21997 (bfin_handle_l2_attribute): Update.
21998 * config/mep/mep.c (mep_unique_section): Update.
21999 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
22001 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
22002 (h8300_handle_tiny_data_attribute): Update.
22003 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
22004 (m32r_in_small_data_p): Update.
22005 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
22006 * config/i386/i386.c (ix86_in_large_data_p): Update.
22007 * config/i386/winnt.c (i386_pe_unique_section): Update.
22008 * config/darwin.c (darwin_function_section): Update.
22009 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
22010 * tree-emutls.c (get_emutls_init_templ_addr): Update.
22011 (new_emutls_decl): Update.
22012 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
22013 input_varpool_node): Update.
22014 (ead_string_cst): Turn to ...
22015 (read_string): ... this one.
22016 * dwarf2out.c (secname_for_decl): Update.
22017 * asan.c (asan_protect_global): Update.
22019 2014-06-11 DJ Delorie <dj@redhat.com>
22021 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
22023 * config/rx/rx.c (rx_option_override): Likewise.
22024 (rx_align_for_label): Likewise.
22026 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
22028 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
22030 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
22033 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22035 * common.md: New file.
22036 * doc/md.texi: Update description of generic, machine-independent
22038 * config/s390/constraints.md (e): Delete.
22039 * Makefile.in (md_file): Include common.md.
22040 * config/m32c/t-m32c (md_file): Likewise.
22041 * genpreds.c (general_mem): New array.
22042 (generic_constraint_letters): Remove constraints now defined by
22044 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
22045 Allow the first character to be '<' or '>' as well.
22046 * genoutput.c (general_mem): New array.
22047 (indep_constraints): Remove constraints now defined by common.md.
22048 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
22049 Remove special handling of 'm'.
22050 * ira-costs.c (record_reg_classes): Remove special handling of
22051 constraints now defined by common.md.
22052 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
22053 * ira-lives.c (single_reg_class): Likewise.
22054 (ira_implicitly_set_insn_hard_regs): Likewise.
22055 * lra-constraints.c (reg_class_from_constraints): Likewise.
22056 (process_alt_operands, process_address, curr_insn_transform): Likewise.
22057 * postreload.c (reload_cse_simplify_operands): Likewise.
22058 * reload.c (push_secondary_reload, scratch_reload_class)
22059 (find_reloads, alternative_allows_const_pool_ref): Likewise.
22060 * reload1.c (maybe_fix_stack_asms): Likewise.
22061 * targhooks.c (default_secondary_reload): Likewise.
22062 * stmt.c (parse_output_constraint): Likewise.
22063 * recog.c (preprocess_constraints): Likewise.
22064 (constrain_operands, peep2_find_free_register): Likewise.
22065 (asm_operand_ok): Likewise, but add a comment saying why 'o'
22066 must be handled specially.
22068 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22070 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
22071 * genpreds.c (have_const_dbl_constraints): Delete.
22072 (add_constraint): Don't set it.
22073 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
22074 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
22075 constraints using the lookup_constraint logic.
22076 * ira-lives.c (single_reg_class): Likewise.
22077 * ira.c (ira_setup_alts): Likewise.
22078 * lra-constraints.c (process_alt_operands): Likewise.
22079 * recog.c (asm_operand_ok, constrain_operands): Likewise.
22080 * reload.c (find_reloads): Likewise.
22082 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22084 * genpreds.c (const_int_start, const_int_end): New variables.
22085 (choose_enum_order): Output CONST_INT constraints before memory
22087 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
22089 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
22090 * ira.c (ira_setup_alts): Likewise.
22091 * lra-constraints.c (process_alt_operands): Likewise.
22092 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
22093 * reload.c (find_reloads): Likewise.
22095 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22097 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
22098 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
22099 * recog.c (preprocess_constraints): Update accordingly.
22101 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22103 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
22104 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
22105 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
22106 * genpreds.c (print_type_tree): New function.
22107 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
22108 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
22109 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
22110 Write out enum constraint_type and get_constraint_type.
22111 * lra-constraints.c (satisfies_memory_constraint_p): Take a
22112 constraint_num rather than a constraint string.
22113 (satisfies_address_constraint_p): Likewise.
22114 (reg_class_from_constraints): Avoid old constraint macros.
22115 (process_alt_operands, process_address_1): Likewise.
22116 (curr_insn_transform): Likewise.
22117 * ira-costs.c (record_reg_classes): Likewise.
22118 (record_operand_costs): Likewise.
22119 * ira-lives.c (single_reg_class): Likewise.
22120 (ira_implicitly_set_insn_hard_regs): Likewise.
22121 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
22122 * postreload.c (reload_cse_simplify_operands): Likewise.
22123 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
22124 (constrain_operands, peep2_find_free_register): Likewise.
22125 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
22126 (find_reloads, alternative_allows_const_pool_ref): Likewise.
22127 * reload1.c (maybe_fix_stack_asms): Likewise.
22128 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
22129 * targhooks.c (default_secondary_reload): Likewise.
22130 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
22131 to EXTRA_CONSTRAINT_STR.
22132 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
22134 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22136 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
22137 (write_constraint_satisfied_p_array): ...this new function.
22138 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
22140 (write_insn_preds_c): Update accordingly.
22142 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22144 * genpreds.c (write_lookup_constraint): Rename to...
22145 (write_lookup_constraint_1): ...this.
22146 (write_lookup_constraint_array): New function.
22147 (write_tm_preds_h): Define lookup_constraint as an inline function
22148 that uses write_lookup_constraint_array where possible.
22149 (write_insn_preds_c): Update for the changes above.
22151 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
22153 * doc/md.texi (regclass_for_constraint): Rename to...
22154 (reg_class_for_constraint): ...this.
22155 * genpreds.c (num_constraints, enum_order, register_start)
22156 (register_end, satisfied_start, memory_start, memory_end)
22157 (address_start, address_end): New variables.
22158 (add_constraint): Count the number of constraints.
22159 (choose_enum_order): New function.
22160 (write_enum_constraint_num): Iterate over enum_order.
22161 (write_regclass_for_constraint): Rename to...
22162 (write_reg_class_for_constraint_1): ...this and update output
22164 (write_constraint_satisfied_p): Rename to...
22165 (write_constraint_satisfied_p_1): ...this and update output
22166 accordingly. Do nothing if all extra constraints are register
22168 (write_insn_extra_memory_constraint): Delete.
22169 (write_insn_extra_address_constraint): Delete.
22170 (write_range_function): New function.
22171 (write_tm_preds_h): Define constraint_satisfied_p and
22172 reg_class_for_constraint as inline functions that do a range check
22173 before calling the out-of-line function. Use write_range_function
22174 to implement insn_extra_{register,memory,address}_constraint,
22175 the first of which is new.
22176 (write_insn_preds_c): Update after above changes to write_* functions.
22177 (main): Call choose_enum_order.
22179 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
22181 PR tree-optimization/61306
22182 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
22183 expression instead of its size.
22184 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
22185 false to prevent optimization when the result is unpredictable due to
22186 arithmetic right shift of signed type with highest byte is set.
22187 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
22188 (init_symbolic_number): Likewise.
22189 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
22190 when the result is unpredictable due to sign extension.
22192 2014-06-11 Terry Guo <terry.guo@arm.com>
22194 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
22195 (*thumb1_addsi3): Ditto.
22196 (*thumb_subdi3): Ditto.
22197 (thumb1_subsi3_insn): Ditto.
22198 (*thumb_mulsi3): Ditto.
22199 (*thumb_mulsi3_v6): Ditto.
22200 (*thumb1_andsi3_insn): Ditto.
22201 (thumb1_bicsi3): Ditto.
22202 (*thumb1_iorsi3_insn): Ditto.
22203 (*thumb1_xorsi3_insn): Ditto.
22204 (*thumb1_ashlsi3): Ditto.
22205 (*thumb1_ashrsi3): Ditto.
22206 (*thumb1_lshrsi3): Ditto.
22207 (*thumb1_rotrsi3): Ditto.
22208 (*thumb1_negdi2): Ditto.
22209 (*thumb1_negsi2): Ditto.
22210 (*thumb1_abssi2): Ditto.
22211 (*thumb1_neg_abssi2): Ditto.
22212 (*thumb1_one_cmplsi2): Ditto.
22213 (*thumb1_zero_extendhisi2): Ditto.
22214 (*thumb1_zero_extendqisi2): Ditto.
22215 (*thumb1_zero_extendqisi2_v6): Ditto.
22216 (thumb1_extendhisi2): Ditto.
22217 (thumb1_extendqisi2): Ditto.
22218 (*thumb1_movdi_insn): Ditto.
22219 (*thumb1_movsi_insn): Ditto.
22220 (*thumb1_movhi_insn): Ditto.
22221 (thumb_movhi_clobber): Ditto.
22222 (*thumb1_movqi_insn): Ditto.
22223 (*thumb1_movhf): Ditto.
22224 (*thumb1_movsf_insn): Ditto.
22225 (*thumb_movdf_insn): Ditto.
22226 (movmem12b): Ditto.
22228 (cbranchqi4): Ditto.
22229 (cbranchsi4_insn): Ditto.
22230 (cbranchsi4_scratch): Ditto.
22231 (*negated_cbranchsi4): Ditto.
22232 (*tbit_cbranch): Ditto.
22233 (*tlobits_cbranch): Ditto.
22234 (*tstsi3_cbranch): Ditto.
22235 (*cbranchne_decr1): Ditto.
22236 (*addsi3_cbranch): Ditto.
22237 (*addsi3_cbranch_scratch): Ditto.
22238 (*thumb_cmpdi_zero): Ditto.
22239 (cstoresi_eq0_thumb1): Ditto.
22240 (cstoresi_ne0_thumb1): Ditto.
22241 (*cstoresi_eq0_thumb1_insn): Ditto.
22242 (*cstoresi_ne0_thumb1_insn): Ditto.
22243 (cstoresi_nltu_thumb1): Ditto.
22244 (cstoresi_ltu_thumb1): Ditto.
22245 (thumb1_addsi3_addgeu): Ditto.
22246 (*thumb_jump): Ditto.
22247 (*call_reg_thumb1_v5): Ditto.
22248 (*call_reg_thumb1): Ditto.
22249 (*call_value_reg_thumb1_v5): Ditto.
22250 (*call_value_reg_thumb1): Ditto.
22251 (*call_insn): Ditto.
22252 (*call_value_insn): Ditto.
22253 (thumb1_casesi_internal_pic): Ditto.
22254 (thumb1_casesi_dispatch): Ditto.
22255 (*thumb1_indirect_jump): Ditto.
22256 (prologue_thumb1_interwork): Ditto.
22257 (*epilogue_insns): Ditto.
22258 (consttable_1): Ditto.
22259 (consttable_2): Ditto.
22260 (tablejump): Ditto.
22261 (*thumb1_tablejump): Ditto.
22262 (thumb_eh_return): Ditto.
22263 (define_peephole2): Two of them are thumb1 only and got moved into
22264 new file thumb1.md.
22265 (define_split): Six of them are thumb1 only and got moved into new
22267 * config/arm/thumb1.md: New file comprised of above thumb1 only
22270 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22272 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
22273 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
22275 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
22276 (aarch64_crc_builtin_datum): New struct.
22277 (aarch64_crc_builtin_data): New.
22278 (aarch64_init_crc32_builtins): New function.
22279 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
22280 (aarch64_crc32_expand_builtin): New.
22281 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
22282 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
22283 __ARM_FEATURE_CRC32 when appropriate.
22284 (TARGET_CRC32): Define.
22285 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
22286 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
22287 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
22288 (aarch64_<crc_variant>): New pattern.
22289 * config/aarch64/arm_acle.h: New file.
22290 * config/aarch64/iterators.md (CRC): New int iterator.
22291 (crc_variant, crc_mode): New int attributes.
22292 * doc/aarch64-acle-intrinsics.texi: New file.
22293 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
22294 Include aarch64-acle-intrinsics.texi.
22296 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
22298 * tree-vect-data-refs.c (vect_grouped_store_supported): New
22299 check for stores group of length 3.
22300 (vect_permute_store_chain): New permutations for stores group of
22302 * tree-vect-stmts.c (vect_model_store_cost): Change cost
22303 of vec_perm_shuffle for the new permutations.
22305 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
22307 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
22308 table rewriting temporarily on targets not supporting ONE_ONLY.
22310 2014-06-11 Richard Biener <rguenther@suse.de>
22312 PR middle-end/61437
22314 2014-06-04 Richard Biener <rguenther@suse.de>
22316 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
22317 TREE_PUBLIC and DECL_EXTERNAL decls.
22319 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
22321 * varasm.c (set_implicit_section): New function.
22322 (resolve_unique_section): Use it to set implicit section
22324 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
22325 (default_function_section): Likewise.
22326 (decl_binds_to_current_def_p): Constify argument.
22327 * varasm.h (decl_binds_to_current_def_p): Update prototype.
22328 * asan.c (asan_protect_global): Use
22329 symtab_get_node (decl)->implicit_section.
22330 * symtab.c (dump_symtab_base): Dump implicit sections.
22331 (verify_symtab_base): Verify sanity of sectoins and comdats.
22332 (symtab_resolve_alias): Alias share the section of its target.
22333 (set_section_1): New function.
22334 (symtab_node::set_section): Move here, recurse to aliases.
22335 (verify_symtab): Check for duplicated symtab lists.
22336 * tree-core.h (implicit_section_name_p): Remove.
22337 * tree-vect-data-refs.c: Include varasm.h.
22338 (vect_can_force_dr_alignment_p): Fix conditional on when
22339 decl bints to current definition; use
22340 symtab_get_node (decl)->implicit_section.
22341 * cgraph.c (cgraph_make_node_local_1): Fix section set.
22342 * cgraph.h (struct symtab_node): Add implicit_section.
22343 (set_section): Rename to ...
22344 (set_section_for_node): ... this one.
22345 (set_section): Declare.
22346 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
22347 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
22348 input_overwrite_node, input_varpool_node): Stream implicit_section.
22349 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
22350 removal; it will fail in LTO.
22352 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22354 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
22355 Change second alternative type to f_mcr.
22356 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
22357 and 12th alternatives' types to f_mcr and f_mrc.
22358 (*movdi_aarch64): Same for 12th and 13th alternatives.
22359 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
22360 (aarch64_movtilow_tilow): Change type to fmov.
22362 2014-06-10 Jiong Wang <jiong.wang@arm.com>
22364 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
22365 (aarch64_save_or_restore_callee_save_registers): Fix layout.
22367 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22369 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
22371 (aarch64_sqrdmulh_lane<mode>): Likewise.
22372 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
22373 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
22374 (aarch64_sqdmulh_laneq<mode>): New expander.
22375 (aarch64_sqrdmulh_laneq<mode>): Likewise.
22376 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
22377 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
22378 (aarch64_sqdmulh_lane<mode>): New expander.
22379 (aarch64_sqrdmulh_lane<mode>): Likewise.
22380 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
22381 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
22382 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
22383 (aarch64_sqdmlal_laneq<mode>): Likewise.
22384 (aarch64_sqdmlsl_lane<mode>): Likewise.
22385 (aarch64_sqdmlsl_laneq<mode>): Likewise.
22386 (aarch64_sqdmlal2_lane<mode>): Likewise.
22387 (aarch64_sqdmlal2_laneq<mode>): Likewise.
22388 (aarch64_sqdmlsl2_lane<mode>): Likewise.
22389 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
22390 (aarch64_sqdmull_lane<mode>): Likewise.
22391 (aarch64_sqdmull_laneq<mode>): Likewise.
22392 (aarch64_sqdmull2_lane<mode>): Likewise.
22393 (aarch64_sqdmull2_laneq<mode>): Likewise.
22395 2014-06-10 Richard Biener <rguenther@suse.de>
22397 PR tree-optimization/61438
22398 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
22399 (eliminate_dom_walker::before_dom_children): Only try to inhibit
22400 insertion of IVs if running PRE.
22401 (eliminate): Adjust.
22402 (pass_pre::execute): Likewise.
22403 (pass_fre::execute): Likewise.
22405 2014-06-10 Richard Biener <rguenther@suse.de>
22407 PR middle-end/61456
22408 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
22409 Do not use the main variant for the type comparison.
22410 (ncr_compar): Likewise.
22411 (nonoverlapping_component_refs_p): Likewise.
22413 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
22415 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
22416 REG_CFA_RESTORE mode.
22418 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
22420 * config/i386/i386.c (expand_vec_perm_pblendv): New.
22421 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
22422 expand_vec_perm_pblendv.
22424 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22426 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
22428 Simplify description of __crc32d and __crc32cd intrinsics.
22429 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
22432 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
22435 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
22436 * config.in: Regenerate.
22437 * configure: Likewise.
22439 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
22441 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
22443 (intersect_static_var_sets): Remove.
22444 (propagate): Do not prune local statics.
22446 2014-06-10 Jakub Jelinek <jakub@redhat.com>
22449 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
22450 Set lastprivate_firstprivate even if omp_private_outer_ref
22451 langhook returns true.
22452 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
22453 langhook, call unshare_expr on new_var and call
22454 build_outer_var_ref to get the last argument.
22456 2014-06-10 Marek Polacek <polacek@redhat.com>
22459 * doc/extend.texi: Add cindex for transparent_union.
22461 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
22463 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
22464 init_symbolic_number ().
22466 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
22468 PR middle-end/61141
22469 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
22470 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
22471 (verify_rtl_sharing): Likewise.
22473 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
22476 * tree.c (build_qualified_type): Use a canonical type for
22479 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22481 * config/arm/arm-modes.def: Remove XFmode.
22483 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
22486 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
22487 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
22488 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
22489 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
22490 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
22491 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
22492 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
22493 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
22494 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
22496 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
22498 * tree-core.h (tree_decl_with_vis): Remove section_name.
22500 2014-06-09 Kito Cheng <kito@0xlab.org>
22502 * ira.c (ira): Don't call init_caller_save if LRA enabled
22503 since LRA use its own infrastructure to handle that.
22505 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
22507 * symtab.c (dump_symtab_base): Update dumping.
22508 (symtab_make_decl_local): Clear only DECL_COMDAT.
22509 * tree-vect-data-refs.c (Check that variable is static before
22510 tampering with sections.
22511 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
22512 (cgraph_create_virtual_clone): Likewise.
22513 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
22514 (decl_section_name, set_decl_section_name): New accessors.
22515 (find_decls_types_r): Do not walk section name
22516 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
22517 (decl_comdat_group, decl_comdat_group_id): Constify.
22518 (decl_section_name, set_decl_section_name): Update.
22519 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
22520 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
22521 (cgraph_make_node_local_1): Clear section and comdat group.
22522 * cgraph.h (set_comdat_group): Sanity check.
22523 (get_section, set_section): New.
22524 * ipa-comdats.c (ipa_comdats): Use get_section.
22525 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
22526 * lto-streamer-out.c: Do not follow section names.
22527 * c-family/c-common.c (handle_section_attribute): Update.
22528 * lto-cgraph.c (lto_output_node): Output section.
22529 (lto_output_varpool_node): Likewise.
22530 (read_comdat_group): Rename to ...
22531 (read_identifier): ... this one.
22532 (read_string_cst): New function.
22533 (input_node, input_varpool_node): Input section names.
22534 * tree-emutls.c (get_emutls_init_templ_addr): Update.
22535 (new_emutls_decl): Update.
22536 (secname_for_decl): Check section names only of static vars.
22537 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
22538 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
22539 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
22540 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
22541 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
22542 * config/mcore/mcore.c (mcore_unique_section): Likewise.
22543 * config/mips/mips.c (mips16_build_function_stub): Likewise.
22544 * config/v850/v850.c (v850_insert_attributes): Likewise.
22545 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
22547 (h8300_handle_tiny_data_attribute): Likewise.
22548 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
22549 (bfin_handle_l2_attribute): Likewise.
22551 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
22553 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
22554 remove static initializer.
22556 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
22558 * varasm.c (use_blocks_for_decl_p): Check symbol table
22559 instead of alias attribute.
22560 (place_block_symbol): Recurse on aliases.
22562 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
22564 * ipa-visibility.c: Include varasm.h
22565 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
22567 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
22569 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
22570 outputting aliases.
22572 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
22574 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
22575 from test_insn into GGC space escape via SET_SRC.
22577 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
22579 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
22580 call statement, if any.
22581 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
22582 statements, if any. Tidy up.
22584 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
22587 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
22588 iterators, VSX_D that handles 64-bit types, and VSX_LE that
22589 handles swapping the two 64-bit double words on little endian
22590 systems. Include V1TImode and optionally TImode in VSX_LE so that
22591 these types are properly swapped. Change all of the insns and
22592 splits that do the 64-bit swaps to use VSX_LE.
22593 (vsx_le_perm_load_<mode>): Likewise.
22594 (vsx_le_perm_store_<mode>): Likewise.
22595 (splitters for little endian memory operations): Likewise.
22596 (vsx_xxpermdi2_le_<mode>): Likewise.
22597 (vsx_lxvd2x2_le_<mode>): Likewise.
22598 (vsx_stxvd2x2_le_<mode>): Likewise.
22600 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
22603 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
22604 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
22605 and corresponding splitters. Zero extend general register
22606 or memory input operand to XMM temporary. Enable for
22607 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
22608 (floatunssi<mode>2): Update expander predicate.
22610 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
22612 PR rtl-optimization/61325
22613 * lra-constraints.c (process_address_1): Check scale equal to one
22614 to prevent transformation: base + scale * index => base + new_reg.
22616 2014-06-06 Richard Biener <rguenther@suse.de>
22618 PR tree-optimization/59299
22619 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
22621 (nearest_common_dominator_of_uses): Likewise.
22622 (statement_sink_location): Adjust. Support sinking loads.
22624 2014-06-06 Martin Jambor <mjambor@suse.cz>
22626 * ipa-prop.c (get_place_in_agg_contents_list): New function.
22627 (build_agg_jump_func_from_list): Likewise.
22628 (determine_known_aggregate_parts): Renamed to
22629 determine_locally_known_aggregate_parts. Moved some functionality
22630 to the two functions above, removed bound checks.
22632 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
22634 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
22635 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
22636 (aarch64_progress_pointer): Likewise.
22637 (aarch64_copy_one_part_and_move_pointers): Likewise.
22638 (aarch64_expand_movmen): Likewise.
22639 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
22640 * config/aarch64/aarch64.md (movmem<mode>): New.
22642 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
22644 * targhooks.c (default_add_stmt_cost): Call target specific
22645 hook instead of default one.
22647 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
22649 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
22650 endianness instead of host endianness.
22651 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
22654 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
22657 * function.c (instantiate_decls): Process the saved static chain.
22658 (expand_function_start): If not optimizing, save the static chain
22660 * tree-nested.c (convert_all_function_calls): Always create the static
22661 chain for nested functions if not optimizing.
22663 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
22665 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
22667 2014-06-06 Richard Biener <rguenther@suse.de>
22669 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
22670 (construct_init_block): Likewise.
22671 (construct_exit_block): Likewise.
22672 (pass_expand::execute): Likewise.
22673 * graphite.c (graphite_transforms): Replace check for current_loops
22674 with a check for > 1 loops.
22675 (pass_graphite_transforms::execute): Adjust.
22676 * ipa-split.c (split_function): Remove check for current_loops.
22677 * omp-low.c (expand_parallel_call): Likewise.
22678 (expand_omp_for_init_counts): Likewise.
22679 (extract_omp_for_update_vars): Likewise.
22680 (expand_omp_for_generic): Likewise.
22681 (expand_omp_sections): Likewise.
22682 (expand_omp_target): Likewise.
22683 * tracer.c (tail_duplicate): Likewise.
22684 (pass_tracer::execute): Likewise.
22685 * trans-mem.c (expand_transaction): Likewise.
22686 * tree-complex.c (expand_complex_div_wide): Likewise.
22687 * tree-eh.c (lower_resx): Likewise.
22688 (cleanup_empty_eh_merge_phis): Likewise.
22689 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
22690 current_loops with a check for > 1 loops.
22691 (pass_predcom::execute): Adjust.
22692 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
22693 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
22694 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
22695 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
22696 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
22697 * tree-switch-conversion.c (process_switch): Likewise.
22698 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
22699 * tree-vrp.c (vrp_visit_phi_node): Likewise.
22700 (execute_vrp): Likewise.
22701 * ubsan.c (ubsan_expand_null_ifn): Likewise.
22703 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
22705 * rtl.h (insn_location): Declare.
22706 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
22707 with UNKNOWN_LOCATION.
22708 * emit-rtl.c (insn_location): New function.
22709 * final.c (notice_source_line): Check that the instruction has a
22710 location before retrieving it and use insn_location.
22711 * modulo-sched.c (loop_single_full_bb_p): Likewise.
22712 * print-rtl.c (print_rtx): Likewise.
22714 2014-06-06 Richard Biener <rguenther@suse.de>
22716 * passes.def: Move 2nd VRP pass before phi-only-cprop.
22718 2014-06-06 Christian Bruel <christian.bruel@st.com>
22720 PR tree-optimization/43934
22721 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
22724 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
22726 * ira-lives.c (single_reg_class): Add missing break. Explicitly
22727 return NO_REGS for extra address and memory constraints. Handle
22728 operands that match (or are equivalent to something that matches)
22729 extra constant constraints. Ignore other non-register operands.
22731 2014-06-06 Alan Modra <amodra@gmail.com>
22734 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
22735 * doc/tm.texi: Regenerate.
22736 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
22737 Use throughout in place of REG_PARM_STACK_SPACE.
22738 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
22739 "incoming" param. Pass to rs6000_function_parms_need_stack.
22740 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
22741 prototype_p when incoming. Use function decl when incoming
22742 to handle K&R style functions.
22743 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
22744 (INCOMING_REG_PARM_STACK_SPACE): Define.
22746 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
22749 * cfgexpand.c (expand_debug_expr): Use address space of nested
22750 TREE_TYPE for ADDR_EXPR and MEM_REF.
22752 2014-06-05 Jeff Law <law@redhat.com>
22754 PR tree-optimization/61289
22755 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
22756 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
22757 looking for those which match LHS. All callers changed.
22758 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
22759 parameters and code which manipulated them. All callers changed.
22760 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
22761 and DST_MAP parameters. Simplify invalidation code by just calling
22762 invalidate_equivalences. All callers changed.
22763 (thread_across_edge): Simplify now that we don't need to maintain
22764 the map of equivalences to invalidate.
22766 2014-06-05 Kai Tietz <ktietz@redhat.com>
22767 Richard Henderson <rth@redhat.com>
22770 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
22771 checking for !TARGET_X32.
22772 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
22773 (sibcall_intern): New define_insn, plus required peepholes.
22774 (sibcall_pop_intern): Likewise.
22775 (sibcall_value_intern): Likewise.
22776 (sibcall_value_pop_intern): Likewise.
22778 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
22780 * tree-inline.c (tree_function_versioning): Check DF info existence
22781 before accessing it.
22783 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22785 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
22787 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
22788 aarch64_frame hard_fp_offset and frame_size.
22789 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
22790 frame_size; remove original_frame_size.
22791 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
22792 (aarch64_initial_elimination_offset): Remove frame_size and
22793 offset. Use aarch64_frame frame_size.
22795 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22796 Jiong Wang <jiong.wang@arm.com>
22797 Renlin <renlin.li@arm.com>
22799 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
22800 initialization of R30 offset. Update offset. Iterate core
22801 regisers upto X30. Remove X29, X30 specific code.
22803 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22804 Jiong Wang <jiong.wang@arm.com>
22806 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
22807 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
22808 (aarch64_register_saved_on_entry): Adjust test.
22810 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22812 * config/aarch64/aarch64.h (machine_function): Move
22813 saved_varargs_size from here...
22814 (aarch64_frame): ... to here.
22816 * config/aarch64/aarch64.c (aarch64_expand_prologue)
22817 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
22818 (aarch64_initial_elimination_offset)
22819 (aarch64_setup_incoming_varargs): Adjust location of
22820 saved_varargs_size.
22822 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
22824 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
22827 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
22828 Prachi Godbole <Prachi.Godbole@imgtec.com>
22830 * config/mips/mips-cpus.def: Add definition for p5600. Updated
22831 mips32r5 entry to use PROCESSOR_P5600.
22832 * config/mips/mips-tables.opt: Regenerate.
22833 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
22834 * config/mips/mips.c (mips_fmadd_bypass): New function.
22835 (mips_rtx_cost_data): Add costs for p5600.
22836 (mips_issue_rate): Add support for p5600.
22837 (mips_multipass_dfa_lookahead): Likewise.
22838 * config/mips/mips.h (TUNE_P5600): New define.
22839 (TUNE_MACC_CHAINS): Add TUNE_P5600.
22840 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
22841 * config/mips/mips.md: Include p5600.md.
22842 (processor): Add p5600.
22843 * config/mips/p5600.md: New file.
22845 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
22847 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
22848 * config/i386/predicates.md (palignr_operand): New.
22849 Indicates if permutation is suitable for palignr instruction.
22851 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
22853 PR tree-optimization/61319
22854 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
22855 stmt belongs to loop.
22857 2014-06-05 Richard Biener <rguenther@suse.de>
22859 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
22860 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
22861 (lookup_tmp_var): Adjust.
22862 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
22864 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22866 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
22868 2014-06-05 Marek Polacek <polacek@redhat.com>
22871 * doc/invoke.texi: Document -Wlogical-not-parentheses.
22873 2014-06-04 Tom de Vries <tom@codesourcery.com>
22875 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
22878 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
22880 PR tree-optimization/61385
22881 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
22883 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
22885 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
22886 changed to use fatal_error.
22887 (main): Ensure lto_wrapper_cleanup is run atexit.
22889 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22891 * lra-constraints.c (valid_address_p): Move earlier in file.
22892 (address_eliminator): New structure.
22893 (satisfies_memory_constraint_p): New function.
22894 (satisfies_address_constraint_p): Likewise.
22895 (process_alt_operands, process_address, curr_insn_transform): Use them.
22897 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22899 * lra-int.h (lra_static_insn_data): Make operand_alternative a
22901 (target_lra_int, default_target_lra_int, this_target_lra_int)
22902 (op_alt_data): Delete.
22903 * lra.h (lra_init): Delete.
22904 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
22905 (init_insn_code_data_once): Remove op_alt_data handling.
22906 (finish_insn_code_data_once): Likewise.
22907 (init_op_alt_data): Delete.
22908 (get_static_insn_data): Initialize operand_alternative to null.
22909 (free_insn_recog_data): Cast operand_alternative before freeing it.
22910 (setup_operand_alternative): Take the operand_alternative as
22911 parameter and assume it isn't already cached in the static
22913 (lra_set_insn_recog_data): Update accordingly.
22914 (lra_init): Delete.
22915 * ira.c (ira_init): Don't call lra_init.
22916 * target-globals.h (this_target_lra_int): Declare.
22917 (target_globals): Remove lra_int.
22918 (restore_target_globals): Update accordingly.
22919 * target-globals.c: Don't include lra-int.h.
22920 (default_target_globals, save_target_globals): Remove lra_int.
22922 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22924 * recog.h (operand_alternative): Convert reg_class, reject,
22925 matched and matches into bitfields.
22926 (preprocess_constraints): New overload.
22927 (preprocess_insn_constraints): New function.
22928 (preprocess_constraints): Take the insn as parameter.
22929 (recog_op_alt): Change into a pointer.
22930 (target_recog): Add x_op_alt.
22931 * recog.c (asm_op_alt): New variable.
22932 (recog_op_alt): Change into a pointer.
22933 (preprocess_constraints): New overload, replacing the old function
22934 definition with one that doesn't use global state.
22935 (preprocess_insn_constraints): New function.
22936 (preprocess_constraints): Use them. Take the insn as parameter.
22937 Use asm_op_alt for asms.
22938 (recog_init): Free existing x_op_alt entries.
22939 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
22941 (make_early_clobber_and_input_conflicts): Likewise.
22942 (process_bb_node_lives): Pass the insn to process_constraints.
22943 * reg-stack.c (check_asm_stack_operands): Likewise.
22944 (subst_asm_stack_regs): Likewise.
22945 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22946 * regrename.c (build_def_use): Likewise.
22947 * sched-deps.c (sched_analyze_insn): Likewise.
22948 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
22949 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
22950 (note_invalid_constants): Likewise.
22951 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22952 (ix86_legitimate_combined_insn): Make operand_alternative pointer
22955 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22957 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
22958 * ira-lives.c (check_and_make_def_conflict): Check for disabled
22960 (make_early_clobber_and_input_conflicts): Likewise.
22961 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22963 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22965 * recog.h (alternative_class): New function.
22966 (which_op_alt): Return a const recog_op_alt.
22967 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
22968 (subst_asm_stack_regs): Likewise.
22969 * config/arm/arm.c (note_invalid_constants): Likewise.
22970 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
22971 the operand_alternative; use alternative class instead.
22972 * sel-sched.c (get_reg_class): Likewise.
22973 * regrename.c (build_def_use): Likewise.
22974 (hide_operands, restore_operands, record_out_operands): Update type
22977 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
22979 * recog.h (recog_op_alt): Convert to a flat array.
22980 (which_op_alt): New function.
22981 * recog.c (recog_op_alt): Convert to a flat array.
22982 (preprocess_constraints): Update accordingly, grouping all
22983 operands of the same alternative together, rather than the
22985 * ira-lives.c (check_and_make_def_conflict): Likewise.
22986 (make_early_clobber_and_input_conflicts): Likewise.
22987 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22988 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
22989 (subst_asm_stack_regs): Likewise.
22990 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22991 * regrename.c (hide_operands, record_out_operands): Likewise.
22992 (build_def_use): Likewise.
22993 * sel-sched.c (get_reg_class): Likewise.
22994 * config/arm/arm.c (note_invalid_constants): Likewise.
22996 2014-06-04 Jason Merrill <jason@redhat.com>
23000 * gimplify.c (gimplify_arg): Non-static.
23001 * gimplify.h: Declare it.
23003 2014-06-04 Richard Biener <rguenther@suse.de>
23005 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
23006 TREE_PUBLIC and DECL_EXTERNAL decls.
23008 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
23010 * regcprop.c (copyprop_hardreg_forward_1): Account for
23011 HARD_REGNO_CALL_PART_CLOBBERED.
23013 2014-06-04 Richard Biener <rguenther@suse.de>
23015 * configure.ac: Check whether the underlying type of int64_t
23016 is long or long long.
23017 * configure: Regenerate.
23018 * config.in: Likewise.
23019 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
23020 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23022 2014-06-04 Richard Biener <rguenther@suse.de>
23024 PR tree-optimization/60098
23025 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
23027 (dse_optimize_stmt): Simplify, now that we found a kill
23030 2014-06-04 Richard Biener <rguenther@suse.de>
23032 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
23033 of accesses with non-invariant address.
23035 2014-06-04 Martin Liska <mliska@suse.cz>
23037 * cgraph.h (cgraph_make_wrapper): New function introduced.
23038 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
23039 * ipa-inline.h (inline_analyze_function): The function is global.
23040 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
23042 2014-06-04 Martin Liska <mliska@suse.cz>
23044 * tree.h (private_lookup_attribute_starting): New function.
23045 (lookup_attribute_starting): Likewise.
23046 * tree.c (private_lookup_attribute_starting): Likewise.
23048 2014-06-04 Martin Liska <mliska@suse.cz>
23050 * cgraph.h (expand_thunk): New argument added.
23051 (address_taken_from_non_vtable_p): New global function.
23052 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
23053 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
23054 * cgraphunit.c (analyze_function): Likewise.
23055 (assemble_thunks_and_aliases): Argument added to call.
23056 (expand_thunk): New argument forces to produce GIMPLE thunk.
23058 2014-06-04 Martin Liska <mliska@suse.cz>
23060 * coverage.h (coverage_compute_cfg_checksum): Argument added.
23061 * coverage.c (coverage_compute_cfg_checksum): Likewise.
23062 * profile.c (branch_prob): Likewise.
23064 2014-06-04 Martin Jambor <mjambor@suse.cz>
23067 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
23068 handler for switch on an ipa_ref_use enum.
23069 * ipa-reference.c (analyze_function): Likewise.
23071 2014-06-04 Kai Tietz <ktietz@redhat.com>
23073 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
23074 from old call-instruction.
23076 2014-06-04 Bin Cheng <bin.cheng@arm.com>
23078 * config/aarch64/aarch64.c (aarch64_classify_address)
23079 (aarch64_legitimize_reload_address): Support full addressing modes
23081 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
23082 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
23084 2014-06-03 Andrew Pinski <apinski@cavium.com>
23086 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
23089 2014-06-03 Andrew Pinski <apinski@cavium.com>
23091 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
23092 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
23094 2014-06-03 Kai Tietz <ktietz@redhat.com>
23096 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
23099 2014-06-03 Dehao Chen <dehao@google.com>
23101 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
23104 2014-06-03 Marek Polacek <polacek@redhat.com>
23107 * doc/invoke.texi: Document -Wswitch-bool.
23108 * function.c (stack_protect_epilogue): Cast controlling expression of
23110 * gengtype.c (walk_type): Generate switch expression with its
23111 controlling expression cast to int.
23113 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
23115 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
23117 * config/avr/avr-tables.opt: Regenerate.
23118 * config/avr/t-multilib: Regenerate.
23119 * doc/avr-mmcu.texi: Regenerate.
23121 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
23122 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
23124 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
23125 (ata6617c, ata664251): Add new avr35 devices.
23126 (ata6612c): Add new avr4 device.
23127 (ata6613c, ata6614q): Add new avr5 devices.
23128 * config/avr/avr-tables.opt: Regenerate.
23129 * config/avr/t-multilib: Regenerate.
23130 * doc/avr-mmcu.texi: Regenerate.
23132 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
23134 * gcc/config/aarch64/aarch64-builtins.c
23135 (aarch64_types_binop_ssu_qualifiers): New static data.
23136 (TYPES_BINOP_SSU): Define.
23137 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
23138 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
23139 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
23140 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
23141 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
23142 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
23143 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
23144 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
23145 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
23146 suffix to builtin function name, remove cast.
23147 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
23148 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
23149 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
23151 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
23153 * gcc/config/aarch64/aarch64-builtins.c
23154 (aarch64_types_binop_uus_qualifiers,
23155 aarch64_types_shift_to_unsigned_qualifiers,
23156 aarch64_types_unsigned_shiftacc_qualifiers): Define.
23157 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
23158 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
23159 sqshlu_n, uqshl_n): Update qualifiers.
23160 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
23161 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
23162 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
23163 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
23164 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
23165 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
23166 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
23167 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
23168 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
23169 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
23170 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
23171 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
23172 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
23173 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
23174 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
23175 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
23176 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
23177 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
23178 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
23179 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
23180 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
23181 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
23182 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
23183 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
23184 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
23185 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
23186 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
23188 2014-06-03 Teresa Johnson <tejohnson@google.com>
23190 * tree-sra.c (modify_function): Record caller nodes after rebuild.
23192 2014-06-02 Jason Merrill <jason@redhat.com>
23195 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
23197 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
23199 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
23202 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
23204 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
23206 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
23207 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
23208 * config/aarch64/iterators.md (REVERSE): New iterator.
23209 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
23210 (rev_op): New int_attribute.
23211 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
23212 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
23213 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
23214 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
23215 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
23216 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
23217 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
23218 Replace temporary __asm__ with __builtin_shuffle.
23220 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
23222 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
23224 * config/mips/mips-tables.opt: Regenerate.
23225 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
23226 to use mips_isa_rev rather than ISA_MIPS32R2.
23227 * config/mips/mips.h (ISA_MIPS32R3): New define.
23228 (ISA_MIPS32R5): New define.
23229 (ISA_MIPS64R3): New define.
23230 (ISA_MIPS64R5): New define.
23231 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
23232 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
23233 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
23235 (MIPS_ISA_SYNCI_SPEC): Likewise.
23236 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
23237 (LINK_SPEC): Added mips32r3 and mips32r5.
23238 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
23239 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
23240 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
23241 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
23242 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
23243 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
23244 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
23246 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
23248 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
23250 * config/mips/mips.opt (mxpa): New option.
23251 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
23254 2014-06-03 Martin Jambor <mjambor@suse.cz>
23257 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
23260 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
23262 PR tree-optimization/61328
23263 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
23264 initialization from find_bswap_or_nop_1.
23265 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
23266 in source_expr2 before using the size value the function sets. Also
23267 make use of init_symbolic_number () in both the old place and
23268 find_bswap_or_nop_load () to avoid reading uninitialized memory when
23269 doing recursion in the GIMPLE_BINARY_RHS case.
23271 2014-06-03 Richard Biener <rguenther@suse.de>
23273 PR tree-optimization/61383
23274 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
23277 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
23279 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
23280 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
23281 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
23282 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
23284 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
23285 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
23286 * system.h: ...here and make it unconditional.
23287 * target.def (conditional_register_usage): Mention
23288 define_register_constraint instead of old-style constraint macros.
23289 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
23290 * doc/tm.texi: Regenerate.
23291 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
23292 protected by !USE_MD_CONSTRAINTS.
23293 * config/frv/frv.md: Remove quote from old version of documentation.
23294 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
23295 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
23296 CONST_DOUBLE_OK_FOR_LETTER.
23297 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
23299 2014-06-02 Andrew Pinski <apinski@cavium.com>
23301 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
23302 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
23303 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
23304 file whose name depends on -mabi= and -mbig-endian.
23305 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
23306 Handle LP64 better and handle ilp32 too.
23307 (MULTILIB_OPTIONS): Delete.
23308 (MULTILIB_DIRNAMES): Delete.
23310 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
23312 * expr.h: Remove prototypes of functions defined in builtins.c.
23313 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
23314 Remove prototypes of functions defined in builtins.c.
23315 * builtins.h: Update prototype list to include all exported functions.
23316 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
23317 no_c99_libc_has_function): Move to targhooks.c
23318 (build_string_literal, build_call_expr_loc_array,
23319 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
23321 (expand_builtin_object_size, fold_builtin_object_size): Make static.
23322 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
23323 no_c99_libc_has_function): Relocate from builtins.c.
23324 * tree.c: Include builtins.h.
23325 (build_call_expr_loc_array, build_call_expr_loc_vec,
23326 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
23328 * fold-const.h (fold_fma): Move prototype to builtins.h.
23329 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
23330 * asan.c: Include builtins.h.
23331 * cfgexpand.c: Likewise.
23332 * convert.c: Likewise.
23333 * emit-rtl.c: Likewise.
23334 * except.c: Likewise.
23335 * expr.c: Likewise.
23336 * fold-const.c: Likewise.
23337 * gimple-fold.c: Likewise.
23338 * gimple-ssa-strength-reduction.c: Likewise.
23339 * gimplify.c: Likewise.
23340 * ipa-inline.c: Likewise.
23341 * ipa-prop.c: Likewise.
23342 * lto-streamer-out.c: Likewise.
23343 * stmt.c: Likewise.
23344 * tree-inline.c: Likewise.
23345 * tree-object-size.c: Likewise.
23346 * tree-sra.c: Likewise.
23347 * tree-ssa-ccp.c: Likewise.
23348 * tree-ssa-forwprop.c: Likewise.
23349 * tree-ssa-loop-ivcanon.c: Likewise.
23350 * tree-ssa-loop-ivopts.c: Likewise.
23351 * tree-ssa-math-opts.c: Likewise.
23352 * tree-ssa-reassoc.c: Likewise.
23353 * tree-ssa-threadedge.c: Likewise.
23354 * tree-streamer-in.c: Likewise.
23355 * tree-vect-data-refs.c: Likewise.
23356 * tree-vect-patterns.c: Likewise.
23357 * tree-vect-stmts.c: Likewise.
23358 * config/aarch64/aarch64.c: Likewise.
23359 * config/alpha/alpha.c: Likewise.
23360 * config/arc/arc.c: Likewise.
23361 * config/arm/arm.c: Likewise.
23362 * config/avr/avr.c: Likewise.
23363 * config/bfin/bfin.c: Likewise.
23364 * config/c6x/c6x.c: Likewise.
23365 * config/cr16/cr16.c: Likewise.
23366 * config/cris/cris.c: Likewise.
23367 * config/epiphany/epiphany.c: Likewise.
23368 * config/fr30/fr30.c: Likewise.
23369 * config/frv/frv.c: Likewise.
23370 * config/h8300/h8300.c: Likewise.
23371 * config/i386/i386.c: Likewise.
23372 * config/i386/winnt.c: Likewise.
23373 * config/ia64/ia64.c: Likewise.
23374 * config/iq2000/iq2000.c: Likewise.
23375 * config/lm32/lm32.c: Likewise.
23376 * config/m32c/m32c.c: Likewise.
23377 * config/m32r/m32r.c: Likewise.
23378 * config/m68k/m68k.c: Likewise.
23379 * config/mcore/mcore.c: Likewise.
23380 * config/mep/mep.c: Likewise.
23381 * config/microblaze/microblaze.c: Likewise.
23382 * config/mips/mips.c: Likewise.
23383 * config/mmix/mmix.c: Likewise.
23384 * config/mn10300/mn10300.c: Likewise.
23385 * config/moxie/moxie.c: Likewise.
23386 * config/msp430/msp430.c: Likewise.
23387 * config/nds32/nds32.c: Likewise.
23388 * config/pa/pa.c: Likewise.
23389 * config/pdp11/pdp11.c: Likewise.
23390 * config/picochip/picochip.c: Likewise.
23391 * config/rl78/rl78.c: Likewise.
23392 * config/rs6000/rs6000.c: Likewise.
23393 * config/rx/rx.c: Likewise.
23394 * config/s390/s390.c: Likewise.
23395 * config/score/score.c: Likewise.
23396 * config/sh/sh.c: Likewise.
23397 * config/sparc/sparc.c: Likewise.
23398 * config/spu/spu.c: Likewise.
23399 * config/stormy16/stormy16.c: Likewise.
23400 * config/tilegx/tilegx.c: Likewise.
23401 * config/tilepro/tilepro.c: Likewise.
23402 * config/v850/v850.c: Likewise.
23403 * config/vax/vax.c: Likewise.
23404 * config/xtensa/xtensa.c: Likewise.
23406 2014-06-02 Jeff Law <law@redhat.com>
23408 PR rtl-optimization/61094
23409 * ree.c (combine_reaching_defs): Do not reextend an insn if it
23410 was marked as do_no_reextend. If a copy is needed to eliminate
23411 an extension, then mark it as do_not_reextend.
23413 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
23415 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
23417 2014-06-02 Richard Henderson <rth@redhat.com>
23420 * config/alpha/alpha.c (print_operand_address): Allow symbolic
23421 addresses inside asms. Use output_operand_lossage instead of
23424 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
23427 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
23428 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
23430 2014-06-02 Tom de Vries <tom@codesourcery.com>
23432 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
23433 case that x has VOIDmode.
23435 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
23437 * varasm.c (copy_constant): Delete function.
23438 (build_constant_desc): Don't call it.
23440 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23443 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
23444 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
23445 with immediate_operand.
23447 2014-06-02 Andreas Schwab <schwab@suse.de>
23449 * config/ia64/ia64.c
23450 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
23451 pending_data_specs first.
23453 2014-06-02 Richard Biener <rguenther@suse.de>
23455 PR tree-optimization/61378
23456 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
23457 valueized_anything.
23459 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
23461 * config/i386/constraints.md (Bw): Rename from 'w'.
23462 (Bz): Rename from 'z'.
23463 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
23465 2014-06-01 Kai Tietz <ktietz@redhat.com>
23468 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
23469 * config/i386/i386.md (sibcall_insn_operand): Use Bs
23470 instead of m constraint.
23472 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
23474 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
23475 a separate alternative where the scratch operand 2 is marked as
23478 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
23480 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
23481 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
23482 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
23483 and __builtins_arm_get_fpscr.
23484 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
23485 __builtins_arm_get_fpscr.
23486 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
23487 __builtins_arm_ldfpscr.
23488 (arm_atomic_assign_expand_fenv): New function.
23489 * config/arm/vfp.md (set_fpscr): New pattern.
23490 (get_fpscr) : Likewise.
23491 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
23493 * doc/extend.texi (AARCH64 Built-in Functions) : Document
23494 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
23496 2014-05-30 Jakub Jelinek <jakub@redhat.com>
23498 * asan.c (report_error_func): Add SLOW_P argument, use
23499 BUILT_IN_ASAN_*_N if set.
23500 (build_check_stmt): Likewise.
23501 (instrument_derefs): If T has insufficient alignment,
23502 force same handling as for odd sizes.
23504 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
23505 BUILT_IN_ASAN_REPORT_STORE_N): New.
23506 * asan.c (struct asan_mem_ref): Change access_size type to
23508 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
23509 update_mem_ref_hash_table): Likewise.
23510 (asan_mem_ref_hasher::hash): Hash in a HWI.
23511 (report_error_func): Change size_in_bytes argument to HWI.
23512 Use *_N builtins if size_in_bytes is larger than 16 or not power of
23514 (build_shadow_mem_access): New function.
23515 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
23516 Handle size_in_bytes not power of two or larger than 16.
23517 (instrument_derefs): Don't give up if size_in_bytes is not
23518 power of two or is larger than 16.
23520 2014-05-30 Kai Tietz <ktietz@redhat.com>
23523 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
23524 for sibling-tail-calls.
23525 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
23527 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
23528 (sibcall_insn_operand): Add check for sibcall_memory_operand.
23530 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
23532 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
23533 * config/avr/avr-tables.opt: Regenerate.
23534 * config/avr/t-multilib: Regenerate.
23535 * doc/avr-mmcu.texi: Regenerate.
23537 2014-05-30 Ian Lance Taylor <iant@google.com>
23539 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
23542 2014-05-30 Tom de Vries <tom@codesourcery.com>
23544 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
23547 2014-05-30 Tom de Vries <tom@codesourcery.com>
23549 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23550 * lra.c (initialize_lra_reg_info_element): Add init of
23551 actual_call_used_reg_set field.
23552 (lra): Call lra_create_live_ranges before lra_inheritance for
23554 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23556 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
23557 instead of call_used_reg_set for -fuse-caller-save.
23558 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23560 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23562 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
23564 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
23566 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
23568 * ira.c (ira_get_dup_out_num): Check for output operands at
23569 the start of the loop. Handle cases where an included alternative
23570 follows an excluded one.
23572 2014-05-29 Mike Stump <mikestump@comcast.net>
23575 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
23576 post ld passes when lto is used.
23578 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
23580 PR rtl-optimization/61325
23581 * lra-constraints.c (process_address): Rename to process_address_1.
23582 (process_address): New function.
23584 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
23586 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
23587 TYPES_BINOPV): New static data.
23588 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
23590 * config/aarch64/aarch64-simd.md (aarch64_ext,
23591 aarch64_im_lane_boundsi): New patterns.
23592 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
23594 (aarch64_evpc_ext): New function.
23596 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
23598 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
23599 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
23600 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
23601 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
23602 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
23604 2014-05-29 Tom de Vries <tom@codesourcery.com>
23606 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
23608 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
23609 Richard Sandiford <rdsandiford@googlemail.com>
23611 * arm/iterators.md (shiftable_ops): New code iterator.
23612 (t2_binop0, arith_shift_insn): New code attributes.
23613 * arm/predicates.md (shift_nomul_operator): New predicate.
23614 * arm/arm.md (insn_enabled): Delete.
23615 (enabled): Remove insn_enabled test.
23616 (*arith_shiftsi): Delete. Replace with ...
23617 (*<arith_shift_insn>_multsi): ... new pattern.
23618 (*<arith_shift_insn>_shiftsi): ... new pattern.
23619 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
23621 2014-05-29 Radovan Obradovic <robradovic@mips.com>
23622 Tom de Vries <tom@codesourcery.com>
23624 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
23625 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
23627 (mips_split_call): Use POST_CALL_TMP_REG.
23628 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
23630 2014-05-29 Tom de Vries <tom@codesourcery.com>
23632 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
23633 with #ifdef STACK_REGS.
23635 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
23637 * varasm.c (get_variable_section): Walk aliases.
23638 (place_block_symbol): Walk aliases.
23640 2014-05-28 Tom de Vries <tom@codesourcery.com>
23643 2014-05-28 Tom de Vries <tom@codesourcery.com>
23645 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23646 * lra.c (initialize_lra_reg_info_element): Add init of
23647 actual_call_used_reg_set field.
23648 (lra): Call lra_create_live_ranges before lra_inheritance for
23650 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23652 * lra-constraints.c (need_for_call_save_p): Use
23653 actual_call_used_reg_set instead of call_used_reg_set for
23655 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23657 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
23659 * doc/md.texi: Document that the % constraint character must
23660 be at the beginning of the string.
23661 * genoutput.c (validate_insn_alternatives): Check that '=',
23662 '+' and '%' only appear at the beginning of a constraint.
23663 * ira.c (commutative_constraint_p): Delete.
23664 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
23665 at the start of the string.
23666 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
23668 * config/arm/neon.md (bicdi3_neon): Likewise.
23669 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
23670 (slt_si, sltu_si): Likewise.
23671 * config/vax/vax.md (sbcdi3): Likewise.
23672 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
23673 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
23674 (mul64): Move '%' to beginning of constraint.
23675 * config/arm/arm.md (*xordi3_insn): Likewise.
23676 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
23677 (xorsi3): Likewise.
23679 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
23681 * doc/md.texi: Document the restrictions on the "enabled" attribute.
23683 2014-05-28 Jason Merrill <jason@redhat.com>
23686 * cgraph.h (symtab_node::get_comdat_group_id): New.
23687 * cgraphunit.c (analyze_functions): Call it.
23688 * symtab.c (dump_symtab_node): Likewise.
23689 * tree.c (decl_comdat_group_id): New.
23690 * tree.h: Declare it.
23691 * lto-streamer-out.c (write_symbol): Use it.
23692 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
23694 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
23696 PR bootstrap/PR61146
23697 * wide-int.cc: Do not include longlong.h when compiling with clang.
23699 2014-05-28 Richard Biener <rguenther@suse.de>
23701 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
23702 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
23703 (vrp_visit_assignment_or_call): Print less vertical space.
23704 (vrp_visit_stmt): Likewise.
23705 (vrp_visit_phi_node): Likewise. For a PHI argument with
23706 VR_VARYING range consider recording it as copy.
23708 2014-05-28 Richard Biener <rguenther@suse.de>
23711 2014-05-28 Richard Biener <rguenther@suse.de>
23713 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23715 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
23717 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
23718 sufficiently aligned and an offset is used at the same time.
23719 (expand_expr_real_1): Likewise.
23721 2014-05-28 Richard Biener <rguenther@suse.de>
23723 PR middle-end/61045
23724 * fold-const.c (fold_comparison): When folding
23725 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
23726 the sign of the remaining constant operand stays the same.
23728 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
23730 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
23731 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
23732 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
23734 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
23735 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
23736 (m32bit-doubles) Likewise.
23737 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
23738 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
23741 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23743 * configure.ac ($gcc_cv_ld_clearcap): New test.
23744 * configure: Regenerate.
23745 * config.in: Regenerate.
23746 * config/sol2.opt (mclear-hwcap): New option.
23747 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
23748 * config/sol2-clearcap.map: Moved here from
23749 testsuite/gcc.target/i386/clearcap.map.
23750 * config/sol2-clearcapv2.map: Move here from
23751 gcc.target/i386/clearcapv2.map.
23752 * config/t-sol2 (install): Depend on install-clearcap-map.
23753 (install-clearcap-map): New target.
23754 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
23757 2014-05-28 Richard Biener <rguenther@suse.de>
23759 * hwint.h (*_HALF_WIDE_INT*): Move to ...
23760 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
23761 ... here and remove the rest.
23762 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23764 2014-05-28 Richard Biener <rguenther@suse.de>
23766 PR tree-optimization/61335
23767 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
23768 new range fails, drop to varying.
23770 2014-05-28 Olivier Hainque <hainque@adacore.com>
23772 * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
23773 (CPP_SPEC): Add entry for -mcpu=8548.
23774 * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
23775 * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
23777 2014-05-28 Tom de Vries <tom@codesourcery.com>
23779 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23780 * lra.c (initialize_lra_reg_info_element): Add init of
23781 actual_call_used_reg_set field.
23782 (lra): Call lra_create_live_ranges before lra_inheritance for
23784 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23786 * lra-constraints.c (need_for_call_save_p): Use
23787 actual_call_used_reg_set instead of call_used_reg_set for
23789 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23791 2014-05-28 Radovan Obradovic <robradovic@mips.com>
23792 Tom de Vries <tom@codesourcery.com>
23794 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
23796 (@item -fuse-caller-save): New item.
23798 2014-05-28 Radovan Obradovic <robradovic@mips.com>
23799 Tom de Vries <tom@codesourcery.com>
23801 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
23802 OPT_fuse_caller_save.
23804 2014-05-28 Radovan Obradovic <robradovic@mips.com>
23805 Tom de Vries <tom@codesourcery.com>
23807 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
23808 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
23809 get_call_reg_set_usage.
23810 * resource.c (mark_set_resources, mark_target_live_regs): Use
23811 get_call_reg_set_usage.
23812 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
23814 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
23815 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
23816 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23817 * ira-build.c (ira_create_allocno): Init
23818 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23819 (create_cap_allocno, propagate_allocno_info)
23820 (propagate_some_info_from_allocno)
23821 (copy_info_to_removed_store_destinations): Handle
23822 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23823 * ira-costs.c (ira_tune_allocno_costs): Use
23824 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
23826 2014-05-28 Radovan Obradovic <robradovic@mips.com>
23827 Tom de Vries <tom@codesourcery.com>
23829 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
23830 and function_used_regs_valid fields.
23831 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
23832 find_all_hard_reg_sets.
23833 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
23834 (get_call_reg_set_usage): New function.
23835 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
23836 * regs.h (get_call_reg_set_usage): Declare.
23838 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
23841 * config/dbx.h (License): Add Runtime Library Exception.
23842 * config/newlib-stdint.h (License): Same.
23843 * config/rtems.h (License): Same
23844 * config/initfini-array.h (License): Same
23845 * config/v850/v850.h (License): Same.
23846 * config/v850/v850-opts.h (License): Same
23847 * config/v850/rtems.h (License): Same.
23849 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
23852 * doc/extend.texi (Local Labels): Note that label differences are
23853 not supported for AVR.
23855 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
23856 Olivier Hainque <hainque@adacore.com>
23858 * rtl.h (set_for_reg_notes): Declare.
23859 * emit-rtl.c (set_for_reg_notes): New function.
23860 (set_unique_reg_note): Use it.
23861 * optabs.c (add_equal_note): Likewise
23863 2014-05-27 Andrew Pinski <apinski@cavium.com>
23865 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
23866 Use <w> for the register in assembly template.
23867 (stack_protect_test): Use the mode of operands[0] for the result.
23868 (stack_protect_test_<mode>): Use <w> for the register
23869 in assembly template.
23871 2014-05-27 DJ Delorie <dj@redhat.com>
23873 * config/rx/rx.c (add_vector_labels): New.
23874 (rx_output_function_prologue): Call it.
23875 (rx_handle_func_attribute): Don't require empty arguments.
23876 (rx_handle_vector_attribute): New.
23877 (rx_attribute_table): Add "vector" attribute.
23878 * doc/extend.texi (interrupt, vector): Document new/changed
23879 RX-specific attributes.
23881 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
23883 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
23885 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
23886 predicate to detect a negative quotient.
23888 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
23890 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
23891 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
23892 Add X - Y CMP 0 to X CMP Y transformation.
23893 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
23895 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
23897 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
23900 2014-05-27 Steve Ellcey <sellcey@mips.com>
23902 * config/mips/mips.c: Add include of cgraph.h.
23904 2014-05-27 Richard Biener <rguenther@suse.de>
23906 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
23908 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
23911 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
23912 * config/arm/arm-cores.def (License): Same.
23913 * config/arm/arm-opts.h (License): Same.
23914 * config/arm/aout.h (License): Same.
23915 * config/arm/bpabi.h (License): Same.
23916 * config/arm/elf.h (License): Same.
23917 * config/arm/linux-elf.h (License): Same.
23918 * config/arm/linux-gas.h (License): Same.
23919 * config/arm/netbsd-elf.h (License): Same.
23920 * config/arm/uclinux-eabi.h (License): Same.
23921 * config/arm/uclinux-elf.h (License): Same.
23922 * config/arm/vxworks.h (License): Same.
23924 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23926 * config/arm/neon.md (neon_bswap<mode>): New pattern.
23927 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
23928 (arm_init_neon_builtins): Handle NEON_BSWAP.
23929 Define required type nodes.
23930 (arm_expand_neon_builtin): Handle NEON_BSWAP.
23931 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
23932 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
23933 * config/arm/iterators.md (VDQHSD): New mode iterator.
23935 2014-05-27 Richard Biener <rguenther@suse.de>
23937 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
23938 Try using literal operands when comparing value-ranges failed.
23940 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
23942 * ira.c (commutative_operand): Adjust for change to recog_data.
23943 [Missing from previous commit.]
23945 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
23947 * system.h (TEST_BIT): New macro.
23948 * recog.h (alternative_mask): New type.
23949 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
23950 (recog_data_d): Replace alternative_enabled_p array with
23951 enabled_alternatives.
23952 (target_recog): New structure.
23953 (default_target_recog, this_target_recog): Declare.
23954 (get_enabled_alternatives, recog_init): Likewise.
23955 * recog.c (default_target_recog, this_target_recog): New variables.
23956 (get_enabled_alternatives): New function.
23957 (extract_insn): Use it.
23958 (recog_init): New function.
23959 (preprocess_constraints, constrain_operands): Adjust for change to
23961 * postreload.c (reload_cse_simplify_operands): Likewise.
23962 * reload.c (find_reloads): Likewise.
23963 * ira-costs.c (record_reg_classes): Likewise.
23964 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
23965 all alternatives after a disabled one would be skipped.
23966 (ira_implicitly_set_insn_hard_regs): Likewise.
23967 * ira.c (ira_setup_alts): Adjust for change to recog_data.
23968 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
23969 with enabled_alternatives.
23970 * lra.c (free_insn_recog_data): Update accordingly.
23971 (lra_update_insn_recog_data): Likewise.
23972 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
23973 * lra-constraints.c (process_alt_operands): Likewise. Handle
23974 only_alternative as part of the enabled mask.
23975 * target-globals.h (this_target_recog): Declare.
23976 (target_globals): Add a recog field.
23977 (restore_target_globals): Restore this_target_recog.
23978 * target-globals.c: Include recog.h.
23979 (default_target_globals): Initialize recog field.
23980 (save_target_globals): Likewise.
23981 * reginfo.c (reinit_regs): Call recog_init.
23982 * toplev.c (backend_init_target): Likewise.
23984 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
23986 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
23987 rather than any named insn's code.
23989 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
23992 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
23993 * config/arm/arm-cores.def (License): Same.
23995 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
23997 * tree.h (decl_comdat_group): Declare.
23998 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
23999 * tree.c (decl_comdat_group): Here.
24001 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
24003 PR rtl-optimization/61222
24004 * combine.c (simplify_shift_const_1): When moving a PLUS outside
24005 the shift, truncate the PLUS operand to the result mode.
24007 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
24010 * config/i386/i386.c (ix86_rtx_costs)
24011 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
24014 2014-05-26 Martin Jambor <mjambor@suse.cz>
24016 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
24019 2014-05-26 Richard Biener <rguenther@suse.de>
24021 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
24022 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
24023 Provide specializations.
24024 (wi::int_traits <HOST_WIDE_INT>,
24025 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
24027 2014-05-26 Alan Modra <amodra@gmail.com>
24030 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
24031 params and return a bool. Remove dead code. Update comment.
24032 Assert we have a const_int source. Remove bogus code from
24033 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
24034 handling of constants > 2G and reg_equal note, from..
24035 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
24036 return value. Update comment. If we can, use a new pseudo
24037 for intermediate calculations.
24038 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
24040 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
24041 call to rs6000_emit_set_const in splitter.
24042 (movdi_internal64+2, +3): Likewise.
24044 2014-05-26 Richard Biener <rguenther@suse.de>
24046 * system.h: Define __STDC_FORMAT_MACROS before
24047 including inttypes.h.
24048 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
24049 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
24050 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
24051 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
24052 HOST_WIDEST_INT_C): Remove.
24053 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
24054 if C99 inttypes.h is not available.
24055 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
24056 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
24057 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
24058 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
24059 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
24060 (struct output_info): Likewise.
24061 (print_statistics): Adjust.
24062 (dump_bitmap_statistics): Likewise.
24063 * bt-load.c (migrate_btr_defs): Print with PRId64.
24064 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
24065 (MAX_SAFE_MULTIPLIER): Adjust.
24066 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
24067 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
24068 dump_cgraph_node): Likewise.
24069 * final.c (dump_basic_block_info): Likewise.
24070 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
24071 * gcov.c (format_gcov): Likewise.
24072 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
24074 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
24075 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
24076 (inline_small_functions, dump_overall_stats, dump_inline_stats):
24077 Use PRId64 for dumping.
24078 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
24079 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
24080 (add_allocno_hard_regs): Adjust.
24081 * loop-doloop.c (doloop_modify): Print using PRId64.
24082 * loop-iv.c (inverse): Compute in uint64_t.
24083 (determine_max_iter, iv_number_of_iterations): Likewise.
24084 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
24085 Print using PRId64.
24086 * lto-streamer-out.c (write_symbol): Use uint64_t.
24087 * mcf.c (CAP_INFINITY): Use int64_t maximum.
24088 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
24089 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
24090 * modulo-sched.c (const_iteration_count): Use int64_t.
24091 (sms_schedule): Dump using PRId64.
24092 * predict.c (dump_prediction): Likewise.
24093 * pretty-print.h (pp_widest_integer): Remove.
24094 * profile.c (get_working_sets, is_edge_inconsistent,
24095 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
24096 * tree-pretty-print.c (pp_double_int): Remove case handling
24097 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
24098 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
24100 (pass_optimize_bswap::execute): Remove restriction on hosts.
24101 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
24102 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
24103 * tree.c (widest_int_cst_value): Remove.
24104 * tree.h (widest_int_cst_value): Likewise.
24105 * value-prof.c (dump_histogram_value): Print using PRId64.
24106 * gengtype.c (main): Also inject int64_t.
24107 * ggc-page.c (struct max_alignment): Use int64_t.
24108 * alloc-pool.c (struct allocation_object_def): Likewise.
24109 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
24111 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
24112 * doc/tm.texi: Regenerated.
24113 * gengtype-lex.l (IWORD): Handle [u]int64_t.
24114 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
24115 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
24116 mmix_output_register_setting): Use [u]int64_t in prototypes.
24117 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
24118 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
24119 mmix_output_octa, mmix_output_shifted_value): Adjust.
24120 (mmix_intval): Adjust. Remove unreachable case.
24121 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
24123 2014-05-26 Richard Biener <rguenther@suse.de>
24125 * configure.ac: Drop __int64 type check. Insist that we
24126 found uint64_t and int64_t.
24127 * hwint.h (HOST_BITS_PER___INT64): Remove.
24128 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
24129 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
24130 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
24131 (HOST_WIDEST_FAST_INT): Remove __int64 case.
24132 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
24133 for dst_q_src_df_rms_cdt.
24134 * configure: Regenerate.
24135 * config.in: Likewise.
24137 2014-05-26 Michael Tautschnig <mt@debian.org>
24140 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
24141 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
24143 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
24145 PR rtl-optimization/61278
24146 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
24148 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
24150 PR rtl-optimization/61220
24151 Part of PR rtl-optimization/61225
24152 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
24153 insn; skip split_edge for a block with only one successor.
24155 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24157 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
24160 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24162 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
24163 (update_vtable_references): New function.
24164 (function_and_variable_visibility): Rewrite also vtable initializers.
24165 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
24167 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24169 * ggc.h (ggc_grow): New function.
24170 * ggc-none.c (ggc_grow): New function.
24171 * ggc-page.c (ggc_grow): Likewise.
24173 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24175 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
24176 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
24177 comdat_can_be_unshared_p, cgraph_externally_visible_p,
24178 varpool_externally_visible_p, can_replace_by_local_alias,
24179 update_visibility_by_resolution_info, function_and_variable_visibility,
24180 pass_data_ipa_function_and_variable_visibility,
24181 make_pass_ipa_function_and_variable_visibility,
24182 whole_program_function_and_variable_visibility,
24183 pass_data_ipa_whole_program_visibility,
24184 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
24185 * cgraph.h (cgraph_local_node_p): Declare.
24186 * ipa-visibility.c: New file.
24187 * Makefile.in (OBJS): Add ipa-visiblity.o
24189 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24191 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
24192 that var decl is available.
24194 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24196 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
24197 symtab_node pointer.
24198 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
24199 (find_decls_types_r): Do not walk COMDAT_GROUP.
24200 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
24201 * varasm.c (make_decl_one_only): Use set_comdat_group;
24202 create node if needed.
24203 * ipa-inline-transform.c (save_inline_function_body): Update
24204 way we decl->symtab mapping.
24205 * symtab.c (symtab_hash, hash_node, eq_node
24206 symtab_insert_node_to_hashtable): Remove.
24207 (symtab_register_node): Update.
24208 (symtab_unregister_node): Update.
24209 (symtab_get_node): Reimplement as inline function.
24210 (symtab_add_to_same_comdat_group): Update.
24211 (symtab_dissolve_same_comdat_group_list): Update.
24212 (dump_symtab_base): Update.
24213 (verify_symtab_base): Update.
24214 (symtab_make_decl_local): Update.
24215 (fixup_same_cpp_alias_visibility): Update.
24216 (symtab_nonoverwritable_alias): Update.
24217 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
24218 * ipa.c (update_visibility_by_resolution_info): UPdate.
24219 * bb-reorder.c: Include cgraph.h
24220 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
24221 with comdat groups.
24222 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
24223 * cgraph.c (cgraph_get_create_node): Update.
24224 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
24226 (symtab_get_node): Make inline.
24227 (symtab_insert_node_to_hashtable): Remove.
24228 (symtab_can_be_discarded): Update.
24229 (decl_comdat_group): New function.
24230 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
24232 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
24234 (read_comdat_group): New function.
24235 (input_node, input_varpool_node): Use it.
24236 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
24238 * mips.c (mips_start_unique_function): Likewise.
24239 (ix86_code_end): Likewise.
24240 (rs6000_code_end): Likweise.
24241 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
24243 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24245 * gengtype-state.c (fatal_reading_state): Bring offline.
24246 * optabs.c (widening_optab_handler): Bring offline.
24247 * optabs.h (widening_optab_handler): Likewise.
24248 * final.c (get_attr_length_1): Likewise.
24250 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
24252 * sched-int.h (sd_iterator_cond): Manually tail recurse.
24254 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24256 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
24257 (ppc440-compare): Include shift with dot.
24258 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
24259 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
24261 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
24263 (e6500_sfx2): Include it.
24264 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
24265 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
24266 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
24267 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
24268 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
24269 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
24270 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
24271 *lshiftrt_internal1le, *lshiftrt_internal1be,
24272 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
24273 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
24274 *rotldi3_internal10le, *rotldi3_internal10be,
24275 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
24276 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
24277 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
24278 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
24279 define_insns): Use type "shift" in the appropriate alternatives.
24281 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24283 * config/rs6000/rs6000.md (type): Add "logical". Delete
24285 (dot): Adjust comment.
24286 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
24287 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
24288 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
24289 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
24290 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
24291 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
24292 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
24293 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
24295 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24296 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
24297 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24298 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24299 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24300 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24301 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24302 * config/rs6000/8540.md (ppc8540_su): Adjust.
24303 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24304 cell-cmp-microcoded): Adjust.
24305 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
24306 * config/rs6000/e500mc.md (e500mc_su): Adjust.
24307 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
24308 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
24309 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
24310 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24311 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
24312 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
24313 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
24315 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
24316 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
24317 Adjust. Adjust comment.
24318 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24319 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
24321 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24323 * config/rs6000/rs6000.md (type): Add "add".
24324 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
24325 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
24326 define_insns): Use it.
24327 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
24329 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24330 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
24331 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24332 * config/rs6000/601.md (ppc601-integer): Adjust.
24333 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24334 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24335 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24336 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24337 * config/rs6000/8540.md (ppc8540_su): Adjust.
24338 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24339 cell-cmp-microcoded): Adjust.
24340 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
24341 * config/rs6000/e500mc.md (e500mc_su): Adjust.
24342 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
24343 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
24344 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
24345 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24346 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
24347 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
24348 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
24350 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
24351 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
24352 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24353 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
24355 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24357 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
24358 "delayed_compare", "var_delayed_compare".
24359 (var_shift): New attribute.
24360 (cell_micro): Adjust.
24361 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
24362 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
24363 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
24364 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
24365 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
24366 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
24367 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
24368 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
24369 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
24370 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
24371 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
24372 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
24373 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
24374 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
24375 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
24376 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
24377 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
24378 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
24379 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
24380 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
24381 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
24382 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
24383 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
24384 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24385 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24387 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24388 * config/rs6000/440.md (ppc440-integer): Adjust.
24389 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24390 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
24391 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24392 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24393 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24394 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24395 * config/rs6000/8540.md (ppc8540_su): Adjust.
24396 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24397 cell-cmp-microcoded): Adjust.
24398 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
24399 * config/rs6000/e500mc.md (e500mc_su): Adjust.
24400 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
24401 e500mc64_delayed): Adjust.
24402 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
24403 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
24404 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24405 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
24406 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
24407 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
24408 power6-delayed-compare, power6-var-delayed-compare): Adjust.
24409 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
24410 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
24412 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24413 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
24415 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24417 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
24418 (bits): New mode_attr.
24419 (idiv_ldiv): Delete mode_attr.
24420 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
24421 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24422 rs6000_adjust_priority, is_nonpipeline_insn,
24423 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24425 * config/rs6000/40x.md (ppc403-idiv): Adjust.
24426 * config/rs6000/440.md (ppc440-idiv): Adjust.
24427 * config/rs6000/476.md (ppc476-idiv): Adjust.
24428 * config/rs6000/601.md (ppc601-idiv): Adjust.
24429 * config/rs6000/603.md (ppc603-idiv): Adjust.
24430 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
24431 ppc620-ldiv): Adjust.
24432 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
24433 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
24434 * config/rs6000/8540.md (ppc8540_divide): Adjust.
24435 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
24436 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
24437 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
24438 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
24439 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
24440 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
24441 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
24442 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
24443 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
24444 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
24445 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
24446 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
24447 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
24448 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
24449 * config/rs6000/titan.md (titan_fxu_div): Adjust.
24451 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24453 * config/rs6000/rs6000.md (type): Delete "insert_word",
24454 "insert_dword". Add "insert".
24455 (size): Update comment.
24456 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24457 insn_must_be_first_in_group): Adjust.
24458 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
24459 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
24460 *insvsi_internal6, insvdi_internal): Adjust.
24462 * config/rs6000/40x.md (ppc403-integer): Adjust.
24463 * config/rs6000/440.md (ppc440-integer): Adjust.
24464 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
24465 * config/rs6000/601.md (ppc601-integer): Adjust.
24466 * config/rs6000/603.md (ppc603-integer): Adjust.
24467 * config/rs6000/6xx.md (ppc604-integer): Adjust.
24468 * config/rs6000/7450.md (ppc7450-integer): Adjust.
24469 * config/rs6000/7xx.md (ppc750-integer): Adjust.
24470 * config/rs6000/8540.md (ppc8540_su): Adjust.
24471 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
24472 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
24473 * config/rs6000/e500mc.md (e500mc_su): Adjust.
24474 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
24475 * config/rs6000/e5500.md (e5500_sfx): Adjust.
24476 * config/rs6000/e6500.md (e6500_sfx): Adjust.
24477 * config/rs6000/mpc.md (mpccore-integer): Adjust.
24478 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
24479 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
24480 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
24481 * config/rs6000/power7.md (power7-integer): Adjust.
24482 * config/rs6000/power8.md (power8-1cyc): Adjust.
24483 * config/rs6000/rs64.md (rs64a-integer): Adjust.
24484 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
24486 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24488 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
24489 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
24490 (size): New attribute.
24491 (dot): New attribute.
24492 (cell_micro): Adjust.
24493 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
24494 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
24495 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
24496 umuldi3_highpart): Adjust.
24497 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24498 rs6000_adjust_priority, is_nonpipeline_insn,
24499 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24501 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
24502 ppc405-imul3): Adjust.
24503 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
24504 * config/rs6000/476.md (ppc476-imul): Adjust.
24505 * config/rs6000/601.md (ppc601-imul): Adjust.
24506 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
24507 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
24508 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
24509 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
24510 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
24512 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
24513 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
24514 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
24515 cell-imul): Adjust.
24516 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
24517 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
24518 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
24519 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
24520 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
24521 * config/rs6000/mpc.md (mpccore-imul): Adjust.
24522 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
24523 power4-lmul, power4-imul, power4-imul3): Adjust.
24524 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
24525 power5-lmul, power5-imul, power5-imul3): Adjust.
24526 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
24527 power6-lmul, power6-imul, power6-imul3): Adjust.
24528 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
24529 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
24531 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
24532 rs64a-lmul): Adjust.
24533 * config/rs6000/titan.md (titan_imul): Adjust.
24535 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24537 * config/rs6000/rs6000.md (type): Add new value "halfmul".
24538 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
24539 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
24540 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
24541 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
24542 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
24543 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
24544 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
24545 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
24546 * config/rs6000/titan.md: Delete nonsensical comment.
24547 (titan_imul): Add type imul3.
24548 (titan_mulhw): Remove type imul3; add type halfmul.
24550 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
24552 * config/rs6000/rs6000.md (type): Reorder, reformat.
24554 2014-05-23 Martin Jambor <mjambor@suse.cz>
24556 PR tree-optimization/53787
24557 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
24558 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
24559 analysis_done, update all uses.
24560 * ipa-prop.c: Include domwalk.h
24561 (param_analysis_info): Removed.
24562 (param_aa_status): New type.
24563 (ipa_bb_info): Likewise.
24564 (func_body_info): Likewise.
24565 (ipa_get_bb_info): New function.
24566 (aa_overwalked): Likewise.
24567 (find_dominating_aa_status): Likewise.
24568 (parm_bb_aa_status_for_bb): Likewise.
24569 (parm_preserved_before_stmt_p): Changed to use new param AA info.
24570 (load_from_unmodified_param): Accept func_body_info as a parameter
24571 instead of parms_ainfo.
24572 (parm_ref_data_preserved_p): Changed to use new param AA info.
24573 (parm_ref_data_pass_through_p): Likewise.
24574 (ipa_load_from_parm_agg_1): Likewise. Update callers.
24575 (compute_complex_assign_jump_func): Changed to use new param AA info.
24576 (compute_complex_ancestor_jump_func): Likewise.
24577 (ipa_compute_jump_functions_for_edge): Likewise.
24578 (ipa_compute_jump_functions): Removed.
24579 (ipa_compute_jump_functions_for_bb): New function.
24580 (ipa_analyze_indirect_call_uses): Likewise, moved variable
24582 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
24583 and info, moved variable declarations down.
24584 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
24586 (ipa_analyze_stmt_uses): Likewise.
24587 (ipa_analyze_params_uses): Removed.
24588 (ipa_analyze_params_uses_in_bb): New function.
24589 (ipa_analyze_controlled_uses): Likewise.
24590 (free_ipa_bb_info): Likewise.
24591 (analysis_dom_walker): New class.
24592 (ipa_analyze_node): Handle node-specific forbidden analysis,
24593 initialize and free func_body_info, use dominator walker.
24594 (ipcp_modif_dom_walker): New class.
24595 (ipcp_transform_function): Create and free func_body_info, use
24596 ipcp_modif_dom_walker, moved a lot of functionality there.
24598 2014-05-23 Marek Polacek <polacek@redhat.com>
24599 Jakub Jelinek <jakub@redhat.com>
24601 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
24602 * gcc.c (sanitize_spec_function): Likewise.
24603 * convert.c (convert_to_integer): Include "ubsan.h". Add
24604 floating-point to integer instrumentation.
24605 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
24606 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
24607 SANITIZE_NONDEFAULT.
24608 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
24609 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
24610 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
24611 * ubsan.c: Include "realmpfr.h" and "dfp.h".
24612 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
24613 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
24614 float/double/long double.
24615 (ubsan_instrument_float_cast): New function.
24616 * ubsan.h (ubsan_instrument_float_cast): Declare.
24618 2014-05-23 Jiong Wang <jiong.wang@arm.com>
24620 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
24622 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
24623 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
24624 Adjust for tailcalling through registers.
24625 * config/aarch64/aarch64.h (enum reg_class): New caller save
24627 (REG_CLASS_NAMES): Likewise.
24628 (REG_CLASS_CONTENTS): Likewise.
24629 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
24630 Allow tailcalling without decls.
24632 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
24634 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
24635 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
24637 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
24638 gsi, and variables v_* to v*.
24640 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
24642 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
24644 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
24646 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
24647 * omp-low.c: Update accordingly.
24649 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
24650 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
24651 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
24652 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
24653 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
24654 GF_OMP_TARGET_KIND_UPDATE.
24656 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
24657 Explicitly enumerate the expected region types.
24659 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
24662 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
24663 documentation; the old documentation didn't clearly state the
24664 constraints on the contents of the pointed-to storage.
24666 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24668 Fix bootstrap error on ia64
24669 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
24670 Return default value.
24672 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
24674 PR tree-optimization/54733
24675 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
24677 (find_bswap_or_nop_load): New.
24678 (find_bswap_1): Renamed to ...
24679 (find_bswap_or_nop_1): This. Also add support for memory source.
24680 (find_bswap): Renamed to ...
24681 (find_bswap_or_nop): This. Also add support for memory source and
24682 detection of bitwise operations equivalent to load in target
24684 (execute_optimize_bswap): Likewise. Also move its leading comment back
24685 in place and split statement transformation into ...
24686 (bswap_replace): This.
24688 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
24690 PR rtl-optimization/61215
24691 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
24692 simplify_gen_subreg until final substitution.
24694 2014-05-23 Alan Modra <amodra@gmail.com>
24697 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
24698 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
24699 Use "Y" constraint rather than "m".
24701 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
24703 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
24705 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
24706 New function declaration.
24707 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
24708 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
24709 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
24710 (aarch64_init_builtins) : Initialize builtins
24711 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24712 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24713 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
24714 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
24715 and __builtins_aarch64_set_fpsr.
24716 (aarch64_atomic_assign_expand_fenv): New function.
24717 * config/aarch64/aarch64.md (set_fpcr): New pattern.
24718 (get_fpcr) : Likewise.
24719 (set_fpsr) : Likewise.
24720 (get_fpsr) : Likewise.
24721 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
24722 and UNSPECV_SET_FPSR.
24723 * doc/extend.texi (AARCH64 Built-in Functions) : Document
24724 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24725 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24727 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
24729 PR rtl-optimization/60969
24730 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
24731 constraints. Set up mem cost for NO_REGS case.
24733 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
24735 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
24737 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
24739 * config/darwin.c: Include "lto-section-names.h".
24740 (LTO_SEGMENT_NAME): Don't define.
24741 * config/i386/winnt.c: Include "lto-section-names.h".
24742 * lto-streamer.c: Include "lto-section-names.h".
24743 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
24744 * lto-wrapper.c: Include "lto-section-names.h".
24745 (LTO_SECTION_NAME_PREFIX): Don't define.
24746 * lto-section-names.h: New file.
24747 * cgraphunit.c: Include "lto-section-names.h".
24749 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
24751 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
24753 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
24756 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
24758 2014-05-22 Nick Clifton <nickc@redhat.com>
24760 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
24762 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
24764 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
24765 -> (T)A transformation to integer types.
24767 2014-05-22 Teresa Johnson <tejohnson@google.com>
24769 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
24770 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
24771 (gcov_rewrite): Use gcov_nonruntime_assert.
24772 (gcov_open): Ditto.
24773 (gcov_write_words): Ditto.
24774 (gcov_write_length): Ditto.
24775 (gcov_read_words): Use gcov_nonruntime_assert, and remove
24776 gcc_assert from IN_LIBGCOV code.
24777 (gcov_read_summary): Use gcov_error to flag profile corruption.
24778 (gcov_sync): Use gcov_nonruntime_assert.
24779 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
24780 (gcov_histo_index): Use gcov_nonruntime_assert.
24781 (static void gcov_histogram_merge): Ditto.
24782 (compute_working_sets): Ditto.
24783 * gcov-io.h (gcov_nonruntime_assert): Define.
24784 (gcov_error): Define for !IN_LIBGCOV
24786 2014-05-22 Richard Biener <rguenther@suse.de>
24788 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
24789 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
24790 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
24791 and deallocation site.
24792 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24793 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
24794 passing through the incoming points-to set.
24795 (handle_lhs_call): Use flags argument instead of recomputing it.
24796 (find_func_aliases_for_call): Call handle_lhs_call with proper
24799 2014-05-22 Jakub Jelinek <jakub@redhat.com>
24801 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
24802 all padding bits in REAL_VALUE_TYPE are cleared.
24804 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24806 Cleanup and improve multipass_dfa_lookahead_guard
24807 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
24808 (core2i7_first_cycle_multipass_begin,)
24809 (core2i7_first_cycle_multipass_issue,)
24810 (core2i7_first_cycle_multipass_backtrack): Update signature.
24811 * config/ia64/ia64.c
24812 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
24813 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
24814 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
24816 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
24817 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
24819 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
24821 * doc/tm.texi: Regenerate.
24823 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
24824 * haifa-sched.c (ready_try): Make signed to allow negative values.
24825 (rebug_ready_list_1): Update.
24826 (choose_ready): Simplify.
24827 (sched_extend_ready_list): Update.
24829 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24831 Remove IA64 speculation tweaking flags
24832 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
24833 speculation tuning flags.
24834 (msched-prefer-non-data-spec-insns,)
24835 (msched-prefer-non-control-spec-insns): Obsolete options.
24836 * haifa-sched.c (choose_ready): Remove handling of
24837 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24838 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
24839 and PREFER_NON_DATA_SPEC.
24840 * sel-sched.c (process_spec_exprs): Remove handling of
24841 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24843 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24845 Improve scheduling debug output
24846 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
24847 (advance_one_cycle): Update.
24848 (schedule_insn, queue_to_ready): Add debug printouts.
24849 (debug_ready_list_1): New static function.
24850 (debug_ready_list): Update.
24851 (max_issue): Add debug printouts.
24852 (dump_insn_stream): New static function.
24853 (schedule_block): Use it. Also better indent printouts.
24855 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24857 Fix sched_insn debug counter
24858 * haifa-sched.c (schedule_insn): Update.
24859 (struct haifa_saved_data): Add nonscheduled_insns_begin.
24860 (save_backtrack_point, restore_backtrack_point): Update.
24861 (first_nonscheduled_insn): New static function.
24862 (queue_to_ready, choose_ready): Use it.
24863 (schedule_block): Init nonscheduled_insns_begin.
24864 (sched_emit_insn): Update.
24867 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
24869 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
24871 (aarch64_secondary_reload) : LikeWise.
24872 (aarch64_class_max_nregs) : Remove CORE_REGS.
24873 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
24874 (REG_CLASS_NAMES) : Likewise.
24875 (REG_CLASS_CONTENTS) : LikeWise.
24876 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
24878 2014-05-21 Guozhi Wei <carrot@google.com>
24881 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
24883 (vqdmulhq_n_s16): Likewise.
24885 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
24887 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
24889 2014-05-21 Marek Polacek <polacek@redhat.com>
24892 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
24894 2014-05-21 Martin Jambor <mjambor@suse.cz>
24896 * doc/invoke.texi (Optimize Options): Document parameters
24897 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
24898 ipa-cp-array-index-hint-bonus.
24900 2014-05-21 Mark Wielaard <mjw@redhat.com>
24903 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
24904 version >= 3 or not strict DWARF.
24905 * langhooks.h (struct lang_hooks_for_types): Add
24906 enum_underlying_base_type.
24907 * langhooks.c (lhd_enum_underlying_base_type): New function.
24908 * gcc/langhooks.h (struct lang_hooks_for_types): Add
24909 enum_underlying_base_type.
24910 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
24911 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
24912 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
24914 2014-05-21 Richard Biener <rguenther@suse.de>
24916 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
24918 2014-05-21 John Marino <gnugcc@marino.st>
24920 * config.gcc (*-*-dragonfly*): New target.
24921 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
24922 * configure: Regenerate.
24923 * config/dragonfly-stdint.h: New.
24924 * config/dragonfly.h: New.
24925 * config/dragonfly.opt: New.
24926 * config/i386/dragonfly.h: New.
24927 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
24929 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
24931 * tree.def (VOID_CST): New.
24932 * tree-core.h (TI_VOID): New.
24933 * tree.h (void_node): New.
24934 * tree.c (tree_node_structure_for_code, tree_code_size)
24935 (iterative_hash_expr): Handle VOID_CST.
24936 (build_common_tree_nodes): Initialize void_node.
24938 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
24940 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
24942 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
24944 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
24947 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
24948 flag_reorder_blocks_and_partition.
24949 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
24951 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
24954 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
24956 (*addc_r_t): Add new insn_and_split.
24958 2014-05-21 Jakub Jelinek <jakub@redhat.com>
24960 PR middle-end/61252
24961 * omp-low.c (handle_simd_reference): New function.
24962 (lower_rec_input_clauses): Use it. Defer adding reference
24963 initialization even for reduction without placeholder if in simd,
24964 handle it properly later on.
24966 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
24968 PR tree-optimization/60899
24969 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
24970 assume all static symbols will have definition wile parsing and
24971 check the do have definition later in compilation; check that
24972 variable referring symbol will be output before concluding that
24973 reference is safe; be conservative for referring local statics;
24974 be more precise about when comdat is output in other partition.
24976 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
24979 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
24981 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
24982 (ipa_inline): Loop inline_to_all_callers until no more aliases
24985 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
24987 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
24988 set writeonly flag only for vars actually written to.
24990 2014-05-20 Dehao Chen <dehao@google.com>
24992 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
24993 and callee count to get clone count.
24994 * tree-inline.c (expand_call_inline): Use callee count instead of bb
24995 count in copy_body.
24997 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
24999 PR rtl-optimization/61243
25000 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
25002 2014-05-20 Xinliang David Li <davidxl@google.com>
25004 * cgraphunit.c (walk_polymorphic_call_targets): Add
25005 dbgcnt and fopt-info support.
25006 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
25007 * ipa-devirt.c (ipa_devirt): Ditto.
25008 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
25009 * ipa.c (walk_polymorphic_call_targets): Ditto.
25010 * gimple-fold.c (fold_gimple_assign): Ditto.
25011 (gimple_fold_call): Ditto.
25012 * dbgcnt.def: New counter.
25014 2014-05-20 DJ Delorie <dj@redhat.com>
25016 * config/msp430/msp430.md (split): Don't allow subregs when
25017 splitting SImode adds.
25018 (andneghi): Fix subtraction logic.
25019 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
25021 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
25023 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
25025 * except.c (switch_to_exception_section, resolve_unique_section,
25026 get_named_text_section, default_function_rodata_section,
25027 align_variable, get_block_for_decl, default_section_type_flags):
25028 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
25029 * symtab.c (symtab_add_to_same_comdat_group,
25030 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
25031 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
25033 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
25034 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
25035 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
25036 (c6x_function_in_section_p): Likewise.
25037 * config/darwin.c (machopic_select_section): Likewise.
25038 * config/arm/arm.c (arm_function_in_section_p): Likewise.
25039 * config/mips/mips.c (mips_function_rodata_section): Likewise.
25040 * config/mep/mep.c (mep_select_section): LIkewise.
25041 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
25043 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
25045 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
25046 EH region of calls to pure functions that can throw an exception.
25047 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
25048 (copy_reference_ops_from_call): Also copy the EH region of the call if
25049 it can throw an exception.
25051 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25053 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
25054 nested VEC_SELECTs that are inverses of each other.
25056 2014-05-20 Richard Biener <rguenther@suse.de>
25058 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
25059 (extract_and_process_scc_for_name): not here.
25060 (cond_dom_walker::before_dom_children): Only process
25061 stmts that end the BB in interesting ways.
25062 (run_scc_vn): Mark param uses as visited.
25064 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25066 * config/arm/arm.md (arith_shiftsi): Do not predicate for
25069 2014-05-20 Nick Clifton <nickc@redhat.com>
25071 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
25072 (msp430_gimplify_va_arg_expr): New function.
25073 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
25075 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
25076 operand 0 in order to prevent confusion about the number of
25077 registers involved.
25079 2014-05-20 Richard Biener <rguenther@suse.de>
25081 PR tree-optimization/61221
25082 * tree-ssa-pre.c (el_to_update): Remove.
25083 (eliminate_dom_walker::before_dom_children): Handle released
25084 VDEFs by value-numbering them to the associated VUSE. Update
25085 stmt immediately for substituted call address.
25086 (eliminate): Remove delayed stmt updating code.
25087 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
25088 possibly late re-numbered vuses.
25089 (vn_reference_lookup_2): Adjust.
25090 (vn_reference_lookup_pieces): Likewise.
25091 (vn_reference_lookup): Likewise.
25093 2014-05-20 Richard Biener <rguenther@suse.de>
25095 * config.gcc: Remove need_64bit_hwint.
25096 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
25097 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
25099 * config.in: Regenerate.
25100 * configure: Likewise.
25102 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
25104 * doc/extend.texi: Create Label Attributes section,
25105 move all label attributes into it and reference it.
25107 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
25109 * arm.c (thumb1_reorg): When scanning backwards skip anything
25110 that's not a proper insn.
25112 2014-05-19 Richard Biener <rguenther@suse.de>
25114 PR tree-optimization/61221
25115 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
25116 Do nothing for unreachable blocks.
25117 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
25118 Improve unreachability detection.
25120 2014-05-19 Richard Biener <rguenther@suse.de>
25122 PR tree-optimization/61209
25123 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
25125 2014-05-19 Nick Clifton <nickc@redhat.com>
25127 * except.c (init_eh): Fix computation of builtin setjmp buffer
25128 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
25130 2014-05-19 Richard Biener <rguenther@suse.de>
25132 PR tree-optimization/61184
25133 * tree-vrp.c (is_negative_overflow_infinity): Use
25134 TREE_OVERFLOW_P and do that check first.
25135 (is_positive_overflow_infinity): Likewise.
25136 (is_overflow_infinity): Likewise.
25137 (vrp_operand_equal_p): Properly treat operands with
25138 differing overflow as not equal.
25140 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
25142 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
25143 shift simplification where it was intended.
25145 2014-05-19 Christian Bruel <christian.bruel@st.com>
25148 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
25150 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
25153 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
25156 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
25158 * reg-notes.def (CROSSING_JUMP): Likewise.
25159 * rtl.h (rtx_def): Update comment for jump flag.
25160 (CROSSING_JUMP_P): Define.
25161 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
25162 of a REG_CROSSING_JUMP note.
25163 * cfghooks.c (tidy_fallthru_edges): Likewise.
25164 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
25165 * emit-rtl.c (try_split): Likewise.
25166 * haifa-sched.c (sched_create_recovery_edges): Likewise.
25167 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
25168 * jump.c (redirect_jump_2): Likewise.
25169 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
25170 (relax_delay_slots): Likewise.
25171 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
25172 (bbit_di): Likewise.
25173 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
25174 * config/sh/sh.md (jump_compact): Likewise.
25175 * bb-reorder.c (rotate_loop): Likewise.
25176 (pass_duplicate_computed_gotos::execute): Likewise.
25177 (add_reg_crossing_jump_notes): Rename to...
25178 (update_crossing_jump_flags): ...this.
25179 (pass_partition_blocks::execute): Update accordingly.
25181 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
25183 * tree.h: Remove extraneous template <>.
25185 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
25187 * ipa.c (symtab_remove_unreachable_nodes): Remove
25188 symbol from comdat group if its body was eliminated.
25189 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
25190 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
25191 (symtab_unregister_node): ... this one.
25192 (verify_symtab_base): More strict checking of comdats.
25193 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
25195 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
25197 * tree-pass.h (make_pass_ipa_comdats): New pass.
25198 * timevar.def (TV_IPA_COMDATS): New timevar.
25199 * passes.def (pass_ipa_comdats): Add.
25200 * Makefile.in (OBJS): Add ipa-comdats.o
25201 * ipa-comdats.c: New file.
25203 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
25205 * ipa.c (update_visibility_by_resolution_info): New function.
25206 (function_and_variable_visibility): Use it.
25208 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
25210 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
25212 (FOR_EACH_DEFINED_SYMBOL): New macro.
25213 (varpool_first_static_initializer, varpool_next_static_initializer,
25214 varpool_first_defined_variable, varpool_next_defined_variable):
25216 (symtab_in_same_comdat_p): Correctly deal with inline functions.
25218 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
25220 * ggc-page.c (ggc_handle_finalizers): Add comment.
25222 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
25224 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
25225 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
25226 (ggc_internal_cleared_alloc): Likewise.
25227 * ggc-page.c (finalizer): New class.
25228 (vec_finalizer): Likewise.
25229 (globals::finalizers): New member.
25230 (globals::vec_finalizers): Likewise.
25231 (ggc_internal_alloc): Record the finalizer if any for the block being
25233 (ggc_handle_finalizers): New function.
25234 (ggc_collect): Call ggc_handle_finalizers.
25235 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
25237 (ggc_internal_cleared_alloc): Likewise.
25238 (finalize): New function.
25239 (need_finalization_p): Likewise.
25240 (ggc_alloc): Install the type's destructor as the finalizer if it
25241 might do something.
25242 (ggc_cleared_alloc): Likewise.
25243 (ggc_vec_alloc): Likewise.
25244 (ggc_cleared_vec_alloc): Likewise.
25246 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
25248 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
25250 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
25252 * alias.c (record_alias_subset): Adjust.
25253 * bitmap.c (bitmap_element_allocate): Likewise.
25254 (bitmap_gc_alloc_stat): Likewise.
25255 * cfg.c (init_flow): Likewise.
25256 (alloc_block): Likewise.
25257 (unchecked_make_edge): Likewise.
25258 * cfgloop.c (alloc_loop): Likewise.
25259 (flow_loops_find): Likewise.
25260 (rescan_loop_exit): Likewise.
25261 * cfgrtl.c (init_rtl_bb_info): Likewise.
25262 * cgraph.c (insert_new_cgraph_node_version): Likewise.
25263 (cgraph_allocate_node): Likewise.
25264 (cgraph_create_edge_1): Likewise.
25265 (cgraph_allocate_init_indirect_info): Likewise.
25266 * cgraphclones.c (cgraph_clone_edge): Likewise.
25267 * cgraphunit.c (add_asm_node): Likewise.
25268 (init_lowered_empty_function): Likewise.
25269 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
25270 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25271 (alpha_use_linkage): Likewise.
25272 * config/arc/arc.c (arc_init_machine_status): Likewise.
25273 * config/arm/arm.c (arm_init_machine_status): Likewise.
25274 * config/avr/avr.c (avr_init_machine_status): Likewise.
25275 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25276 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
25277 * config/cris/cris.c (cris_init_machine_status): Likewise.
25278 * config/darwin.c (machopic_indirection_name): Likewise.
25279 (darwin_build_constant_cfstring): Likewise.
25280 (darwin_enter_string_into_cfstring_table): Likewise.
25281 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
25282 * config/frv/frv.c (frv_init_machine_status): Likewise.
25283 * config/i386/i386.c (get_dllimport_decl): Likewise.
25284 (ix86_init_machine_status): Likewise.
25285 (assign_386_stack_local): Likewise.
25286 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25287 (i386_pe_maybe_record_exported_symbol): Likewise.
25288 (i386_pe_record_stub): Likewise.
25289 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25290 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25291 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25292 (m32c_note_pragma_address): Likewise.
25293 * config/mep/mep.c (mep_init_machine_status): Likewise.
25294 (mep_note_pragma_flag): Likewise.
25295 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25296 (mips16_local_alias): Likewise.
25297 (mips_init_machine_status): Likewise.
25298 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25299 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25300 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
25301 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
25302 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
25303 * config/pa/pa.c (pa_init_machine_status): Likewise.
25304 (pa_get_deferred_plabel): Likewise.
25305 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
25306 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25307 (rs6000_init_machine_status): Likewise.
25308 (output_toc): Likewise.
25309 * config/s390/s390.c (s390_init_machine_status): Likewise.
25310 * config/score/score.c (score_output_external): Likewise.
25311 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25312 * config/spu/spu.c (spu_init_machine_status): Likewise.
25313 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
25314 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
25315 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25316 * coverage.c (coverage_end_function): Likewise.
25317 * dbxout.c (dbxout_init): Likewise.
25318 * doc/gty.texi: Don't mention variable_size attribute.
25319 * dwarf2cfi.c (new_cfi): Adjust.
25320 (new_cfi_row): Likewise.
25321 (copy_cfi_row): Likewise.
25322 (create_cie_data): Likewise.
25323 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
25324 (new_loc_descr): Likewise.
25325 (find_AT_string_in_table): Likewise.
25326 (add_addr_table_entry): Likewise.
25327 (new_die): Likewise.
25328 (add_var_loc_to_decl): Likewise.
25329 (clone_die): Likewise.
25330 (clone_as_declaration): Likewise.
25331 (break_out_comdat_types): Likewise.
25332 (new_loc_list): Likewise.
25333 (add_loc_descr_to_each): Likewise.
25334 (add_location_or_const_value_attribute): Likewise.
25335 (add_linkage_name): Likewise.
25336 (lookup_filename): Likewise.
25337 (dwarf2out_var_location): Likewise.
25338 (new_line_info_table): Likewise.
25339 (dwarf2out_init): Likewise.
25340 (mem_loc_descriptor): Likewise.
25341 (loc_descriptor): Likewise.
25342 (add_const_value_attribute): Likewise.
25343 (tree_add_const_value_attribute): Likewise.
25344 (comp_dir_string): Likewise.
25345 (dwarf2out_vms_debug_main_pointer): Likewise.
25346 (string_cst_pool_decl): Likewise.
25347 * emit-rtl.c (set_mem_attrs): Likewise.
25348 (get_reg_attrs): Likewise.
25349 (start_sequence): Likewise.
25350 (init_emit): Likewise.
25351 (init_emit_regs): Likewise.
25352 * except.c (init_eh_for_function): Likewise.
25353 (gen_eh_region): Likewise.
25354 (gen_eh_region_catch): Likewise.
25355 (gen_eh_landing_pad): Likewise.
25356 (add_call_site): Likewise.
25357 * function.c (add_frame_space): Likewise.
25358 (insert_temp_slot_address): Likewise.
25359 (assign_stack_temp_for_type): Likewise.
25360 (get_hard_reg_initial_val): Likewise.
25361 (allocate_struct_function): Likewise.
25362 (prepare_function_start): Likewise.
25363 (types_used_by_var_decl_insert): Likewise.
25364 * gengtype.c (variable_size_p): Remove function.
25365 (enum alloc_quantity): Remove enum.
25366 (write_typed_alloc_def): Remove function.
25367 (write_typed_struct_alloc_def): Likewise.
25368 (write_typed_typedef_alloc_def): Likewise.
25369 (write_typed_alloc_defns): Likewise.
25371 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
25372 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
25373 * ggc.h (ggc_alloc): new function.
25374 (ggc_cleared_alloc): Likewise.
25375 (ggc_vec_alloc): Template on type of vector element, and remove
25376 element size argument.
25377 (ggc_cleared_vec_alloc): Likewise.
25378 * gimple.c (gimple_build_omp_for): Adjust.
25379 (gimple_copy): Likewise.
25380 * ipa-cp.c (get_replacement_map): Likewise.
25381 (find_aggregate_values_for_callers_subset): Likewise.
25382 (known_aggs_to_agg_replacement_list): Likewise.
25383 * ipa-devirt.c (get_odr_type): Likewise.
25384 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
25385 (read_agg_replacement_chain): Likewise.
25386 * loop-iv.c (get_simple_loop_desc): Likewise.
25387 * lto-cgraph.c (input_node_opt_summary): Likewise.
25388 * lto-section-in.c (lto_new_in_decl_state): Likewise.
25389 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
25390 (input_eh_region): Likewise.
25391 (input_eh_lp): Likewise.
25392 (input_cfg): Likewise.
25393 * optabs.c (set_optab_libfunc): Likewise.
25394 (init_tree_optimization_optabs): Likewise.
25395 (set_conv_libfunc): Likewise.
25396 * passes.c (do_per_function_toporder): Likewise.
25397 * rtl.h: Don't use variable_size gty attribute.
25398 * sese.c (if_region_set_false_region): Adjust.
25399 * stringpool.c (gt_pch_save_stringpool): Likewise.
25400 * target-globals.c (save_target_globals): Likewise.
25401 * toplev.c (general_init): Likewise.
25402 * trans-mem.c (record_tm_replacement): Likewise.
25403 (split_bb_make_tm_edge): Likewise.
25404 * tree-cfg.c (move_sese_region_to_fn): Likewise.
25405 * tree-data-ref.h (lambda_vector_new): Likewise.
25406 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
25407 * tree-iterator.c (tsi_link_before): Likewise.
25408 (tsi_link_after): Likewise.
25409 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
25410 * tree-ssa-loop-niter.c (record_estimate): Likewise.
25411 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
25412 * tree-ssa-operands.h: Don't use variable_size gty attribute.
25413 * tree-ssa.c (init_tree_ssa): Adjust.
25414 * tree-ssanames.c (set_range_info): Likewise.
25415 (get_ptr_info): Likewise.
25416 (duplicate_ssa_name_ptr_info): Likewise.
25417 (duplicate_ssa_name_range_info): Likewise.
25418 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
25419 (unpack_ts_fixed_cst_value_fields): Likewise.
25420 * tree.c (build_fixed): Likewise.
25421 (build_real): Likewise.
25422 (build_string): Likewise.
25423 (decl_priority_info): Likewise.
25424 (decl_debug_expr_insert): Likewise.
25425 (decl_value_expr_insert): Likewise.
25426 (decl_debug_args_insert): Likewise.
25427 (type_hash_add): Likewise.
25428 (build_omp_clause): Likewise.
25429 * ubsan.c (decl_for_type_insert): Likewise.
25430 * varasm.c (get_unnamed_section): Likewise.
25431 (get_noswitch_section): Likewise.
25432 (get_section): Likewise.
25433 (get_block_for_section): Likewise.
25434 (create_block_symbol): Likewise.
25435 (build_constant_desc): Likewise.
25436 (create_constant_pool): Likewise.
25437 (force_const_mem): Likewise.
25438 (record_tm_clone_pair): Likewise.
25439 * varpool.c (varpool_create_empty_node): Likewise.
25441 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
25443 * dwarf2out.c (tree_add_const_value_attribute): Call
25444 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
25445 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
25446 instead of ggc_internal_<x>alloc_stat.
25447 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
25448 (ggc_realloc): Likewise.
25449 * ggc-none.c (ggc_internal_alloc): Likewise.
25450 (ggc_internal_cleared_alloc): Likewise.
25451 * ggc-page.c: Likewise.
25452 * ggc.h (ggc_internal_alloc_stat): Likewise.
25453 (ggc_internal_alloc): Remove macro.
25454 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
25455 (ggc_internal_cleared_alloc): Remove macro.
25456 (GGC_RESIZEVEC): Adjust.
25457 (ggc_resizevar): Remove macro.
25458 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
25459 (ggc_internal_cleared_vec_alloc_stat): Likewise.
25460 (ggc_internal_vec_cleared_alloc): Remove macro.
25461 (ggc_alloc_atomic_stat): Drop _stat suffix.
25462 (ggc_alloc_atomic): Remove macro.
25463 (ggc_alloc_cleared_atomic): Remove macro.
25464 (ggc_alloc_string_stat): Drop _stat suffix.
25465 (ggc_alloc_string): Remove macro.
25466 (ggc_alloc_rtx_def_stat): Adjust.
25467 (ggc_alloc_tree_node_stat): Likewise.
25468 (ggc_alloc_cleared_tree_node_stat): Likewise.
25469 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
25470 (ggc_alloc_cleared_simd_clone_stat): Likewise.
25471 * gimple.c (gimple_build_omp_for): Likewise.
25472 (gimple_copy): Likewise.
25473 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
25474 * toplev.c (realloc_for_line_map): Adjust.
25475 * tree-data-ref.h (lambda_vector_new): Likewise.
25476 * tree-phinodes.c (allocate_phi_node): Likewise.
25477 * tree.c (grow_tree_vec_stat): Likewise.
25478 * vec.h (va_gc::reserve): Adjust.
25480 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
25482 * config/microblaze/microblaze.c (break_handler): New Declaration.
25483 (microblaze_break_function_p,microblaze_is_break_handler): New.
25484 (compute_frame_size): Use microblaze_break_function_p.
25485 Add the test of break_handler.
25486 (microblaze_function_prologue) : Add the test of variable
25487 break_handler. Check the fnname by BREAK_HANDLER_NAME.
25488 (microblaze_function_epilogue) : Add the test of break_handler.
25489 (microblaze_globalize_label) : Add the test of break_handler.
25490 Check the name by BREAK_HANDLER_NAME.
25492 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
25494 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
25495 microblaze_is_break_handler test.
25496 (call_internal1,call_value_intern): Use microblaze_break_function_p.
25497 Use SYMBOL_REF_DECL.
25499 * config/microblaze/microblaze-protos.h
25500 (microblaze_break_function_p,microblaze_is_break_handler):
25503 * doc/extend.texi (MicroBlaze break_handler Functions): Document
25504 new MicroBlaze break_handler functions.
25506 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
25508 * doc/extend.texi (Size of an asm): Move node text according
25509 to its @menu entry position.
25511 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
25513 PR tree-optimization/61140
25514 PR tree-optimization/61150
25515 PR tree-optimization/61197
25516 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
25518 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
25520 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
25522 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
25524 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
25525 __SIZEOF_INT128__ is defined.
25527 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
25529 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
25530 (rs6000_delegitimize_address): Use it.
25532 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
25534 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
25535 inplace argument. Store the new address in the original MEM when true.
25536 * emit-rtl.c (change_address_1): Likewise.
25537 (adjust_address_1, adjust_automodify_address_1, offset_address):
25538 Update accordingly.
25539 * rtl.h (plus_constant): Add an inplace argument.
25540 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
25541 when true. Avoid generating (plus X (const_int 0)).
25542 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
25543 in-place. Pass true to plus_constant.
25544 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
25546 2014-05-16 Dehao Chen <dehao@google.com>
25548 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
25550 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
25553 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
25555 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
25557 2014-05-16 Dehao Chen <dehao@google.com>
25559 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
25560 optimize_function_for_size_p.
25561 * regs.h (REG_FREQ_FROM_BB): Likewise.
25563 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
25566 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
25567 negt_reg_operand cases.
25568 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
25570 * config/sh/predicates.md (cbranch_treg_value): Simplify.
25572 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
25574 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
25577 2014-05-16 David Malcolm <dmalcolm@redhat.com>
25580 2014-04-29 David Malcolm <dmalcolm@redhat.com>
25582 * tree-cfg.c (dump_function_to_file): Dump the return type of
25583 functions, in a line to itself before the function body, mimicking
25584 the layout of a C function.
25586 2014-05-16 Dehao Chen <dehao@google.com>
25588 * cfghooks.c (make_forwarder_block): Use direct computation to
25589 get fall-through edge's count and frequency.
25591 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
25593 * config/arc/arc.c (arc_init): Fix typo in error message.
25594 * config/i386/i386.c (ix86_expand_builtin): Likewise.
25595 (split_stack_prologue_scratch_regno): Likewise.
25596 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
25597 word from error message.
25599 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
25601 * ira-costs.c: Fix typo in comment.
25603 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
25605 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
25607 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
25609 * varpool.c (dump_varpool_node): Dump write-only flag.
25610 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
25612 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
25613 write-only variables.
25614 * ipa.c (process_references): New function.
25615 (set_readonly_bit): New function.
25616 (set_writeonly_bit): New function.
25617 (clear_addressable_bit): New function.
25618 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
25619 fix handling of aliases.
25620 * cgraph.h (struct varpool_node): Add writeonly flag.
25622 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
25624 PR rtl-optimization/60969
25625 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
25626 Calculate costs for this case.
25628 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
25630 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
25631 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
25633 2014-05-16 Richard Biener <rguenther@suse.de>
25635 PR tree-optimization/61194
25636 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
25637 bool patterns ending in a COND_EXPR.
25639 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25641 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
25643 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25645 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
25646 where we were unable to cost an RTX.
25648 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25650 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
25653 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25654 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25656 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
25658 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25659 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25661 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
25662 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
25664 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25665 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25667 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
25670 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25671 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25673 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25676 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25677 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25679 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
25680 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
25682 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25683 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25685 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25686 rotates and shifts.
25688 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25689 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25691 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
25692 ZERO_EXTEND and SIGN_EXTEND better.
25694 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25695 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25697 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
25698 logical operations.
25700 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25701 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25703 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
25704 costs when costing loads and stores to memory.
25706 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25707 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
25709 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
25712 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25714 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
25716 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25717 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25719 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
25721 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
25723 (aarch64_rtx_mult_cost): New.
25724 (aarch64_rtx_costs): Use it, refactor as appropriate.
25726 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25727 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
25729 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
25730 emit instructions, return number of instructions which would
25732 (aarch64_add_constant): Update call to aarch64_build_constant.
25733 (aarch64_output_mi_thunk): Likewise.
25734 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
25737 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25739 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
25740 (TARGET_RTX_COSTS): Call it.
25742 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25744 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
25745 (cortexa57_vector_cost): Likewise.
25746 (cortexa57_tunings): Use them.
25748 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
25750 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
25751 (cpu_addrcost_table): Use it.
25752 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
25753 (aarch64_address_cost): Rewrite using aarch64_classify_address,
25756 2014-05-16 Richard Biener <rguenther@suse.de>
25758 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
25759 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
25760 (visit_phi): Ignore edges marked as not executable.
25761 (class cond_dom_walker): New.
25762 (cond_dom_walker::before_dom_children): Value-number
25763 control statements and mark successor edges as not
25764 executable if possible.
25765 (run_scc_vn): First walk all control statements in
25766 dominator order, marking edges as not executable.
25767 * tree-inline.c (copy_edges_for_bb): Be not confused
25768 about random edge flags.
25770 2014-05-16 Richard Biener <rguenther@suse.de>
25772 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
25774 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
25777 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
25778 (__TM_simple_begin): Use it.
25779 (__TM_begin): Likewise.
25781 2014-05-15 Martin Jambor <mjambor@suse.cz>
25784 * ipa-prop.c (update_indirect_edges_after_inlining): Check
25785 type_preserved flag when the indirect edge is polymorphic.
25787 2014-05-15 Martin Jambor <mjambor@suse.cz>
25789 PR tree-optimization/61090
25790 * tree-sra.c (sra_modify_expr): Pass the current gsi to
25791 build_ref_for_model.
25793 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25795 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
25796 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
25798 2014-05-15 Jakub Jelinek <jakub@redhat.com>
25800 PR tree-optimization/61158
25801 * fold-const.c (fold_binary_loc): If X is zero-extended and
25802 shiftc >= prec, make sure zerobits is all ones instead of
25803 invoking undefined behavior.
25805 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25807 * regcprop.h: New file.
25808 * regcprop.c (skip_debug_insn_p): New decl.
25809 (replace_oldest_value_reg): Check skip_debug_insn_p.
25810 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
25811 * shrink-wrap.c: Include regcprop.h.
25812 (prepare_shrink_wrap): Call
25813 copyprop_hardreg_forward_bb_without_debug_insn.
25815 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25817 * shrink-wrap.h: Update comment.
25818 * shrink-wrap.c: Update comment.
25819 (next_block_for_reg): Rename to live_edge_for_reg.
25820 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
25821 (move_insn_for_shrink_wrap): Split live_edge.
25822 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
25824 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
25826 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
25828 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
25829 * config/sparc/sparc.md (fptype_ut699): New attribute.
25830 (in_branch_delay): Return false if -mfix-ut699 is specified and
25831 fptype_ut699 is set to single.
25832 (truncdfsf2): Add fptype_ut699 attribute.
25833 (fix_truncdfsi2): Likewise.
25834 (floatsisf2): Change fptype attribute.
25835 (fix_truncsfsi2): Likewise.
25836 (negtf2_notv9): Delete.
25837 (negtf2_v9): Likewise.
25838 (negtf2_hq): New instruction.
25839 (negtf2): New instruction and splitter.
25840 (negdf2_notv9): Rewrite.
25841 (abstf2_notv9): Delete.
25842 (abstf2_hq_v9): Likewise.
25843 (abstf2_v9): Likewise.
25844 (abstf2_hq): New instruction.
25845 (abstf2): New instruction and splitter.
25846 (absdf2_notv9): Rewrite.
25848 2014-05-14 Cary Coutant <ccoutant@google.com>
25851 * opts.c (common_handle_option): Don't special-case "-g".
25852 (set_debug_level): Default to at least level 2 with "-g".
25854 2014-05-14 DJ Delorie <dj@redhat.com>
25856 * config/msp430/msp430.c (msp430_builtin): Add
25857 MSP430_BUILTIN_DELAY_CYCLES.
25858 (msp430_init_builtins): Register void __delay_cycles(long long).
25859 (msp430_builtin_decl): Add it.
25860 (cg_magic_constant): New.
25861 (msp430_expand_delay_cycles): New.
25862 (msp430_expand_builtin): Call it.
25863 (msp430_print_operand_raw): Change integer printing from "int" to
25865 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
25866 (delay_cycles_start): New.
25867 (delay_cycles_end): New.
25868 (delay_cycles_32): New.
25869 (delay_cycles_32x): New.
25870 (delay_cycles_16): New.
25871 (delay_cycles_16x): New.
25872 (delay_cycles_2): New.
25873 (delay_cycles_1): New.
25874 * doc/extend.texi: Document __delay_cycles().
25876 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
25878 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
25879 length attribute computation.
25881 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
25884 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
25886 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
25889 * config/sparc/sparc.md: Fix types of low and high in DI constant
25890 splitter. Use gen_int_mode in some other splitters.
25892 2014-05-14 Martin Jambor <mjambor@suse.cz>
25895 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
25897 2014-05-14 James Norris <jnorris@codesourcery.com>
25899 * omp-low.c (expand_parallel_call): Remove shadow variable.
25900 (expand_omp_taskreg): Likewise.
25902 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
25904 * common/config/i386/i386-common.c
25905 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
25906 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
25907 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
25908 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
25909 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
25910 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
25911 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
25912 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
25913 xsavecintrin.h, xsavesintrin.h.
25914 (x86_64-*-*): Ditto.
25915 * config/i386/clflushoptintrin.h: New.
25916 * config/i386/xsavecintrin.h: Ditto.
25917 * config/i386/xsavesintrin.h: Ditto.
25918 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
25919 (bit_XSAVES): Ditto.
25920 (bit_XSAVES): Ditto.
25921 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
25922 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
25924 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
25925 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
25926 OPTION_MASK_ISA_XSAVES.
25927 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
25928 -mxsavec, -mxsaves.
25929 (PTA_CLFLUSHOPT) Define.
25930 (PTA_XSAVEC): Ditto.
25931 (PTA_XSAVES): Ditto.
25932 (ix86_option_override_internal): Handle new options.
25933 (ix86_valid_target_attribute_inner_p): Ditto.
25934 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
25935 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
25936 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
25937 (bdesc_special_args): Add __builtin_ia32_xsaves,
25938 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
25939 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
25940 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
25941 (ix86_expand_builtin): Handle new builtins.
25942 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
25943 (TARGET_CLFLUSHOPT_P): Ditto.
25944 (TARGET_XSAVEC): Ditto.
25945 (TARGET_XSAVEC_P): Ditto.
25946 (TARGET_XSAVES): Ditto.
25947 (TARGET_XSAVES_P): Ditto.
25948 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
25949 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
25950 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
25952 (ANY_XRSTOR64): Ditto.
25954 (xrstor): Change into <xrstor>.
25955 (xrstor_rex64): Change into <xrstor>_rex64.
25956 (xrstor64): Change into <xrstor>64
25958 * config/i386/i386.opt (mclflushopt): New.
25961 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
25963 * doc/invoke.texi: Document new options.
25965 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
25967 PR rtl-optimization/60866
25968 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
25969 Default it to -1. Pass it down to init_simplejump_data.
25970 (init_simplejump_data): New parameter old_seqno. Pass it down
25971 to get_seqno_for_a_jump.
25972 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
25973 initializing new jump seqno as a last resort. Add comment.
25974 (sel_redirect_edge_and_branch): Save old seqno of the conditional
25975 jump and pass it down to sel_init_new_insn.
25976 (sel_redirect_edge_and_branch_force): Likewise.
25978 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
25980 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
25981 shifted values to avoid build warning.
25983 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
25985 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
25986 * cfgrtl.c (rtl_merge_blocks): Fix comment.
25987 (cfg_layout_merge_blocks): Likewise.
25988 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
25990 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
25992 PR rtl-optimization/60901
25993 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
25994 bb predecessor belongs to the same scheduling region. Adjust comment.
25996 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
25998 * doc/sourcebuild.texi: (dfp_hw): Document.
25999 (p8vector_hw): Likewise.
26000 (powerpc_eabi_ok): Likewise.
26001 (powerpc_elfv2): Likewise.
26002 (powerpc_htm_ok): Likewise.
26003 (ppc_recip_hw): Likewise.
26004 (vsx_hw): Likewise.
26006 2014-05-13 Cary Coutant <ccoutant@google.com>
26008 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
26010 2014-05-13 David Malcolm <dmalcolm@redhat.com>
26012 * gengtype-parse.c (require3): Eliminate in favor of...
26014 (require_template_declaration): Update to support optional single *
26017 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
26018 (create_user_defined_type): Handle a single level of explicit
26019 pointerness within template arguments.
26020 (struct write_types_data): Add field "kind".
26021 (filter_type_name): Handle "*" character.
26022 (write_user_func_for_structure_ptr): Require a write_types_data
26023 rather than just a prefix string, so that we can look up the kind
26024 of the wtd and use it as an index into wrote_user_func_for_ptr,
26025 ensuring that such functions are written at most once. Support
26026 subclasses by invoking the marking function of the ultimate base class.
26027 (write_user_func_for_structure_body): Require a write_types_data
26028 rather than just a prefix string, so that we can pass this to
26029 write_user_func_for_structure_ptr.
26030 (write_func_for_structure): Likewise.
26031 (ggc_wtd): Add initializer of new "kind" field.
26032 (pch_wtd): Likewise.
26034 * gengtype.h (enum write_types_kinds): New.
26035 (struct type): Add field wrote_user_func_for_ptr to the "s"
26038 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
26040 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
26041 instead of const_binop.
26042 (fold_binary_loc): Likewise.
26044 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
26046 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
26047 calculation to match get_ref_base_and_extent.
26049 2014-05-13 Catherine Moore <clm@codesourcery.com>
26050 Sandra Loosemore <sandra@codesourcery.com>
26052 * configure.ac: Fix assembly for explicit JALR relocation check.
26053 * configure: Regenerate.
26055 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26057 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
26058 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
26059 Remove associated type declarations and initialisations.
26060 (arm_expand_neon_builtin): Likewise.
26061 (neon_emit_pair_result_insn): Delete.
26062 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
26063 * config/arm/neon.md (neon_vtrn<mode>): Delete.
26064 (neon_vzip<mode>): Likewise.
26065 (neon_vuzp<mode>): Likewise.
26067 2014-05-13 Richard Biener <rguenther@suse.de>
26070 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
26071 it needs revisiting whether the call still may be tail-called.
26073 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26075 * rtl.def (SYMBOL_REF): Remove middle "0" field.
26076 * rtl.h (block_symbol): Reduce number of fields to 2.
26077 (rtx_def): Add u2.symbol_ref_flags.
26078 (SYMBOL_REF_FLAGS): Use it.
26079 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
26080 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
26081 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
26082 Lower index of SYMBOL_REF_DATA.
26083 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
26084 Print SYMBOL_REF_FLAGS at the same time.
26085 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
26087 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26089 * rtl.def (VAR_LOCATION): Remove "i" field.
26090 * rtl.h (rtx_def): Add u2.var_location_status.
26091 (PAT_VAR_LOCATION_STATUS): Use it.
26092 (gen_rtx_VAR_LOCATION): Declare.
26093 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
26094 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
26095 * var-tracking.c (emit_note_insn_var_location): Remove casts.
26097 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26099 * rtl.def (scratch): Fix outdated comment and remove "0" field.
26100 * gengtype.c (adjust_field_rtx_def): Update accordingly.
26102 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26104 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
26105 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
26106 * rtl.h (rtx_def): Add insn_uid to u2 field.
26107 (RTX_FLAG_CHECK8): Delete in favor of...
26108 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
26109 (INSN_DELETED_P): Update accordingly.
26110 (INSN_UID): Use u2.insn_uid.
26111 (INSN_CHAIN_CODE_P): Define.
26112 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
26113 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
26114 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
26115 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
26116 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
26117 indices accordingly.
26118 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
26119 Update indices for insn-chain rtxes.
26120 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
26121 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
26122 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
26123 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
26124 * combine.c (try_combine): Likewise.
26125 * ira.c (setup_prohibited_mode_move_regs): Likewise.
26127 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26129 * rtl.def (REG): Remove middle field.
26130 * rtl.h (rtx_def): Add orignal_regno to u2.
26131 (ORIGINAL_REGNO): Use it instead of field 1.
26132 (REG_ATTRS): Lower field index accordingly.
26133 * gengtype.c (adjust_field_rtx_def): Remove handling of
26134 ORIGINAL_REGNO. Move REG_ATTRS index down.
26135 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
26136 code that prints the REGNO.
26138 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26140 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
26143 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
26145 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
26147 2014-05-13 Bin Cheng <bin.cheng@arm.com>
26149 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
26150 (alloc_iv): Lower base expressions containing ADDR_EXPR.
26152 2014-05-13 Ian Bolton <ian.bolton@arm.com>
26154 * config/aarch64/aarch64-protos.h
26155 (aarch64_hard_regno_caller_save_mode): New prototype.
26156 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
26158 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
26160 2014-05-13 Christian Bruel <christian.bruel@st.com>
26162 * target.def (mode_switching): New hook vector.
26163 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
26164 (mode_exit, modepriority_to_mode): Likewise.
26165 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
26166 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26167 * target.h: Include tm.h and hard-reg-set.h.
26168 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
26169 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
26170 * doc/tm.texi Regenerate.
26171 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
26172 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26173 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
26174 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
26175 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
26176 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26177 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
26178 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
26179 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
26180 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
26181 (ix86_emit_mode_set): Hookify.
26182 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
26184 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26185 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
26186 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
26187 (epiphany_mode_priority_to_mode): Remove declaration.
26188 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
26189 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
26190 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
26192 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
26193 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
26194 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
26196 2014-05-13 Jakub Jelinek <jakub@redhat.com>
26199 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
26200 is const0_rtx, return immediately. Don't test count == 0 when
26203 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
26205 * Makefile.in: add shrink-wrap.o.
26206 * config/i386/i386.c: include "shrink-wrap.h"
26207 * function.c: Likewise.
26208 (requires_stack_frame_p, next_block_for_reg,
26209 move_insn_for_shrink_wrap, prepare_shrink_wrap,
26210 dup_block_and_redirect): Move to shrink-wrap.c
26211 (thread_prologue_and_epilogue_insns): Extract three code segments
26212 as functions in shrink-wrap.c
26213 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
26215 * shrink-wrap.c: New file.
26216 * shrink-wrap.h: New file.
26218 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
26220 * doc/extend.texi: Reflect current numbers of pragmas. Remove
26221 reference to Solaris.
26223 2014-05-12 Mike Stump <mikestump@comcast.net>
26226 * genattrtab.c (filename): Add.
26227 (convert_set_attr_alternative): Improve error message.
26228 (check_defs): Restore read_md_filename for error messages.
26229 (gen_insn): Save filename.
26231 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
26233 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
26234 -fno-local-ivars and -fivar-visibility.
26235 * c-family/c.opt: Make -Wshadow also implicitly enable
26238 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
26240 * doc/tm.texi: Remove reference to deleted macro.
26241 * doc/tm.texi.in: Likewise.
26243 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
26246 * config/avr/avr.c (avr_out_store_psi): Use correct constant
26249 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
26252 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
26253 * config/arm/aout.h (License): Same.
26254 * config/arm/bpabi.h (License): Same.
26255 * config/arm/elf.h (License): Same.
26256 * config/arm/linux-elf.h (License): Same.
26257 * config/arm/linux-gas.h (License): Same.
26258 * config/arm/netbsd-elf.h (License): Same.
26259 * config/arm/uclinux-eabi.h (License): Same.
26260 * config/arm/uclinux-elf.h (License): Same.
26261 * config/arm/vxworks.h (License): Same.
26263 2014-05-11 Jakub Jelinek <jakub@redhat.com>
26265 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
26266 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
26267 number of operands to 3.
26268 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
26269 * tree-nested.c (convert_nonlocal_omp_clauses,
26270 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
26271 * gimplify.c (gimplify_scan_omp_clauses): Handle
26272 OMP_CLAUSE_LINEAR_STMT.
26273 * omp-low.c (lower_rec_input_clauses): Fix typo.
26274 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
26275 cast between Fortran boolean_type_node and C _Bool if
26278 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
26280 PR tree-optimization/61136
26281 * wide-int.h (multiple_of_p): Define a version that doesn't return
26283 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
26284 integer_zerop/const_binop pair.
26285 (multiple_of_p): Likewise, converting both operands to widest_int
26288 2014-05-09 Teresa Johnson <tejohnson@google.com>
26290 * cgraphunit.c (analyze_functions): Use correct dump file.
26292 2014-05-09 Florian Weimer <fweimer@redhat.com>
26294 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
26296 (stack_protect_return_slot_p): New function.
26297 (expand_used_vars): Call stack_protect_decl_p and
26298 stack_protect_return_slot_p for -fstack-protector-strong.
26300 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
26301 Andrew Haley <aph@redhat.com>
26302 Richard Sandiford <rdsandiford@googlemail.com>
26304 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
26307 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
26309 PR middle-end/61111
26310 * fold-const.c (fold_binary_loc): Changed width of mask.
26312 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
26314 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
26315 unsigned int initializers for regno_in, regno_out.
26317 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
26320 * config/avr/avr.md (cc): Add new attribute set_vzn.
26321 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
26322 Set cc insn attribute to set_vzn instead of set_zn for alternatives
26323 with INC, DEC or NEG.
26324 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
26325 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
26326 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
26328 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26331 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26333 * wide-int.cc (UTItype): Define.
26334 (UDWtype): Define for appropriate W_TYPE_SIZE.
26336 2014-05-09 Richard Biener <rguenther@suse.de>
26338 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
26339 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
26340 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
26341 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
26342 ssa_propagate): Adjust.
26344 2014-05-08 Jeff Law <law@redhat.com>
26346 PR tree-optimization/61009
26347 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
26348 tri-state rather than a boolean. When a block is too big to
26349 thread through, inform caller via negative return value.
26350 (thread_across_edge): If a block was too big for normal threading,
26351 then it's too big for a joiner too, so remove temporary equivalences
26352 and return immediately.
26354 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
26355 Matthias Klose <doko@ubuntu.com>
26358 * optc-gen.awk: Fix option handling for -Wunused-parameter.
26360 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
26363 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
26365 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
26368 * config/alpha/alpha.c: Include gimple-iterator.h.
26369 (alpha_gimple_fold_builtin): New function. Move
26370 ALPHA_BUILTIN_UMULH folding from ...
26371 (alpha_fold_builtin): ... here.
26372 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
26374 2014-05-08 Wei Mi <wmi@google.com>
26377 * config/i386/i386.c (ix86_compute_frame_layout): Update
26378 preferred_stack_boundary for call, expanded from tls descriptor.
26379 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
26380 to depend on SP register.
26381 (*tls_local_dynamic_base_32_gnu): Ditto.
26382 (*tls_local_dynamic_32_once): Ditto.
26383 (tls_global_dynamic_64_<mode>): Set
26384 ix86_tls_descriptor_calls_expanded_in_cfun.
26385 (tls_local_dynamic_base_64_<mode>): Ditto.
26386 (tls_global_dynamic_32): Set
26387 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
26388 to depend on SP register.
26389 (tls_local_dynamic_base_32): Ditto.
26391 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26393 * config/arm/arm_neon.h: Update comment.
26394 * config/arm/neon-docgen.ml: Delete.
26395 * config/arm/neon-gen.ml: Delete.
26396 * doc/arm-neon-intrinsics.texi: Update comment.
26398 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26400 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
26402 (vand, vorr, veor, vorn, vbic): Remove.
26403 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
26405 (neon_vsub_unspec): Likewise.
26406 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
26408 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26410 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
26411 (vadd_s16): Likewise.
26412 (vadd_s32): Likewise.
26413 (vadd_f32): Likewise.
26414 (vadd_u8): Likewise.
26415 (vadd_u16): Likewise.
26416 (vadd_u32): Likewise.
26417 (vadd_s64): Likewise.
26418 (vadd_u64): Likewise.
26419 (vaddq_s8): Likewise.
26420 (vaddq_s16): Likewise.
26421 (vaddq_s32): Likewise.
26422 (vaddq_s64): Likewise.
26423 (vaddq_f32): Likewise.
26424 (vaddq_u8): Likewise.
26425 (vaddq_u16): Likewise.
26426 (vaddq_u32): Likewise.
26427 (vaddq_u64): Likewise.
26428 (vmul_s8): Likewise.
26429 (vmul_s16): Likewise.
26430 (vmul_s32): Likewise.
26431 (vmul_f32): Likewise.
26432 (vmul_u8): Likewise.
26433 (vmul_u16): Likewise.
26434 (vmul_u32): Likewise.
26435 (vmul_p8): Likewise.
26436 (vmulq_s8): Likewise.
26437 (vmulq_s16): Likewise.
26438 (vmulq_s32): Likewise.
26439 (vmulq_f32): Likewise.
26440 (vmulq_u8): Likewise.
26441 (vmulq_u16): Likewise.
26442 (vmulq_u32): Likewise.
26443 (vsub_s8): Likewise.
26444 (vsub_s16): Likewise.
26445 (vsub_s32): Likewise.
26446 (vsub_f32): Likewise.
26447 (vsub_u8): Likewise.
26448 (vsub_u16): Likewise.
26449 (vsub_u32): Likewise.
26450 (vsub_s64): Likewise.
26451 (vsub_u64): Likewise.
26452 (vsubq_s8): Likewise.
26453 (vsubq_s16): Likewise.
26454 (vsubq_s32): Likewise.
26455 (vsubq_s64): Likewise.
26456 (vsubq_f32): Likewise.
26457 (vsubq_u8): Likewise.
26458 (vsubq_u16): Likewise.
26459 (vsubq_u32): Likewise.
26460 (vsubq_u64): Likewise.
26461 (vand_s8): Likewise.
26462 (vand_s16): Likewise.
26463 (vand_s32): Likewise.
26464 (vand_u8): Likewise.
26465 (vand_u16): Likewise.
26466 (vand_u32): Likewise.
26467 (vand_s64): Likewise.
26468 (vand_u64): Likewise.
26469 (vandq_s8): Likewise.
26470 (vandq_s16): Likewise.
26471 (vandq_s32): Likewise.
26472 (vandq_s64): Likewise.
26473 (vandq_u8): Likewise.
26474 (vandq_u16): Likewise.
26475 (vandq_u32): Likewise.
26476 (vandq_u64): Likewise.
26477 (vorr_s8): Likewise.
26478 (vorr_s16): Likewise.
26479 (vorr_s32): Likewise.
26480 (vorr_u8): Likewise.
26481 (vorr_u16): Likewise.
26482 (vorr_u32): Likewise.
26483 (vorr_s64): Likewise.
26484 (vorr_u64): Likewise.
26485 (vorrq_s8): Likewise.
26486 (vorrq_s16): Likewise.
26487 (vorrq_s32): Likewise.
26488 (vorrq_s64): Likewise.
26489 (vorrq_u8): Likewise.
26490 (vorrq_u16): Likewise.
26491 (vorrq_u32): Likewise.
26492 (vorrq_u64): Likewise.
26493 (veor_s8): Likewise.
26494 (veor_s16): Likewise.
26495 (veor_s32): Likewise.
26496 (veor_u8): Likewise.
26497 (veor_u16): Likewise.
26498 (veor_u32): Likewise.
26499 (veor_s64): Likewise.
26500 (veor_u64): Likewise.
26501 (veorq_s8): Likewise.
26502 (veorq_s16): Likewise.
26503 (veorq_s32): Likewise.
26504 (veorq_s64): Likewise.
26505 (veorq_u8): Likewise.
26506 (veorq_u16): Likewise.
26507 (veorq_u32): Likewise.
26508 (veorq_u64): Likewise.
26509 (vbic_s8): Likewise.
26510 (vbic_s16): Likewise.
26511 (vbic_s32): Likewise.
26512 (vbic_u8): Likewise.
26513 (vbic_u16): Likewise.
26514 (vbic_u32): Likewise.
26515 (vbic_s64): Likewise.
26516 (vbic_u64): Likewise.
26517 (vbicq_s8): Likewise.
26518 (vbicq_s16): Likewise.
26519 (vbicq_s32): Likewise.
26520 (vbicq_s64): Likewise.
26521 (vbicq_u8): Likewise.
26522 (vbicq_u16): Likewise.
26523 (vbicq_u32): Likewise.
26524 (vbicq_u64): Likewise.
26525 (vorn_s8): Likewise.
26526 (vorn_s16): Likewise.
26527 (vorn_s32): Likewise.
26528 (vorn_u8): Likewise.
26529 (vorn_u16): Likewise.
26530 (vorn_u32): Likewise.
26531 (vorn_s64): Likewise.
26532 (vorn_u64): Likewise.
26533 (vornq_s8): Likewise.
26534 (vornq_s16): Likewise.
26535 (vornq_s32): Likewise.
26536 (vornq_s64): Likewise.
26537 (vornq_u8): Likewise.
26538 (vornq_u16): Likewise.
26539 (vornq_u32): Likewise.
26540 (vornq_u64): Likewise.
26542 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26544 * wide-int.cc (UTItype): Define.
26545 (UDWtype): Define for appropriate W_TYPE_SIZE.
26547 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
26549 PR tree-optimization/59100
26550 * tree-ssa-phiopt.c: Include tree-inline.h.
26551 (neutral_element_p, absorbing_element_p): New functions.
26552 (value_replacement): Handle conditional binary operations with a
26553 neutral or absorbing element.
26555 2014-05-08 Richard Biener <rguenther@suse.de>
26557 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
26558 folding the expression.
26559 (valueize_expr): Remove.
26560 (visit_reference_op_load): Do not valueize the result of
26562 (simplify_binary_expression): Likewise.
26563 (simplify_unary_expression): Likewise.
26565 2014-05-08 Richard Biener <rguenther@suse.de>
26567 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
26568 looking at TYPE_ARG_TYPES.
26570 2014-05-08 Richard Biener <rguenther@suse.de>
26572 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
26573 pointer propagation special-case.
26575 2014-05-08 Bin Cheng <bin.cheng@arm.com>
26577 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
26578 core part of address expressions.
26580 2014-05-08 Alan Modra <amodra@gmail.com>
26583 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
26584 loads and stores when -mno-strict-align at any alignment.
26585 (expand_block_clear): Similarly. Also correct calculation of
26588 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
26590 PR middle-end/39246
26591 * tree-complex.c (expand_complex_move): Keep line info when expanding
26593 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
26594 of complex expression. Use new argument to display correct location
26595 for values coming from phi statement.
26596 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
26597 (warn_uninitialized_phi): Pass location of phi argument to
26599 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
26600 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
26602 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
26604 * config/rs6000/predicates.md (indexed_address_mem): New.
26605 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
26606 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
26607 fpstore_ux, fpstore_u.
26608 (sign_extend, indexed, update): New.
26609 (cell_micro): Adjust.
26610 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
26611 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
26612 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
26613 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
26614 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
26615 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
26616 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
26617 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
26618 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
26619 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
26620 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
26621 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
26622 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
26623 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
26624 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
26626 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
26627 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
26628 *vsx_extract_<mode>_store): Adjust.
26629 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
26630 is_cracked_insn, insn_must_be_first_in_group,
26631 insn_must_be_last_in_group): Adjust.
26633 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
26635 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
26636 ppc440-fpstore): Adjust.
26637 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
26638 ppc476-fpstore): Adjust.
26639 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
26640 ppc601-fpstore): Adjust.
26641 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
26643 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
26645 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
26646 ppc7450-fpstore): Adjust.
26647 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
26648 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
26649 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
26651 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
26652 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
26653 cell-fpstore, cell-fpstore-update): Adjust.
26654 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
26655 ppce300c3_store, ppce300c3_fpstore): Adjust.
26656 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
26657 e500mc_fpstore): Adjust.
26658 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
26659 e500mc64_store, e500mc64_fpstore): Adjust.
26660 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
26661 e5500_fpstore): Adjust.
26662 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
26663 e6500_fpstore): Adjust.
26664 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
26666 * config/rs6000/power4.md (power4-load, power4-load-ext,
26667 power4-load-ext-update, power4-load-ext-update-indexed,
26668 power4-load-update-indexed, power4-load-update, power4-fpload,
26669 power4-fpload-update, power4-store, power4-store-update,
26670 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
26672 * config/rs6000/power5.md (power5-load, power5-load-ext,
26673 power5-load-ext-update, power5-load-ext-update-indexed,
26674 power5-load-update-indexed, power5-load-update, power5-fpload,
26675 power5-fpload-update, power5-store, power5-store-update,
26676 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
26678 * config/rs6000/power6.md (power6-load, power6-load-ext,
26679 power6-load-update, power6-load-update-indexed,
26680 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
26681 power6-fpload-update, power6-store, power6-store-update,
26682 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
26684 * config/rs6000/power7.md (power7-load, power7-load-ext,
26685 power7-load-update, power7-load-update-indexed,
26686 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
26687 power7-fpload-update, power7-store, power7-store-update,
26688 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
26690 * config/rs6000/power8.md (power8-load, power8-load-update,
26691 power8-load-ext, power8-load-ext-update, power8-fpload,
26692 power8-fpload-update, power8-store, power8-store-update-indexed,
26693 power8-fpstore, power8-fpstore-update): Adjust.
26694 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
26696 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
26697 titan_lsu_store, titan_lsu_fpstore): Adjust.
26698 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
26700 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
26703 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
26704 unrolled byte insns. Emit address increments after move insns.
26706 2014-05-07 David Malcolm <dmalcolm@redhat.com>
26708 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
26709 const_gimple, rather than a gimple.
26710 (gimple_call_builtin_p): Likewise, for the three variants.
26712 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
26713 (gimple_call_builtin_p): Likewise, for the three variants.
26715 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
26717 PR tree-optimization/61095
26718 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
26720 2014-05-07 Richard Biener <rguenther@suse.de>
26722 PR tree-optimization/61034
26723 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
26724 (maybe_skip_until): Use translate to take into account
26725 lattices when trying to do disambiguations.
26726 (get_continuation_for_phi_1): Likewise.
26727 (get_continuation_for_phi): Adjust for added translate arguments.
26728 (walk_non_aliased_vuses): Likewise.
26729 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
26730 (walk_non_aliased_vuses): Likewise.
26731 (call_may_clobber_ref_p_1): Declare.
26732 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
26733 calls. Stop early if we are only supposed to disambiguate.
26734 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
26736 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
26738 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
26739 Emit an error when the function has arguments.
26741 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
26743 * cfgloop.h (unswitch_loops): Remove.
26744 * doc/passes.texi: Remove references to loop-unswitch.c
26745 * timevar.def (TV_LOOP_UNSWITCH): Remove.
26747 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
26749 * tree-vect-data-refs.c (vect_grouped_load_supported): New
26750 check for loads group of length 3.
26751 (vect_permute_load_chain): New permutations for loads group of
26753 * tree-vect-stmts.c (vect_model_load_cost): Change cost
26754 of vec_perm_shuffle for the new permutations.
26756 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
26758 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
26759 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
26760 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
26761 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
26762 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
26763 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
26764 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
26765 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
26767 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
26769 * loop-unswitch.c: Delete.
26771 2014-05-07 Richard Biener <rguenther@suse.de>
26773 * config.gcc: Always set need_64bit_hwint to yes.
26775 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
26777 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
26778 of using optimize_size.
26780 2014-05-06 Mike Stump <mikestump@comcast.net>
26782 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
26784 2014-05-06 Joseph Myers <joseph@codesourcery.com>
26786 * config/i386/sse.md (*mov<mode>_internal)
26787 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
26788 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
26789 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
26790 (*<code><mode>3, *andnot<mode>3<mask_name>)
26791 (<mask_codefor><code><mode>3<mask_name>): Only consider
26792 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
26794 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
26797 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
26799 * lra-constraints.c (valid_address_p): Move earlier in file.
26800 Add a constraint argument to the address_info version.
26801 (satisfies_memory_constraint_p): New function.
26802 (satisfies_address_constraint_p): Likewise.
26803 (process_alt_operands, curr_insn_transform): Use them.
26804 (process_address): Pass the constraint to valid_address_p when
26805 checking address operands.
26807 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
26809 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
26810 to their respective blocks. Fix inadvertent use of "node".
26812 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
26814 * emit-rtl.c (init_derived_machine_modes): New functionm, split
26816 (init_emit_once): ...here.
26817 * rtl.h (init_derived_machine_modes): Declare.
26818 * toplev.c (do_compile): Call it even if no_backend.
26820 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
26821 Mike Stump <mikestump@comcast.net>
26822 Richard Sandiford <rdsandiford@googlemail.com>
26823 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26825 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
26826 (rtx_equal_for_memref_p): Update comment.
26827 (adjust_offset_for_component_ref): Use wide-int interfaces.
26828 * builtins.c (get_object_alignment_2): Likewise.
26829 (c_readstr): Likewise.
26830 (target_char_cast): Add comment.
26831 (determine_block_size): Use wide-int interfaces.
26832 (expand_builtin_signbit): Likewise.
26833 (fold_builtin_int_roundingfn): Likewise.
26834 (fold_builtin_bitop): Likewise.
26835 (fold_builtin_bswap): Likewise.
26836 (fold_builtin_logarithm): Use signop.
26837 (fold_builtin_pow): Likewise.
26838 (fold_builtin_memory_op): Use wide-int interfaces.
26839 (fold_builtin_object_size): Likewise.
26840 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
26841 nb_iterations_estimate.
26842 (record_niter_bound): Use wide-int interfaces.
26843 (get_estimated_loop_iterations_int): Likewise.
26844 (get_estimated_loop_iterations): Likewise.
26845 (get_max_loop_iterations): Likewise.
26846 * cfgloop.h: Include wide-int.h.
26847 (struct nb_iter_bound): Change bound to widest_int.
26848 (struct loop): Change nb_iterations_upper_bound and
26849 nb_iterations_estimate to widest_int.
26850 (record_niter_bound): Switch to use widest_int.
26851 (get_estimated_loop_iterations): Likewise.
26852 (get_max_loop_iterations): Likewise.
26853 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
26854 update for wide-int.
26855 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
26856 * combine.c (try_combine): Likewise.
26857 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
26858 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
26860 (aarch64_float_const_representable_p): Likewise.
26861 * config/arc/arc.c: Include wide-int.h.
26862 (arc_can_use_doloop_p): Use wide-int interfaces.
26863 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
26864 (vfp3_const_double_index): Likewise.
26865 * config/avr/avr.c (avr_out_round): Likewise.
26866 (avr_fold_builtin): Likewise.
26867 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
26868 (bfin_can_use_doloop_p): Likewise.
26869 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
26870 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
26871 * config/i386/i386.c: Include wide-int.h.
26872 (ix86_data_alignment): Use wide-int interfaces.
26873 (ix86_local_alignment): Likewise.
26874 (ix86_emit_swsqrtsf): Update real_from_integer.
26875 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
26876 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
26877 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
26878 (zero_constant): Likewise.
26879 (input_operand): Likewise.
26880 (splat_input_operand): Likewise.
26881 (non_logical_cint_operand): Change const_double to const_wide_int.
26882 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
26883 (easy_altivec_constant): Remove comment.
26884 (paired_expand_vector_init): Use CONSTANT_P.
26885 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
26886 (rs6000_emit_move): Update checks.
26887 (rs6000_aggregate_candidate): Use wide-int interfaces.
26888 (rs6000_expand_ternop_builtin): Likewise.
26889 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
26890 (rs6000_assemble_integer): Likewise.
26891 (rs6000_hash_constant): Likewise.
26892 (output_toc): Likewise.
26893 (rs6000_rtx_costs): Likewise.
26894 (rs6000_emit_swrsqrt); Update call to real_from_integer.
26895 * config/rs6000/rs6000-c.c: Include wide-int.h.
26896 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
26897 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
26898 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
26899 Handle CONST_WIDE_INT.
26900 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
26901 Use tree_fits_uhwi_p.
26902 * config/sparc/sparc.c: Include wide-int.h.
26903 (sparc_fold_builtin): Use wide-int interfaces.
26904 * config/vax/vax.c: Include wide-int.h.
26905 (vax_float_literal): Use real_from_integer.
26906 * coretypes.h (struct hwivec_def): New.
26908 (const_hwivec): New.
26909 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
26910 (equiv_constant): Handle CONST_WIDE_INT.
26911 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
26912 (cselib_hash_rtx): Handle CONST_WIDE_INT.
26913 * dbxout.c (stabstr_U): Use wide-int interfaces.
26914 (dbxout_type): Update to use cst_fits_shwi_p.
26915 * defaults.h (LOG2_BITS_PER_UNIT): Define.
26916 (TARGET_SUPPORTS_WIDE_INT): Add default.
26917 * dfp.c: Include wide-int.h.
26918 (decimal_real_to_integer2): Use wide-int interfaces and rename to
26919 decimal_real_to_integer.
26920 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
26921 decimal_real_to_integer.
26922 * doc/generic.texi (Constant expressions): Update for wide_int.
26923 * doc/rtl.texi (const_double): Likewise.
26924 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
26925 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
26926 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
26927 (REAL_VALUE_FROM_INT): Remove.
26928 (TARGET_SUPPORTS_WIDE_INT): New.
26929 * doc/tm.texi: Regenerate.
26930 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
26931 * double-int.h: Include wide-int.h.
26932 (struct wi::int_traits): New.
26933 * dwarf2out.c (get_full_len): New.
26934 (dw_val_equal_p): Add case dw_val_class_wide_int.
26935 (size_of_loc_descr): Likewise.
26936 (output_loc_operands): Likewise.
26937 (insert_double): Remove.
26938 (insert_wide_int): New.
26939 (add_AT_wide): New.
26940 (print_die): Add case dw_val_class_wide_int.
26941 (attr_checksum): Likewise.
26942 (attr_checksum_ordered): Likewise.
26943 (same_dw_val_p): Likewise.
26944 (size_of_die): Likewise.
26945 (value_format): Likewise.
26946 (output_die): Likewise.
26947 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
26949 (clz_loc_descriptor): Use wide-int interfaces.
26950 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
26951 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
26952 (round_up_to_align): Use wide-int interfaces.
26953 (field_byte_offset): Likewise.
26954 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
26955 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
26956 CONST_DOUBLE handling. Use wide-int interfaces.
26957 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
26958 (gen_enumeration_type_die): Use add_AT_wide.
26959 (hash_loc_operands): Add case dw_val_class_wide_int.
26960 (compare_loc_operands): Likewise.
26961 * dwarf2out.h: Include wide-int.h.
26962 (wide_int_ptr): New.
26963 (enum dw_val_class): Add dw_val_class_wide_int.
26964 (struct dw_val_struct): Add val_wide.
26965 * emit-rtl.c (const_wide_int_htab): New.
26966 (const_wide_int_htab_hash): New.
26967 (const_wide_int_htab_eq): New.
26968 (lookup_const_wide_int): New.
26969 (const_double_htab_hash): Use wide-int interfaces.
26970 (const_double_htab_eq): Likewise.
26971 (rtx_to_double_int): Conditionally compile for wide-int.
26972 (immed_double_int_const): Rename to immed_wide_int_const and
26973 update for wide-int.
26974 (immed_double_const): Conditionally compile for wide-int.
26975 (init_emit_once): Use wide-int interfaces.
26976 * explow.c (plus_constant): Likewise.
26977 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
26978 (lshift_value): Use wide-int interfaces.
26979 (expand_mult): Likewise.
26980 (choose_multiplier): Likewise.
26981 (expand_smod_pow2): Likewise.
26982 (make_tree): Likewise.
26983 * expr.c (convert_modes): Consolidate handling of constants.
26984 Use wide-int interfaces.
26985 (emit_group_load_1): Add note.
26986 (store_expr): Update comment.
26987 (get_inner_reference): Use wide-int interfaces.
26988 (expand_constructor): Update comment.
26989 (expand_expr_real_2): Use wide-int interfaces.
26990 (expand_expr_real_1): Likewise.
26991 (reduce_to_bit_field_precision): Likewise.
26992 (const_vector_from_tree): Likewise.
26993 * final.c: Include wide-int-print.h.
26994 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
26995 * fixed-value.c: Include wide-int.h.
26996 (fixed_from_string): Use wide-int interfaces.
26997 (fixed_to_decimal): Likewise.
26998 (fixed_convert_from_real): Likewise.
26999 (real_convert_from_fixed): Likewise.
27000 * fold-const.h (mem_ref_offset): Return an offset_int.
27001 (div_if_zero_remainder): Remove code parameter.
27002 * fold-const.c (div_if_zero_remainder): Remove code parameter.
27003 Use wide-int interfaces.
27004 (may_negate_without_overflow_p): Use wide-int interfaces.
27005 (negate_expr_p): Likewise.
27006 (fold_negate_expr): Likewise.
27007 (int_const_binop_1): Likewise.
27008 (const_binop): Likewise.
27009 (fold_convert_const_int_from_int): Likewise.
27010 (fold_convert_const_int_from_real): Likewise.
27011 (fold_convert_const_int_from_fixed): Likewise.
27012 (fold_convert_const_fixed_from_int): Likewise.
27013 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
27014 (sign_bit_p): Use wide-int interfaces.
27015 (make_range_step): Likewise.
27016 (build_range_check): Likewise. Pass an integer of the correct type
27017 instead of using integer_one_node.
27018 (range_predecessor): Pass an integer of the correct type instead
27019 of using integer_one_node.
27020 (range_successor): Likewise.
27021 (merge_ranges): Likewise.
27022 (unextend): Use wide-int interfaces.
27023 (extract_muldiv_1): Likewise.
27024 (fold_div_compare): Likewise.
27025 (fold_single_bit_test): Likewise.
27026 (fold_sign_changed_comparison): Likewise.
27027 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
27028 (fold_plusminus_mult_expr): Use wide-int interfaces.
27029 (native_encode_int): Likewise.
27030 (native_interpret_int): Likewise.
27031 (fold_unary_loc): Likewise.
27032 (pointer_may_wrap_p): Likewise.
27033 (size_low_cst): Likewise.
27034 (mask_with_tz): Likewise.
27035 (fold_binary_loc): Likewise.
27036 (fold_ternary_loc): Likewise.
27037 (multiple_of_p): Likewise.
27038 (tree_call_nonnegative_warnv_p): Update calls to
27039 tree_int_cst_min_precision and real_from_integer.
27040 (fold_negate_const): Use wide-int interfaces.
27041 (fold_abs_const): Likewise.
27042 (fold_relational_const): Use tree_int_cst_lt.
27043 (round_up_loc): Use wide-int interfaces.
27044 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
27045 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
27046 * gengtype.c: Remove include of double-int.h.
27047 (do_typedef): Use wide-int interfaces.
27048 (open_base_files): Add wide-int.h.
27049 (main): Add offset_int and widest_int typedefs.
27050 * gengtype-lex.l: Handle "^".
27051 (CXX_KEYWORD): Add "static".
27052 * gengtype-parse.c (require3): New.
27053 (require_template_declaration): Handle constant template arguments
27054 and nested templates.
27055 * gengtype-state.c: Don't include "double-int.h".
27056 * genpreds.c (write_one_predicate_function): Update comment.
27057 (write_tm_constrs_h): Add check for hval and lval use in
27059 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
27060 (add_to_sequence): Likewise.
27061 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
27062 and const_double_operand.
27063 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
27065 * gimple-fold.c (get_base_constructor): Likewise.
27066 (fold_array_ctor_reference): Likewise.
27067 (fold_nonarray_ctor_reference): Likewise.
27068 (fold_const_aggregate_ref_1): Likewise.
27069 (gimple_val_nonnegative_real_p): Likewise.
27070 (gimple_fold_indirect_ref): Likewise.
27071 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
27072 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
27073 (struct slsr_cand_d): Change index to be widest_int.
27074 (struct incr_info_d): Change incr to be widest_int.
27075 (alloc_cand_and_find_basis): Use wide-int interfaces.
27076 (slsr_process_phi): Likewise.
27077 (backtrace_base_for_ref): Likewise. Return a widest_int.
27078 (restructure_reference): Take a widest_int instead of a double_int.
27079 (slsr_process_ref): Use wide-int interfaces.
27080 (create_mul_ssa_cand): Likewise.
27081 (create_mul_imm_cand): Likewise.
27082 (create_add_ssa_cand): Likewise.
27083 (create_add_imm_cand): Take a widest_int instead of a double_int.
27084 (slsr_process_add): Use wide-int interfaces.
27085 (slsr_process_cast): Likewise.
27086 (slsr_process_copy): Likewise.
27087 (dump_candidate): Likewise.
27088 (dump_incr_vec): Likewise.
27089 (replace_ref): Likewise.
27090 (cand_increment): Likewise. Return a widest_int.
27091 (cand_abs_increment): Likewise.
27092 (replace_mult_candidate): Take a widest_int instead of a double_int.
27093 (replace_unconditional_candidate): Use wide-int interfaces.
27094 (incr_vec_index): Take a widest_int instead of a double_int.
27095 (create_add_on_incoming_edge): Likewise.
27096 (create_phi_basis): Use wide-int interfaces.
27097 (replace_conditional_candidate): Likewise.
27098 (record_increment): Take a widest_int instead of a double_int.
27099 (record_phi_increments): Use wide-int interfaces.
27100 (phi_incr_cost): Take a widest_int instead of a double_int.
27101 (lowest_cost_path): Likewise.
27102 (total_savings): Likewise.
27103 (analyze_increments): Use wide-int interfaces.
27104 (ncd_with_phi): Take a widest_int instead of a double_int.
27105 (ncd_of_cand_and_phis): Likewise.
27106 (nearest_common_dominator_for_cands): Likewise.
27107 (insert_initializers): Use wide-int interfaces.
27108 (all_phi_incrs_profitable): Likewise.
27109 (replace_one_candidate): Likewise.
27110 (replace_profitable_candidates): Likewise.
27111 * godump.c: Include wide-int-print.h.
27112 (go_output_typedef): Use wide-int interfaces.
27113 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
27114 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
27115 (build_loop_iteration_domains): Likewise.
27116 * hooks.h: Include wide-int.h rather than double-int.h.
27117 (hook_bool_dint_dint_uint_bool_true): Delete.
27118 (hook_bool_wint_wint_uint_bool_true): Declare.
27119 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
27120 (hook_bool_wint_wint_uint_bool_true): New.
27121 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
27123 (ubsan_expand_si_overflow_mul_check): Likewise.
27124 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
27125 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
27126 (get_ancestor_addr_info): Likewise.
27127 (ipa_modify_call_arguments): Likewise.
27128 * loop-doloop.c (doloop_modify): Likewise.
27129 (doloop_optimize): Likewise.
27130 * loop-iv.c (iv_number_of_iterations): Likewise.
27131 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
27132 (unroll_loop_constant_iterations): Likewise.
27133 (decide_unroll_runtime_iterations): Likewise.
27134 (unroll_loop_runtime_iterations): Likewise.
27135 (decide_peel_simple): Likewise.
27136 (decide_unroll_stupid): Likewise.
27137 * lto-streamer-in.c (streamer_read_wi): Add.
27138 (input_cfg): Use wide-int interfaces.
27139 (lto_input_tree_1): Likewise.
27140 * lto-streamer-out.c (streamer_write_wi): Add.
27141 (hash_tree): Use wide-int interfaces.
27142 (output_cfg): Likewise.
27143 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
27144 (GTFILES): Add wide-int.h and signop.h.
27145 (TAGS): Look for .cc files too.
27146 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
27147 * optabs.c (expand_subword_shift): Likewise.
27148 (expand_doubleword_shift): Likewise.
27149 (expand_absneg_bit): Likewise.
27150 (expand_copysign_absneg): Likewise.
27151 (expand_copysign_bit): Likewise.
27152 * postreload.c (reload_cse_simplify_set): Likewise.
27153 * predict.c (predict_iv_comparison): Likewise.
27154 * pretty-print.h: Include wide-int-print.h.
27156 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
27157 * print-tree.c: Include wide-int-print.h.
27158 (print_node_brief): Use wide-int interfaces.
27159 (print_node): Likewise.
27160 * read-rtl.c (validate_const_wide_int): New.
27161 (read_rtx_code): Add CONST_WIDE_INT case.
27162 * real.c: Include wide-int.h.
27163 (real_to_integer2): Delete.
27164 (real_to_integer): New function, returning a wide_int.
27165 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
27166 (ten_to_ptwo): Update call to real_from_integer.
27167 (real_digit): Likewise.
27168 * real.h: Include signop.h, wide-int.h and insn-modes.h.
27169 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
27170 (REAL_VALUE_TO_INT): Delete.
27171 (real_to_integer): Declare a wide-int form.
27172 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
27173 * recog.c (const_int_operand): Improve comment.
27174 (const_scalar_int_operand): New.
27175 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
27176 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
27177 (split_double): Likewise.
27178 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
27179 (rtx_size): Likewise.
27180 (rtx_alloc_stat_v): New.
27181 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
27182 (cwi_output_hex): New.
27183 (iterative_hash_rtx): Handle CONST_WIDE_INT.
27184 (cwi_check_failed_bounds): New.
27185 * rtl.def (CONST_WIDE_INT): New.
27186 * rtl.h: Include <utility> and wide-int.h.
27187 (struct hwivec_def): New.
27188 (CWI_GET_NUM_ELEM): New.
27189 (CWI_PUT_NUM_ELEM): New.
27190 (struct rtx_def): Add num_elem and hwiv.
27191 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
27192 (CASE_CONST_UNIQUE): Likewise.
27193 (CASE_CONST_ANY): Likewise.
27194 (CONST_SCALAR_INT_P): Likewise.
27195 (CONST_WIDE_INT_P): New.
27197 (HWIVEC_CHECK): New.
27198 (cwi_check_failed_bounds): New.
27200 (HWIVEC_CHECK): New.
27201 (CONST_WIDE_INT_VEC) New.
27202 (CONST_WIDE_INT_NUNITS) New.
27203 (CONST_WIDE_INT_ELT) New.
27204 (rtx_mode_t): New type.
27205 (wi::int_traits <rtx_mode_t>): New.
27207 (wi::min_value): New.
27208 (wi::max_value): New.
27210 (const_wide_int_alloc): New.
27211 (immed_wide_int_const): New.
27212 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
27213 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
27214 * signop.h: New file.
27215 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
27216 (simplify_const_unary_operation): Use wide-int interfaces.
27217 (simplify_binary_operation_1): Likewise.
27218 (simplify_const_binary_operation): Likewise.
27219 (simplify_const_relational_operation): Likewise.
27220 (simplify_immed_subreg): Likewise.
27221 * stmt.c (expand_case): Likewise.
27222 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
27223 signop rather than a bool.
27224 * stor-layout.c (layout_type): Use wide-int interfaces.
27225 (initialize_sizetypes): Update calls to
27226 set_min_and_max_values_for_integral_type.
27227 (set_min_and_max_values_for_integral_type): Take a signop rather
27228 than a bool. Use wide-int interfaces.
27229 (fixup_signed_type): Update accordingly. Remove
27230 HOST_BITS_PER_DOUBLE_INT limit.
27231 (fixup_unsigned_type): Likewise.
27232 * system.h (STATIC_CONSTANT_P): New.
27233 (STATIC_ASSERT): New.
27234 * target.def (can_use_doloop_p): Take widest_ints rather than
27236 * target.h: Include wide-int.h rather than double-int.h.
27237 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
27239 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
27240 rather than INT_CST_LT_UNSIGNED.
27241 (can_use_doloop_if_innermost): Take widest_ints rather than
27243 * tree-affine.c: Include wide-int-print.h.
27244 (double_int_ext_for_comb): Delete.
27245 (wide_int_ext_for_comb): New.
27246 (aff_combination_zero): Use wide-int interfaces.
27247 (aff_combination_const): Take a widest_int instead of a double_int.
27248 (aff_combination_elt): Use wide-int interfaces.
27249 (aff_combination_scale): Take a widest_int instead of a double_int.
27250 (aff_combination_add_elt): Likewise.
27251 (aff_combination_add_cst): Likewise.
27252 (aff_combination_add): Use wide-int interfaces.
27253 (aff_combination_convert): Likewise.
27254 (tree_to_aff_combination): Likewise.
27255 (add_elt_to_tree): Take a widest_int instead of a double_int.
27256 (aff_combination_to_tree): Use wide-int interfaces.
27257 (aff_combination_remove_elt): Likewise.
27258 (aff_combination_add_product): Take a widest_int instead of
27260 (aff_combination_mult): Use wide-int interfaces.
27261 (aff_combination_expand): Likewise.
27262 (double_int_constant_multiple_p): Delete.
27263 (wide_int_constant_multiple_p): New.
27264 (aff_combination_constant_multiple_p): Take a widest_int pointer
27265 instead of a double_int pointer.
27266 (print_aff): Use wide-int interfaces.
27267 (get_inner_reference_aff): Take a widest_int pointer
27268 instead of a double_int pointer.
27269 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
27270 * tree-affine.h: Include wide-int.h.
27271 (struct aff_comb_elt): Change type of coef to widest_int.
27272 (struct affine_tree_combination): Change type of offset to widest_int.
27273 (double_int_ext_for_comb): Delete.
27274 (wide_int_ext_for_comb): New.
27275 (aff_combination_const): Use widest_int instead of double_int.
27276 (aff_combination_scale): Likewise.
27277 (aff_combination_add_elt): Likewise.
27278 (aff_combination_constant_multiple_p): Likewise.
27279 (get_inner_reference_aff): Likewise.
27280 (aff_comb_cannot_overlap_p): Likewise.
27281 (aff_combination_zero_p): Use wide-int interfaces.
27282 * tree.c: Include tree.h.
27283 (init_ttree): Use make_int_cst.
27284 (tree_code_size): Removed code for INTEGER_CST case.
27285 (tree_size): Add INTEGER_CST case.
27286 (make_node_stat): Update comment.
27287 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
27288 (build_int_cst_type): Use wide-int interfaces.
27289 (double_int_to_tree): Likewise.
27290 (double_int_fits_to_tree_p): Delete.
27291 (force_fit_type_double): Delete.
27292 (force_fit_type): New.
27293 (int_cst_hash_hash): Use wide-int interfaces.
27294 (int_cst_hash_eq): Likewise.
27295 (build_int_cst_wide): Delete.
27296 (wide_int_to_tree): New.
27297 (cache_integer_cst): Use wide-int interfaces.
27298 (build_low_bits_mask): Likewise.
27299 (cst_and_fits_in_hwi): Likewise.
27300 (real_value_from_int_cst): Likewise.
27301 (make_int_cst_stat): New.
27302 (integer_zerop): Use wide_int interfaces.
27303 (integer_onep): Likewise.
27304 (integer_all_onesp): Likewise.
27305 (integer_pow2p): Likewise.
27306 (integer_nonzerop): Likewise.
27307 (tree_log2): Likewise.
27308 (tree_floor_log2): Likewise.
27309 (tree_ctz): Likewise.
27310 (int_size_in_bytes): Likewise.
27311 (mem_ref_offset): Return an offset_int rather than a double_int.
27312 (build_type_attribute_qual_variant): Use wide_int interfaces.
27313 (type_hash_eq): Likewise
27314 (tree_int_cst_equal): Likewise.
27315 (tree_int_cst_lt): Delete.
27316 (tree_int_cst_compare): Likewise.
27317 (tree_fits_shwi_p): Use wide_int interfaces.
27318 (tree_fits_uhwi_p): Likewise.
27319 (tree_int_cst_sign_bit): Likewise.
27320 (tree_int_cst_sgn): Likewise.
27321 (tree_int_cst_min_precision): Take a signop rather than a bool.
27322 (simple_cst_equal): Use wide_int interfaces.
27323 (compare_tree_int): Likewise.
27324 (iterative_hash_expr): Likewise.
27325 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
27327 (get_type_static_bounds): Use wide_int interfaces.
27328 (tree_int_cst_elt_check_failed): New.
27329 (build_common_tree_nodes): Reordered to set prec before filling in
27331 (int_cst_value): Check cst_and_fits_in_hwi.
27332 (widest_int_cst_value): Use wide_int interfaces.
27333 (upper_bound_in_type): Likewise.
27334 (lower_bound_in_type): Likewise.
27335 (num_ending_zeros): Likewise.
27336 (drop_tree_overflow): Likewise.
27337 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
27338 (gen_conditions_for_pow_cst_base): Likewise.
27339 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
27340 (group_case_labels_stmt): Use wide-int interfaces.
27341 (verify_gimple_assign_binary): Likewise.
27342 (print_loop): Likewise.
27343 * tree-chrec.c (tree_fold_binomial): Likewise.
27344 * tree-core.h (struct tree_base): Add int_length.
27345 (struct tree_int_cst): Change rep of value.
27346 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
27347 (dr_may_alias_p): Likewise.
27348 (max_stmt_executions_tree): Likewise.
27349 * tree.def (INTEGER_CST): Update comment.
27350 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
27351 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
27352 * tree-dump.c: Include wide-int.h and wide-int-print.h.
27353 (dequeue_and_dump): Use wide-int interfaces.
27354 * tree.h: Include wide-int.h.
27355 (NULL_TREE): Moved to earlier loc in file.
27356 (TREE_INT_CST_ELT_CHECK): New.
27357 (tree_int_cst_elt_check_failed): New.
27359 (TREE_INT_CST): Delete.
27360 (TREE_INT_CST_LOW): Use wide-int interfaces.
27361 (TREE_INT_CST_HIGH): Delete.
27362 (TREE_INT_CST_NUNITS): New.
27363 (TREE_INT_CST_EXT_NUNITS): Likewise.
27364 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
27365 (TREE_INT_CST_ELT): Likewise.
27366 (INT_CST_LT): Delete.
27367 (tree_int_cst_elt_check): New (two forms).
27368 (type_code_size): Update comment.
27369 (make_int_cst_stat, make_int_cst): New.
27370 (tree_to_double_int): Delete.
27371 (double_int_fits_to_tree_p): Delete.
27372 (force_fit_type_double): Delete.
27373 (build_int_cstu): Replace with out-of-line function.
27374 (build_int_cst_wide): Delete.
27375 (tree_int_cst_lt): Define inline.
27376 (tree_int_cst_le): New.
27377 (tree_int_cst_compare): Define inline.
27378 (tree_int_cst_min_precision): Take a signop rather than a bool.
27379 (wi::int_traits <const_tree>): New.
27380 (wi::int_traits <tree>): New.
27381 (wi::extended_tree): New.
27382 (wi::int_traits <wi::extended_tree>): New.
27383 (wi::to_widest): New.
27384 (wi::to_offset): New.
27385 (wi::fits_to_tree_p): New.
27386 (wi::min_value): New.
27387 (wi::max_value): New.
27388 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
27389 (copy_tree_body_r): Likewise.
27390 * tree-object-size.c (compute_object_offset): Likewise.
27391 (addr_object_size): Likewise.
27392 * tree-predcom.c: Include wide-int-print.h.
27393 (struct dref_d): Change type of offset to widest_int.
27394 (dump_dref): Call wide-int printer.
27395 (aff_combination_dr_offset): Use wide-int interfaces.
27396 (determine_offset): Take a widest_int pointer rather than a
27397 double_int pointer.
27398 (split_data_refs_to_components): Use wide-int interfaces.
27399 (suitable_component_p): Likewise.
27400 (order_drefs): Likewise.
27401 (add_ref_to_chain): Likewise.
27402 (valid_initializer_p): Likewise.
27403 (determine_roots_comp): Likewise.
27404 * tree-pretty-print.c: Include wide-int-print.h.
27405 (dump_generic_node): Use wide-int interfaces.
27406 * tree-sra.c (sra_ipa_modify_expr): Likewise.
27407 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
27408 (move_fixed_address_to_symbol): Likewise.
27409 (move_hint_to_base): Likewise.
27410 (move_pointer_to_base): Likewise.
27411 (move_variant_to_index): Likewise.
27412 (most_expensive_mult_to_index): Likewise.
27413 (addr_to_parts): Likewise.
27414 (copy_ref_info): Likewise.
27415 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
27416 (indirect_refs_may_alias_p): Likewise.
27417 (stmt_kills_ref_p_1): Likewise.
27418 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
27419 * tree-ssa-ccp.c: Update comment at top of file. Include
27421 (struct prop_value_d): Change type of mask to widest_int.
27422 (extend_mask): New function.
27423 (dump_lattice_value): Use wide-int interfaces.
27424 (get_default_value): Likewise.
27425 (set_constant_value): Likewise.
27426 (set_value_varying): Likewise.
27427 (valid_lattice_transition): Likewise.
27428 (set_lattice_value): Likewise.
27429 (value_to_double_int): Delete.
27430 (value_to_wide_int): New.
27431 (get_value_from_alignment): Use wide-int interfaces.
27432 (get_value_for_expr): Likewise.
27433 (do_dbg_cnt): Likewise.
27434 (ccp_finalize): Likewise.
27435 (ccp_lattice_meet): Likewise.
27436 (bit_value_unop_1): Use widest_ints rather than double_ints.
27437 (bit_value_binop_1): Likewise.
27438 (bit_value_unop): Use wide-int interfaces.
27439 (bit_value_binop): Likewise.
27440 (bit_value_assume_aligned): Likewise.
27441 (evaluate_stmt): Likewise.
27442 (ccp_fold_stmt): Likewise.
27443 (visit_cond_stmt): Likewise.
27444 (ccp_visit_stmt): Likewise.
27445 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
27446 (constant_pointer_difference): Likewise.
27447 (associate_pointerplus): Likewise.
27448 (combine_conversions): Likewise.
27449 * tree-ssa-loop.h: Include wide-int.h.
27450 (struct tree_niter_desc): Change type of max to widest_int.
27451 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
27452 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
27453 (remove_redundant_iv_tests): Likewise.
27454 (canonicalize_loop_induction_variables): Likewise.
27455 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
27456 (constant_multiple_of): Take a widest_int pointer instead of
27457 a double_int pointer.
27458 (get_computation_aff): Use wide-int interfaces.
27459 (ptr_difference_cost): Likewise.
27460 (difference_cost): Likewise.
27461 (get_loop_invariant_expr_id): Likewise.
27462 (get_computation_cost_at): Likewise.
27463 (iv_elimination_compare_lt): Likewise.
27464 (may_eliminate_iv): Likewise.
27465 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
27466 instead of double_int.
27467 (max_loop_iterations): Likewise.
27468 (max_stmt_executions): Likewise.
27469 (estimated_stmt_executions): Likewise.
27470 * tree-ssa-loop-niter.c: Include wide-int-print.h.
27471 (split_to_var_and_offset): Use wide-int interfaces.
27472 (determine_value_range): Likewise.
27473 (bound_difference_of_offsetted_base): Likewise.
27474 (bounds_add): Take a widest_int instead of a double_int.
27475 (number_of_iterations_ne_max): Use wide-int interfaces.
27476 (number_of_iterations_ne): Likewise.
27477 (number_of_iterations_lt_to_ne): Likewise.
27478 (assert_loop_rolls_lt): Likewise.
27479 (number_of_iterations_lt): Likewise.
27480 (number_of_iterations_le): Likewise.
27481 (number_of_iterations_cond): Likewise.
27482 (number_of_iterations_exit): Likewise.
27483 (finite_loop_p): Likewise.
27484 (derive_constant_upper_bound_assign): Likewise.
27485 (derive_constant_upper_bound): Return a widest_int.
27486 (derive_constant_upper_bound_ops): Likewise.
27487 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
27488 (record_estimate): Take a widest_int rather than a double_int.
27489 (record_nonwrapping_iv): Use wide-int interfaces.
27490 (double_int_cmp): Delete.
27491 (wide_int_cmp): New.
27492 (bound_index): Take a widest_int rather than a double_int.
27493 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
27494 (maybe_lower_iteration_bound): Likewise.
27495 (estimate_numbers_of_iterations_loop): Likewise.
27496 (estimated_loop_iterations): Take a widest_int pointer than than
27497 a double_int pointer.
27498 (estimated_loop_iterations_int): Use wide-int interfaces.
27499 (max_loop_iterations): Take a widest_int pointer than than
27500 a double_int pointer.
27501 (max_loop_iterations_int): Use wide-int interfaces.
27502 (max_stmt_executions): Take a widest_int pointer than than
27503 a double_int pointer.
27504 (estimated_stmt_executions): Likewise.
27505 (n_of_executions_at_most): Use wide-int interfaces.
27506 (scev_probably_wraps_p): Likewise.
27507 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
27508 to real_to_integer.
27509 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
27511 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
27512 double_ints. Adjust for trailing_wide_ints <3> representation.
27513 (set_nonzero_bits): Likewise.
27514 (get_range_info): Return wide_ints rather than double_ints.
27515 Adjust for trailing_wide_ints <3> representation.
27516 (get_nonzero_bits): Likewise.
27517 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
27519 * tree-ssanames.h (struct range_info_def): Replace min, max and
27520 nonzero_bits with a trailing_wide_ints <3>.
27521 (set_range_info): Use wide_int_refs rather than double_ints.
27522 (set_nonzero_bits): Likewise.
27523 (get_range_info): Return wide_ints rather than double_ints.
27524 (get_nonzero_bits): Likewise.
27525 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
27526 * tree-ssa-pre.c (phi_translate_1): Likewise.
27527 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
27528 (acceptable_pow_call): Likewise.
27529 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
27531 (vn_reference_fold_indirect): Likewise.
27532 (vn_reference_maybe_forwprop_address): Likewise.
27533 (valueize_refs_1): Likewise.
27534 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
27535 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
27536 tree_int_cst_lt and tree_int_cst_le.
27537 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
27539 (streamer_alloc_tree): Likewise.
27540 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
27541 (streamer_write_tree_header): Likewise.
27542 (streamer_write_integer_cst): Likewise.
27543 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
27544 (build_constructors): Likewise.
27545 (array_value_type): Likewise.
27546 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
27547 (vect_check_gather): Likewise.
27548 * tree-vect-generic.c (build_replicated_const): Likewise.
27549 (expand_vector_divmod): Likewise.
27550 * tree-vect-loop.c (vect_transform_loop): Likewise.
27551 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
27552 (vect_do_peeling_for_alignment): Likewise.
27553 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
27554 * tree-vrp.c: Include wide-int.h.
27555 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
27556 (extract_range_from_assert): Use wide-int interfaces.
27557 (vrp_int_const_binop): Likewise.
27558 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
27559 double_int pointers.
27560 (ranges_from_anti_range): Use wide-int interfaces.
27561 (quad_int_cmp): Delete.
27562 (quad_int_pair_sort): Likewise.
27563 (extract_range_from_binary_expr_1): Use wide-int interfaces.
27564 (extract_range_from_unary_expr_1): Likewise.
27565 (adjust_range_with_scev): Likewise.
27566 (masked_increment): Take and return wide_ints rather than double_ints.
27567 (register_edge_assert_for_2): Use wide-int interfaces.
27568 (check_array_ref): Likewise.
27569 (search_for_addr_array): Likewise.
27570 (maybe_set_nonzero_bits): Likewise.
27571 (union_ranges): Pass an integer of the correct type instead of
27572 using integer_one_node.
27573 (intersect_ranges): Likewise.
27574 (simplify_truth_ops_using_ranges): Likewise.
27575 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
27576 (range_fits_type_p): Likewise.
27577 (simplify_cond_using_ranges): Likewise. Take a signop rather than
27579 (simplify_conversion_using_ranges): Use wide-int interfaces.
27580 (simplify_float_conversion_using_ranges): Likewise.
27581 (vrp_finalize): Likewise.
27582 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
27583 (gimple_stringops_transform): Likewise.
27584 * varasm.c (decode_addr_const): Likewise.
27585 (const_hash_1): Likewise.
27586 (const_rtx_hash_1): Likewise
27587 (output_constant): Likewise.
27588 (array_size_for_constructor): Likewise.
27589 (output_constructor_regular_field): Likewise.
27590 (output_constructor_bitfield): Likewise.
27591 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
27592 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
27594 * gencheck.c: Define BITS_PER_UNIT.
27595 * wide-int.cc: New.
27597 * wide-int-print.cc: New.
27598 * wide-int-print.h: New.
27600 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
27602 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
27604 2014-05-06 Richard Biener <rguenther@suse.de>
27606 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
27607 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
27608 (TODO_verify_all): Adjust.
27609 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
27610 TODO_verify_stmts and TODO_verify_rtl_sharing.
27611 * bb-reorder.c: Likewise.
27612 * cfgexpand.c: Likewise.
27613 * cprop.c: Likewise.
27615 * function.c: Likewise.
27616 * fwprop.c: Likewise.
27617 * gcse.c: Likewise.
27618 * gimple-ssa-isolate-paths.c: Likewise.
27619 * gimple-ssa-strength-reduction.c: Likewise.
27620 * ipa-split.c: Likewise.
27621 * loop-init.c: Likewise.
27622 * loop-unroll.c: Likewise.
27623 * lower-subreg.c: Likewise.
27624 * modulo-sched.c: Likewise.
27625 * postreload-gcse.c: Likewise.
27626 * predict.c: Likewise.
27627 * recog.c: Likewise.
27628 * sched-rgn.c: Likewise.
27629 * store-motion.c: Likewise.
27630 * tracer.c: Likewise.
27631 * trans-mem.c: Likewise.
27632 * tree-call-cdce.c: Likewise.
27633 * tree-cfg.c: Likewise.
27634 * tree-cfgcleanup.c: Likewise.
27635 * tree-complex.c: Likewise.
27636 * tree-eh.c: Likewise.
27637 * tree-emutls.c: Likewise.
27638 * tree-if-conv.c: Likewise.
27639 * tree-into-ssa.c: Likewise.
27640 * tree-loop-distribution.c: Likewise.
27641 * tree-object-size.c: Likewise.
27642 * tree-parloops.c: Likewise.
27643 * tree-pass.h: Likewise.
27644 * tree-sra.c: Likewise.
27645 * tree-ssa-ccp.c: Likewise.
27646 * tree-ssa-copy.c: Likewise.
27647 * tree-ssa-copyrename.c: Likewise.
27648 * tree-ssa-dce.c: Likewise.
27649 * tree-ssa-dom.c: Likewise.
27650 * tree-ssa-dse.c: Likewise.
27651 * tree-ssa-forwprop.c: Likewise.
27652 * tree-ssa-ifcombine.c: Likewise.
27653 * tree-ssa-loop-ch.c: Likewise.
27654 * tree-ssa-loop-ivcanon.c: Likewise.
27655 * tree-ssa-loop.c: Likewise.
27656 * tree-ssa-math-opts.c: Likewise.
27657 * tree-ssa-phiopt.c: Likewise.
27658 * tree-ssa-phiprop.c: Likewise.
27659 * tree-ssa-pre.c: Likewise.
27660 * tree-ssa-reassoc.c: Likewise.
27661 * tree-ssa-sink.c: Likewise.
27662 * tree-ssa-strlen.c: Likewise.
27663 * tree-ssa-tail-merge.c: Likewise.
27664 * tree-ssa-uncprop.c: Likewise.
27665 * tree-switch-conversion.c: Likewise.
27666 * tree-tailcall.c: Likewise.
27667 * tree-vect-generic.c: Likewise.
27668 * tree-vectorizer.c: Likewise.
27669 * tree-vrp.c: Likewise.
27670 * tsan.c: Likewise.
27671 * var-tracking.c: Likewise.
27672 * bt-load.c: Likewise.
27673 * cfgcleanup.c: Likewise.
27674 * combine-stack-adj.c: Likewise.
27675 * combine.c: Likewise.
27676 * compare-elim.c: Likewise.
27677 * config/epiphany/resolve-sw-modes.c: Likewise.
27678 * config/i386/i386.c: Likewise.
27679 * config/mips/mips.c: Likewise.
27680 * config/s390/s390.c: Likewise.
27681 * config/sh/sh_treg_combine.cc: Likewise.
27682 * config/sparc/sparc.c: Likewise.
27685 * final.c: Likewise.
27686 * ifcvt.c: Likewise.
27687 * mode-switching.c: Likewise.
27688 * passes.c: Likewise.
27689 * postreload.c: Likewise.
27691 * reg-stack.c: Likewise.
27692 * regcprop.c: Likewise.
27693 * regrename.c: Likewise.
27696 2014-05-06 Richard Biener <rguenther@suse.de>
27698 PR middle-end/61070
27699 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
27700 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
27702 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
27705 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
27707 2014-05-05 Radovan Obradovic <robradovic@mips.com>
27708 Tom de Vries <tom@codesourcery.com>
27710 * target.def (call_fusage_contains_non_callee_clobbers): New
27712 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
27714 (@node Miscellaneous Register Hooks): New node.
27715 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
27716 * doc/tm.texi: Regenerate.
27718 2014-05-05 Marek Polacek <polacek@redhat.com>
27721 * opts.c (common_handle_option): Call error_at instead of warning_at.
27723 2014-05-05 Richard Biener <rguenther@suse.de>
27725 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
27726 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
27727 under the TODO_verify_il umbrella.
27729 2014-05-05 Richard Biener <rguenther@suse.de>
27731 * passes.c (execute_function_todo): Move TODO_verify_flow under
27732 the TODO_verify_ul umbrella.
27734 2014-05-05 Richard Biener <rguenther@suse.de>
27736 PR middle-end/61010
27737 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
27738 X & CST away from a CST that is the mask of a mode.
27740 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
27742 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
27743 int argument to enum machine_mode.
27744 (picochip_class_max_nregs): Ditto.
27745 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
27746 (picochip_class_max_nregs): Ditto.
27748 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27750 * target.def: Add new target hook.
27751 * doc/tm.texi: Regenerate.
27752 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
27753 * targhooks.c (default_keep_leaf_when_profiled): New function.
27755 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
27756 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
27758 2014-05-05 Bin Cheng <bin.cheng@arm.com>
27760 PR tree-optimization/60363
27761 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
27762 (copy_phi_args): New parameters. Call get_value_locus_in_path.
27763 (update_destination_phis): New parameter.
27764 (create_edge_and_update_destination_phis): Ditto.
27765 (ssa_fix_duplicate_block_edges): Pass new arguments.
27766 (thread_single_edge): Ditto.
27768 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
27770 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
27771 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
27772 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
27773 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
27774 Use RS6000_BTM_HARD_FLOAT.
27775 (BU_MISC_2): Likewise.
27776 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
27777 RS6000_BTM_HARD_FLOAT.
27778 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
27779 is explicitly used.
27780 (rs6000_invalid_builtin): Add hard floating builtin support.
27781 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
27782 hard float builtins.
27783 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
27785 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27787 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
27788 Add missing function* argument.
27790 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
27792 * lra-constraints.c (valid_address_p): Move earlier in file.
27793 Add a constraint argument to the address_info version.
27794 (satisfies_memory_constraint_p): New function.
27795 (satisfies_address_constraint_p): Likewise.
27796 (process_alt_operands, curr_insn_transform): Use them.
27797 (process_address): Pass the constraint to valid_address_p when
27798 checking address operands.
27800 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
27802 * config/mips/mips.c (mips_isa_rev): New variable.
27803 (mips_set_architecture): Set it.
27804 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
27806 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
27807 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
27808 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
27809 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
27810 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
27811 conditions in terms of mips_isa_rev.
27812 (mips_isa_rev): Declare.
27814 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27816 * config/sh/sh-mem.cc: Use tabs instead of spaces.
27817 (prob_unlikely, prob_likely): Make variables const.
27819 2014-05-03 Denis Chertykov <chertykov@gmail.com>
27821 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
27823 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27825 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
27827 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27829 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
27830 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
27831 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
27833 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
27834 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
27836 Replace usage of ROUND_REG with sh_round_reg.
27837 Use CEIL instead of ROUND_ADVANCE.
27839 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
27842 * config/sh/sh.c: Include stdlib headers before everything else.
27844 2014-05-02 Jakub Jelinek <jakub@redhat.com>
27846 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
27847 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
27848 (gimplify_adjust_omp_clauses): Simd region is never
27849 directly nested in combined parallel. Instead, for linear
27850 with copyin/copyout, if in combined for simd loop, make decl
27851 firstprivate/lastprivate on OMP_FOR.
27852 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
27853 expand_omp_for_static_chunk): When setting endvar, also set
27854 fd->loop.v to the same value.
27856 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
27858 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
27860 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
27862 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
27865 2014-05-02 Marek Polacek <polacek@redhat.com>
27867 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
27869 2014-05-02 Kito Cheng <kito@0xlab.org>
27871 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
27872 to a C expression marco.
27873 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
27874 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
27875 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
27876 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
27877 HONOR_REG_ALLOC_ORDER.
27878 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
27880 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
27882 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
27884 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
27886 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
27888 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
27890 * tree-if-conv.c (is_cond_scalar_reduction): New function.
27891 (convert_scalar_cond_reduction): Likewise.
27892 (predicate_scalar_phi): Add recognition and transformation
27893 of simple conditioanl reduction to be vectorizable.
27895 2014-05-01 Marek Polacek <polacek@redhat.com>
27898 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
27900 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
27902 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
27903 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
27904 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
27905 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
27906 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
27907 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
27908 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
27909 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
27911 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
27913 * config/arc/arc.opt (mlra): Move comment above option name
27914 to avoid mis-parsing as language options.
27916 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27918 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
27919 * config/sol2.h: ... here.
27920 * config/sol2-10.h: Remove.
27922 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
27923 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
27924 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
27925 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
27926 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
27927 * config/sol2.h: ... here.
27928 (SECTION_NAME_FORMAT): Don't redefine.
27929 (STARTFILE_ARCH32_SPEC): Rename to ...
27930 (STARTFILE_ARCH_SPEC): ... this.
27931 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
27932 * config/sparc/sol2.h: ... here.
27933 (SECTION_NAME_FORMAT): Don't undef.
27934 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
27935 (SUBTARGET_EXTRA_SPECS): Remove.
27936 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
27938 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
27939 (MD_STARTFILE_PREFIX): Remove.
27940 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
27941 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
27942 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
27943 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
27944 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
27945 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
27946 * config/i386/sol2.h: ... here.
27947 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
27948 * config/i386/sol2-bi.h: Remove.
27949 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
27950 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
27952 * config/i386/t-sol2-64: Rename to ...
27953 * config/i386/t-sol2: ... this.
27954 * config/sparc/t-sol2-64: Rename to ...
27955 * config/sparc/t-sol2: ... this.
27957 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
27958 sol2_tm_file_head, sol2_tm_file_tail.
27959 Include ${cpu_type}/sol2.h before sol2.h.
27961 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
27962 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
27963 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
27964 Reflect i386/t-sol2-64 renaming.
27965 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
27966 Reflect sparc/t-sol2-64 renaming.
27968 2014-04-30 Richard Biener <rguenther@suse.de>
27970 * passes.c (execute_function_todo): Move TODO_verify_stmts
27971 and TODO_verify_ssa under the TODO_verify_il umbrella.
27972 * tree-ssa.h (verify_ssa): Adjust prototype.
27973 * tree-ssa.c (verify_ssa): Add parameter to tell whether
27974 we should verify SSA operands.
27975 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
27976 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
27977 whether we should verify whether not throwing stmts have EH info.
27978 * graphite-scop-detection.c (create_sese_edges): Adjust.
27979 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
27980 * tree-eh.c (lower_try_finally_switch): Do not add the
27981 default case label twice.
27983 2014-04-30 Marek Polacek <polacek@redhat.com>
27985 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
27986 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
27987 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
27988 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
27990 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
27992 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
27993 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
27994 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
27995 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
27996 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
27997 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
27998 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
27999 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
28001 2014-04-29 David Malcolm <dmalcolm@redhat.com>
28003 * tree-cfg.c (dump_function_to_file): Dump the return type of
28004 functions, in a line to itself before the function body, mimicking
28005 the layout of a C function.
28007 2014-04-29 Jakub Jelinek <jakub@redhat.com>
28009 PR tree-optimization/60971
28010 * tree-tailcall.c (process_assignment): Reject conversions which
28013 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
28015 * calls.c (initialize_argument_information): Always treat
28016 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
28017 (expand_call): Likewise.
28018 (emit_library_call_calue_1): Likewise.
28019 * expr.c (PUSH_ARGS_REVERSED): Do not define.
28020 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
28023 2014-04-29 Nick Clifton <nickc@redhat.com>
28025 * config/msp430/msp430.md (umulsidi): Fix typo.
28026 (mulhisi3): Enable even inside interrupt handlers.
28027 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
28028 bigger return address pushed in large mode.
28030 2014-04-29 Nick Clifton <nickc@redhat.com>
28032 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
28033 (arc_init_reg_tables): Use a machine_mode enum to iterate over
28035 * config/m32r/m32r.c (init_reg_tables): Likewise.
28036 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
28037 enum to hold the modes.
28039 2014-04-29 Richard Biener <rguenther@suse.de>
28041 * dominance.c (free_dominance_info): Add overload with
28042 function parameter.
28043 (dom_info_state): Likewise.
28044 (dom_info_available_p): Likewise.
28045 * basic-block.h (free_dominance_info, dom_info_state,
28046 dom_info_available_p): Declare overloads.
28047 * passes.c (execute_function_todo): Verify that verifiers
28048 don't change dominator info state. Drop dominator info
28049 for IPA pass invocations.
28050 * cgraph.c (release_function_body): Restore asserts that
28051 dominator information is released.
28053 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
28055 * doc/invoke.texi: Fix typo.
28056 * tree-vrp.c: Fix typos.
28057 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
28059 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
28061 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
28063 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
28065 * config/aarch64/aarch64-builtins.c
28066 (aarch64_types_storestruct_lane_qualifiers): New.
28067 (TYPES_STORESTRUCT_LANE): Likewise.
28068 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
28069 (st3_lane): Likewise.
28070 (st4_lane): Likewise.
28071 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
28072 (vec_store_lanesci_lane<mode>): Likewise.
28073 (vec_store_lanesxi_lane<mode>): Likewise.
28074 (aarch64_st2_lane<VQ:mode>): Likewise.
28075 (aarch64_st3_lane<VQ:mode>): Likewise.
28076 (aarch64_st4_lane<VQ:mode>): Likewise.
28077 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
28078 * config/aarch64/arm_neon.h
28079 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
28080 use new macro arguments.
28081 (__ST3_LANE_FUNC): Likewise.
28082 (__ST4_LANE_FUNC): Likewise.
28083 * config/aarch64/iterators.md (V_TWO_ELEM): New.
28084 (V_THREE_ELEM): Likewise.
28085 (V_FOUR_ELEM): Likewise.
28087 2014-04-28 David Malcolm <dmalcolm@redhat.com>
28089 * doc/gimple.texi: Replace the description of the now-defunct
28090 union gimple_statement_d with a diagram showing the
28091 gimple_statement_base class hierarchy and its relationships to
28092 the GSS_ and GIMPLE_ enums.
28094 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
28096 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
28097 * config/aarch64/aarch64.c
28098 (aarch64_cannot_change_mode_class): Weaken conditions.
28099 (aarch64_modes_tieable_p): New.
28100 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
28102 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
28104 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
28105 (loadsync_<mode>): Change mode.
28106 (load_quadpti, store_quadpti): New.
28107 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
28108 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
28110 2014-04-28 Martin Jambor <mjambor@suse.cz>
28112 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
28113 same alias type as the original statement.
28114 (subreplacement_assignment_data): New type.
28115 (handle_unscalarized_data_in_subtree): New type of parameter,
28116 generate new memory accesses with same alias type as the original
28118 (load_assign_lhs_subreplacements): Likewise.
28119 (sra_modify_constructor_assign): Generate new memory accesses with
28120 same alias type as the original statement.
28122 2014-04-28 Richard Biener <rguenther@suse.de>
28124 * tree-pass.h (TODO_verify_il): Define.
28125 (TODO_verify_all): Complete properly.
28126 * passes.c (execute_function_todo): Move existing loop-closed
28127 SSA verification under TODO_verify_il.
28128 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
28129 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
28130 Fix tree sharing issue.
28132 2014-04-28 Richard Biener <rguenther@suse.de>
28134 PR middle-end/60092
28135 * builtins.def (DEF_C11_BUILTIN): Add.
28136 (BUILT_IN_ALIGNED_ALLOC): Likewise.
28137 * coretypes.h (enum function_class): Add function_c11_misc.
28138 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
28139 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
28140 (call_may_clobber_ref_p_1): Likewise.
28141 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
28142 (mark_all_reaching_defs_necessary_1): Likewise.
28143 (propagate_necessity): Likewise.
28144 (eliminate_unnecessary_stmts): Likewise.
28145 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
28147 2014-04-28 Richard Biener <rguenther@suse.de>
28149 * tree-vrp.c (vrp_var_may_overflow): Remove.
28150 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
28151 with overflow immediately bump to one before that value and
28152 let iteration figure out overflow status.
28154 2014-04-28 Richard Biener <rguenther@suse.de>
28156 * configure.ac: Do valgrind header checks unconditionally.
28157 Add --enable-valgrind-annotations.
28158 * system.h: Guard valgrind header inclusion with
28159 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
28160 * alloc-pool.c (pool_alloc, pool_free): Use
28161 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
28162 to guard possibly dead code.
28163 * config.in: Regenerated.
28164 * configure: Likewise.
28166 2014-04-28 Jeff Law <law@redhat.com>
28168 PR tree-optimization/60902
28169 * tree-ssa-threadedge.c
28170 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
28171 over real defs when invalidating outputs from statements that do not
28172 produce useful outputs for threading.
28174 2014-04-28 Richard Biener <rguenther@suse.de>
28176 PR tree-optimization/60979
28177 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
28178 SCOPs that end in a block with a successor with abnormal
28181 2014-04-28 Richard Biener <rguenther@suse.de>
28183 * tree-pass.h (execute_pass_list): Adjust prototype.
28184 * passes.c (pass_manager::execute_early_local_passes): Adjust.
28185 (do_per_function): Change callback signature, push all actual
28186 work to the callbals.
28187 (do_per_function_toporder): Likewise.
28188 (execute_function_dump): Adjust.
28189 (execute_function_todo): Likewise.
28190 (clear_last_verified): Likewise.
28191 (verify_curr_properties): Likewise.
28192 (update_properties_after_pass): Likewise.
28193 (execute_pass_list_1): Split out from ...
28194 (execute_pass_list): ... here. Adjust.
28195 (execute_ipa_pass_list): Likewise.
28196 * cgraphunit.c (cgraph_add_new_function): Adjust.
28197 (analyze_function): Likewise.
28198 (expand_function): Likewise.
28199 * cgraph.c (release_function_body): Free dominance info
28200 here instead of asserting it was magically freed elsewhere.
28202 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
28204 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
28205 * configure: Regenerate.
28206 * config/sparc/sparc.opt (muser-mode): New option.
28207 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
28209 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
28210 * doc/invoke.texi (SPARC options): Document -muser-mode.
28212 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
28214 * cselib.c (find_slot_memmode): Delete.
28215 (cselib_hasher): Change compare_type to a struct.
28216 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
28218 (preserve_constants_and_equivs): Adjust for new compare_type.
28219 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
28220 (wrap_constant): Delete.
28221 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
28223 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
28225 * doc/install.texi (Building with profile feedback): Remove
28228 2014-04-26 Tom de Vries <tom@codesourcery.com>
28230 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
28233 2014-04-25 Cary Coutant <ccoutant@google.com>
28236 * dwarf2out.c (should_move_die_to_comdat): A type definition
28237 can contain a subprogram definition, but don't move it to a
28239 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
28240 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
28242 (clone_tree_hash): Rename to...
28243 (clone_tree_partial): ...this; change callers. Copy
28244 DW_TAG_subprogram DIEs as declarations.
28245 (copy_decls_walk): Don't copy children of a declaration into a
28248 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
28251 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
28254 2014-04-25 Jiong Wang <jiong.wang@arm.com>
28256 * config/arm/predicates.md (call_insn_operand): Add long_call check.
28257 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
28259 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
28262 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28264 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
28266 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28268 PR tree-optimization/60930
28269 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
28270 creating a multiply candidate by folding two constant
28271 multiplicands when the result overflows.
28273 2014-04-25 Jakub Jelinek <jakub@redhat.com>
28275 PR tree-optimization/60960
28276 * tree-vect-generic.c (expand_vector_operation): Only call
28277 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
28279 2014-04-25 Tom de Vries <tom@codesourcery.com>
28281 * expr.c (clobber_reg_mode): New function.
28282 * expr.h (clobber_reg): New function.
28284 2014-04-25 Tom de Vries <tom@codesourcery.com>
28286 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
28289 2014-04-25 Radovan Obradovic <robradovic@mips.com>
28290 Tom de Vries <tom@codesourcery.com>
28292 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
28294 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
28295 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
28296 new argument to find_all_hard_reg_sets call.
28298 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28300 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
28301 Use HOST_WIDE_INT_C for mask literal.
28302 (aarch_rev16_shleft_mask_imm_p): Likewise.
28304 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
28307 * config/sparc/sparc.md (ashlsi3_extend): Delete.
28309 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
28311 PR preprocessor/56540
28312 * config/i386/i386-c.c (ix86_target_macros): Define
28313 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
28315 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28317 * configure.ac (tga_func): Remove.
28318 (LIB_TLS_SPEC): Remove.
28319 * configure: Regenerate.
28320 * config.in: Regenerate.
28321 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
28323 2014-04-25 Richard Biener <rguenther@suse.de>
28326 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
28327 call stmt use/clobber sets during stmt walk instead of
28328 walking the possibly incomplete set of caller edges.
28330 2014-04-25 Richard Biener <rguenther@suse.de>
28333 * passes.c (apply_ipa_transforms): Inline into only caller ...
28334 (execute_one_pass): ... here. Properly bring in function
28335 bodies for nodes we want to apply IPA transforms to.
28337 2014-04-24 Cong Hou <congh@google.com>
28339 PR tree-optimization/60896
28340 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
28341 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
28342 (vect_mark_pattern_stmts): Set the def type of all statements in
28343 PATTERN_DEF_SEQ as vect_internal_def.
28345 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
28347 * doc/extend.texi (PowerPC Built-in Functions): Document new
28348 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
28349 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
28351 * config/rs6000/predicates.md (const_0_to_3_operand): New
28352 predicate to match 0..3 integer constants.
28354 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
28355 to support adding miscellaneous builtin functions.
28356 (BU_DFP_MISC_2): Likewise.
28357 (BU_P7_MISC_1): Likewise.
28358 (BU_P7_MISC_2): Likewise.
28359 (BU_P8V_MISC_3): Likewise.
28360 (BU_MISC_1): Likewise.
28361 (BU_MISC_2): Likewise.
28362 (DIVWE): Add extended divide builtin functions.
28363 (DIVWEO): Likewise.
28364 (DIVWEU): Likewise.
28365 (DIVWEUO): Likewise.
28367 (DIVDEO): Likewise.
28368 (DIVDEU): Likewise.
28369 (DIVDEUO): Likewise.
28370 (DXEX): Add decimal floating-point builtin functions.
28372 (DDEDPD): Likewise.
28373 (DDEDPDQ): Likewise.
28374 (DENBCD): Likewise.
28375 (DENBCDQ): Likewise.
28379 (DSCLIQ): Likewise.
28381 (DSCRIQ): Likewise.
28382 (CDTBCD): Add new BCD builtin functions.
28383 (CBCDTD): Likewise.
28384 (ADDG6S): Likewise.
28385 (BCDADD): Likewise.
28386 (BCDADD_LT): Likewise.
28387 (BCDADD_EQ): Likewise.
28388 (BCDADD_GT): Likewise.
28389 (BCDADD_OV): Likewise.
28390 (BCDSUB): Likewise.
28391 (BCDSUB_LT): Likewise.
28392 (BCDSUB_EQ): Likewise.
28393 (BCDSUB_GT): Likewise.
28394 (BCDSUB_OV): Likewise.
28395 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
28396 (UNPACK_TD): Likewise.
28397 (PACK_TF): Likewise.
28398 (UNPACK_TF): Likewise.
28399 (UNPACK_TF_0): Likewise.
28400 (UNPACK_TF_1): Likewise.
28401 (PACK_V1TI): Likewise.
28402 (UNPACK_V1TI): Likewise.
28404 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
28405 support for decimal floating point builtin functions.
28406 (rs6000_expand_ternop_builtin): Add checks for the new builtin
28407 functions that take constant arguments.
28408 (rs6000_invalid_builtin): Add decimal floating point builtin support.
28409 (rs6000_init_builtins): Setup long double, _Decimal64, and
28410 _Decimal128 types for new builtin functions.
28411 (builtin_function_type): Set the unsigned flags appropriately for
28412 the new builtin functions.
28413 (rs6000_opt_masks): Add support for decimal floating point builtin
28416 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
28417 floating point builtin functions.
28418 (RS6000_BTM_COMMON): Likewise.
28419 (RS6000_BTI_long_double): Likewise.
28420 (RS6000_BTI_dfloat64): Likewise.
28421 (RS6000_BTI_dfloat128): Likewise.
28422 (long_double_type_internal_node): Likewise.
28423 (dfloat64_type_internal_node): Likewise.
28424 (dfloat128_type_internal_node): Likewise.
28426 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
28427 2.07 bcd arithmetic instructions.
28428 (UNSPEC_BCDSUB): Likewise.
28429 (UNSPEC_BCD_OVERFLOW): Likewise.
28430 (UNSPEC_BCD_ADD_SUB): Likewise.
28431 (bcd_add_sub): Likewise.
28432 (BCD_TEST): Likewise.
28433 (bcd<bcd_add_sub>): Likewise.
28434 (bcd<bcd_add_sub>_test): Likewise.
28435 (bcd<bcd_add_sub>_test2): Likewise.
28436 (bcd<bcd_add_sub>_<code>): Likewise.
28437 (peephole2 for combined bcd ops): Likewise.
28439 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
28440 decimal floating point builtin functions.
28441 (UNSPEC_DENBCD): Likewise.
28442 (UNSPEC_DXEX): Likewise.
28443 (UNSPEC_DIEX): Likewise.
28444 (UNSPEC_DSCLI): Likewise.
28445 (UNSPEC_DSCRI): Likewise.
28446 (D64_D128): Likewise.
28447 (dfp_suffix): Likewise.
28448 (dfp_ddedpd_<mode>): Likewise.
28449 (dfp_denbcd_<mode>): Likewise.
28450 (dfp_dxex_<mode>): Likewise.
28451 (dfp_diex_<mode>): Likewise.
28452 (dfp_dscli_<mode>): Likewise.
28453 (dfp_dscri_<mode>): Likewise.
28455 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
28457 (UNSPEC_CDTBCD): Likewise.
28458 (UNSPEC_CBCDTD): Likewise.
28459 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
28460 (UNSPEC_DIVEO): Likewise.
28461 (UNSPEC_DIVEU): Likewise.
28462 (UNSPEC_DIVEUO): Likewise.
28463 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
28464 pack/unpack 128-bit types.
28465 (UNSPEC_PACK_128BIT): Likewise.
28466 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
28467 (udiv<mode>3): Use idiv_ldiv mode attribute.
28468 (div<mode>3): Likewise.
28469 (addg6s): Add new BCD builtin functions.
28470 (cdtbcd): Likewise.
28471 (cbcdtd): Likewise.
28472 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
28473 (div_extend): Likewise.
28474 (div<div_extend>_<mode>"): Likewise.
28475 (FP128_64): Add support for new builtin functions to pack/unpack
28477 (unpack<mode>): Likewise.
28478 (unpacktf_0): Likewise.
28479 (unpacktf_1): Likewise.
28480 (unpack<mode>_dm): Likewise.
28481 (unpack<mode>_nodm): Likewise.
28482 (pack<mode>): Likewise.
28483 (unpackv1ti): Likewise.
28484 (packv1ti): Likewise.
28486 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
28488 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
28491 2014-04-24 Jakub Jelinek <jakub@redhat.com>
28493 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
28494 * gimplify.c (omp_is_private): Change last argument's type to int.
28495 Only diagnose lastprivate if the simd argument is 1, only diagnose
28496 linear if the simd argument is 2.
28497 (gimplify_omp_for): Adjust omp_is_private callers. When adding
28498 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
28499 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
28500 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
28501 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
28502 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
28503 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
28504 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
28505 * tree-nested.c (convert_nonlocal_omp_clauses,
28506 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
28508 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
28511 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
28514 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
28516 * flag-types.h (enum ivar_visibility): Add.
28518 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
28520 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
28521 function * argument.
28523 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
28525 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
28527 2014-04-24 Radovan Obradovic <robradovic@mips.com>
28528 Tom de Vries <tom@codesourcery.com>
28530 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
28531 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
28533 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
28534 * emit-rtl.c (try_split): Same.
28536 2014-04-24 Radovan Obradovic <robradovic@mips.com>
28537 Tom de Vries <tom@codesourcery.com>
28539 * common.opt (fuse-caller-save): New option.
28541 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
28543 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
28544 elements for big-endian.
28546 2014-04-24 Richard Biener <rguenther@suse.de>
28548 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
28549 during TER and instead use the sepops interface for expanding
28550 non-GIMPLE_SINGLE_RHS.
28552 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28554 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
28555 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
28557 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28559 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
28560 assembler 64-bit option.
28561 * configure: Regenerate.
28563 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28565 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
28566 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
28567 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
28568 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
28569 (TARGET_CRYPTO): Take TARGET_SIMD into account.
28571 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28573 * config/aarch64/aarch64-builtins.c
28574 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
28575 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
28576 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
28577 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
28579 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
28580 (Vrevsuff): New mode attribute.
28582 2014-04-24 Terry Guo <terry.guo@arm.com>
28584 * config/arm/arm.h (machine_function): Define variable
28585 after_arm_reorg here.
28586 * config/arm/arm.c (after_arm_reorg): Remove the definition.
28587 (arm_split_constant): Update the way to access variable
28589 (arm_reorg): Ditto.
28590 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
28592 2014-04-23 Tom de Vries <tom@codesourcery.com>
28594 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
28596 2014-04-23 David Malcolm <dmalcolm@redhat.com>
28598 * is-a.h: Update comments to reflect the following changes to the
28599 "pointerness" of the API, making the template parameter match the
28600 return type, allowing use of is-a.h with typedefs of pointers.
28601 (is_a_helper::cast): Return a T rather then a pointer to a T, so
28602 that the return type matches the parameter to the is_a_helper.
28604 (dyn_cast): Likewise.
28606 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
28607 pointer from the is-a.h API.
28609 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
28610 (is_a_helper <cgraph_node *>::test): ...this, matching change to
28612 (is_a_helper <varpool_node>::test): Likewise, convert to...
28613 (is_a_helper <varpool_node *>::test): ...this.
28615 (varpool_first_variable): Update for removal of implicit pointer
28616 from the is-a.h API.
28617 (varpool_next_variable): Likewise.
28618 (varpool_first_static_initializer): Likewise.
28619 (varpool_next_static_initializer): Likewise.
28620 (varpool_first_defined_variable): Likewise.
28621 (varpool_next_defined_variable): Likewise.
28622 (cgraph_first_defined_function): Likewise.
28623 (cgraph_next_defined_function): Likewise.
28624 (cgraph_first_function): Likewise.
28625 (cgraph_next_function): Likewise.
28626 (cgraph_first_function_with_gimple_body): Likewise.
28627 (cgraph_next_function_with_gimple_body): Likewise.
28628 (cgraph_alias_target): Likewise.
28629 (varpool_alias_target): Likewise.
28630 (cgraph_function_or_thunk_node): Likewise.
28631 (varpool_variable_node): Likewise.
28632 (symtab_real_symbol_p): Likewise.
28633 * cgraphunit.c (referred_to_p): Likewise.
28634 (analyze_functions): Likewise.
28635 (handle_alias_pairs): Likewise.
28636 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
28637 * gimple-ssa.h (gimple_vuse_op): Likewise.
28638 (gimple_vdef_op): Likewise.
28639 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
28640 * gimple.c (gimple_build_asm_1): Likewise.
28641 (gimple_build_try): Likewise.
28642 (gimple_build_resx): Likewise.
28643 (gimple_build_eh_dispatch): Likewise.
28644 (gimple_build_omp_for): Likewise.
28645 (gimple_omp_for_set_clauses): Likewise.
28647 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
28648 (is_a_helper <gimple_statement_asm *>::test): ...this.
28649 (is_a_helper <gimple_statement_bind>::test): Convert to...
28650 (is_a_helper <gimple_statement_bind *>::test): ...this.
28651 (is_a_helper <gimple_statement_call>::test): Convert to...
28652 (is_a_helper <gimple_statement_call *>::test): ...this.
28653 (is_a_helper <gimple_statement_catch>::test): Convert to...
28654 (is_a_helper <gimple_statement_catch *>::test): ...this.
28655 (is_a_helper <gimple_statement_resx>::test): Convert to...
28656 (is_a_helper <gimple_statement_resx *>::test): ...this.
28657 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
28658 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
28659 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
28660 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
28661 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
28662 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
28663 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
28664 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
28665 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
28666 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
28667 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
28668 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
28669 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
28670 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
28671 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
28672 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
28673 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
28674 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
28675 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
28676 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
28677 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
28678 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
28679 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
28680 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
28681 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
28682 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
28683 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
28684 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
28685 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
28686 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
28687 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
28688 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
28689 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
28690 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
28691 (is_a_helper <gimple_statement_phi>::test): Convert to...
28692 (is_a_helper <gimple_statement_phi *>::test): ...this.
28693 (is_a_helper <gimple_statement_transaction>::test): Convert to...
28694 (is_a_helper <gimple_statement_transaction *>::test): ...this.
28695 (is_a_helper <gimple_statement_try>::test): Convert to...
28696 (is_a_helper <gimple_statement_try *>::test): ...this.
28697 (is_a_helper <gimple_statement_wce>::test): Convert to...
28698 (is_a_helper <gimple_statement_wce *>::test): ...this.
28699 (is_a_helper <const gimple_statement_asm>::test): Convert to...
28700 (is_a_helper <const gimple_statement_asm *>::test): ...this.
28701 (is_a_helper <const gimple_statement_bind>::test): Convert to...
28702 (is_a_helper <const gimple_statement_bind *>::test): ...this.
28703 (is_a_helper <const gimple_statement_call>::test): Convert to...
28704 (is_a_helper <const gimple_statement_call *>::test): ...this.
28705 (is_a_helper <const gimple_statement_catch>::test): Convert to...
28706 (is_a_helper <const gimple_statement_catch *>::test): ...this.
28707 (is_a_helper <const gimple_statement_resx>::test): Convert to...
28708 (is_a_helper <const gimple_statement_resx *>::test): ...this.
28709 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
28710 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
28711 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
28712 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
28713 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
28715 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
28717 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
28719 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
28721 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
28722 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
28723 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
28725 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
28726 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
28728 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
28729 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
28730 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
28731 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
28732 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
28733 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
28735 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
28736 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
28737 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
28738 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
28740 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
28741 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
28742 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
28743 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
28744 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
28745 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
28746 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
28747 (is_a_helper <const gimple_statement_phi>::test): Convert to...
28748 (is_a_helper <const gimple_statement_phi *>::test): ...this.
28749 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
28750 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
28751 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
28752 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
28753 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
28754 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
28755 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
28757 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
28759 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
28760 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
28762 (gimple_use_ops): Update for removal of implicit pointer from the
28764 (gimple_set_use_ops): Likewise.
28765 (gimple_vuse): Likewise.
28766 (gimple_vdef): Likewise.
28767 (gimple_vuse_ptr): Likewise.
28768 (gimple_vdef_ptr): Likewise.
28769 (gimple_set_vuse): Likewise.
28770 (gimple_set_vdef): Likewise.
28771 (gimple_omp_return_set_lhs): Likewise.
28772 (gimple_omp_return_lhs): Likewise.
28773 (gimple_omp_return_lhs_ptr): Likewise.
28774 (gimple_call_fntype): Likewise.
28775 (gimple_call_set_fntype): Likewise.
28776 (gimple_call_set_internal_fn): Likewise.
28777 (gimple_call_use_set): Likewise.
28778 (gimple_call_clobber_set): Likewise.
28779 (gimple_bind_vars): Likewise.
28780 (gimple_bind_set_vars): Likewise.
28781 (gimple_bind_body_ptr): Likewise.
28782 (gimple_bind_set_body): Likewise.
28783 (gimple_bind_add_stmt): Likewise.
28784 (gimple_bind_block): Likewise.
28785 (gimple_bind_set_block): Likewise.
28786 (gimple_asm_ninputs): Likewise.
28787 (gimple_asm_noutputs): Likewise.
28788 (gimple_asm_nclobbers): Likewise.
28789 (gimple_asm_nlabels): Likewise.
28790 (gimple_asm_input_op): Likewise.
28791 (gimple_asm_input_op_ptr): Likewise.
28792 (gimple_asm_output_op): Likewise.
28793 (gimple_asm_output_op_ptr): Likewise.
28794 (gimple_asm_set_output_op): Likewise.
28795 (gimple_asm_clobber_op): Likewise.
28796 (gimple_asm_set_clobber_op): Likewise.
28797 (gimple_asm_label_op): Likewise.
28798 (gimple_asm_set_label_op): Likewise.
28799 (gimple_asm_string): Likewise.
28800 (gimple_catch_types): Likewise.
28801 (gimple_catch_types_ptr): Likewise.
28802 (gimple_catch_handler_ptr): Likewise.
28803 (gimple_catch_set_types): Likewise.
28804 (gimple_catch_set_handler): Likewise.
28805 (gimple_eh_filter_types): Likewise.
28806 (gimple_eh_filter_types_ptr): Likewise.
28807 (gimple_eh_filter_failure_ptr): Likewise.
28808 (gimple_eh_filter_set_types): Likewise.
28809 (gimple_eh_filter_set_failure): Likewise.
28810 (gimple_eh_must_not_throw_fndecl): Likewise.
28811 (gimple_eh_must_not_throw_set_fndecl): Likewise.
28812 (gimple_eh_else_n_body_ptr): Likewise.
28813 (gimple_eh_else_e_body_ptr): Likewise.
28814 (gimple_eh_else_set_n_body): Likewise.
28815 (gimple_eh_else_set_e_body): Likewise.
28816 (gimple_try_eval_ptr): Likewise.
28817 (gimple_try_cleanup_ptr): Likewise.
28818 (gimple_try_set_eval): Likewise.
28819 (gimple_try_set_cleanup): Likewise.
28820 (gimple_wce_cleanup_ptr): Likewise.
28821 (gimple_wce_set_cleanup): Likewise.
28822 (gimple_phi_capacity): Likewise.
28823 (gimple_phi_num_args): Likewise.
28824 (gimple_phi_result): Likewise.
28825 (gimple_phi_result_ptr): Likewise.
28826 (gimple_phi_set_result): Likewise.
28827 (gimple_phi_arg): Likewise.
28828 (gimple_phi_set_arg): Likewise.
28829 (gimple_resx_region): Likewise.
28830 (gimple_resx_set_region): Likewise.
28831 (gimple_eh_dispatch_region): Likewise.
28832 (gimple_eh_dispatch_set_region): Likewise.
28833 (gimple_omp_critical_name): Likewise.
28834 (gimple_omp_critical_name_ptr): Likewise.
28835 (gimple_omp_critical_set_name): Likewise.
28836 (gimple_omp_for_clauses): Likewise.
28837 (gimple_omp_for_clauses_ptr): Likewise.
28838 (gimple_omp_for_set_clauses): Likewise.
28839 (gimple_omp_for_collapse): Likewise.
28840 (gimple_omp_for_index): Likewise.
28841 (gimple_omp_for_index_ptr): Likewise.
28842 (gimple_omp_for_set_index): Likewise.
28843 (gimple_omp_for_initial): Likewise.
28844 (gimple_omp_for_initial_ptr): Likewise.
28845 (gimple_omp_for_set_initial): Likewise.
28846 (gimple_omp_for_final): Likewise.
28847 (gimple_omp_for_final_ptr): Likewise.
28848 (gimple_omp_for_set_final): Likewise.
28849 (gimple_omp_for_incr): Likewise.
28850 (gimple_omp_for_incr_ptr): Likewise.
28851 (gimple_omp_for_set_incr): Likewise.
28852 (gimple_omp_for_pre_body_ptr): Likewise.
28853 (gimple_omp_for_set_pre_body): Likewise.
28854 (gimple_omp_parallel_clauses): Likewise.
28855 (gimple_omp_parallel_clauses_ptr): Likewise.
28856 (gimple_omp_parallel_set_clauses): Likewise.
28857 (gimple_omp_parallel_child_fn): Likewise.
28858 (gimple_omp_parallel_child_fn_ptr): Likewise.
28859 (gimple_omp_parallel_set_child_fn): Likewise.
28860 (gimple_omp_parallel_data_arg): Likewise.
28861 (gimple_omp_parallel_data_arg_ptr): Likewise.
28862 (gimple_omp_parallel_set_data_arg): Likewise.
28863 (gimple_omp_task_clauses): Likewise.
28864 (gimple_omp_task_clauses_ptr): Likewise.
28865 (gimple_omp_task_set_clauses): Likewise.
28866 (gimple_omp_task_child_fn): Likewise.
28867 (gimple_omp_task_child_fn_ptr): Likewise.
28868 (gimple_omp_task_set_child_fn): Likewise.
28869 (gimple_omp_task_data_arg): Likewise.
28870 (gimple_omp_task_data_arg_ptr): Likewise.
28871 (gimple_omp_task_set_data_arg): Likewise.
28872 (gimple_omp_taskreg_clauses): Likewise.
28873 (gimple_omp_taskreg_clauses_ptr): Likewise.
28874 (gimple_omp_taskreg_set_clauses): Likewise.
28875 (gimple_omp_taskreg_child_fn): Likewise.
28876 (gimple_omp_taskreg_child_fn_ptr): Likewise.
28877 (gimple_omp_taskreg_set_child_fn): Likewise.
28878 (gimple_omp_taskreg_data_arg): Likewise.
28879 (gimple_omp_taskreg_data_arg_ptr): Likewise.
28880 (gimple_omp_taskreg_set_data_arg): Likewise.
28881 (gimple_omp_task_copy_fn): Likewise.
28882 (gimple_omp_task_copy_fn_ptr): Likewise.
28883 (gimple_omp_task_set_copy_fn): Likewise.
28884 (gimple_omp_task_arg_size): Likewise.
28885 (gimple_omp_task_arg_size_ptr): Likewise.
28886 (gimple_omp_task_set_arg_size): Likewise.
28887 (gimple_omp_task_arg_align): Likewise.
28888 (gimple_omp_task_arg_align_ptr): Likewise.
28889 (gimple_omp_task_set_arg_align): Likewise.
28890 (gimple_omp_single_clauses): Likewise.
28891 (gimple_omp_single_clauses_ptr): Likewise.
28892 (gimple_omp_single_set_clauses): Likewise.
28893 (gimple_omp_target_clauses): Likewise.
28894 (gimple_omp_target_clauses_ptr): Likewise.
28895 (gimple_omp_target_set_clauses): Likewise.
28896 (gimple_omp_target_child_fn): Likewise.
28897 (gimple_omp_target_child_fn_ptr): Likewise.
28898 (gimple_omp_target_set_child_fn): Likewise.
28899 (gimple_omp_target_data_arg): Likewise.
28900 (gimple_omp_target_data_arg_ptr): Likewise.
28901 (gimple_omp_target_set_data_arg): Likewise.
28902 (gimple_omp_teams_clauses): Likewise.
28903 (gimple_omp_teams_clauses_ptr): Likewise.
28904 (gimple_omp_teams_set_clauses): Likewise.
28905 (gimple_omp_sections_clauses): Likewise.
28906 (gimple_omp_sections_clauses_ptr): Likewise.
28907 (gimple_omp_sections_set_clauses): Likewise.
28908 (gimple_omp_sections_control): Likewise.
28909 (gimple_omp_sections_control_ptr): Likewise.
28910 (gimple_omp_sections_set_control): Likewise.
28911 (gimple_omp_for_set_cond): Likewise.
28912 (gimple_omp_for_cond): Likewise.
28913 (gimple_omp_atomic_store_set_val): Likewise.
28914 (gimple_omp_atomic_store_val): Likewise.
28915 (gimple_omp_atomic_store_val_ptr): Likewise.
28916 (gimple_omp_atomic_load_set_lhs): Likewise.
28917 (gimple_omp_atomic_load_lhs): Likewise.
28918 (gimple_omp_atomic_load_lhs_ptr): Likewise.
28919 (gimple_omp_atomic_load_set_rhs): Likewise.
28920 (gimple_omp_atomic_load_rhs): Likewise.
28921 (gimple_omp_atomic_load_rhs_ptr): Likewise.
28922 (gimple_omp_continue_control_def): Likewise.
28923 (gimple_omp_continue_control_def_ptr): Likewise.
28924 (gimple_omp_continue_set_control_def): Likewise.
28925 (gimple_omp_continue_control_use): Likewise.
28926 (gimple_omp_continue_control_use_ptr): Likewise.
28927 (gimple_omp_continue_set_control_use): Likewise.
28928 (gimple_transaction_body_ptr): Likewise.
28929 (gimple_transaction_label): Likewise.
28930 (gimple_transaction_label_ptr): Likewise.
28931 (gimple_transaction_set_body): Likewise.
28932 (gimple_transaction_set_label): Likewise.
28934 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
28935 * ipa-inline-analysis.c (inline_write_summary): Likewise.
28936 * ipa-ref.c (ipa_record_reference): Likewise.
28937 * ipa-reference.c (analyze_function): Likewise.
28938 (ipa_reference_write_optimization_summary): Likewise.
28939 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
28940 (address_taken_from_non_vtable_p): Likewise.
28941 (comdat_can_be_unshared_p_1): Likewise.
28942 * lto-cgraph.c (lto_output_ref): Likewise.
28943 (add_references): Likewise.
28944 (compute_ltrans_boundary): Likewise.
28945 (output_symtab): Likewise.
28946 (input_ref): Likewise.
28947 (input_cgraph_1): Likewise.
28948 (output_cgraph_opt_summary): Likewise.
28949 * lto-streamer-out.c (lto_output): Likewise.
28950 (output_symbol_p): Likewise.
28951 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
28952 (lsei_start_function_in_partition): Likewise.
28953 (lsei_next_variable_in_partition): Likewise.
28954 (lsei_start_variable_in_partition): Likewise.
28955 * symtab.c (insert_to_assembler_name_hash): Likewise.
28956 (unlink_from_assembler_name_hash): Likewise.
28957 (symtab_unregister_node): Likewise.
28958 (symtab_remove_node): Likewise.
28959 (dump_symtab_node): Likewise.
28960 (verify_symtab_base): Likewise.
28961 (verify_symtab_node): Likewise.
28962 (symtab_make_decl_local): Likewise.
28963 (symtab_alias_ultimate_target): Likewise.
28964 (symtab_resolve_alias): Likewise.
28965 (symtab_get_symbol_partitioning_class): Likewise.
28966 * tree-phinodes.c (allocate_phi_node): Likewise.
28967 (reserve_phi_args_for_new_edge): Likewise.
28968 (remove_phi_args): Likewise.
28969 * varpool.c (varpool_node_for_asm): Likewise.
28970 (varpool_remove_unreferenced_decls): Likewise.
28972 2014-04-23 Jeff Law <law@redhat.com>
28974 PR tree-optimization/60902
28975 * tree-ssa-threadedge.c
28976 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
28977 invalidate outputs from statements that do not produce useful
28978 outputs for threading.
28980 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
28982 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
28983 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
28984 machine descriptions for Stack Smashing Protector.
28986 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
28988 * aarch64.md (<optab>_rol<mode>3): New pattern.
28989 (<optab>_rolsi3_uxtw): Likewise.
28990 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
28992 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
28994 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
28995 (arm_cortex_a12_tune): Likewise.
28997 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28999 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
29001 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29003 * config/arm/arm.md (arm_rev16si2): New pattern.
29004 (arm_rev16si2_alt): Likewise.
29005 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
29007 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29009 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
29010 (rev16<mode>2_alt): Likewise.
29011 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
29012 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
29013 (aarch_rev16_shleft_mask_imm_p): Likewise.
29014 (aarch_rev16_p_1): Likewise.
29015 (aarch_rev16_p): Likewise.
29016 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
29017 (aarch_rev16_shright_mask_imm_p): Likewise.
29018 (aarch_rev16_shleft_mask_imm_p): Likewise.
29020 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29022 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
29023 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
29025 (cortex_a53_extra_costs): Likewise.
29026 (cortex_a57_extra_costs): Likewise.
29027 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
29028 (cortexa7_extra_costs): Likewise.
29029 (cortexa8_extra_costs): Likewise.
29030 (cortexa12_extra_costs): Likewise.
29031 (cortexa15_extra_costs): Likewise.
29032 (v7m_extra_costs): Likewise.
29033 (arm_new_rtx_costs): Handle BSWAP.
29035 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29037 * config/arm/arm.c (cortexa8_extra_costs): New table.
29038 (arm_cortex_a8_tune): New tuning struct.
29039 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
29041 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29043 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
29045 2014-04-23 Richard Biener <rguenther@suse.de>
29047 * Makefile.in (OBJS): Remove loop-unswitch.o.
29048 * tree-pass.h (make_pass_rtl_unswitch): Remove.
29049 * passes.def (pass_rtl_unswitch): Likewise.
29050 * loop-init.c (gate_rtl_unswitch): Likewise.
29051 (rtl_unswitch): Likewise.
29052 (pass_data_rtl_unswitch): Likewise.
29053 (pass_rtl_unswitch): Likewise.
29054 (make_pass_rtl_unswitch): Likewise.
29055 * rtl.h (reversed_condition): Likewise.
29056 (compare_and_jump_seq): Likewise.
29057 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
29059 * loop-unroll.c (compare_and_jump_seq): Likewise.
29061 2014-04-23 Richard Biener <rguenther@suse.de>
29063 PR tree-optimization/60903
29064 * tree-ssa-loop-im.c (analyze_memory_references): Remove
29065 commented code block.
29066 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
29067 loop flags to newly created BBs and edges.
29069 2014-04-23 Nick Clifton <nickc@redhat.com>
29071 * config/msp430/msp430.c (msp430_handle_option): Move function
29073 (msp430_option_override): Simplify mcu and mcpu option handling.
29074 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
29075 support for -mhwmult command line option.
29076 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
29077 -mhwmult command line option.
29078 (msp430_hwmult_enabled): Delete.
29079 (msp43o_output_labelref): Add support for -mhwmult command line option.
29080 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
29081 (umulsidi3): Likewise.
29082 * config/msp430/msp430.opt (mmcu): Add Report attribute.
29083 (mcpu, mlarge, msmall): Likewise.
29084 (mhwmult): New option.
29085 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
29087 (msp430_is_f5_mcu): Remove prototype.
29088 (msp430_use_f5_series_hwmult): Add prototype.
29089 * config/msp430/msp430-opts.h: New file.
29090 * common/config/msp430: New directory.
29091 * common/config/msp430/msp430-common.c: New file.
29092 * config.gcc (msp430): Remove target_has_targetm_common.
29093 * doc/invoke.texi: Document -mhwmult command line option.
29095 2014-04-23 Nick Clifton <nickc@redhat.com>
29097 * config/i386/cygwin.h (ENDFILE_SPEC): Include
29098 default-manifest.o if it can be found in the search path.
29099 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
29101 2014-04-23 Terry Guo <terry.guo@arm.com>
29103 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
29105 2014-04-23 Richard Biener <rguenther@suse.de>
29107 PR middle-end/60895
29108 * tree-inline.c (declare_return_variable): Use mark_addressable.
29110 2014-04-23 Richard Biener <rguenther@suse.de>
29112 PR middle-end/60891
29113 * loop-init.c (loop_optimizer_init): Make sure to apply
29114 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
29116 2014-04-22 Jakub Jelinek <jakub@redhat.com>
29119 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
29121 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
29122 if flag_sanitize_undefined_trap_on_error.
29123 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
29124 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
29125 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
29126 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
29127 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
29128 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
29129 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
29130 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
29131 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
29132 * ubsan.c (ubsan_instrument_unreachable): Return
29133 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
29134 (ubsan_expand_null_ifn): Emit __builtin_trap ()
29135 if flag_sanitize_undefined_trap_on_error and
29136 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
29137 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
29138 instrument_bool_enum_load): Emit __builtin_trap () if
29139 flag_sanitize_undefined_trap_on_error and
29140 __builtin_handle_*_abort () if !flag_sanitize_recover.
29141 * doc/invoke.texi (-fsanitize-recover,
29142 -fsanitize-undefined-trap-on-error): Document.
29144 2014-04-22 Christian Bruel <christian.bruel@st.com>
29146 * config/sh/sh.md (mov<mode>): Replace movQIHI.
29147 Force immediates to SImode.
29149 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
29151 * config/nios2/nios2.md (UNSPEC_ROUND): New.
29152 (lroundsfsi2): New.
29153 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
29154 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
29155 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
29156 (nios2_fpu_insn): Add entry for round.
29157 (N2FPU_NO_ERRNO_P): Define.
29158 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
29160 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
29162 2014-04-22 Richard Henderson <rth@redhat.com>
29164 * config/aarch64/aarch64 (addti3, subti3): New expanders.
29165 (add<GPI>3_compare0): Remove leading * from name.
29166 (add<GPI>3_carryin): Likewise.
29167 (sub<GPI>3_compare0): Likewise.
29168 (sub<GPI>3_carryin): Likewise.
29169 (<su_optab>mulditi3): New expander.
29170 (multi3): New expander.
29171 (madd<GPI>): Remove leading * from name.
29173 2014-04-22 Martin Jambor <mjambor@suse.cz>
29175 * cgraphclones.c (cgraph_function_versioning): Copy
29176 ipa_transforms_to_apply instead of asserting it is empty.
29178 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
29181 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
29182 on count_exp to get mode.
29184 2014-04-22 Andrew Pinski <apinski@cavium.com>
29186 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
29187 Handle TLS for ILP32.
29188 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
29189 (tlsie_small_<mode>): this and handle PTR.
29190 (tlsie_small_sidi): New pattern.
29191 (tlsle_small): Change to an expand to handle ILP32.
29192 (tlsle_small_<mode>): New pattern.
29193 (tlsdesc_small): Rename to ...
29194 (tlsdesc_small_<mode>): this and handle PTR.
29196 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29198 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
29200 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
29202 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
29203 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
29204 (aarch64_types_signed_poly_qualifiers): Likewise.
29205 (aarch64_types_unsigned_signed_qualifiers): Likewise.
29206 (aarch64_types_poly_signed_qualifiers): Likewise.
29207 (TYPES_REINTERP_SS): Type macro added.
29208 (TYPES_REINTERP_SU): Likewise.
29209 (TYPES_REINTERP_SP): Likewise.
29210 (TYPES_REINTERP_US): Likewise.
29211 (TYPES_REINTERP_PS): Likewise.
29212 (aarch64_fold_builtin): New expression folding added.
29213 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
29214 Declarations removed.
29215 (REINTERP_SS): Declarations added.
29216 (REINTERP_US): Likewise.
29217 (REINTERP_PS): Likewise.
29218 (REINTERP_SU): Likewise.
29219 (REINTERP_SP): Likewise.
29220 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
29221 (vreinterpretq_p8_f64): Likewise.
29222 (vreinterpret_p16_f64): Likewise.
29223 (vreinterpretq_p16_f64): Likewise.
29224 (vreinterpret_f32_f64): Likewise.
29225 (vreinterpretq_f32_f64): Likewise.
29226 (vreinterpret_f64_f32): Likewise.
29227 (vreinterpret_f64_p8): Likewise.
29228 (vreinterpret_f64_p16): Likewise.
29229 (vreinterpret_f64_s8): Likewise.
29230 (vreinterpret_f64_s16): Likewise.
29231 (vreinterpret_f64_s32): Likewise.
29232 (vreinterpret_f64_s64): Likewise.
29233 (vreinterpret_f64_u8): Likewise.
29234 (vreinterpret_f64_u16): Likewise.
29235 (vreinterpret_f64_u32): Likewise.
29236 (vreinterpret_f64_u64): Likewise.
29237 (vreinterpretq_f64_f32): Likewise.
29238 (vreinterpretq_f64_p8): Likewise.
29239 (vreinterpretq_f64_p16): Likewise.
29240 (vreinterpretq_f64_s8): Likewise.
29241 (vreinterpretq_f64_s16): Likewise.
29242 (vreinterpretq_f64_s32): Likewise.
29243 (vreinterpretq_f64_s64): Likewise.
29244 (vreinterpretq_f64_u8): Likewise.
29245 (vreinterpretq_f64_u16): Likewise.
29246 (vreinterpretq_f64_u32): Likewise.
29247 (vreinterpretq_f64_u64): Likewise.
29248 (vreinterpret_s64_f64): Likewise.
29249 (vreinterpretq_s64_f64): Likewise.
29250 (vreinterpret_u64_f64): Likewise.
29251 (vreinterpretq_u64_f64): Likewise.
29252 (vreinterpret_s8_f64): Likewise.
29253 (vreinterpretq_s8_f64): Likewise.
29254 (vreinterpret_s16_f64): Likewise.
29255 (vreinterpretq_s16_f64): Likewise.
29256 (vreinterpret_s32_f64): Likewise.
29257 (vreinterpretq_s32_f64): Likewise.
29258 (vreinterpret_u8_f64): Likewise.
29259 (vreinterpretq_u8_f64): Likewise.
29260 (vreinterpret_u16_f64): Likewise.
29261 (vreinterpretq_u16_f64): Likewise.
29262 (vreinterpret_u32_f64): Likewise.
29263 (vreinterpretq_u32_f64): Likewise.
29265 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
29267 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
29268 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
29269 (vreinterpret_p8_s8): Likewise.
29270 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
29271 (vreinterpret_p8_s16): Likewise.
29272 (vreinterpret_p8_s32): Likewise.
29273 (vreinterpret_p8_s64): Likewise.
29274 (vreinterpret_p8_f32): Likewise.
29275 (vreinterpret_p8_u8): Likewise.
29276 (vreinterpret_p8_u16): Likewise.
29277 (vreinterpret_p8_u32): Likewise.
29278 (vreinterpret_p8_u64): Likewise.
29279 (vreinterpret_p8_p16): Likewise.
29280 (vreinterpretq_p8_s8): Likewise.
29281 (vreinterpretq_p8_s16): Likewise.
29282 (vreinterpretq_p8_s32): Likewise.
29283 (vreinterpretq_p8_s64): Likewise.
29284 (vreinterpretq_p8_f32): Likewise.
29285 (vreinterpretq_p8_u8): Likewise.
29286 (vreinterpretq_p8_u16): Likewise.
29287 (vreinterpretq_p8_u32): Likewise.
29288 (vreinterpretq_p8_u64): Likewise.
29289 (vreinterpretq_p8_p16): Likewise.
29290 (vreinterpret_p16_s8): Likewise.
29291 (vreinterpret_p16_s16): Likewise.
29292 (vreinterpret_p16_s32): Likewise.
29293 (vreinterpret_p16_s64): Likewise.
29294 (vreinterpret_p16_f32): Likewise.
29295 (vreinterpret_p16_u8): Likewise.
29296 (vreinterpret_p16_u16): Likewise.
29297 (vreinterpret_p16_u32): Likewise.
29298 (vreinterpret_p16_u64): Likewise.
29299 (vreinterpret_p16_p8): Likewise.
29300 (vreinterpretq_p16_s8): Likewise.
29301 (vreinterpretq_p16_s16): Likewise.
29302 (vreinterpretq_p16_s32): Likewise.
29303 (vreinterpretq_p16_s64): Likewise.
29304 (vreinterpretq_p16_f32): Likewise.
29305 (vreinterpretq_p16_u8): Likewise.
29306 (vreinterpretq_p16_u16): Likewise.
29307 (vreinterpretq_p16_u32): Likewise.
29308 (vreinterpretq_p16_u64): Likewise.
29309 (vreinterpretq_p16_p8): Likewise.
29310 (vreinterpret_f32_s8): Likewise.
29311 (vreinterpret_f32_s16): Likewise.
29312 (vreinterpret_f32_s32): Likewise.
29313 (vreinterpret_f32_s64): Likewise.
29314 (vreinterpret_f32_u8): Likewise.
29315 (vreinterpret_f32_u16): Likewise.
29316 (vreinterpret_f32_u32): Likewise.
29317 (vreinterpret_f32_u64): Likewise.
29318 (vreinterpret_f32_p8): Likewise.
29319 (vreinterpret_f32_p16): Likewise.
29320 (vreinterpretq_f32_s8): Likewise.
29321 (vreinterpretq_f32_s16): Likewise.
29322 (vreinterpretq_f32_s32): Likewise.
29323 (vreinterpretq_f32_s64): Likewise.
29324 (vreinterpretq_f32_u8): Likewise.
29325 (vreinterpretq_f32_u16): Likewise.
29326 (vreinterpretq_f32_u32): Likewise.
29327 (vreinterpretq_f32_u64): Likewise.
29328 (vreinterpretq_f32_p8): Likewise.
29329 (vreinterpretq_f32_p16): Likewise.
29330 (vreinterpret_s64_s8): Likewise.
29331 (vreinterpret_s64_s16): Likewise.
29332 (vreinterpret_s64_s32): Likewise.
29333 (vreinterpret_s64_f32): Likewise.
29334 (vreinterpret_s64_u8): Likewise.
29335 (vreinterpret_s64_u16): Likewise.
29336 (vreinterpret_s64_u32): Likewise.
29337 (vreinterpret_s64_u64): Likewise.
29338 (vreinterpret_s64_p8): Likewise.
29339 (vreinterpret_s64_p16): Likewise.
29340 (vreinterpretq_s64_s8): Likewise.
29341 (vreinterpretq_s64_s16): Likewise.
29342 (vreinterpretq_s64_s32): Likewise.
29343 (vreinterpretq_s64_f32): Likewise.
29344 (vreinterpretq_s64_u8): Likewise.
29345 (vreinterpretq_s64_u16): Likewise.
29346 (vreinterpretq_s64_u32): Likewise.
29347 (vreinterpretq_s64_u64): Likewise.
29348 (vreinterpretq_s64_p8): Likewise.
29349 (vreinterpretq_s64_p16): Likewise.
29350 (vreinterpret_u64_s8): Likewise.
29351 (vreinterpret_u64_s16): Likewise.
29352 (vreinterpret_u64_s32): Likewise.
29353 (vreinterpret_u64_s64): Likewise.
29354 (vreinterpret_u64_f32): Likewise.
29355 (vreinterpret_u64_u8): Likewise.
29356 (vreinterpret_u64_u16): Likewise.
29357 (vreinterpret_u64_u32): Likewise.
29358 (vreinterpret_u64_p8): Likewise.
29359 (vreinterpret_u64_p16): Likewise.
29360 (vreinterpretq_u64_s8): Likewise.
29361 (vreinterpretq_u64_s16): Likewise.
29362 (vreinterpretq_u64_s32): Likewise.
29363 (vreinterpretq_u64_s64): Likewise.
29364 (vreinterpretq_u64_f32): Likewise.
29365 (vreinterpretq_u64_u8): Likewise.
29366 (vreinterpretq_u64_u16): Likewise.
29367 (vreinterpretq_u64_u32): Likewise.
29368 (vreinterpretq_u64_p8): Likewise.
29369 (vreinterpretq_u64_p16): Likewise.
29370 (vreinterpret_s8_s16): Likewise.
29371 (vreinterpret_s8_s32): Likewise.
29372 (vreinterpret_s8_s64): Likewise.
29373 (vreinterpret_s8_f32): Likewise.
29374 (vreinterpret_s8_u8): Likewise.
29375 (vreinterpret_s8_u16): Likewise.
29376 (vreinterpret_s8_u32): Likewise.
29377 (vreinterpret_s8_u64): Likewise.
29378 (vreinterpret_s8_p8): Likewise.
29379 (vreinterpret_s8_p16): Likewise.
29380 (vreinterpretq_s8_s16): Likewise.
29381 (vreinterpretq_s8_s32): Likewise.
29382 (vreinterpretq_s8_s64): Likewise.
29383 (vreinterpretq_s8_f32): Likewise.
29384 (vreinterpretq_s8_u8): Likewise.
29385 (vreinterpretq_s8_u16): Likewise.
29386 (vreinterpretq_s8_u32): Likewise.
29387 (vreinterpretq_s8_u64): Likewise.
29388 (vreinterpretq_s8_p8): Likewise.
29389 (vreinterpretq_s8_p16): Likewise.
29390 (vreinterpret_s16_s8): Likewise.
29391 (vreinterpret_s16_s32): Likewise.
29392 (vreinterpret_s16_s64): Likewise.
29393 (vreinterpret_s16_f32): Likewise.
29394 (vreinterpret_s16_u8): Likewise.
29395 (vreinterpret_s16_u16): Likewise.
29396 (vreinterpret_s16_u32): Likewise.
29397 (vreinterpret_s16_u64): Likewise.
29398 (vreinterpret_s16_p8): Likewise.
29399 (vreinterpret_s16_p16): Likewise.
29400 (vreinterpretq_s16_s8): Likewise.
29401 (vreinterpretq_s16_s32): Likewise.
29402 (vreinterpretq_s16_s64): Likewise.
29403 (vreinterpretq_s16_f32): Likewise.
29404 (vreinterpretq_s16_u8): Likewise.
29405 (vreinterpretq_s16_u16): Likewise.
29406 (vreinterpretq_s16_u32): Likewise.
29407 (vreinterpretq_s16_u64): Likewise.
29408 (vreinterpretq_s16_p8): Likewise.
29409 (vreinterpretq_s16_p16): Likewise.
29410 (vreinterpret_s32_s8): Likewise.
29411 (vreinterpret_s32_s16): Likewise.
29412 (vreinterpret_s32_s64): Likewise.
29413 (vreinterpret_s32_f32): Likewise.
29414 (vreinterpret_s32_u8): Likewise.
29415 (vreinterpret_s32_u16): Likewise.
29416 (vreinterpret_s32_u32): Likewise.
29417 (vreinterpret_s32_u64): Likewise.
29418 (vreinterpret_s32_p8): Likewise.
29419 (vreinterpret_s32_p16): Likewise.
29420 (vreinterpretq_s32_s8): Likewise.
29421 (vreinterpretq_s32_s16): Likewise.
29422 (vreinterpretq_s32_s64): Likewise.
29423 (vreinterpretq_s32_f32): Likewise.
29424 (vreinterpretq_s32_u8): Likewise.
29425 (vreinterpretq_s32_u16): Likewise.
29426 (vreinterpretq_s32_u32): Likewise.
29427 (vreinterpretq_s32_u64): Likewise.
29428 (vreinterpretq_s32_p8): Likewise.
29429 (vreinterpretq_s32_p16): Likewise.
29430 (vreinterpret_u8_s8): Likewise.
29431 (vreinterpret_u8_s16): Likewise.
29432 (vreinterpret_u8_s32): Likewise.
29433 (vreinterpret_u8_s64): Likewise.
29434 (vreinterpret_u8_f32): Likewise.
29435 (vreinterpret_u8_u16): Likewise.
29436 (vreinterpret_u8_u32): Likewise.
29437 (vreinterpret_u8_u64): Likewise.
29438 (vreinterpret_u8_p8): Likewise.
29439 (vreinterpret_u8_p16): Likewise.
29440 (vreinterpretq_u8_s8): Likewise.
29441 (vreinterpretq_u8_s16): Likewise.
29442 (vreinterpretq_u8_s32): Likewise.
29443 (vreinterpretq_u8_s64): Likewise.
29444 (vreinterpretq_u8_f32): Likewise.
29445 (vreinterpretq_u8_u16): Likewise.
29446 (vreinterpretq_u8_u32): Likewise.
29447 (vreinterpretq_u8_u64): Likewise.
29448 (vreinterpretq_u8_p8): Likewise.
29449 (vreinterpretq_u8_p16): Likewise.
29450 (vreinterpret_u16_s8): Likewise.
29451 (vreinterpret_u16_s16): Likewise.
29452 (vreinterpret_u16_s32): Likewise.
29453 (vreinterpret_u16_s64): Likewise.
29454 (vreinterpret_u16_f32): Likewise.
29455 (vreinterpret_u16_u8): Likewise.
29456 (vreinterpret_u16_u32): Likewise.
29457 (vreinterpret_u16_u64): Likewise.
29458 (vreinterpret_u16_p8): Likewise.
29459 (vreinterpret_u16_p16): Likewise.
29460 (vreinterpretq_u16_s8): Likewise.
29461 (vreinterpretq_u16_s16): Likewise.
29462 (vreinterpretq_u16_s32): Likewise.
29463 (vreinterpretq_u16_s64): Likewise.
29464 (vreinterpretq_u16_f32): Likewise.
29465 (vreinterpretq_u16_u8): Likewise.
29466 (vreinterpretq_u16_u32): Likewise.
29467 (vreinterpretq_u16_u64): Likewise.
29468 (vreinterpretq_u16_p8): Likewise.
29469 (vreinterpretq_u16_p16): Likewise.
29470 (vreinterpret_u32_s8): Likewise.
29471 (vreinterpret_u32_s16): Likewise.
29472 (vreinterpret_u32_s32): Likewise.
29473 (vreinterpret_u32_s64): Likewise.
29474 (vreinterpret_u32_f32): Likewise.
29475 (vreinterpret_u32_u8): Likewise.
29476 (vreinterpret_u32_u16): Likewise.
29477 (vreinterpret_u32_u64): Likewise.
29478 (vreinterpret_u32_p8): Likewise.
29479 (vreinterpret_u32_p16): Likewise.
29480 (vreinterpretq_u32_s8): Likewise.
29481 (vreinterpretq_u32_s16): Likewise.
29482 (vreinterpretq_u32_s32): Likewise.
29483 (vreinterpretq_u32_s64): Likewise.
29484 (vreinterpretq_u32_f32): Likewise.
29485 (vreinterpretq_u32_u8): Likewise.
29486 (vreinterpretq_u32_u16): Likewise.
29487 (vreinterpretq_u32_u64): Likewise.
29488 (vreinterpretq_u32_p8): Likewise.
29489 (vreinterpretq_u32_p16): Likewise.
29491 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
29493 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
29495 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
29497 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
29498 (vqnegd_s64): Likewise.
29499 (vqabs_s64): Likewise.
29500 (vqabsd_s64): Likewise.
29502 2014-04-22 Richard Henderson <rth@redhat.com>
29504 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
29505 computation to the top of the loop.
29507 2014-04-22 Renlin <renlin.li@arm.com>
29508 Jiong Wang <jiong.wang@arm.com>
29510 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
29511 * config/aarch64/aarch64.c (aarch64_layout_frame)
29512 (aarch64_initial_elimination_offset): Likewise.
29514 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
29516 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
29519 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
29521 * machmode.h (bitwise_mode_for_mode): Declare.
29522 * stor-layout.h (bitwise_type_for_mode): Likewise.
29523 * stor-layout.c (bitwise_mode_for_mode): New function.
29524 (bitwise_type_for_mode): Likewise.
29525 * builtins.c (fold_builtin_memory_op): Use it instead of
29526 int_mode_for_mode and build_nonstandard_integer_type.
29528 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29530 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
29531 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
29532 (*-*-solaris2*): Simplify.
29533 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
29534 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
29535 *-*-solaris2.9* handling.
29537 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
29539 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
29540 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
29541 handling, simplify.
29542 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
29543 * configure: Regenerate.
29545 * config/i386/sol2-9.h: Remove.
29547 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
29548 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
29549 Remove Solaris 9 references.
29551 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
29553 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
29554 (floatuns<GPI:mode><GPF:mode>2): Remove.
29555 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
29556 and floatuns conversions.
29557 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
29558 and floatuns conversions.
29559 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
29560 (w1,w2): New mode attributes for inequal width conversions.
29562 2014-04-22 Renlin Li <Renlin.Li@arm.com>
29564 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
29565 the output asm format.
29567 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
29569 * config/aarch64/aarch64-simd.md
29570 (aarch64_cm<optab>di): Always split.
29571 (*aarch64_cm<optab>di): New.
29572 (aarch64_cmtstdi): Always split.
29573 (*aarch64_cmtstdi): New.
29575 2014-04-22 Jakub Jelinek <jakub@redhat.com>
29577 PR tree-optimization/60823
29578 * omp-low.c (ipa_simd_modify_function_body): Go through
29579 all SSA_NAMEs and for those refering to vector arguments
29580 which are going to be replaced adjust SSA_NAME_VAR and,
29581 if it is a default definition, change it into a non-default
29582 definition assigned at the beginning of function from new_decl.
29583 (ipa_simd_modify_stmt_ops): Rewritten.
29584 * tree-dfa.c (set_ssa_default_def): When removing default def,
29585 check for NULL loc instead of NULL *loc.
29587 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29589 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
29590 restrictions on core registers for DImode values in Thumb2.
29592 2014-04-22 Ian Bolton <ian.bolton@arm.com>
29594 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
29595 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
29597 2014-04-22 Ian Bolton <ian.bolton@arm.com>
29599 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
29600 (*iordi_notzesidi_di): Likewise.
29601 (*iordi_notsesidi_di): Likewise.
29603 2014-04-22 Ian Bolton <ian.bolton@arm.com>
29605 * config/arm/arm-protos.h (tune_params): New struct members.
29606 * config/arm/arm.c: Initialise tune_params per processor.
29607 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
29608 for speed, based on new tune_params.
29610 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
29612 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
29613 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
29614 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
29615 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
29616 * config/aarch64/arm_neon.h (vrnd_f64): Added.
29617 (vrnda_f64): Likewise.
29618 (vrndi_f64): Likewise.
29619 (vrndm_f64): Likewise.
29620 (vrndn_f64): Likewise.
29621 (vrndp_f64): Likewise.
29622 (vrndx_f64): Likewise.
29624 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
29626 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
29627 GET_MODE_SIZE argument is enum machine_mode.
29629 2014-04-22 Jakub Jelinek <jakub@redhat.com>
29632 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
29633 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
29635 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
29637 PR middle-end/60281
29638 * asan.c (asan_emit_stack_protection): Force the base to align to
29639 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
29640 appropriate bits if STRICT_ALIGNMENT.
29641 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
29643 (expand_used_vars): Leave a space in the stack frame for alignment
29644 if STRICT_ALIGNMENT.
29646 2014-04-21 David Malcolm <dmalcolm@redhat.com>
29648 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
29650 (gimple_store_p): Likewise.
29651 (gimple_assign_load_p): Likewise.
29652 (gimple_assign_cast_p): Likewise.
29653 (gimple_clobber_p): Likewise.
29655 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
29656 rather than a gimple.
29657 (gimple_assign_cast_p): Likewise.
29659 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
29662 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
29663 If mode is DDmode and TARGET_E500_DOUBLE allow move.
29665 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
29666 more debug information for E500 if -mdebug=reg.
29668 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
29671 * config/i386/i386.c (ix86_expand_builtin)
29672 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
29673 register for target RTX.
29674 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
29676 2014-04-18 Cong Hou <congh@google.com>
29678 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
29679 the widen-mult pattern by handling two operands with different sizes,
29680 and operands whose size is smaller than half of the result type.
29682 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
29684 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
29685 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
29686 (do_estimate_edge_time): Compute it.
29687 * ipa-inline.c (want_inline_small_function_p): Bypass
29688 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
29690 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
29692 * ipa-inline.c (spec_rem): New static variable.
29693 (dump_overall_stats): New function.
29694 (dump_inline_stats): New function.
29696 2014-04-18 Richard Henderson <rth@redhat.com>
29698 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
29699 to GET_MODE_SIZE, not a reg_class_t.
29701 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29703 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
29704 (vsx_xxmrglw_<mode>): Likewise.
29706 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
29709 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
29710 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
29711 (rs6000_init_hard_regno_mode_ok): Likewise.
29713 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
29715 * ipa-inline.c (inline_small_functions): Account only non-cold
29717 * doc/invoke.texi (inline-unit-growth): Update documentation.
29719 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
29721 * config/rs6000/rs6000.md (addti3, subti3): New.
29723 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
29726 * config/i386/i386.c (ix86_expand_clear): Remove outdated
29727 comment. Check optimize_insn_for_size_p instead of
29728 optimize_insn_for_speed_p.
29730 2014-04-17 Martin Jambor <mjambor@suse.cz>
29732 * gimple-iterator.c (gsi_start_edge): New function.
29733 * gimple-iterator.h (gsi_start_edge): Declare.
29734 * tree-sra.c (single_non_eh_succ): New function.
29735 (disqualify_ops_if_throwing_stmt): Renamed to
29736 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
29737 having one non-EH successor BB.
29738 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
29739 generate loads into replacements.
29740 (sra_modify_assign): Likewise and and also use the simple path for
29742 (sra_modify_function_body): Commit statements on edges.
29744 2014-04-17 Richard Biener <rguenther@suse.de>
29746 PR middle-end/60849
29747 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
29748 comparison results and add clarifying comment.
29750 2014-04-17 Jakub Jelinek <jakub@redhat.com>
29752 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
29753 (blank_mode): Initialize it.
29754 (emit_mode_size_inline, emit_mode_nunits_inline,
29755 emit_mode_inner_inline): New functions.
29756 (emit_insn_modes_h): Call them and surround their output with
29757 #if GCC_VERSION >= 4001 ... #endif.
29758 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
29759 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
29760 mode_* arrays if the argument is __builtin_constant_p.
29761 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
29762 is enum machine_mode.
29764 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29766 * passes.c (opt_pass::execute): Adjust.
29767 (pass_manager::execute_pass_mode_switching): Likewise.
29768 (early_local_passes::execute): Likewise.
29769 (execute_one_pass): Pass cfun to the pass's execute method.
29770 * tree-pass.h (opt_pass::execute): Add function * argument.
29771 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29772 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29773 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29774 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29775 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29776 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
29777 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
29778 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29779 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29780 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
29781 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
29782 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
29783 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
29784 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
29785 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29786 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29787 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29788 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
29789 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
29790 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29791 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29792 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29793 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29794 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29795 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29796 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29797 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29798 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29799 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29802 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29804 * passes.c (opt_pass::gate): Take function * argument.
29805 (gate_all_early_local_passes): Merge into
29806 (early_local_passes::gate): this.
29807 (gate_all_early_optimizations): Merge into
29808 (all_early_optimizations::gate): this.
29809 (gate_all_optimizations): Mege into
29810 (all_optimizations::gate): this.
29811 (gate_all_optimizations_g): Merge into
29812 (all_optimizations_g::gate): this.
29813 (gate_rest_of_compilation): Mege into
29814 (rest_of_compilation::gate): this.
29815 (gate_postreload): Merge into
29816 (postreload::gate): this.
29817 (dump_one_pass): Pass cfun to the pass's gate method.
29818 (execute_ipa_summary_passes): Likewise.
29819 (execute_one_pass): Likewise.
29820 (ipa_write_summaries_2): Likewise.
29821 (ipa_write_optimization_summaries_1): Likewise.
29822 (ipa_read_summaries_1): Likewise.
29823 (ipa_read_optimization_summaries_1): Likewise.
29824 (execute_ipa_stmt_fixups): Likewise.
29825 * tree-pass.h (opt_pass::gate): Add function * argument.
29826 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
29827 combine-stack-adj.c, combine.c, compare-elim.c,
29828 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29829 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
29830 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
29831 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
29832 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29833 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29834 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29835 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
29836 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
29837 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
29838 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29839 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29840 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
29841 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29842 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29843 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29844 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29845 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29846 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29847 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29848 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29849 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29850 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
29851 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
29852 var-tracking.c, vtable-verify.c, web.c: Adjust.
29854 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29856 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
29857 * configure: Regenerate.
29859 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29861 * passes.c (dump_one_pass): don't check pass->has_gate.
29862 (execute_ipa_summary_passes): Likewise.
29863 (execute_one_pass): Likewise.
29864 (ipa_write_summaries_2): Likewise.
29865 (ipa_write_optimization_summaries_1): Likewise.
29866 (ipa_read_optimization_summaries_1): Likewise.
29867 (execute_ipa_stmt_fixups): Likewise.
29868 * tree-pass.h (pass_data::has_gate): Remove.
29869 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29870 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29871 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29872 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29873 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29874 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
29875 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
29876 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
29877 gimple-low.c, gimple-ssa-isolate-paths.c,
29878 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
29879 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
29880 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29881 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
29882 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
29883 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
29884 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
29885 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
29886 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
29887 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29888 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29889 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29890 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29891 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29892 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29893 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29894 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29895 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29896 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29897 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29898 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29899 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29902 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29904 * pass_manager.h (pass_manager::register_dump_files_1): Remove
29906 * passes.c (pass_manager::register_dump_files_1): Merge into
29907 (pass_manager::register_dump_files): this, and remove its handling of
29908 properties since the pass always has the properties anyway.
29909 (pass_manager::pass_manager): Adjust.
29911 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
29913 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
29914 * passes.c (pass_manager::register_dump_files_1): Remove dead code
29915 dealing with properties.
29916 (pass_manager::register_dump_files): Adjust.
29918 2014-03-20 Mark Wielaard <mjw@redhat.com>
29920 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
29921 then represent the bound as normal constant value.
29923 2014-04-17 Jakub Jelinek <jakub@redhat.com>
29926 Forward port from 4.8 branch
29927 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
29929 * config/i386/bmiintrin.h (_blsi_u32): New.
29930 (_blsi_u64): Ditto.
29931 (_blsr_u32): Ditto.
29932 (_blsr_u64): Ditto.
29933 (_blsmsk_u32): Ditto.
29934 (_blsmsk_u64): Ditto.
29935 (_tzcnt_u32): Ditto.
29936 (_tzcnt_u64): Ditto.
29938 2014-04-17 Kito Cheng <kito@0xlab.org>
29940 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
29942 2014-04-17 Richard Biener <rguenther@suse.de>
29944 PR middle-end/60849
29945 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
29946 boolean results for comparisons.
29948 2014-04-17 Richard Biener <rguenther@suse.de>
29950 PR tree-optimization/60836
29951 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
29952 initial PHI args to be gimple values.
29954 2014-04-17 Richard Biener <rguenther@suse.de>
29956 PR tree-optimization/60841
29957 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
29958 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
29959 of stmts to SLP build.
29960 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
29961 (vect_analyze_slp): Likewise.
29962 (vect_analyze_slp_instance): Likewise.
29963 (vect_build_slp_tree): Limit overall SLP tree growth.
29964 * tree-vectorizer.h (vect_analyze_data_refs,
29965 vect_analyze_slp): Adjust prototypes.
29967 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
29969 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
29972 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
29974 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
29975 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
29976 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
29977 for TARGET_SLOW_PSHUFB
29979 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
29981 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
29982 * config/i386/i386.c (intel_cost): Ditto.
29984 2014-04-17 Joey Ye <joey.ye@arm.com>
29986 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
29988 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
29990 * opts.c (common_handle_option): Disable -fipa-reference coorectly
29991 with -fuse-profile.
29993 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
29995 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
29996 (type_all_derivations_known_p): New predicate.
29997 (type_all_ctors_visible_p): New predicate.
29998 (type_possibly_instantiated_p): New predicate.
29999 (get_odr_type): Compute all_derivations_known.
30000 (dump_odr_type): Dump the flag.
30001 (maybe_record_type): Cleanup.
30002 (record_target_from_binfo): Add bases_to_consider array;
30003 record bases for types w/o instances and skip CXX destructor.
30004 (possible_polymorphic_call_targets_1): Add bases_to_consider
30005 and consider_construction parameters; check if type may have instance.
30006 (get_polymorphic_call_info): Set maybe_in_construction to true
30007 when we know nothing.
30008 (record_targets_from_bases): Skip CXX destructors; they are
30009 never called for types in construction.
30010 (possible_polymorphic_call_targets): Do not record target when
30011 type may not have instance.
30013 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
30016 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
30017 external aliases alive, too.
30019 2014-04-16 Andrew Pinski <apinski@cavium.com>
30021 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
30024 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
30026 * final.c (compute_alignments): Do not apply loop alignment to a block
30027 falling through to the exit.
30029 2014-04-16 Catherine Moore <clm@codesourcery.com>
30031 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
30032 Adjust constraints for microMIPS store patterns.
30034 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
30036 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
30038 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
30040 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
30041 (append_use): Run at -O0.
30042 (append_vdef): Likewise.
30043 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
30044 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
30046 2014-04-16 Jakub Jelinek <jakub@redhat.com>
30048 PR tree-optimization/60844
30049 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
30050 (propagate_op_to_single_use, remove_visited_stmt_chain,
30051 linearize_expr, repropagate_negates, reassociate_bb): Use it
30052 instead of gsi_remove.
30054 2014-04-16 Martin Jambor <mjambor@suse.cz>
30056 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
30057 ipa_transforms_to_apply.
30058 (cgraph_function_versioning): Assert that old_node has empty
30059 ipa_transforms_to_apply.
30060 * trans-mem.c (ipa_tm_create_version): Likewise.
30061 * tree-inline.c (tree_function_versioning): Do not duplicate
30062 ipa_transforms_to_apply.
30064 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30067 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
30069 Pass necessary as flags on 64-bit Solaris/x86.
30070 Use lowercase relocs for x86_64-*-*.
30071 * configure: Regenerate.
30073 2014-04-15 Jan Hubicka <jh@suse.cz>
30075 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
30076 (maybe_record_node, likely_target_p): Use it.
30078 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30081 Revert following patch
30083 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
30086 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30087 software floating point or no floating point registers, do not
30088 allow any type in the FPRs. Eliminate a test for SPE SIMD types
30089 in GPRs that occurs after we tested for GPRs that would never be
30092 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30093 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30094 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
30095 specifically allow DDmode, since that does not use the SPE SIMD
30098 2014-03-21 Mark Wielaard <mjw@redhat.com>
30100 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
30101 as unsigned or int depending on type and value used.
30103 2014-04-15 Richard Biener <rguenther@suse.de>
30105 PR rtl-optimization/56965
30106 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
30107 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
30109 * alias.c (true_dependence_1): Do not call
30110 nonoverlapping_component_refs_p.
30111 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
30112 nonoverlapping_component_refs_p.
30113 (indirect_refs_may_alias_p): Likewise.
30115 2014-04-15 Teresa Johnson <tejohnson@google.com>
30117 * cfg.c (dump_bb_info): Fix flags check.
30118 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
30120 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30122 PR rtl-optimization/60663
30123 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
30126 2014-04-15 Richard Biener <rguenther@suse.de>
30128 * lto-streamer.h (LTO_major_version): Bump to 4.
30130 2014-04-15 Richard Biener <rguenther@suse.de>
30132 * common.opt (lto_partition_model): New enum.
30133 (flto-partition=): Merge separate options with a single with argument,
30134 add -flto-partition=one support.
30135 * flag-types.h (enum lto_partition_model): Declare.
30136 * opts.c (finish_options): Remove duplicate -flto-partition=
30138 * lto-wrapper.c (run_gcc): Adjust.
30140 2014-04-15 Richard Biener <rguenther@suse.de>
30142 * alias.c (ncr_compar): New function.
30143 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
30145 2014-04-15 Richard Biener <rguenther@suse.de>
30147 * alias.c (record_component_aliases): Do not walk BINFOs.
30149 2014-04-15 Richard Biener <rguenther@suse.de>
30151 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
30152 Add struct function argument and adjust.
30153 (find_func_aliases_for_call): Likewise.
30154 (find_func_aliases): Likewise.
30155 (find_func_clobbers): Likewise.
30156 (intra_create_variable_infos): Likewise.
30157 (compute_points_to_sets): Likewise.
30158 (ipa_pta_execute): Adjust. Do not push/pop cfun.
30160 2014-04-15 Richard Biener <rguenther@suse.de>
30162 * tree.c (iterative_hash_expr): Use enum tree_code_class
30163 to store TREE_CODE_CLASS.
30164 (tree_block): Likewise.
30165 (tree_set_block): Likewise.
30166 * tree.h (fold_build_pointer_plus_loc): Use
30167 convert_to_ptrofftype_loc.
30169 2014-04-15 Jakub Jelinek <jakub@redhat.com>
30172 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
30175 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
30177 * cfgloop.h (struct loop): Move force_vectorize down.
30178 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
30179 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
30180 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
30181 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
30182 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
30183 * tree-core.h (enum annot_expr_kind): Add new kind values.
30184 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
30185 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
30187 * tree.def (ANNOTATE_EXPR): Tweak comment.
30189 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
30191 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
30194 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
30196 * tree.h (TYPE_IDENTIFIER): Declare.
30197 * tree.c (subrange_type_for_debug_p): Use it.
30198 * godump.c (go_format_type): Likewise.
30199 * dwarf2out.c (is_cxx_auto, modified_type_die,
30200 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
30201 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
30203 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
30206 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
30208 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
30210 * config/i386/i386.c (examine_argument): Return bool. Return true if
30211 parameter should be passed in memory.
30212 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
30213 (construct_container): Update calls to examine_argument.
30214 (function_arg_advance_64): Ditto.
30215 (return_in_memory_32): Merge with ix86_return_in_memory.
30216 (return_in_memory_64): Ditto.
30217 (return_in_memory_ms_64): Ditto.
30219 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
30221 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
30222 * coverage.c (coverage_compute_profile_id): Handle externally visible
30225 2014-04-14 Martin Jambor <mjambor@suse.cz>
30227 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
30228 DECL_DISREGARD_INLINE_LIMITS functions.
30230 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
30233 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
30235 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
30238 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
30239 optimize_insn_for_speed_p instead of
30240 optimize_function_for_speed_p.
30242 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
30244 * doc/invoke.texi (free): Document AArch64.
30246 2014-04-14 Richard Biener <rguenther@suse.de>
30248 PR tree-optimization/60042
30249 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
30250 (insert_into_preds_of_block): Do not prevent PHI insertion
30251 for REFERENCE exprs here ...
30252 (eliminate_dom_walker::before_dom_children): ... but prevent
30253 their use here under similar conditions when applied to the
30254 IL after PRE optimizations.
30256 2014-04-14 Richard Biener <rguenther@suse.de>
30258 * passes.def: Move early points-to after early SRA.
30260 2014-04-14 Richard Biener <rguenther@suse.de>
30262 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
30263 check for which sign-changes we allow when forwarding
30264 a converted value into a switch.
30266 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
30268 * stor-layout.c (place_field): Finalize non-constant offset for the
30271 2014-04-14 Richard Biener <rguenther@suse.de>
30273 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
30275 (expand_switch_using_bit_tests_p): Likewise.
30276 (process_switch): Compute and pass on speed_p based on the
30278 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
30279 optimize_bb_for_speed_p.
30281 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
30283 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
30284 * function.h (struct function): Rename has_force_vect_loops into
30285 has_force_vectorize_loops.
30286 * lto-streamer-in.c (input_cfg): Adjust for renaming.
30287 (input_struct_function_base): Likewise.
30288 * lto-streamer-out.c (output_cfg): Likewise.
30289 (output_struct_function_base): Likewise.
30290 * omp-low.c (expand_omp_simd): Likewise.
30291 * tree-cfg.c (move_sese_region_to_fn): Likewise.
30292 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
30293 (version_loop_for_if_conversion): Likewise.
30294 (tree_if_conversion): Likewise.
30295 (main_tree_if_conversion): Likewise.
30296 (gate_tree_if_conversion): Likewise.
30297 * tree-inline.c (copy_loops): Likewise.
30298 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
30299 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
30300 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
30301 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
30302 * tree-vectorizer.c (vectorize_loops): Likewise.
30303 * tree-vectorizer.h (unlimited_cost_model): Likewise.
30305 2014-04-14 Richard Biener <rguenther@suse.de>
30308 * lto-streamer-out.c (wrap_refs): New function.
30309 (lto_output): Wrap symbol references in global initializes in
30310 type-preserving MEM_REFs.
30312 2014-04-14 Christian Bruel <christian.bruel@st.com>
30314 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
30316 2014-04-14 Christian Bruel <christian.bruel@st.com>
30318 * config/sh/sh.md (setmemqi): New expand pattern.
30319 * config/sh/sh.h (CLEAR_RATIO): Define.
30320 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
30321 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
30323 2014-04-14 Richard Biener <rguenther@suse.de>
30325 PR middle-end/55022
30326 * fold-const.c (negate_expr_p): Don't negate directional rounding
30328 (fold_negate_expr): Likewise.
30330 2014-04-14 Richard Biener <rguenther@suse.de>
30332 PR tree-optimization/59817
30333 PR tree-optimization/60453
30334 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
30335 recursion to catch all CHRECs in the scalar evolution and restrict
30336 the predicate for the remains appropriately.
30338 2014-04-12 Catherine Moore <clm@codesourcery.com>
30340 * config/mips/constraints.md: Add new register constraint "kb".
30341 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
30342 (*movhi_internal): Likewise.
30343 (*movqi_internal): Likewise.
30344 * config/mips/mips.h (M16_STORE_REGS): New register class.
30345 (REG_CLASS_NAMES): Add M16_STORE_REGS.
30346 (REG_CLASS_CONTENTS): Likewise.
30347 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
30349 2014-04-11 Tobias Burnus <burnus@net-b.de>
30352 * doc/invoke.texi (-Wformat-signedness): Document it.
30353 (Wformat=2): Mention that this enables -Wformat-signedness.
30355 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
30357 * common/config/epiphany/epiphany-common.c
30358 (epiphany_option_optimization_table): Enable section anchors by
30359 default at -O1 or higher.
30360 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
30361 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
30362 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
30363 carries no extra cost.
30364 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
30365 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
30366 * config/epiphany/predicates.md (memclob_operand): New predicate.
30367 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
30368 Use memclob_operand predicate and X constraint for operand 3.
30370 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
30372 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
30373 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
30376 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
30378 PR rtl-optimization/60651
30379 * mode-switching.c (optimize_mode_switching): Make sure to emit
30380 sets of a lower numbered entity before sets of a higher numbered
30381 entity to a mode of the same or lower priority.
30382 When creating a seginfo for a basic block that starts with a code
30383 label, move the insertion point past the code label.
30384 (new_seginfo): Document and enforce requirement that
30385 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
30386 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
30387 * doc/tm.texi: Regenerate.
30389 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
30392 * config/arc/arc.c (arc_save_restore): Fix assert typo.
30394 2013-04-11 Jakub Jelinek <jakub@redhat.com>
30396 * BASE-VER: Set to 4.10.0.
30398 2014-04-11 Tobias Burnus <burnus@net-b.de>
30401 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
30402 * doc/gcc.texi (Service): Update description in the @menu
30403 * doc/invoke.texi (Option Summary): Remove misplaced and
30406 2014-04-11 Steve Ellcey <sellcey@mips.com>
30407 Jakub Jelinek <jakub@redhat.com>
30409 PR middle-end/60556
30410 * expr.c (convert_move): Use emit_store_flag_force instead of
30411 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
30414 2014-04-11 Richard Biener <rguenther@suse.de>
30416 PR middle-end/60797
30417 * varasm.c (assemble_alias): Avoid endless error reporting
30418 recursion by setting TREE_ASM_WRITTEN.
30420 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30422 * config/s390/s390.md: Add a splitter for NOT rtx.
30424 2014-04-11 Jakub Jelinek <jakub@redhat.com>
30426 PR rtl-optimization/60663
30427 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
30429 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
30430 Jakub Jelinek <jakub@redhat.com>
30433 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
30434 flag from decl_node to node.
30436 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30439 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
30440 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
30441 ameliorating the cases where it can be.
30443 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
30446 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
30448 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
30449 (loadsync_<mode>): Change mode.
30450 (load_quadpti, store_quadpti): New.
30451 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
30452 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
30453 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
30455 2014-04-09 Cong Hou <congh@google.com>
30458 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
30461 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30463 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
30464 instead of vnor to exploit possible fusion opportunity in the
30466 (altivec_expand_vec_perm_const_le): Likewise.
30468 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
30470 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
30471 (loadsync_<mode>): Change mode.
30472 (load_quadpti, store_quadpti): New.
30473 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
30474 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
30476 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
30479 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
30480 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
30481 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
30483 2014-04-08 Richard Biener <rguenther@suse.de>
30485 PR middle-end/60706
30486 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
30487 a 64bit widest int print double-int similar to on HWI64 hosts.
30489 2014-04-08 Richard Biener <rguenther@suse.de>
30491 PR tree-optimization/60785
30492 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
30493 default defs properly.
30495 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
30497 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
30498 (Weffc++): Likewise.
30500 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
30502 * ipa-devirt.c (maybe_record_node): When node is not recorded,
30503 set completep to false rather than true.
30505 2014-04-07 Douglas B Rupp <rupp@adacore.com>
30508 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
30509 ARM_TARGET2_DWARF_FORMAT.
30511 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
30514 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
30515 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
30518 2014-04-07 Richard Biener <rguenther@suse.de>
30520 PR tree-optimization/60766
30521 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
30522 (may_eliminate_iv): Convert cand_value_at result to desired type.
30524 2014-04-07 Jason Merrill <jason@redhat.com>
30527 * common.opt (-fno-gnu-unique): Add.
30528 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
30530 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30532 * haifa-sched.c: Fix outdated function reference and minor
30533 grammar errors in introductory comment.
30535 2014-04-07 Richard Biener <rguenther@suse.de>
30537 PR middle-end/60750
30538 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
30539 for noreturn calls.
30540 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
30542 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
30545 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
30546 size accounting for thunks.
30547 (pa_asm_output_mi_thunk): Use final_start_function() and
30548 final_end_function() to output function start and end directives.
30550 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
30552 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
30553 device specific ISA/ feature information. Remove short_sp and
30554 errata_skip ds. Add avr_device_specific_features enum to have device
30556 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
30557 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
30558 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
30559 updated device specific info.
30560 * config/avr/avr-mcus.def: Merge device specific details to
30561 dev_attribute field.
30562 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
30564 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
30565 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
30566 assembler if RMW isa supported by current device.
30567 * config/avr/genmultilib.awk: Update as device info structure changed.
30568 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
30570 2014-04-04 Cong Hou <congh@google.com>
30572 PR tree-optimization/60656
30573 * tree-vect-stmts.c (supportable_widening_operation):
30574 Fix a bug that elements in a vector with vect_used_by_reduction
30575 property are incorrectly reordered when the operation on it is not
30576 consistant with the one in reduction operation.
30578 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
30580 PR rtl-optimization/60155
30581 * gcse.c (record_set_data): New function.
30582 (single_set_gcse): New function.
30583 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
30584 (hoist_code): Likewise.
30585 (get_pressure_class_and_nregs): Likewise.
30587 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
30589 * explow.c (probe_stack_range): Emit a final optimization blockage.
30591 2014-04-04 Anthony Green <green@moxielogic.com>
30593 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
30596 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
30599 * lto-cgraph.c (input_overwrite_node): Check that partitioning
30600 flags are set only during streaming.
30601 * ipa.c (process_references, walk_polymorphic_call_targets,
30602 symtab_remove_unreachable_nodes): Drop bodies of always inline
30603 after early inlining.
30604 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
30606 2014-04-04 Jakub Jelinek <jakub@redhat.com>
30607 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30610 * dwarf2out.c (const_ok_for_output_1): Reject expressions
30613 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30616 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
30618 (cortex_a53_fdivd): Likewise.
30620 2014-04-04 Martin Jambor <mjambor@suse.cz>
30623 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
30624 Adjust all callers.
30625 * cgraph.c (clone_of_p): Also return true if thunks match.
30626 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
30627 cgraph_function_or_thunk_node and an obsolete comment.
30628 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
30630 (build_function_decl_skip_args): Likewise.
30631 (set_new_clone_decl_and_node_flags): New function.
30632 (duplicate_thunk_for_node): Likewise.
30633 (redirect_edge_duplicating_thunks): Likewise.
30634 (cgraph_clone_node): New parameter args_to_skip, pass it to
30635 redirect_edge_duplicating_thunks which is called instead of
30636 cgraph_redirect_edge_callee.
30637 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
30638 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
30640 2014-04-04 Jeff Law <law@redhat.com>
30643 * config/arm/predicates.md (const_int_I_operand): New predicate.
30644 (const_int_M_operand): Similarly.
30645 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
30647 (insv_t2, extv_reg, extzv_t2): Likewise.
30648 (load_multiple_with_writeback): Similarly for const_int_I_operand.
30649 (pop_multiple_with_writeback_and_return): Likewise.
30650 (vfp_pop_multiple_with_writeback): Likewise
30652 2014-04-04 Richard Biener <rguenther@suse.de>
30655 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
30656 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
30658 * gimplify.h (gimple_add_tmp_var_fn): Declare.
30659 * gimplify.c (gimple_add_tmp_var_fn): New function.
30660 * gimple-expr.h (create_tmp_reg_fn): Declare.
30661 * gimple-expr.c (create_tmp_reg_fn): New function.
30662 * gimple-low.c (record_vars_into): Don't change cfun.
30663 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
30664 code generation without cfun.
30666 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
30669 * Makefile.in (install-driver): Fix shell scripting.
30671 2014-04-03 Cong Hou <congh@google.com>
30673 PR tree-optimization/60505
30674 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
30675 threshold of number of iterations below which no vectorization
30677 * tree-vect-loop.c (new_loop_vec_info):
30678 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
30679 * tree-vect-loop.c (vect_analyze_loop_operations):
30680 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
30681 * tree-vect-loop.c (vect_transform_loop):
30682 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
30683 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
30684 of iterations of the loop and see if we should build the epilogue.
30686 2014-04-03 Richard Biener <rguenther@suse.de>
30688 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
30689 (streamer_tree_cache_create): Adjust.
30690 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
30691 to allow optional nodes array.
30692 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
30693 (streamer_tree_cache_append): Likewise.
30694 (streamer_tree_cache_create): Create nodes array optionally
30695 as specified by parameter.
30696 * lto-streamer-out.c (create_output_block): Avoid maintaining
30697 the node array in the writer cache.
30698 (DFS_write_tree): Remove assertion.
30699 (produce_asm_for_decls): Free the out decl state hash table early.
30700 * lto-streamer-in.c (lto_data_in_create): Adjust for
30701 streamer_tree_cache_create prototype change.
30703 2014-04-03 Richard Biener <rguenther@suse.de>
30705 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
30706 set TREE_CHAIN to NULL_TREE.
30708 2014-04-03 Richard Biener <rguenther@suse.de>
30710 PR tree-optimization/60740
30711 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
30712 over all GIMPLE_COND operands.
30714 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
30716 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
30717 (Weffc++): Remove Scott's numbering, merge lists and reference
30720 2014-04-03 Nick Clifton <nickc@redhat.com>
30722 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
30725 2014-04-03 Martin Jambor <mjambor@suse.cz>
30727 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
30728 mention gcc_unreachable before failing.
30729 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
30732 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
30735 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
30736 inconsistent code and instead mark the context inconsistent.
30737 (possible_polymorphic_call_targets): For inconsistent contexts
30738 return empty complete list.
30740 2014-04-02 Anthony Green <green@moxielogic.com>
30742 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
30743 (extendqisi2, extendhisi2): Define.
30744 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
30745 (WCHAR_TYPE): Change to unsigned int.
30747 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30749 PR tree-optimization/60733
30750 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
30751 insertion point for PHI candidates to be the end of the feeding
30752 block for the PHI argument.
30754 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
30756 PR rtl-optimization/60650
30757 * lra-constraints.c (process_alt_operands): Decrease reject for
30758 earlyclobber matching.
30760 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30762 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
30764 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30766 * config/spu/spu.c (pad_bb): Do not crash when the last
30767 insn is CODE_FOR_blockage.
30769 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30771 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
30772 lies outside the target mode.
30774 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
30777 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30778 software floating point or no floating point registers, do not
30779 allow any type in the FPRs. Eliminate a test for SPE SIMD types
30780 in GPRs that occurs after we tested for GPRs that would never be
30783 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30784 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30785 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
30786 specifically allow DDmode, since that does not use the SPE SIMD
30789 2014-04-02 Richard Biener <rguenther@suse.de>
30791 PR middle-end/60729
30792 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
30793 MODE_INTs. Properly use negv_optab.
30794 (expand_abs): Likewise.
30796 2014-04-02 Richard Biener <rguenther@suse.de>
30799 * Makefile.in (install-driver): Guard extra installs with special
30802 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
30804 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30805 Document vec_vgbbd.
30807 2014-04-01 Richard Henderson <rth@redhat.com>
30810 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
30811 alternative enabled before register allocation.
30813 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
30815 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
30816 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
30818 (nios2_large_got_address): Remove unneeded 'sym' parameter.
30819 (nios2_got_address): Update nios2_large_got_address call site.
30820 (nios2_delegitimize_address): New function.
30821 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
30822 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
30823 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
30825 2014-04-01 Martin Husemann <martin@duskware.de>
30827 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
30830 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
30832 PR rtl-optimization/60604
30833 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
30834 check from register_operand.
30835 (register_operand): Redefine in terms of general_operand.
30836 (nonmemory_operand): Use register_operand for the non-constant cases.
30838 2014-04-01 Richard Biener <rguenther@suse.de>
30840 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
30842 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
30844 * doc/invoke.texi (mapp-regs): Clarify.
30846 2014-03-31 Ulrich Drepper <drepper@gmail.com>
30848 * config/i386/avx512fintrin.h (__v32hi): Define type.
30849 (__v64qi): Likewise.
30850 (_mm512_set1_epi8): Define.
30851 (_mm512_set1_epi16): Define.
30852 (_mm512_set4_epi32): Define.
30853 (_mm512_set4_epi64): Define.
30854 (_mm512_set4_pd): Define.
30855 (_mm512_set4_ps): Define.
30856 (_mm512_setr4_epi64): Define.
30857 (_mm512_setr4_epi32): Define.
30858 (_mm512_setr4_pd): Define.
30859 (_mm512_setr4_ps): Define.
30860 (_mm512_setzero_epi32): Define.
30862 2014-03-31 Martin Jambor <mjambor@suse.cz>
30864 PR middle-end/60647
30865 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
30866 callsite_arguments_match_p. Updated all callers. Also check types of
30867 corresponding formal parameters and actual arguments.
30868 (not_all_callers_have_enough_arguments_p) Renamed to
30869 some_callers_have_mismatched_arguments_p.
30871 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
30873 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
30875 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
30878 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
30881 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
30883 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
30884 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
30886 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
30887 Use FMAMODE_NOVF512 mode iterator.
30888 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
30889 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
30890 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
30891 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
30893 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
30894 Use VF_128_256 mode iterator.
30895 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
30898 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
30900 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
30901 static chain if needed.
30903 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
30906 * lra-constraints.c (index_part_to_reg): New.
30907 (process_address): Use it.
30909 2014-03-27 Jeff Law <law@redhat.com>
30910 Jakub Jelinek <jakub@redhat.com>
30913 * expr.c (do_tablejump): Use simplify_gen_binary rather than
30914 gen_rtx_{PLUS,MULT} to build up the address expression.
30916 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
30917 creating non-canonical RTL.
30919 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
30922 * ipa-inline.c (want_inline_small_function_p): Short circuit large
30923 functions; reorganize to make cheap checks first.
30924 (inline_small_functions): Do not estimate growth when dumping;
30926 * ipa-inline.h (inline_summary): Add min_size.
30927 (growth_likely_positive): New function.
30928 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
30929 (set_cond_stmt_execution_predicate): Cleanup.
30930 (estimate_edge_size_and_time): Compute min_size.
30931 (estimate_calls_size_and_time): Likewise.
30932 (estimate_node_size_and_time): Likewise.
30933 (inline_update_overall_summary): Update min_size.
30934 (do_estimate_edge_time): Likewise.
30935 (do_estimate_edge_size): Update.
30936 (do_estimate_edge_hints): Update.
30937 (growth_likely_positive): New function.
30939 2014-03-28 Jakub Jelinek <jakub@redhat.com>
30942 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
30943 also if addr has VOIDmode.
30945 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30947 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
30948 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
30950 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
30951 instructions as well as AdvancedSIMD loads.
30953 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30955 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
30956 Use crypto_aese type.
30957 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
30958 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
30959 crypto_aese, crypto_aesmc. Move to types.md.
30960 * config/arm/types.md (crypto_aes): Split into crypto_aese,
30962 * config/arm/iterators.md (crypto_type): Likewise.
30964 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
30966 * cgraph.c: Include expr.h and tree-dfa.h.
30967 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
30970 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
30973 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
30974 regs from checking multi-reg pseudos.
30976 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30978 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
30980 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30982 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
30983 if it would clobber the stack pointer, even temporarily.
30985 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
30987 * mode-switching.c: Make small adjustments to the top comment.
30989 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
30991 * config/rs6000/constraints.md (wD constraint): New constraint to
30992 match the constant integer to get the top DImode/DFmode out of a
30993 vector in a VSX register.
30995 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
30996 match the constant integer to get the top DImode/DFmode out of a
30997 vector in a VSX register.
30999 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
31002 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
31005 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
31006 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
31008 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
31009 Optimize vec_extract of 64-bit values, where the value being
31010 extracted is in the top word, where we can use scalar
31011 instructions. Add direct move and store support. Combine the big
31012 endian/little endian vector select load support into a single insn.
31013 (vsx_extract_<mode>_internal1): Likewise.
31014 (vsx_extract_<mode>_internal2): Likewise.
31015 (vsx_extract_<mode>_load): Likewise.
31016 (vsx_extract_<mode>_store): Likewise.
31017 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
31018 combined into vsx_extract_<mode>_load.
31019 (vsx_extract_<mode>_one_le): Likewise.
31021 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
31022 define the top 64-bit vector element.
31024 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
31027 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31028 Document vec_vbpermq builtin.
31031 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
31032 enable use of xxsldwi and xxpermdi builtin functions.
31033 (vec_xxpermdi): Likewise.
31035 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31036 Document use of vec_xxsldwi and vec_xxpermdi builtins.
31038 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
31040 PR rtl-optimization/60650
31041 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
31043 (find_spills_for): New.
31044 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
31045 Spill all pseudos on the second iteration.
31047 2014-03-27 Marek Polacek <polacek@redhat.com>
31050 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
31053 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31055 * config/s390/s390.c (s390_can_use_return_insn): Check for
31056 call-saved FPRs on 31 bit.
31058 2014-03-27 Jakub Jelinek <jakub@redhat.com>
31060 PR middle-end/60682
31061 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
31062 if they need regimplification, just drop them instead of
31063 calling gimple_regimplify_operands on them.
31065 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
31068 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
31069 (aarch64_frame_pointer_required): Adjust logic.
31070 (aarch64_can_eliminate): Adjust logic.
31071 (aarch64_override_options_after_change): Adjust logic.
31073 2014-03-27 Dehao Chen <dehao@google.com>
31075 * ipa-inline.c (early_inliner): Update node's inline info.
31077 2014-03-26 Dehao Chen <dehao@google.com>
31079 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
31080 compiler inserted conditional jumps for NAN float check.
31082 2014-03-26 Jakub Jelinek <jakub@redhat.com>
31084 * ubsan.h (ubsan_create_data): Change second argument's type
31085 to const location_t *.
31086 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
31088 (ubsan_create_data): Change second argument to const location_t *PLOC.
31089 Create Loc field whenever PLOC is non-NULL.
31090 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
31091 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
31095 * real.c (real_to_integer2): Change type of low to UHWI.
31097 2014-03-26 Tobias Burnus <burnus@net-b.de>
31099 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
31100 (CILK_SELF_SPECS): New define.
31101 (driver_self_specs): Use it.
31103 2014-03-26 Richard Biener <rguenther@suse.de>
31105 * tree-pretty-print.c (percent_K_format): Implement special
31106 case for LTO and its stripped down BLOCK tree.
31108 2014-03-26 Jakub Jelinek <jakub@redhat.com>
31111 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
31113 * tree-vrp.c (simplify_internal_call_using_ranges): If only
31114 one range is range_int_cst_p, but not both, at least optimize
31115 addition/subtraction of 0 and multiplication by 0 or 1.
31116 * gimple-fold.c (gimple_fold_call): Fold
31117 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
31118 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
31119 INTEGER_CSTs, try to fold at least x * 0 and y - y.
31121 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
31123 PR rtl-optimization/60452
31124 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
31125 <case REG>: Return 1 for invalid offsets from the frame pointer.
31127 2014-03-26 Marek Polacek <polacek@redhat.com>
31130 * doc/extend.texi (C Extensions): Mention variable-length arrays in
31133 2014-03-26 Marek Polacek <polacek@redhat.com>
31136 * doc/extend.texi (Designated Inits): Describe what happens to omitted
31139 2014-03-26 Marek Polacek <polacek@redhat.com>
31142 * ira-color.c (update_conflict_hard_regno_costs): Perform the
31143 multiplication in unsigned type.
31145 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
31147 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
31149 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
31151 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
31153 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
31156 * cif-code.def (UNREACHABLE) New code.
31157 * ipa-inline.c (inline_small_functions): Skip edges to
31158 __builtlin_unreachable.
31159 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
31160 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
31161 predicate to __bulitin_unreachable.
31162 (set_cond_stmt_execution_predicate): Fix issue when
31163 invert_tree_comparison returns ERROR_MARK.
31164 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
31165 propagate to inline clones.
31166 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
31168 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
31169 * cgraphclones.c (cgraph_clone_node): If call destination is already
31170 ureachable, do not redirect it back.
31171 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
31174 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
31176 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
31177 Do not modify inline clones.
31179 2014-03-25 Jakub Jelinek <jakub@redhat.com>
31181 * config/i386/i386.md (general_sext_operand): New mode attr.
31182 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
31183 don't generate (sign_extend (const_int)).
31184 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
31185 operands[2]. Use We constraint instead of <i> and
31186 <general_sext_operand> predicate instead of <general_operand>.
31187 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
31188 * config/i386/constraints.md (We): New constraint.
31189 * config/i386/predicates.md (x86_64_sext_operand,
31190 sext_operand): New predicates.
31192 2014-03-25 Martin Jambor <mjambor@suse.cz>
31195 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
31196 inconsistent devirtualizations to __builtin_unreachable.
31198 2014-03-25 Marek Polacek <polacek@redhat.com>
31201 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
31203 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
31205 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
31206 order of elements for big-endian.
31208 2014-03-25 Richard Biener <rguenther@suse.de>
31210 PR middle-end/60635
31211 * gimplify-me.c (gimple_regimplify_operands): Update the
31214 2014-03-25 Martin Jambor <mjambor@suse.cz>
31217 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
31218 (lto_output_varpool_node): Likewise.
31219 (input_overwrite_node): Likewise.
31220 (input_varpool_node): Likewise.
31222 2014-03-25 Richard Biener <rguenther@suse.de>
31224 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
31225 (run_gcc): Likewise.
31227 2014-03-25 Jakub Jelinek <jakub@redhat.com>
31229 * combine.c (simplify_compare_const): Add MODE argument.
31230 Handle mode_width 0 as very large mode_width.
31231 (try_combine, simplify_comparison): Adjust callers.
31233 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
31234 type to avoid signed integer overflow.
31235 * explow.c (plus_constant): Likewise.
31237 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
31239 * doc/generic.texi: Correct typos.
31241 2014-03-24 Tobias Burnus <burnus@net-b.de>
31243 * doc/invoke.texi (-flto): Expand section about
31244 using static libraries with LTO.
31246 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31248 PR rtl-optimization/60501
31249 * optabs.def (addptr3_optab): New optab.
31250 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
31251 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
31252 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
31254 * lra.c (emit_add3_insn): Use the addptr pattern if available.
31256 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
31258 2014-03-24 Ulrich Drepper <drepper@gmail.com>
31260 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
31263 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
31264 (_mm256_undefined_ps): Define.
31265 (_mm256_undefined_pd): Define.
31266 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
31267 (_mm_undefined_pd): Define.
31268 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
31269 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
31270 (_mm512_undefined_ps): Define.
31271 (_mm512_undefined_pd): Define.
31272 Use _mm*_undefined_*.
31273 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
31275 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
31277 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
31278 (lshr_simd): DI mode added.
31279 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
31280 (aarch64_ushr_simddi): Likewise.
31281 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
31282 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
31283 (vshrd_n_u64): Likewise.
31285 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31287 * Makefile.in (s-macro_list): Depend on cc1.
31289 2014-03-23 Teresa Johnson <tejohnson@google.com>
31291 * ipa-utils.c (ipa_print_order): Use specified dump file.
31293 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
31295 PR rtl-optimization/60601
31296 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
31298 * gcc.c (eval_spec_function): Initialize save_growing_value.
31300 2014-03-22 Jakub Jelinek <jakub@redhat.com>
31303 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
31304 code == MINUS_EXPR, never swap op0 with op1.
31306 * toplev.c (init_local_tick): Avoid signed integer multiplication
31308 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
31309 shift by first operand's bitsize.
31311 2014-03-21 Jakub Jelinek <jakub@redhat.com>
31314 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
31315 redefine to 1 or 0.
31316 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
31317 TARGET_ISA_64BIT_P(x).
31319 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31321 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
31322 pattern for vector nor instead of subtract from splat(-1).
31323 (altivec_expand_vec_perm_const_le): Likewise.
31325 2014-03-21 Richard Henderson <rth@twiddle.net>
31328 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
31329 related insns after epilogue_completed.
31331 2014-03-21 Martin Jambor <mjambor@suse.cz>
31334 * cgraph.h (symtab_node): New flag body_removed.
31335 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
31336 when removing bodies.
31337 * symtab.c (dump_symtab_base): Dump body_removed flag.
31338 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
31339 had their bodies removed.
31341 2014-03-21 Martin Jambor <mjambor@suse.cz>
31344 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
31347 2014-03-21 Richard Biener <rguenther@suse.de>
31349 PR tree-optimization/60577
31350 * tree-core.h (struct tree_base): Document nothrow_flag use
31351 in DECL_NONALIASED.
31352 * tree.h (DECL_NONALIASED): New.
31353 (may_be_aliased): Adjust.
31354 * coverage.c (build_var): Set DECL_NONALIASED.
31356 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
31358 * expr.c (expand_expr_real_1): Remove outdated comment.
31360 2014-03-20 Jakub Jelinek <jakub@redhat.com>
31362 PR middle-end/60597
31363 * ira.c (adjust_cleared_regs): Call copy_rtx on
31364 *reg_equiv[REGNO (loc)].src_p before passing it to
31365 simplify_replace_fn_rtx.
31368 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
31369 into CONST, put pic register as first operand of PLUS. Use
31370 gen_const_mem for both 32-bit and 64-bit PIC got loads.
31372 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31374 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
31376 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
31378 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
31379 around for store forwarding issue in the FPU on the UT699.
31380 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
31381 loads and operations if -mfix-ut699 is specified.
31382 (divtf3_hq): Tweak attribute.
31383 (sqrttf2_hq): Likewise.
31385 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
31387 * calls.c (store_one_arg): Remove incorrect const qualification on the
31388 type of the temporary.
31389 * cfgexpand.c (expand_return): Likewise.
31390 * expr.c (expand_constructor): Likewise.
31391 (expand_expr_real_1): Likewise.
31393 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
31395 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
31398 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
31401 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
31403 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
31405 * config/arm/aarch-common-protos.h
31406 (alu_cost_table): Fix spelling of "extend".
31407 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
31409 2014-03-19 Richard Biener <rguenther@suse.de>
31411 PR middle-end/60553
31412 * tree-core.h (tree_type_common): Re-order pointer members
31413 to reduce recursion depth during GC walks.
31415 2014-03-19 Marek Polacek <polacek@redhat.com>
31418 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
31419 before accessing it.
31421 2014-03-19 Richard Biener <rguenther@suse.de>
31424 * lto-streamer-in.c (input_function): In WPA stage do not drop
31427 2014-03-19 Jakub Jelinek <jakub@redhat.com>
31429 PR tree-optimization/60559
31430 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
31431 with build_zero_cst assignment.
31433 2014-03-18 Kai Tietz <ktietz@redhat.com>
31435 PR rtl-optimization/56356
31436 * sdbout.c (sdbout_parms): Verify that parms'
31437 incoming argument is valid.
31438 (sdbout_reg_parms): Likewise.
31440 2014-03-18 Richard Henderson <rth@redhat.com>
31443 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
31444 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
31445 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
31447 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
31449 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
31450 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
31451 Italicize plugin event names in description. Explain that
31452 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
31453 Remind that no GCC functions should be called after PLUGIN_FINISH.
31454 Explain what pragmas with expansion are.
31456 2014-03-18 Martin Liska <mliska@suse.cz>
31458 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
31459 gimple call statement is update.
31460 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
31461 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
31463 2014-03-18 Jakub Jelinek <jakub@redhat.com>
31466 * ubsan.c (ubsan_instrument_unreachable): Call
31467 initialize_sanitizer_builtins.
31468 (ubsan_pass): Likewise.
31471 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
31472 varpool_finalize_decl instead of rest_of_decl_compilation.
31474 2014-03-18 Richard Biener <rguenther@suse.de>
31476 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
31477 by using bitmap_and_compl instead of bitmap_and_compl_into.
31478 (df_rd_transfer_function): Likewise.
31480 2014-03-18 Richard Biener <rguenther@suse.de>
31482 * doc/lto.texi (fresolution): Fix typo.
31484 2014-03-18 Richard Biener <rguenther@suse.de>
31486 * doc/invoke.texi (flto): Update for changes in 4.9.
31488 2014-03-18 Richard Biener <rguenther@suse.de>
31490 * doc/loop.texi: Remove section on the removed lambda framework.
31491 Update loop docs with recent changes in preserving loop structure.
31493 2014-03-18 Richard Biener <rguenther@suse.de>
31495 * doc/lto.texi (-fresolution): Document.
31497 2014-03-18 Richard Biener <rguenther@suse.de>
31499 * doc/contrib.texi: Adjust my name.
31501 2014-03-18 Jakub Jelinek <jakub@redhat.com>
31504 * internal-fn.c: Include diagnostic-core.h.
31505 (expand_BUILTIN_EXPECT): New function.
31506 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
31507 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
31508 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
31509 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
31510 IFN_BUILTIN_EXPECT.
31511 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
31512 Revert 3 argument __builtin_expect code.
31513 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
31514 * gimple-fold.c (gimple_fold_call): Likewise.
31515 * tree.h (fold_builtin_expect): New prototype.
31516 * builtins.c (build_builtin_expect_predicate): Add predictor
31517 argument, if non-NULL, create 3 argument __builtin_expect.
31518 (fold_builtin_expect): No longer static. Add ARG2 argument,
31519 pass it through to build_builtin_expect_predicate.
31520 (fold_builtin_2): Adjust caller.
31521 (fold_builtin_3): Handle BUILT_IN_EXPECT.
31522 * internal-fn.def (BUILTIN_EXPECT): New.
31524 2014-03-18 Tobias Burnus <burnus@net-b.de>
31527 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
31528 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
31529 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
31531 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
31534 * predict.c (combine_predictions_for_bb): Fix up formatting.
31535 (expr_expected_value_1, expr_expected_value): Add predictor argument,
31536 fill what it points to if non-NULL.
31537 (tree_predict_by_opcode): Adjust caller, use the predictor.
31538 * predict.def (PRED_COMPARE_AND_SWAP): Add.
31540 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
31542 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
31543 proper constant for the store mode.
31545 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
31547 * symtab.c (change_decl_assembler_name): Fix transparent alias
31548 chain construction.
31550 2014-03-16 Renlin Li <Renlin.Li@arm.com>
31552 * config/aarch64/aarch64.c: Correct the comments about the
31553 aarch64 stack layout.
31555 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
31557 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
31558 check for GF_OMP_FOR_KIND_FOR.
31560 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
31562 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
31563 ymm and zmm register names.
31565 2014-03-17 Jakub Jelinek <jakub@redhat.com>
31568 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
31569 note creation for the 2010-08-31 changes.
31571 2014-03-17 Marek Polacek <polacek@redhat.com>
31573 PR middle-end/60534
31574 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
31575 as -fno-tree-loop-vectorize.
31576 (expand_omp_simd): Likewise.
31578 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
31580 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
31581 (eligible_for_call_delay): New prototype.
31582 * config/sparc/sparc.c (tls_call_delay): Rename into...
31583 (eligible_for_call_delay): ...this. Return false if the instruction
31584 cannot be put in the delay slot of a branch.
31585 (eligible_for_restore_insn): Simplify.
31586 (eligible_for_return_delay): Return false if the instruction cannot be
31587 put in the delay slot of a branch and simplify.
31588 (eligible_for_sibcall_delay): Return false if the instruction cannot be
31589 put in the delay slot of a branch.
31590 * config/sparc/sparc.md (fix_ut699): New attribute.
31591 (tls_call_delay): Delete.
31592 (in_call_delay): Reimplement.
31593 (eligible_for_sibcall_delay): Rename into...
31594 (in_sibcall_delay): ...this.
31595 (eligible_for_return_delay): Rename into...
31596 (in_return_delay): ...this.
31597 (in_branch_delay): Reimplement.
31598 (in_uncond_branch_delay): Delete.
31599 (in_annul_branch_delay): Delete.
31601 2014-03-14 Richard Henderson <rth@redhat.com>
31604 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
31605 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
31606 (*floathi<X87MODEF>2_i387_with_temp): Remove.
31607 (floathi splitters): Remove.
31608 (float<SWI48x>xf2): New pattern.
31609 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
31610 code that tried to handle DImode for 32-bit, but which was excluded
31611 by the pattern's condition. Drop allocation of stack temporary.
31612 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
31613 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
31614 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
31615 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
31616 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
31617 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
31618 (*float<SWI48><MODEF>2_sse_interunit): Remove.
31619 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
31620 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
31621 (*float<SWI48x><X87MODEF>2_i387): Remove.
31622 (all float _with_temp splitters): Remove.
31623 (*float<SWI48x><MODEF>2_i387): New pattern.
31624 (*float<SWI48><MODEF>2_sse): New pattern.
31625 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
31626 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
31628 2014-03-14 Jakub Jelinek <jakub@redhat.com>
31629 Marek Polacek <polacek@redhat.com>
31631 PR middle-end/60484
31632 * common.opt (dump_base_name_prefixed): New Variable.
31633 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
31634 if x_dump_base_name_prefixed is already set, set it at the end.
31636 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
31638 PR rtl-optimization/60508
31639 * lra-constraints.c (get_reload_reg): Add new parameter
31641 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
31642 Pass the new parameter values.
31644 2014-03-14 Richard Biener <rguenther@suse.de>
31646 * common.opt: Revert unintented changes from r205065.
31647 * opts.c: Likewise.
31649 2014-03-14 Richard Biener <rguenther@suse.de>
31651 PR middle-end/60518
31652 * cfghooks.c (split_block): Properly adjust all loops the
31653 block was a latch of.
31655 2014-03-14 Martin Jambor <mjambor@suse.cz>
31658 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
31661 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
31664 * config/avr/avr.c (avr_set_current_function): Pass function name
31665 through default_strip_name_encoding before sanity checking instead
31666 of skipping the first char of the assembler name.
31668 2014-03-13 Richard Henderson <rth@redhat.com>
31671 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
31672 (ix86_force_to_memory, ix86_free_from_memory): Remove.
31673 * config/i386/i386-protos.h: Likewise.
31674 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
31675 in the expander instead of a splitter.
31676 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
31677 any possibility of requiring a memory.
31678 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
31679 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
31680 (fp branch splitters): Update for ix86_split_fp_branch.
31681 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
31682 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
31683 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
31684 (*fop_<MODEF>_2_i387): Remove f/r alternative.
31685 (*fop_<MODEF>_3_i387): Likewise.
31686 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
31687 (splitters for the fop_* register patterns): Remove.
31688 (fscalexf4_i387): Rename from *fscalexf4_i387.
31689 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
31691 2014-03-13 Jakub Jelinek <jakub@redhat.com>
31693 PR tree-optimization/59779
31694 * tree-dfa.c (get_ref_base_and_extent): Use double_int
31695 type for bitsize and maxsize instead of HOST_WIDE_INT.
31697 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
31699 PR rtl-optimization/57320
31700 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
31701 the CFG after thread_prologue_and_epilogue_insns.
31703 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
31705 PR rtl-optimization/57189
31706 * lra-constraints.c (process_alt_operands): Disfavor spilling
31709 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
31711 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
31713 2014-03-13 Jakub Jelinek <jakub@redhat.com>
31715 PR tree-optimization/59025
31716 PR middle-end/60418
31717 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
31718 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
31720 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
31723 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
31724 calls of avr_out_plus_1.
31726 2014-03-13 Bin Cheng <bin.cheng@arm.com>
31728 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
31729 BB's single pred and update the father loop's latch info later.
31731 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
31733 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
31737 (VEC_base): Likewise.
31738 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
31739 registers, we need to swap double words in little endian mode.
31741 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
31742 to be a container mode for 128-bit integer operations added in ISA
31743 2.07. Unlike TImode and PTImode, the preferred register set is
31744 the Altivec/VMX registers for the 128-bit operations.
31746 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
31748 (rs6000_split_128bit_ok_p): Likewise.
31750 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
31751 macros for creating ISA 2.07 normal and overloaded builtin
31752 functions with 3 arguments.
31753 (BU_P8V_OVERLOAD_3): Likewise.
31754 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
31755 for use as overloaded functions.
31756 (VPERM_1TI_UNS): Likewise.
31757 (VSEL_1TI): Likewise.
31758 (VSEL_1TI_UNS): Likewise.
31759 (ST_INTERNAL_1ti): Likewise.
31760 (LD_INTERNAL_1ti): Likewise.
31761 (XXSEL_1TI): Likewise.
31762 (XXSEL_1TI_UNS): Likewise.
31763 (VPERM_1TI): Likewise.
31764 (VPERM_1TI_UNS): Likewise.
31765 (XXPERMDI_1TI): Likewise.
31766 (SET_1TI): Likewise.
31767 (LXVD2X_V1TI): Likewise.
31768 (STXVD2X_V1TI): Likewise.
31769 (VEC_INIT_V1TI): Likewise.
31770 (VEC_SET_V1TI): Likewise.
31771 (VEC_EXT_V1TI): Likewise.
31772 (EQV_V1TI): Likewise.
31773 (NAND_V1TI): Likewise.
31774 (ORC_V1TI): Likewise.
31775 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
31776 added in ISA 2.07. Add both normal 'altivec' builtins, and the
31777 overloaded builtin.
31778 (VADDUQM): Likewise.
31779 (VSUBCUQ): Likewise.
31780 (VADDEUQM): Likewise.
31781 (VADDECUQ): Likewise.
31782 (VSUBEUQM): Likewise.
31783 (VSUBECUQ): Likewise.
31785 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
31786 __int128_t and __uint128_t types.
31787 (__uint128_type): Likewise.
31788 (altivec_categorize_keyword): Add support for vector __int128_t,
31789 vector __uint128_t, vector __int128, and vector unsigned __int128
31790 as a container type for TImode operations that need to be done in
31791 VSX/Altivec registers.
31792 (rs6000_macro_to_expand): Likewise.
31793 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
31794 to support 128-bit integer instructions vaddcuq, vadduqm,
31795 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
31796 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
31798 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
31799 for V1TImode, and set up preferences to use VSX/Altivec registers.
31800 Setup VSX reload handlers.
31801 (rs6000_debug_reg_global): Likewise.
31802 (rs6000_init_hard_regno_mode_ok): Likewise.
31803 (rs6000_preferred_simd_mode): Likewise.
31804 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
31805 (easy_altivec_constant): Likewise.
31806 (output_vec_const_move): Likewise.
31807 (rs6000_expand_vector_set): Convert V1TImode set and extract to
31809 (rs6000_expand_vector_extract): Likewise.
31810 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
31812 (rs6000_const_vec): Add support for V1TImode.
31813 (rs6000_emit_le_vsx_load): Swap double words when loading or
31814 storing TImode/V1TImode.
31815 (rs6000_emit_le_vsx_store): Likewise.
31816 (rs6000_emit_le_vsx_move): Likewise.
31817 (rs6000_emit_move): Add support for V1TImode.
31818 (altivec_expand_ld_builtin): Likewise.
31819 (altivec_expand_st_builtin): Likewise.
31820 (altivec_expand_vec_init_builtin): Likewise.
31821 (altivec_expand_builtin): Likewise.
31822 (rs6000_init_builtins): Add support for V1TImode type. Add
31823 support for ISA 2.07 128-bit integer builtins. Define type names
31824 for the VSX/Altivec vector types.
31825 (altivec_init_builtins): Add support for overloaded vector
31826 functions with V1TImode type.
31827 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
31828 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
31830 (rs6000_split_128bit_ok_p): Likewise.
31831 (rs6000_handle_altivec_attribute): Create V1TImode from vector
31832 __int128_t and vector __uint128_t.
31834 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
31835 and mode attributes.
31837 (VSX_M2): Likewise.
31842 (VS_scalar): Likewise.
31843 (VS_double): Likewise.
31844 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
31846 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
31847 we support the ISA 2.07 128-bit integer arithmetic instructions.
31848 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
31849 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
31850 and TImode types for use with the builtin functions.
31851 (V1TI_type_node): Likewise.
31852 (unsigned_V1TI_type_node): Likewise.
31853 (intTI_type_internal_node): Likewise.
31854 (uintTI_type_internal_node): Likewise.
31856 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
31857 128-bit builtin functions.
31858 (UNSPEC_VADDEUQM): Likewise.
31859 (UNSPEC_VADDECUQ): Likewise.
31860 (UNSPEC_VSUBCUQ): Likewise.
31861 (UNSPEC_VSUBEUQM): Likewise.
31862 (UNSPEC_VSUBECUQ): Likewise.
31863 (VM): Add V1TImode to vector mode iterators.
31865 (VI_unit): Likewise.
31866 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
31867 (altivec_vaddcuq): Likewise.
31868 (altivec_vsubuqm): Likewise.
31869 (altivec_vsubcuq): Likewise.
31870 (altivec_vaddeuqm): Likewise.
31871 (altivec_vaddecuq): Likewise.
31872 (altivec_vsubeuqm): Likewise.
31873 (altivec_vsubecuq): Likewise.
31875 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
31877 (BOOL_128): Likewise.
31878 (BOOL_REGS_OUTPUT): Likewise.
31879 (BOOL_REGS_OP1): Likewise.
31880 (BOOL_REGS_OP2): Likewise.
31881 (BOOL_REGS_UNARY): Likewise.
31882 (BOOL_REGS_AND_CR0): Likewise.
31884 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
31885 128-bit integer builtin support.
31886 (vec_vadduqm): Likewise.
31887 (vec_vaddecuq): Likewise.
31888 (vec_vaddeuqm): Likewise.
31889 (vec_vsubecuq): Likewise.
31890 (vec_vsubeuqm): Likewise.
31891 (vec_vsubcuq): Likewise.
31892 (vec_vsubuqm): Likewise.
31894 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31895 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
31896 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
31897 128-bit integer add/subtract to ISA 2.07.
31899 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
31901 * config/arc/arc.c (arc_predicate_delay_insns):
31902 Fix third argument passed to conditionalize_nonjump.
31904 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
31906 * config/aarch64/aarch64-builtins.c
31907 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
31908 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
31909 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
31910 instead of __builtin_lfloor.
31911 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
31913 2014-03-12 Jakub Jelinek <jakub@redhat.com>
31915 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
31916 (tree_ssa_ifcombine_bb_1): New function.
31917 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
31918 is an empty forwarder block to then_bb or vice versa and then_bb
31919 and else_bb are effectively swapped.
31921 2014-03-12 Christian Bruel <christian.bruel@st.com>
31924 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
31925 REG_CFA_DEF_CFA note.
31926 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
31927 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
31929 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
31931 PR tree-optimization/60454
31932 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
31934 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31936 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
31937 Do not define target_cpu_default2 to generic.
31938 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
31939 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
31940 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
31942 2014-03-12 Jakub Jelinek <jakub@redhat.com>
31943 Marc Glisse <marc.glisse@inria.fr>
31945 PR tree-optimization/60502
31946 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
31947 instead of build_low_bits_mask.
31949 2014-03-12 Jakub Jelinek <jakub@redhat.com>
31951 PR middle-end/60482
31952 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
31953 if there are multiple uses, but op doesn't live on E edge.
31954 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
31955 clobber stmts before __builtin_unreachable.
31957 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
31959 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
31960 hard_frame_pointer_rtx.
31961 * cse.c (cse_insn): Remove volatile check.
31962 * cselib.c (cselib_process_insn): Likewise.
31963 * dse.c (scan_insn): Likewise.
31965 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
31967 * config/arc/arc.c (conditionalize_nonjump): New function,
31969 (arc_ifcvt): ... this.
31970 (arc_predicate_delay_insns): Use it.
31972 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
31974 * config/arc/predicates.md (extend_operand): During/after reload,
31975 allow const_int_operand.
31976 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
31977 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
31978 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
31980 (umulsi3_highpart_i): Likewise.
31982 2014-03-11 Richard Biener <rguenther@suse.de>
31984 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
31985 Add asserts to guard possible wrong-code bugs.
31987 2014-03-11 Richard Biener <rguenther@suse.de>
31989 PR tree-optimization/60429
31990 PR tree-optimization/60485
31991 * tree-ssa-structalias.c (set_union_with_increment): Properly
31992 take into account all fields that overlap the shifted vars.
31993 (do_sd_constraint): Likewise.
31994 (do_ds_constraint): Likewise.
31995 (get_constraint_for_ptr_offset): Likewise.
31997 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
31999 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
32000 (nios2_compute_frame_layout):
32001 Add calculation of cfun->machine->fp_save_offset.
32002 (nios2_expand_prologue): Correct setting of frame pointer register
32004 (nios2_expand_epilogue): Update recovery of stack pointer from
32005 frame pointer accordingly.
32006 (nios2_initial_elimination_offset): Update calculation of offset
32007 for eliminating to HARD_FRAME_POINTER_REGNUM.
32009 2014-03-10 Jakub Jelinek <jakub@redhat.com>
32012 * ipa.c (symtab_remove_unreachable_nodes): Don't call
32013 cgraph_get_create_node on VAR_DECLs.
32015 2014-03-10 Richard Biener <rguenther@suse.de>
32017 PR middle-end/60474
32018 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
32020 2014-03-08 Douglas B Rupp <rupp@gnat.com>
32022 * config/vms/vms.opt (vms_float_format): New variable.
32024 2014-03-08 Tobias Burnus <burnus@net-b.de>
32026 * doc/invoke.texi (-fcilkplus): Update implementation status.
32028 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
32029 Richard Biener <rguenther@suse.de>
32031 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
32032 consistently accross all TUs.
32033 (run_gcc): Enable -fshort-double automatically at link at link-time
32034 and disallow override.
32036 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
32039 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
32040 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
32041 if they can't be used.
32043 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32045 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
32046 for Solaris 11/x86 ld.
32047 * configure: Regenerate.
32049 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32051 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
32052 (LIB_TLS_SPEC): Save as ld_tls_libs.
32053 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
32054 (HAVE_AS_IX86_TLSLDM): New test.
32055 * configure, config.in: Regenerate.
32056 * config/i386/i386.c (legitimize_tls_address): Fall back to
32057 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
32058 cannot support TLS_MODEL_LOCAL_DYNAMIC.
32059 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
32060 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
32062 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
32064 * common.opt (fira-loop-pressure): Mark as optimization.
32066 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
32068 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
32069 an OpenMP mappable type.
32071 2014-03-06 Matthias Klose <doko@ubuntu.com>
32073 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
32074 MULTILIB_OSDIRNAMES is not defined.
32076 2014-03-06 Jakub Jelinek <jakub@redhat.com>
32077 Meador Inge <meadori@codesourcery.com>
32080 * config/arm/arm.c (arm_tls_symbol_p): Remove.
32081 (arm_legitimize_address): Call legitimize_tls_address for any
32082 arm_tls_referenced_p expression, handle constant addend. Call it
32083 before testing for !TARGET_ARM.
32084 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
32086 2014-03-06 Richard Biener <rguenther@suse.de>
32088 PR middle-end/60445
32092 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
32094 * tree-streamer.c (record_common_node): Assert we don't record
32095 nodes with type double.
32096 (preload_common_node): Skip type double, complex double and double
32097 pointer since it is now frontend dependent due to fshort-double option.
32099 2014-03-06 Richard Biener <rguenther@suse.de>
32101 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
32102 or -fno-lto is specified and the linker has full plugin support.
32103 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
32104 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
32105 * lto-wrapper.c (merge_and_complain): Merge compile-time
32106 optimization levels.
32107 (run_gcc): And pass it through to the link options.
32109 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
32113 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
32115 * cselib.c (remove_useless_values): Skip to avoid quadratic
32116 behavior if the condition moved from...
32117 (cselib_process_insn): ... here holds.
32119 2014-03-05 Jakub Jelinek <jakub@redhat.com>
32122 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
32123 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
32126 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
32127 (TM_H): Add x86-tune.def.
32129 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32131 * config/aarch64/aarch64.c (generic_tunings):
32132 Use cortexa57_extra_costs.
32134 2014-03-05 Jakub Jelinek <jakub@redhat.com>
32137 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
32138 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
32139 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
32142 2014-03-04 Heiher <r@hev.cc>
32144 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
32145 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
32147 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
32149 * config/i386/predicates.md (const2356_operand): Change to ...
32150 (const2367_operand): ... this.
32151 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
32153 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32154 (*avx512pf_scatterpf<mode>sf): Ditto.
32155 (avx512pf_scatterpf<mode>df): Ditto.
32156 (*avx512pf_scatterpf<mode>df_mask): Ditto.
32157 (*avx512pf_scatterpf<mode>df): Ditto.
32158 * config/i386/i386.c (ix86_expand_builtin): Update
32159 incorrect hint operand error message.
32161 2014-03-04 Richard Biener <rguenther@suse.de>
32163 * lto-section-in.c (lto_get_section_data): Fix const cast.
32165 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
32167 * tree-streamer.c (record_common_node): Assert we don't record
32168 nodes with type double.
32169 (preload_common_node): Skip type double, complex double and double
32170 pointer since it is now frontend dependent due to fshort-double option.
32172 2014-03-04 Richard Biener <rguenther@suse.de>
32175 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
32176 (lto_input_toplevel_asms): Likewise.
32177 * lto-section-in.c (lto_get_section_data): Instead do it here
32180 2014-03-04 Richard Biener <rguenther@suse.de>
32182 PR tree-optimization/60382
32183 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
32184 dead PHIs a reduction.
32186 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
32188 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
32190 (_mm_prefetch): Move out of GCC target("sse") pragma.
32191 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
32192 GCC target("prfchw") pragma.
32193 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
32195 * config/i386/i386.c (ix86_option_override_internal): Enable
32196 -mprfchw with -mprefetchwt1.
32198 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
32200 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
32203 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
32205 * opts.h (CL_PCH_IGNORE): Define.
32206 * targhooks.c (option_affects_pch_p):
32207 Return false for options that have CL_PCH_IGNORE set.
32208 * opt-functions.awk: Process PchIgnore.
32209 * doc/options.texi: Document PchIgnore.
32211 * config/arc/arc.opt (misize): Add PchIgnore property.
32213 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32215 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
32216 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
32217 constraint on constants to permit them being loaded into
32218 GENERAL_REGS or BASE_REGS.
32220 2014-03-03 Nick Clifton <nickc@redhat.com>
32222 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
32223 anti-cacnonical alternatives.
32224 (negandhi3_real): New pattern.
32225 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
32227 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
32229 * config/avr/avr-mcus.def: Remove atxmega16x1.
32230 * config/avr/avr-tables.opt: Regenerate.
32231 * config/avr/t-multilib: Regenerate.
32232 * doc/avr-mmcu.texi: Regenerate.
32234 2014-03-03 Tobias Grosser <tobias@grosser.es>
32235 Mircea Namolaru <mircea.namolaru@inria.fr>
32237 PR tree-optimization/58028
32238 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
32241 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
32243 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
32244 not handled by recognizers.
32246 2014-03-03 Jakub Jelinek <jakub@redhat.com>
32248 PR middle-end/60175
32249 * function.c (expand_function_end): Don't emit
32250 clobber_return_register sequence if clobber_after is a BARRIER.
32251 * cfgexpand.c (construct_exit_block): Append instructions before
32252 return_label to prev_bb.
32254 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32256 * config/rs6000/constraints.md: Document reserved use of "wc".
32258 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
32261 * ipa.c (function_and_variable_visibility): When dissolving comdat
32262 group, also set all symbols to local.
32264 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
32269 2013-12-14 Jan Hubicka <jh@suse.cz>
32270 PR middle-end/58477
32271 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
32273 2014-03-02 Jon Beniston <jon@beniston.com>
32279 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
32280 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
32281 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
32282 (simple_return, *simple_return): New patterns
32283 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
32284 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
32286 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
32288 * dwarf2out.c (gen_subprogram_die): Tidy.
32290 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
32293 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
32294 (*mov_t_msb_neg_negc): ... this new insn.
32296 2014-02-28 Jason Merrill <jason@redhat.com>
32299 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
32302 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
32305 * dwarf2out.c (decltype_auto_die): New static.
32306 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
32307 (gen_type_die_with_usage): Handle 'decltype(auto)'.
32308 (is_cxx_auto): Likewise.
32310 2014-02-28 Ian Bolton <ian.bolton@arm.com>
32312 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
32313 we are not using general regs only.
32315 2014-02-28 Richard Biener <rguenther@suse.de>
32318 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
32319 previous fix and only allow to remove trivial pre-headers
32320 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
32321 (remove_forwarder_block): Properly update the latch of a loop.
32323 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
32326 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
32327 (cselib_preserved_hash_table): New.
32328 (preserve_constants_and_equivs): Move preserved vals to it.
32329 (cselib_find_slot): Look it up first.
32330 (cselib_init): Initialize it.
32331 (cselib_finish): Release it.
32332 (dump_cselib_table): Dump it.
32334 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
32337 * cselib.c (remove_useless_values): Skip to avoid quadratic
32338 behavior if the condition moved from...
32339 (cselib_process_insn): ... here holds.
32341 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
32344 * var-tracking.c (vt_initialize): Apply the same condition to
32345 preserve the CFA base value.
32347 2014-02-28 Joey Ye <joey.ye@arm.com>
32350 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
32351 if reload in progress or completed.
32353 2014-02-28 Tobias Burnus <burnus@net-b.de>
32355 PR middle-end/60147
32356 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
32359 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
32361 * doc/tm.texi.in (Condition Code Status): Update documention for
32362 relative locations of cc0-setter and cc0-user.
32364 2014-02-27 Jeff Law <law@redhat.com>
32366 PR rtl-optimization/52714
32367 * combine.c (try_combine): When splitting an unrecognized PARALLEL
32368 into two independent simple sets, if I3 is a jump, ensure the
32369 pattern we place into I3 is a (set (pc) ...).
32371 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
32372 Jeff Law <law@redhat.com>
32374 PR rtl-optimization/49847
32375 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
32376 are in different blocks.
32377 * doc/tm.texi (Condition Code Status): Update documention for
32378 relative locations of cc0-setter and cc0-user.
32380 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
32383 * lra.c (lra_emit_add): Check SUBREG too.
32385 2014-02-27 Andreas Schwab <schwab@suse.de>
32387 * config/m68k/m68k.c (m68k_option_override): Disable
32388 -flive-range-shrinkage for classic m68k.
32389 (m68k_override_options_after_change): Likewise.
32391 2014-02-27 Marek Polacek <polacek@redhat.com>
32393 PR middle-end/59223
32394 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
32395 -Wmaybe-uninitialized.
32397 2014-02-27 Alan Modra <amodra@gmail.com>
32400 * reload1.c (emit_input_reload_insns): When reload_override_in,
32401 set old to rl->in_reg when rl->in_reg is a subreg.
32403 2014-02-26 Richard Biener <rguenther@suse.de>
32406 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
32408 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
32410 * common/config/i386/predicates.md (const1256_operand): Remove.
32411 (const2356_operand): New.
32412 (const_1_to_2_operand): Remove.
32413 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
32414 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
32415 (*avx512pf_gatherpf<mode>sf): Ditto.
32416 (avx512pf_gatherpf<mode>df): Ditto.
32417 (*avx512pf_gatherpf<mode>df_mask): Ditto.
32418 (*avx512pf_gatherpf<mode>df): Ditto.
32419 (avx512pf_scatterpf<mode>sf): Ditto.
32420 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32421 (*avx512pf_scatterpf<mode>sf): Ditto.
32422 (avx512pf_scatterpf<mode>df): Ditto.
32423 (*avx512pf_scatterpf<mode>df_mask): Ditto.
32424 (*avx512pf_scatterpf<mode>df): Ditto.
32425 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
32427 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
32429 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
32430 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
32431 (_mm512_mask_testn_epi64_mask): Move to ...
32432 * config/i386/avx512cdintrin.h: Here.
32433 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
32434 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
32435 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
32436 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
32437 TARGET_AVX512F from TARGET_AVX512CD.
32439 2014-02-26 Richard Biener <rguenther@suse.de>
32442 * ipa.c (walk_polymorphic_call_targets): Properly guard
32443 call to inline_update_overall_summary.
32445 2014-02-26 Bin Cheng <bin.cheng@arm.com>
32448 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
32449 and latches only if requested. Fix latch if it is removed.
32450 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
32451 LOOPS_HAVE_PREHEADERS.
32453 2014-02-25 Andrew Pinski <apinski@cavium.com>
32455 * builtins.c (expand_builtin_thread_pointer): Create a new target
32456 when the target is NULL.
32458 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
32460 PR rtl-optimization/60317
32461 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
32462 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
32463 * lra-assigns.c: Include params.h.
32464 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
32465 other reload pseudos considerations.
32467 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32469 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
32470 to use canonical form for nor<mode>3.
32472 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32475 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
32478 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
32480 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
32481 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
32482 (ix86_handle_option): Handle OPT_mprefetchwt1.
32483 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
32484 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
32486 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
32487 OPTION_MASK_ISA_PREFETCHWT1.
32488 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
32489 (PTA_PREFETCHWT1): New.
32490 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
32491 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
32492 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
32493 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
32494 (*prefetch_avx512pf_<mode>_: Change into ...
32495 (*prefetch_prefetchwt1_<mode>: This.
32496 * config/i386/i386.opt (mprefetchwt1): New.
32497 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
32498 (_mm_prefetch): Handle intent to write.
32499 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
32501 2014-02-25 Richard Biener <rguenther@suse.de>
32503 PR middle-end/60291
32504 * emit-rtl.c (mem_attrs_htab): Remove.
32505 (mem_attrs_htab_hash): Likewise.
32506 (mem_attrs_htab_eq): Likewise.
32507 (set_mem_attrs): Always allocate new mem-attrs when something changed.
32508 (init_emit_once): Do not allocate mem_attrs_htab.
32510 2014-02-25 Richard Biener <rguenther@suse.de>
32513 * lto-opts.c (lto_write_options): Output non-explicit conservative
32514 -fwrapv, -fno-trapv and -fno-strict-overflow.
32515 * lto-wrapper.c (merge_and_complain): Handle merging those options.
32516 (run_gcc): And pass them through.
32518 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
32520 * sel-sched.c (calculate_new_fences): New parameter ptime.
32521 Calculate it as a maximum over all fence cycles.
32522 (sel_sched_region_2): Adjust the call to calculate_new_fences.
32523 Print the final schedule timing when sched_verbose.
32525 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
32527 PR rtl-optimization/60292
32528 * sel-sched.c (fill_vec_av_set): Do not reset target availability
32529 bit fot the fence instruction.
32531 2014-02-24 Alangi Derick <alangiderick@gmail.com>
32533 * calls.h: Fix typo in comment.
32535 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
32537 * config/pa/pa.c (pa_output_move_double): Don't valididate when
32538 adjusting offsetable addresses.
32540 2014-02-24 Guozhi Wei <carrot@google.com>
32542 * sparseset.h (sparseset_pop): Fix the wrong index.
32544 2014-02-24 Walter Lee <walt@tilera.com>
32546 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
32547 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
32549 * common/config/tilegx/tilegx-common.c
32550 (TARGET_DEFAULT_TARGET_FLAGS): Define.
32551 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
32552 (LINK_SPEC): Ditto.
32553 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
32554 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
32555 (tilegx_gimplify_va_arg_expr): Handle big endian.
32556 (tilegx_expand_unaligned_load): Ditto.
32557 (tilegx_expand_unaligned_store): Ditto.
32558 (TARGET_RETURN_IN_MSB): New.
32559 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
32560 (TARGET_ENDIAN_DEFAULT): New.
32561 (TARGET_BIG_ENDIAN): Handle big endian.
32562 (BYTES_BIG_ENDIAN): Ditto.
32563 (WORDS_BIG_ENDIAN): Ditto.
32564 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
32565 (ENDIAN_SPEC): New.
32566 (EXTRA_SPECS): New.
32567 * config/tilegx/tilegx.md (extv): Handle big endian.
32569 (insn_st<n>): Ditto.
32570 (insn_st<n>_add<bitsuffix>): Ditto.
32571 (insn_stnt<n>): Ditto.
32572 (insn_stnt<n>_add<bitsuffix>):Ditto.
32573 (vec_interleave_highv8qi): Handle big endian.
32574 (vec_interleave_highv8qi_be): New.
32575 (vec_interleave_highv8qi_le): New.
32576 (insn_v1int_h): Handle big endian.
32577 (vec_interleave_lowv8qi): Handle big endian.
32578 (vec_interleave_lowv8qi_be): New.
32579 (vec_interleave_lowv8qi_le): New.
32580 (insn_v1int_l): Handle big endian.
32581 (vec_interleave_highv4hi): Handle big endian.
32582 (vec_interleave_highv4hi_be): New.
32583 (vec_interleave_highv4hi_le): New.
32584 (insn_v2int_h): Handle big endian.
32585 (vec_interleave_lowv4hi): Handle big endian.
32586 (vec_interleave_lowv4hi_be): New.
32587 (vec_interleave_lowv4hi_le): New.
32588 (insn_v2int_l): Handle big endian.
32589 (vec_interleave_highv2si): Handle big endian.
32590 (vec_interleave_highv2si_be): New.
32591 (vec_interleave_highv2si_le): New.
32592 (insn_v4int_h): Handle big endian.
32593 (vec_interleave_lowv2si): Handle big endian.
32594 (vec_interleave_lowv2si_be): New.
32595 (vec_interleave_lowv2si_le): New.
32596 (insn_v4int_l): Handle big endian.
32597 * config/tilegx/tilegx.opt (mbig-endian): New option.
32598 (mlittle-endian): New option.
32599 * doc/install.texi: Document tilegxbe-linux.
32600 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
32602 2014-02-24 Martin Jambor <mjambor@suse.cz>
32605 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
32606 there are no parameter descriptors.
32608 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
32610 PR rtl-optimization/60268
32611 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
32612 initialization to ...
32613 (sched_rgn_init): ... here.
32614 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
32616 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
32618 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
32621 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
32623 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
32626 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
32628 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
32629 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
32631 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
32633 * config/microblaze/predicates.md: Add cmp_op predicate.
32634 * config/microblaze/microblaze.md: Add branch_compare instruction
32635 which uses cmp_op predicate and emits cmp insn before branch.
32636 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
32637 to microblaze_expand_conditional_branch and consolidate logic.
32638 (microblaze_expand_conditional_branch): emit branch_compare
32639 insn instead of handling cmp op separate from branch insn.
32641 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32643 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
32646 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32648 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
32649 define_insn with define_expand and new define_insn
32650 *altivec_lve<VI_char>x_internal.
32651 (altivec_stve<VI_char>x): Replace define_insn with define_expand
32652 and new define_insn *altivec_stve<VI_char>x_internal.
32653 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
32655 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
32657 (altivec_expand_stvex_be): New function.
32659 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
32661 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
32662 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
32663 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
32664 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
32666 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
32669 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
32670 instead of emit_move_insn.
32672 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32674 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
32675 vspltw with vsldoi.
32676 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
32677 gen_altivec_vsumsws.
32679 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32681 * config/rs6000/altivec.md (altivec_lvxl): Rename as
32682 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
32683 (altivec_lvxl_<mode>): New define_expand incorporating
32684 -maltivec=be semantics where needed.
32685 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
32686 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
32687 semantics where needed.
32688 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
32689 (altivec_stvx_<mode>): New define_expand incorporating
32690 -maltivec=be semantics where needed.
32691 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
32692 VM2 iterator instead of V4SI.
32693 (altivec_stvxl_<mode>): New define_expand incorporating
32694 -maltivec=be semantics where needed.
32695 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
32696 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
32697 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
32698 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
32699 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
32700 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
32701 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
32702 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
32703 ALTIVEC_BUILTIN_STVXL.
32704 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
32705 (altivec_expand_stvx_be): Likewise.
32706 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
32707 (altivec_expand_lvx_be): Likewise.
32708 (altivec_expand_stvx_be): Likewise.
32709 (altivec_expand_builtin): Add cases for
32710 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
32711 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
32712 (altivec_init_builtins): Add definitions for
32713 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
32714 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
32716 2014-02-21 Catherine Moore <clm@codesourcery.com>
32718 * doc/invoke.texi (mvirt, mno-virt): Document.
32719 * config/mips/mips.opt (mvirt): New option.
32720 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
32722 2014-02-21 Richard Biener <rguenther@suse.de>
32724 PR tree-optimization/60276
32725 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
32726 (STMT_VINFO_MIN_NEG_DIST): New macro.
32727 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
32728 STMT_VINFO_MIN_NEG_DIST.
32729 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
32730 made for negative dependence distances still hold.
32732 2014-02-21 Richard Biener <rguenther@suse.de>
32734 PR middle-end/60291
32735 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
32736 DECL_INITIAL for globals not in the current function context.
32738 2014-02-21 Jakub Jelinek <jakub@redhat.com>
32740 PR tree-optimization/56490
32741 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
32742 * tree-ssa-uninit.c: Include params.h.
32743 (compute_control_dep_chain): Add num_calls argument, return false
32744 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
32745 num_calls to recursive call.
32746 (find_predicates): Change dep_chain into normal array,
32747 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
32748 variable and adjust compute_control_dep_chain caller.
32749 (find_def_preds): Likewise.
32751 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
32753 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
32754 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
32756 2014-02-21 Nick Clifton <nickc@redhat.com>
32758 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
32759 (pushhi1): Likewise.
32760 (popqi1): Add mode to pre_dec.
32761 (pophi1): Likewise.
32763 2014-02-21 Jakub Jelinek <jakub@redhat.com>
32765 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
32766 mode for mask of V8SFmode permutation.
32768 2014-02-20 Richard Henderson <rth@redhat.com>
32771 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
32772 a new pseudo for OLDVAL.
32774 2014-02-20 Jakub Jelinek <jakub@redhat.com>
32777 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
32778 gen_reg_rtx if d->testing_p.
32779 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
32780 if d->testing_p and we will certainly return true.
32781 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
32784 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
32786 * emit-rtl.c (gen_reg_rtx): Assert that
32787 crtl->emit.regno_pointer_align_length is non-zero.
32789 2014-02-20 Richard Henderson <rth@redhat.com>
32792 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
32793 on failure the store back into EXPECT.
32795 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
32796 Sandra Loosemore <sandra@codesourcery.com>
32798 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
32799 * config/nios2/nios2.c (nios2_function_profiler): Add
32800 -fPIC (flag_pic == 2) support.
32801 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
32802 (nios2_large_offset_p): New function.
32803 (nios2_unspec_reloc_p): Move up position, update to use
32804 nios2_large_offset_p.
32805 (nios2_unspec_address): Remove function.
32806 (nios2_unspec_offset): New function.
32807 (nios2_large_got_address): New function.
32808 (nios2_got_address): Add large offset support.
32809 (nios2_legitimize_tls_address): Update usage of removed and new
32811 (nios2_symbol_binds_local_p): New function.
32812 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
32813 (nios2_legitimize_address): Update to use nios2_large_offset_p.
32814 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
32815 (nios2_print_operand): Merge H/L processing, add hiadj/lo
32816 processing for (const (unspec ...)).
32817 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
32819 2014-02-20 Richard Biener <rguenther@suse.de>
32821 * tree-cfg.c (replace_uses_by): Mark altered BBs before
32822 doing the substitution.
32823 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
32825 2014-02-20 Martin Jambor <mjambor@suse.cz>
32828 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
32829 info when checking whether lattices are bottom.
32831 2014-02-20 Richard Biener <rguenther@suse.de>
32833 PR middle-end/60221
32834 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
32837 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
32840 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
32841 parameter specifying the scaling.
32842 (inline_call): Update.
32843 (want_inline_recursively): Guard division by zero.
32844 (recursive_inlining): Update.
32845 * ipa-inline.h (clone_inlined_nodes): Update.
32847 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
32850 * config/i386/i386.c (classify_argument): Pass structures of size
32851 64 bytes or less in register.
32853 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
32854 Kirill Yukhin <kirill.yukhin@intel.com>
32856 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
32857 (_mm_rcp28_round_ss): Ditto.
32858 (_mm_rsqrt28_round_sd): Ditto.
32859 (_mm_rsqrt28_round_ss): Ditto.
32860 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
32861 (_mm_rcp14_round_ss): Ditto.
32862 (_mm_rsqrt14_round_sd): Ditto.
32863 (_mm_rsqrt14_round_ss): Ditto.
32864 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
32865 the first input operand, get rid of match_dup.
32866 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
32868 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
32870 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
32871 operand as the first input operand, set type attribute.
32872 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
32873 Set type attribute.
32874 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
32875 operand as the first input operand, set type attribute.
32877 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32879 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
32882 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
32885 * config/i386/i386.c (construct_container): Remove TFmode check
32886 for X86_64_INTEGER_CLASS.
32888 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
32891 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
32892 only when -Wpsabi is enabled.
32894 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
32897 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
32898 passing arrays in registers are the same as for structs, so remove the
32899 special case for them.
32901 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
32903 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
32904 destination type, extract only the valid bits if the source type is not
32905 integral and has a different mode.
32907 2014-02-19 Richard Biener <rguenther@suse.de>
32910 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
32913 2014-02-19 Richard Biener <rguenther@suse.de>
32916 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
32917 (ipa_modify_call_arguments): Emit an argument load explicitely and
32918 preserve virtual SSA form there and for the replacement call.
32919 Do not update SSA form nor free dominance info.
32921 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
32923 * ipa.c (function_and_variable_visibility): Also clear WEAK
32924 flag when disolving COMDAT_GROUP.
32926 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
32928 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
32929 * ipa-prop.c (ipa_set_jf_known_type): Return early when
32930 not devirtualizing.
32931 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
32932 do more sanity checks.
32933 (detect_type_change): Return true when giving up early.
32934 (compute_complex_assign_jump_func): Fix type parameter of
32935 ipa_set_ancestor_jf.
32936 (compute_complex_ancestor_jump_func): Likewise.
32937 (update_jump_functions_after_inlining): Fix updating of
32939 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
32941 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
32943 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
32944 inline clones when edge disappears.
32946 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
32949 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
32950 Split 64-bit moves into 2 patterns. Do not allow the use of
32951 direct move for TDmode in little endian, since the decimal value
32952 has little endian bytes within a word, but the 64-bit pieces are
32953 ordered in a big endian fashion, and normal subreg's of TDmode are
32955 (mov<mode>_64bit_dm): Likewise.
32956 (movtd_64bit_nodm): Likewise.
32958 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
32960 PR tree-optimization/60174
32961 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
32962 statement of an SSA_NAME that occurs in an abnormal PHI node.
32964 2014-02-18 Jakub Jelinek <jakub@redhat.com>
32967 * final.c (SEEN_BB): Remove.
32968 (SEEN_NOTE, SEEN_EMITTED): Renumber.
32969 (final_scan_insn): Don't force_source_line on second
32970 NOTE_INSN_BASIC_BLOCK.
32972 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
32975 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
32976 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
32977 (type_natural_mode): Warn ABI change when %zmm register is not
32978 available for AVX512F vector value passing.
32980 2014-02-18 Kai Tietz <ktietz@redhat.com>
32983 * config/i386/i386.c (ix86_expand_prologue): Use value in
32984 rax register as displacement when restoring %r10 or %rax.
32985 Fix wrong offset when restoring both registers.
32987 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
32989 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
32990 assertion with conditional return.
32992 2014-02-18 Jakub Jelinek <jakub@redhat.com>
32993 Uros Bizjak <ubizjak@gmail.com>
32996 * config/i386/driver-i386.c (host_detect_local_cpu): If
32997 YMM state is not saved by the OS, also clear has_f16c. Move
32998 CPUID 0x80000001 handling before YMM state saving checking.
33000 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
33002 PR rtl-optimization/58960
33003 * haifa-sched.c (alloc_global_sched_pressure_data): New,
33004 factored out from ...
33005 (sched_init): ... here.
33006 (free_global_sched_pressure_data): New, factored out from ...
33007 (sched_finish): ... here.
33008 * sched-int.h (free_global_sched_pressure_data): Declare.
33009 * sched-rgn.c (nr_regions_initial): New static global.
33010 (haifa_find_rgns): Initialize it.
33011 (schedule_region): Disable sched-pressure for the newly
33014 2014-02-17 Richard Biener <rguenther@suse.de>
33016 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
33017 release SSA defs of pattern stmts.
33019 2014-02-17 Richard Biener <rguenther@suse.de>
33021 * tree-inline.c (expand_call_inline): Release the virtual
33022 operand defined by the call we are about to inline.
33024 2014-02-17 Richard Biener <rguenther@suse.de>
33026 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
33028 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
33029 Ilya Tocar <ilya.tocar@intel.com>
33031 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
33032 arguments order in builtin.
33033 (_mm512_permutexvar_epi64): Ditto.
33034 (_mm512_mask_permutexvar_epi64): Ditto
33035 (_mm512_maskz_permutexvar_epi32): Ditto
33036 (_mm512_permutexvar_epi32): Ditto
33037 (_mm512_mask_permutexvar_epi32): Ditto
33039 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33041 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
33042 (p8_vmrgow): Likewise.
33044 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33046 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
33049 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
33052 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
33053 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
33054 into 64-bit and 32-bit moves. On 64-bit moves, add support for
33055 using direct move instructions on ISA 2.07. Also adjust
33056 instruction length for 64-bit.
33057 (mov<mode>_64bit, TFmode/TDmode): Likewise.
33058 (mov<mode>_32bit, TFmode/TDmode): Likewise.
33060 2014-02-15 Alan Modra <amodra@gmail.com>
33064 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
33065 find_replacement on parts of insn rtl that might be reloaded.
33067 2014-02-15 Richard Biener <rguenther@suse.de>
33069 PR tree-optimization/60183
33070 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
33071 (tree_ssa_phiprop): Calculate and free post-dominators.
33073 2014-02-14 Jeff Law <law@redhat.com>
33075 PR rtl-optimization/60131
33076 * ree.c (get_extended_src_reg): New function.
33077 (combine_reaching_defs): Use it rather than assuming location of REG.
33078 (find_and_remove_re): Verify first operand of extension is
33079 a REG before adding the insns to the copy list.
33081 2014-02-14 Roland McGrath <mcgrathr@google.com>
33083 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
33084 * configure: Regenerated.
33085 * config.in: Regenerated.
33086 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
33087 instead of ASM_SHORT.
33089 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
33090 Richard Earnshaw <rearnsha@arm.com>
33092 PR rtl-optimization/59535
33093 * lra-constraints.c (process_alt_operands): Encourage alternative
33094 when unassigned pseudo class is superset of the alternative class.
33095 (inherit_reload_reg): Don't inherit when optimizing for code size.
33096 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
33097 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
33098 modes not less than 4 for Thumb1.
33100 2014-02-14 Kyle McMartin <kyle@redhat.com>
33103 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
33105 2014-02-14 Richard Biener <rguenther@suse.de>
33107 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
33108 (get_frame_arg): Drop the assert with langhook types_compatible_p.
33109 Do not strip INDIRECT_REFs.
33111 2014-02-14 Richard Biener <rguenther@suse.de>
33114 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
33115 DECL_FUNCTION_SPECIFIC_TARGET.
33116 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
33117 * tree-streamer-out.c (pack_ts_target_option): Remove.
33118 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
33119 (write_ts_function_decl_tree_pointers): Do not stream
33120 DECL_FUNCTION_SPECIFIC_TARGET.
33121 * tree-streamer-in.c (unpack_ts_target_option): Remove.
33122 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
33123 (lto_input_ts_function_decl_tree_pointers): Do not stream
33124 DECL_FUNCTION_SPECIFIC_TARGET.
33126 2014-02-14 Jakub Jelinek <jakub@redhat.com>
33128 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
33129 (get_initial_def_for_induction, vectorizable_induction): Ignore
33130 debug stmts when looking for exit_phi.
33131 (vectorizable_live_operation): Fix up condition.
33133 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
33135 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
33136 nreverse() because it changes the content of original tree list.
33138 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
33140 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
33141 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
33143 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
33145 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
33146 GNU coding standards.
33148 2014-02-13 Jakub Jelinek <jakub@redhat.com>
33151 * dwarf2out.c (gen_subprogram_die): Don't call
33152 add_calling_convention_attribute if subr_die is old_die.
33154 2014-02-13 Sharad Singhai <singhai@google.com>
33156 * doc/optinfo.texi: Fix order of nodes.
33158 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
33160 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
33161 operands[2], not operands[3].
33163 2014-02-13 Richard Biener <rguenther@suse.de>
33166 * doc/install.texi (ISL): Update recommended version to 0.12.2,
33167 mention the possibility of an in-tree build.
33168 (CLooG): Update recommended version to 0.18.1, mention the
33169 possibility of an in-tree build and clarify that the ISL
33170 bundled with CLooG does not work.
33172 2014-02-13 Jakub Jelinek <jakub@redhat.com>
33175 * expr.c (compress_float_constant): If x is a hard register,
33176 extend into a pseudo and then move to x.
33178 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
33180 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
33181 caused by bad second argument to warning_at() with -mhotpatch and
33182 nested functions (e.g. with gfortran).
33184 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
33186 * opts.c (option_name): Remove "enabled by default" rider.
33188 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
33190 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
33192 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
33193 Uros Bizjak <ubizjak@gmail.com>
33196 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
33197 * configure: Regenerated.
33199 2014-02-12 Richard Biener <rguenther@suse.de>
33201 * vec.c (vec_prefix::calculate_allocation): Move as
33202 inline variant to vec.h.
33203 (vec_prefix::calculate_allocation_1): New out-of-line version.
33204 * vec.h (vec_prefix::calculate_allocation_1): Declare.
33205 (vec_prefix::m_has_auto_buf): Rename to ...
33206 (vec_prefix::m_using_auto_storage): ... this.
33207 (vec_prefix::calculate_allocation): Inline the easy cases
33208 and dispatch to calculate_allocation_1 which doesn't need the
33210 (va_heap::reserve): Use gcc_checking_assert.
33211 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
33212 m_using_auto_storage.
33213 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
33215 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
33216 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
33217 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
33219 2014-02-12 Richard Biener <rguenther@suse.de>
33221 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
33222 when we found a dependence.
33224 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
33226 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
33228 (maybe_fold_stmt): ... into this new function.
33229 * omp-low.c (lower_omp): Update comment.
33231 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
33234 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
33237 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
33239 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
33240 identifiers in comments.
33241 (cortexa53_extra_costs): Likewise.
33242 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
33243 (cortexa7_extra_costs): Likewise.
33244 (cortexa12_extra_costs): Likewise.
33245 (cortexa15_extra_costs): Likewise.
33246 (v7m_extra_costs): Likewise.
33248 2014-02-12 Richard Biener <rguenther@suse.de>
33250 PR middle-end/60092
33251 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
33252 of posix_memalign being successful.
33253 (lower_stmt): Restrict lowering of posix_memalign to when
33254 -ftree-bit-ccp is enabled.
33256 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33258 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
33260 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
33262 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
33264 PR rtl-optimization/60116
33265 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
33266 other_insn once the combination has been validated.
33268 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
33271 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
33273 * ipa-devirt.c: Include demangle.h
33274 (odr_violation_reported): New static variable.
33275 (add_type_duplicate): Update odr_violations.
33276 (maybe_record_node): Add completep parameter; update it.
33277 (record_target_from_binfo): Add COMPLETEP parameter;
33278 update it as needed.
33279 (possible_polymorphic_call_targets_1): Likewise.
33280 (struct polymorphic_call_target_d): Add nonconstruction_targets;
33281 rename FINAL to COMPLETE.
33282 (record_targets_from_bases): Sanity check we found the binfo;
33283 fix COMPLETEP updating.
33284 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
33285 parameter, fix computing of COMPLETEP.
33286 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
33287 at LTO time do demangling.
33288 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
33289 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
33291 (gimple_get_virt_method_for_binfo): Likewise.
33292 * gimple-fold.h (gimple_get_virt_method_for_binfo,
33293 gimple_get_virt_method_for_vtable): Update prototypes.
33295 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
33298 * genautomata.c (add_presence_absence): Fix typo with
33299 {final_}presence_list.
33301 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
33304 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
33305 for VSX/Altivec vectors that land in GPR registers.
33307 2014-02-11 Richard Henderson <rth@redhat.com>
33308 Jakub Jelinek <jakub@redhat.com>
33311 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
33312 around drhs if type conversion to lacc->type is not useless.
33314 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33316 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
33318 (cortex-a57.cortex-a53): Likewise.
33319 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
33321 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33323 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
33326 2014-02-11 Renlin Li <Renlin.Li@arm.com>
33328 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
33329 add_options_for_arm_vfp3.
33331 2014-02-11 Jeff Law <law@redhat.com>
33333 PR middle-end/54041
33334 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
33335 object with an undesirable mode.
33337 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33340 * config/i386/sol2-9.h: New file.
33341 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
33342 *-*-solaris2.9*): Use it.
33344 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
33346 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
33347 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
33349 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
33351 * config/microblaze/microblaze.c: Extend mcpu version format
33353 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
33355 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
33357 2014-02-10 Richard Henderson <rth@redhat.com>
33360 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
33361 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
33362 ms-abi vs -mno-accumulate-outgoing-args.
33363 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
33364 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
33367 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
33369 PR middle-end/60080
33370 * cfgexpand.c (expand_asm_operands): Attach source location to
33371 ASM_INPUT rtx objects.
33372 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
33374 2014-02-10 Nick Clifton <nickc@redhat.com>
33376 * config/mn10300/mn10300.c (popcount): New function.
33377 (mn10300_expand_prologue): Include saved registers in stack usage
33380 2014-02-10 Jeff Law <law@redhat.com>
33382 PR middle-end/52306
33383 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
33384 when changing the SET_DEST of a prior insn to avoid an input reload.
33386 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
33388 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
33389 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
33390 -mcall-openbsd, or -mcall-linux.
33391 (CC1_ENDIAN_BIG_SPEC): Remove.
33392 (CC1_ENDIAN_LITTLE_SPEC): Remove.
33393 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
33394 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
33395 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
33396 and %cc1_endian_default.
33397 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
33399 2014-02-10 Richard Biener <rguenther@suse.de>
33401 PR tree-optimization/60115
33402 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
33403 MEM_REF handling. Properly verify that the accesses are not
33404 out of the objects bound.
33406 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33408 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
33411 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
33413 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
33414 proper constants and fix formatting.
33415 (possible_polymorphic_call_targets): Fix formatting.
33417 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
33418 Ilya Tocar <ilya.tocar@intel.com>
33420 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
33421 (_mm512_loadu_epi32): Renamed into...
33422 (_mm512_loadu_si512): This.
33423 (_mm512_storeu_epi32): Renamed into...
33424 (_mm512_storeu_si512): This.
33425 (_mm512_maskz_ceil_ps): Removed.
33426 (_mm512_maskz_ceil_pd): Ditto.
33427 (_mm512_maskz_floor_ps): Ditto.
33428 (_mm512_maskz_floor_pd): Ditto.
33429 (_mm512_floor_round_ps): Ditto.
33430 (_mm512_floor_round_pd): Ditto.
33431 (_mm512_ceil_round_ps): Ditto.
33432 (_mm512_ceil_round_pd): Ditto.
33433 (_mm512_mask_floor_round_ps): Ditto.
33434 (_mm512_mask_floor_round_pd): Ditto.
33435 (_mm512_mask_ceil_round_ps): Ditto.
33436 (_mm512_mask_ceil_round_pd): Ditto.
33437 (_mm512_maskz_floor_round_ps): Ditto.
33438 (_mm512_maskz_floor_round_pd): Ditto.
33439 (_mm512_maskz_ceil_round_ps): Ditto.
33440 (_mm512_maskz_ceil_round_pd): Ditto.
33441 (_mm512_expand_pd): Ditto.
33442 (_mm512_expand_ps): Ditto.
33443 * config/i386/i386.c (ix86_builtins): Remove
33444 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
33445 (bdesc_args): Ditto.
33446 * config/i386/predicates.md (const1256_operand): New.
33447 (const_1_to_2_operand): Ditto.
33448 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
33449 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
33450 (*avx512pf_gatherpf<mode>sf): Ditto.
33451 (avx512pf_gatherpf<mode>df): Ditto.
33452 (*avx512pf_gatherpf<mode>df_mask): Ditto.
33453 (*avx512pf_gatherpf<mode>df): Ditto.
33454 (avx512pf_scatterpf<mode>sf): Ditto.
33455 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
33456 (*avx512pf_scatterpf<mode>sf): Ditto.
33457 (avx512pf_scatterpf<mode>df): Ditto.
33458 (*avx512pf_scatterpf<mode>df_mask): Ditto.
33459 (*avx512pf_scatterpf<mode>df): Ditto.
33460 (avx512f_expand<mode>): Removed.
33461 (<shift_insn><mode>3<mask_name>): Change predicate type.
33463 2014-02-08 Jakub Jelinek <jakub@redhat.com>
33465 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
33466 not at the end of datarefs vector use ordered_remove to avoid
33467 reordering datarefs vector.
33470 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
33471 mark local addressable non-static vars as GOVD_PRIVATE
33472 instead of GOVD_LOCAL.
33473 * omp-low.c (lower_omp_for): Move gimple_bind_vars
33474 and BLOCK_VARS of gimple_bind_block to new_stmt rather
33477 PR middle-end/60092
33478 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
33479 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
33480 assume_aligned or alloc_align attributes.
33481 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
33482 arguments. Handle also assume_aligned and alloc_align attributes.
33483 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
33484 calls to functions with assume_aligned or alloc_align attributes.
33485 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
33487 2014-02-08 Terry Guo <terry.guo@arm.com>
33489 * doc/invoke.texi: Document ARM -march=armv7e-m.
33491 2014-02-08 Jakub Jelinek <jakub@redhat.com>
33493 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
33494 flag on __cilkrts_rethrow builtin.
33497 * ipa-cp.c (determine_versionability): Fail at -O0
33498 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
33499 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
33502 2014-02-04 Jakub Jelinek <jakub@redhat.com>
33505 * tree-inline.c (copy_forbidden): Fail for
33506 __attribute__((optimize (0))) functions.
33508 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
33510 * varpool.c: Include pointer-set.h.
33511 (varpool_remove_unreferenced_decls): Variables in other partitions
33512 will not be output; be however careful to not lose information
33513 about partitioning.
33515 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
33517 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
33518 lookup in the vtable constructor.
33520 2014-02-07 Jeff Law <law@redhat.com>
33523 * config/m68k/m68k.md (ashldi_extsi): Turn into a
33524 define_insn_and_split.
33526 * ipa-inline.c (inline_small_functions): Fix typos.
33528 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
33530 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
33531 (s390_can_use_return_insn): Declare.
33532 * config/s390/s390.h (EPILOGUE_USES): Define.
33533 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
33535 (s390_chunkify_start): Handle return JUMP_LABELs.
33536 (s390_early_mach): Emit a main_pool instruction on the entry edge.
33537 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
33538 (s390_can_use_return_insn): New functions.
33539 (s390_fix_long_loop_prediction): Handle conditional returns.
33540 (TARGET_SET_UP_BY_PROLOGUE): Define.
33541 * config/s390/s390.md (ANY_RETURN): New code iterator.
33542 (*creturn, *csimple_return, return, simple_return): New patterns.
33544 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
33546 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
33547 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
33548 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
33549 REG_CFA_RESTORE list when deciding not to restore a register.
33551 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
33553 * config/s390/s390.c: Include tree-pass.h and context.h.
33554 (s390_early_mach): New function, split out from...
33555 (s390_emit_prologue): ...here.
33556 (pass_data_s390_early_mach): New pass structure.
33557 (pass_s390_early_mach): New class.
33558 (s390_option_override): Create and register early_mach pass.
33559 Move to end of file.
33561 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
33563 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
33564 to match for the exit block.
33566 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33568 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
33569 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
33570 Reject misaligned operands.
33572 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33574 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
33576 2014-02-07 Richard Biener <rguenther@suse.de>
33578 PR middle-end/60092
33579 * gimple-low.c (lower_builtin_posix_memalign): New function.
33580 (lower_stmt): Call it to lower posix_memalign in a way
33581 to make alignment info accessible.
33583 2014-02-07 Jakub Jelinek <jakub@redhat.com>
33586 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
33587 __builtin_setjmp_receiver.
33589 2014-02-07 Richard Biener <rguenther@suse.de>
33591 PR middle-end/60092
33592 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
33593 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
33594 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
33595 Handle BUILT_IN_POSIX_MEMALIGN.
33596 (find_func_clobbers): Likewise.
33597 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
33598 (call_may_clobber_ref_p_1): Likewise.
33600 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
33603 * ipa-devirt.c (record_target_from_binfo): Remove overactive
33606 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
33609 * lto-cgraph.c (lto_output_node): Use
33610 symtab_get_symbol_partitioning_class.
33611 (lto_output_varpool_node): likewise.
33612 (symtab_get_symbol_partitioning_class): Move here from
33613 lto/lto-partition.c
33614 * cgraph.h (symbol_partitioning_class): Likewise.
33615 (symtab_get_symbol_partitioning_class): Declare.
33617 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
33619 * ggc.h (ggc_internal_cleared_alloc): New macro.
33620 * vec.h (vec_safe_copy): Handle memory stats.
33621 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
33622 * target-globals.c (save_target_globals): Likewise.
33624 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
33627 * expr.c (emit_move_resolve_push): Export; be bit more selective
33628 on when to clear alias set.
33629 * expr.h (emit_move_resolve_push): Declare.
33630 * function.h (struct function): Add tail_call_marked.
33631 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
33632 * config/i386/i386-protos.h (ix86_expand_push): Remove.
33633 * config/i386/i386.md (TImode move expander): De not call
33635 (FP push expanders): Preserve memory attributes.
33636 * config/i386/sse.md (push<mode>1): Remove.
33637 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
33638 (ix86_expand_push): Remove.
33639 * config/i386/mmx.md (push<mode>1): Remove.
33641 2014-02-06 Jakub Jelinek <jakub@redhat.com>
33643 PR rtl-optimization/60030
33644 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
33645 lopart with paradoxical subreg before shifting it up by hprec.
33647 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33649 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
33650 Remove extra newline at end of file.
33651 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
33652 (arm_issue_rate): Handle cortexa57.
33653 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
33654 (cortex-a57.cortex-a53): Likewise.
33656 2014-02-06 Jakub Jelinek <jakub@redhat.com>
33659 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
33660 don't record in REG_FRAME_RELATED_EXPR registers not set in that
33662 (arm_expand_prologue): Adjust all callers.
33663 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
33664 info, registers also at the lowest numbered registers side. Use
33665 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
33669 * var-tracking.c (adjust_mems): Before adding a SET to
33670 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
33672 2014-02-06 Alan Modra <amodra@gmail.com>
33675 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
33676 change SDmode to DDmode when lra_in_progress.
33678 2014-02-06 Jakub Jelinek <jakub@redhat.com>
33680 PR middle-end/59150
33681 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
33682 free_data_ref on the dr first, and before goto again also set dr
33683 to the next dr. For simd_lane_access, free old datarefs[i] before
33684 overwriting it. For get_vectype_for_scalar_type failure, don't
33685 free_data_ref if simd_lane_access.
33687 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
33690 * tree.h (opts_for_fn): New inline function.
33691 (opt_for_fn): Define.
33692 * config/i386/i386.c (ix86_function_regparm): Use
33693 opt_for_fn (decl, optimize) instead of optimize.
33695 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
33697 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
33698 for SYMBOL_REF in large memory model.
33700 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33702 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
33703 and crypto support.
33704 (cortex-a57): Likewise.
33705 (cortex-a57.cortex-a53): Likewise.
33707 2014-02-06 Yury Gribov <y.gribov@samsung.com>
33708 Kugan Vivekanandarajah <kuganv@linaro.org>
33710 * config/arm/arm.c (arm_vector_alignment_reachable): Check
33712 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
33714 2014-02-06 Richard Biener <rguenther@suse.de>
33716 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
33717 set_loop_copy and initialize_original_copy_tables.
33719 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
33721 * config/aarch64/aarch64-simd.md
33722 (aarch64_ashr_simddi): Change QI to SI.
33724 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
33725 Jakub Jelinek <jakub@redhat.com>
33727 PR middle-end/60013
33728 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
33731 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33733 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
33734 CODE_FOR_altivec_vpku[hw]um to
33735 CODE_FOR_altivec_vpku[hw]um_direct.
33736 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
33737 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
33738 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
33739 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
33741 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33743 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
33744 generation for -maltivec=be.
33745 (altivec_vsumsws): Simplify redundant test.
33747 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33749 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
33750 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
33751 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
33752 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
33753 gen_altivec_vpkuwum.
33754 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
33756 (altivec_vpks<VI_char>ss): Likewise.
33757 (altivec_vpks<VI_char>us): Likewise.
33758 (altivec_vpku<VI_char>us): Likewise.
33759 (altivec_vpku<VI_char>um): Likewise.
33760 (altivec_vpku<VI_char>um_direct): New (copy of
33761 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
33763 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
33764 target is little endian and -maltivec=be is not specified.
33765 (*altivec_vupkhs<VU_char>_direct): New (copy of
33766 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
33767 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
33768 target is little endian and -maltivec=be is not specified.
33769 (*altivec_vupkls<VU_char>_direct): New (copy of
33770 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
33771 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
33772 little endian and -maltivec=be is not specified.
33773 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
33774 little endian and -maltivec=be is not specified.
33776 2014-02-05 Richard Henderson <rth@redhat.com>
33779 * combine-stack-adj.c: Revert r206943.
33780 * sched-int.h (struct deps_desc): Add last_args_size.
33781 * sched-deps.c (init_deps): Initialize it.
33782 (sched_analyze_insn): Add OUTPUT dependencies between insns that
33783 contain REG_ARGS_SIZE notes.
33785 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
33787 * lto-cgraph.c (asm_nodes_output): Make global.
33788 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
33789 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
33790 (driver_handle_option): Handle OPT_fwpa.
33792 2014-02-05 Jakub Jelinek <jakub@redhat.com>
33795 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
33796 a comment typo and formatting issue. If odr_hash hasn't been
33797 created, return vNULL and set *completep to false.
33799 PR middle-end/57499
33800 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
33801 bb with no successors.
33803 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
33806 * doc/invoke.texi (-march): Clarify documentation for ARM.
33807 (-mtune): Likewise.
33810 2014-02-05 Richard Biener <rguenther@suse.de>
33812 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
33813 when not vectorizing because of too many alias checks.
33814 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
33815 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
33817 2014-02-05 Nick Clifton <nickc@redhat.com>
33819 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
33820 accept extended registers in any mode when compiling for the MN10300.
33822 2014-02-05 Yury Gribov <y.gribov@samsung.com>
33824 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
33825 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
33826 sanitization attributes.
33827 (can_inline_edge_p): Likewise.
33828 (sanitize_attrs_match_for_inline_p): New function.
33830 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
33832 * ipa-prop.c (detect_type_change): Shor circuit testing of
33833 type changes on THIS pointer.
33835 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
33838 * config/pa/pa.c (legitimize_tls_address): Return original address
33839 if not passed a SYMBOL_REF rtx.
33840 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
33842 (pa_emit_move_sequence): Simplify TLS source operands.
33843 (pa_legitimate_constant_p): Reject all TLS constants.
33844 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
33845 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
33847 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
33849 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
33850 groups when we know they are controlled by LTO.
33851 * varasm.c (default_binds_local_p_1): If object is in other partition,
33852 it will be resolved locally.
33854 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
33856 * config/host-linux.c (linux_gt_pch_use_address): Don't
33857 use SSIZE_MAX because it is not always defined.
33859 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
33862 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
33863 threshold for pseudo splitting.
33864 (update_ebb_live_info): Process call argument hard registers and
33865 hard registers from insn definition too.
33866 (max_small_class_regs_num): New constant.
33867 (inherit_in_ebb): Update live hard regs through EBBs. Update
33868 reloads_num only for small register classes. Don't split for
33871 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
33874 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
33877 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
33879 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
33880 visibility is safe.
33882 2014-02-04 Marek Polacek <polacek@redhat.com>
33884 * gdbinit.in (pel): Define.
33886 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
33888 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
33891 2014-02-04 Richard Biener <rguenther@suse.de>
33894 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
33895 in function context local.
33896 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
33897 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
33898 similar to LTO_imported_decl_ref.
33900 2014-02-04 Jakub Jelinek <jakub@redhat.com>
33902 PR tree-optimization/60002
33903 * cgraphclones.c (build_function_decl_skip_args): Clear
33904 DECL_LANG_SPECIFIC.
33906 PR tree-optimization/60023
33907 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
33908 false to gsi_replace.
33909 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
33910 has been in some EH region and vec_stmt could throw, add
33911 vec_stmt into the same EH region.
33912 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
33913 has no lhs, ignore it.
33914 * internal-fn.c (expand_MASK_LOAD): Likewise.
33917 * tree-inline.c (copy_forbidden): Fail for
33918 __attribute__((optimize (0))) functions.
33921 * omp-low.c (simd_clone_struct_copy): If from->inbranch
33922 is set, copy one less argument.
33923 (expand_simd_clones): Don't subtract clone_info->inbranch
33924 from simd_clone_struct_alloc argument.
33926 PR rtl-optimization/57915
33927 * recog.c (simplify_while_replacing): If all unary/binary/relational
33928 operation arguments are constant, attempt to simplify those.
33930 PR middle-end/59261
33931 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
33932 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
33934 2014-02-04 Richard Biener <rguenther@suse.de>
33936 PR tree-optimization/60012
33937 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
33938 TBAA disambiguation to all DDRs.
33940 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33943 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
33944 (LINK_SPEC): Use it for -shared, -shared-libgcc.
33946 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33949 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
33951 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33953 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
33954 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
33956 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33959 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
33960 to figure out targets of polymorphic calls with known decl.
33961 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33962 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
33963 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
33964 (get_polymorphic_call_info): ... here.
33965 (get_polymorphic_call_info_from_invariant): New function.
33967 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33969 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
33970 lookup via vtable pointer; check for type consistency
33971 and turn inconsitent facts into UNREACHABLE.
33972 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33973 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
33974 type inconsistent querries; return UNREACHABLE instead.
33976 2014-02-03 Richard Henderson <rth@twiddle.net>
33979 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
33980 already processed this node.
33981 (normalize_one_pred_1): Pass along mark_set.
33982 (normalize_one_pred): Create and destroy a pointer_set_t.
33983 (normalize_one_pred_chain): Likewise.
33985 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
33987 PR gcov-profile/58602
33988 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
33990 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
33993 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
33994 -fno-devirtualize; try to devirtualize by the knowledge of
33995 virtual table pointer given by aggregate propagation.
33996 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33997 (ipa_print_node_jump_functions): Dump also offset that
33998 is relevant for polymorphic calls.
33999 (determine_known_aggregate_parts): Add arg_type parameter; use it
34000 instead of determining the type from pointer type.
34001 (ipa_compute_jump_functions_for_edge): Update call of
34002 determine_known_aggregate_parts.
34003 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
34004 (gimple_get_virt_method_for_binfo): ... here; simplify using
34005 vtable_pointer_value_to_vtable.
34006 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
34007 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
34008 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
34009 (vtable_pointer_value_to_vtable): Break out from ...; handle also
34011 (vtable_pointer_value_to_binfo): ... here.
34012 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
34014 2014-02-03 Teresa Johnson <tejohnson@google.com>
34016 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
34017 redef of outer loop index variable.
34019 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
34023 * doc/extend.texi (Function Attributes): Typo.
34025 2014-02-03 Cong Hou <congh@google.com>
34027 PR tree-optimization/60000
34028 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
34029 if the vectorized statement is a store. A store statement can only
34030 appear at the end of pattern statements.
34032 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
34034 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
34035 (ix86_option_override_internal): Default long double to 64-bit for
34036 32-bit Bionic and to 128-bit for 64-bit Bionic.
34038 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
34039 TARGET_LONG_DOUBLE_128 is true.
34040 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
34042 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
34043 (mlong-double-64): Negate -mlong-double-128.
34044 (mlong-double-128): New option.
34046 * config/i386/i386-c.c (ix86_target_macros): Define
34047 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
34049 * doc/invoke.texi: Document -mlong-double-128.
34051 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
34053 PR rtl-optimization/60024
34054 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
34056 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
34058 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
34060 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
34062 PR rtl-optimization/57662
34063 * sel-sched.c (code_motion_path_driver): Do not mark already not
34064 existing blocks in the visiting bitmap.
34066 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
34068 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
34069 on the insn being emitted.
34071 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
34072 Will Deacon <will.deacon@arm.com>
34074 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
34076 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34078 * config/arm/arm-tables.opt: Regenerate.
34080 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34082 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
34083 for vector types other than V16QImode.
34084 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
34085 define_expand, and call altivec_expand_vec_perm_le when producing
34086 code with little endian element order.
34087 (*altivec_vperm_<mode>_internal): New insn having previous
34088 behavior of altivec_vperm_<mode>.
34089 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
34090 altivec_expand_vec_perm_le when producing code with little endian
34092 (*altivec_vperm_<mode>_uns_internal): New insn having previous
34093 behavior of altivec_vperm_<mode>_uns.
34095 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34097 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
34098 (altivec_vsumsws): Add handling for -maltivec=be with a little
34100 (altivec_vsumsws_direct): New.
34101 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
34102 gen_altivec_vsumsws.
34104 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
34106 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
34107 vtable_pointer_value_to_binfo): New functions.
34108 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
34109 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
34111 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
34113 * config/nios2/nios2.md (load_got_register): Initialize GOT
34114 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
34115 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
34117 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
34119 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
34120 preserverd by passthrough, do not propagate the type.
34122 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
34124 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
34125 (mips_atomic_assign_expand_fenv): New function.
34126 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
34128 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
34130 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
34131 (__builtin_mips_set_fcsr): Likewise.
34132 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
34133 MIPS_USI_FTYPE_VOID.
34134 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
34135 (mips16_expand_set_fcsr): Likewise.
34136 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
34137 (mips16_set_fcsr_stub): Likewise.
34138 (mips16_get_fcsr_one_only_stub): New class.
34139 (mips16_set_fcsr_one_only_stub): Likewise.
34140 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
34141 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
34142 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
34143 (hard_float): New availability predicate.
34144 (mips_builtins): Add get_fcsr and set_fcsr.
34145 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
34146 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
34147 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
34148 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
34149 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
34152 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
34154 * config/mips/mips.c (mips_one_only_stub): New class.
34155 (mips_need_mips16_rdhwr_p): Replace with...
34156 (mips16_rdhwr_stub): ...this new variable.
34157 (mips16_stub_call_address): New function.
34158 (mips16_rdhwr_one_only_stub): New class.
34159 (mips_expand_thread_pointer): Use mips16_stub_call_address.
34160 (mips_output_mips16_rdhwr): Delete.
34161 (mips_finish_stub): New function.
34162 (mips_code_end): Use it to handle rdhwr stubs.
34164 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
34167 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
34168 when calculating size of integer atomic types.
34170 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
34172 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
34174 2014-02-01 Jakub Jelinek <jakub@redhat.com>
34176 PR tree-optimization/60003
34177 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
34178 * profile.c (branch_prob): Use gimple_call_builtin_p
34179 to check for BUILT_IN_SETJMP_RECEIVER.
34180 * tree-inline.c (copy_bb): Call notice_special_calls.
34182 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
34185 * lra-constraints.c (process_alt_operands): Update reload_sum only
34188 2014-01-31 Richard Henderson <rth@redhat.com>
34190 PR middle-end/60004
34191 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
34192 until after else_eh is processed.
34194 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
34196 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
34197 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
34198 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
34199 in smmintrin.h, remove them.
34200 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
34201 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
34202 * config/i386/i386.md (ROUND_SAE): Fix value.
34203 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
34204 (const48_operand): New.
34205 * config/i386/subst.md (round), (round_expand): Use
34206 const_4_or_8_to_11_operand.
34207 (round_saeonly), (round_saeonly_expand): Use const48_operand.
34209 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
34211 * config/i386/constraints.md (Yk): Swap meaning with k.
34212 * config/i386/i386.md (movhi_internal): Change Yk to k.
34213 (movqi_internal): Ditto.
34214 (*k<logic><mode>): Ditto.
34217 (kandn<mode>): Ditto.
34218 (*<code>hi_1): Ditto.
34219 (*<code>qi_1): Ditto.
34220 (kxnor<mode>): Ditto.
34221 (kortestzhi): Ditto.
34222 (kortestchi): Ditto.
34224 (*one_cmplhi2_1): Ditto.
34225 (*one_cmplqi2_1): Ditto.
34226 * config/i386/sse.md (): Change k to Yk.
34227 (avx512f_load<mode>_mask): Ditto.
34228 (avx512f_blendm<mode>): Ditto.
34229 (avx512f_store<mode>_mask): Ditto.
34230 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
34231 (avx512f_storedqu<mode>_mask): Ditto.
34232 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
34234 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
34235 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
34236 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
34237 (avx512f_maskcmp<mode>3): Ditto.
34238 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
34239 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
34240 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
34241 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
34242 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
34243 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
34244 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
34245 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
34246 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
34247 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
34248 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
34249 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
34250 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
34251 (vec_extract_lo_<mode>_maskm): Ditto.
34252 (vec_extract_hi_<mode>_maskm): Ditto.
34253 (avx512f_vternlog<mode>_mask): Ditto.
34254 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
34255 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
34256 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
34257 (avx512f_<code>v8div16qi2_mask): Ditto.
34258 (avx512f_<code>v8div16qi2_mask_store): Ditto.
34259 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
34260 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
34261 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
34262 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
34263 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
34264 (*avx512pf_gatherpf<mode>df_mask): Ditto.
34265 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
34266 (*avx512pf_scatterpf<mode>df_mask): Ditto.
34267 (avx512cd_maskb_vec_dupv8di): Ditto.
34268 (avx512cd_maskw_vec_dupv16si): Ditto.
34269 (avx512f_vpermi2var<mode>3_maskz): Ditto.
34270 (avx512f_vpermi2var<mode>3_mask): Ditto.
34271 (avx512f_vpermi2var<mode>3_mask): Ditto.
34272 (avx512f_vpermt2var<mode>3_maskz): Ditto.
34273 (*avx512f_gathersi<mode>): Ditto.
34274 (*avx512f_gathersi<mode>_2): Ditto.
34275 (*avx512f_gatherdi<mode>): Ditto.
34276 (*avx512f_gatherdi<mode>_2): Ditto.
34277 (*avx512f_scattersi<mode>): Ditto.
34278 (*avx512f_scatterdi<mode>): Ditto.
34279 (avx512f_compress<mode>_mask): Ditto.
34280 (avx512f_compressstore<mode>_mask): Ditto.
34281 (avx512f_expand<mode>_mask): Ditto.
34282 * config/i386/subst.md (mask): Change k to Yk.
34283 (mask_scalar_merge): Ditto.
34286 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
34288 * doc/extend.texi (Vector Extensions): Document ?: in C++.
34290 2014-01-31 Richard Biener <rguenther@suse.de>
34292 PR middle-end/59990
34293 * builtins.c (fold_builtin_memory_op): Make sure to not
34294 use a floating-point mode or a boolean or enumeral type for
34295 the copy operation.
34297 2014-01-30 DJ Delorie <dj@redhat.com>
34299 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
34300 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
34301 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
34302 whenever main() has an epilogue.
34304 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34306 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
34307 unused variable "field".
34308 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
34309 (vsx_mergeh_<mode>): Likewise.
34310 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
34311 (altivec_vmrghh): Likewise.
34312 (altivec_vmrghw): Likewise.
34313 (altivec_vmrglb): Likewise.
34314 (altivec_vmrglh): Likewise.
34315 (altivec_vmrglw): Likewise.
34316 (altivec_vspltb): Add missing uses.
34317 (altivec_vsplth): Likewise.
34318 (altivec_vspltw): Likewise.
34319 (altivec_vspltsf): Likewise.
34321 2014-01-30 Jakub Jelinek <jakub@redhat.com>
34324 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
34325 frame related instructions.
34327 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
34329 PR rtl-optimization/59959
34330 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
34331 any reload of register whose subreg is invalid.
34333 2014-01-30 Jakub Jelinek <jakub@redhat.com>
34335 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
34336 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
34337 Add missing return type - void.
34339 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34341 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
34342 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
34343 remove element index adjustment for endian (now handled in vsx.md
34345 (altivec_expand_vec_perm_const): Use
34346 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
34347 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
34348 (vsx_xxspltw_<mode>): Adjust element index for little endian.
34349 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
34350 define_expand and a new define_insn *altivec_vspltb_internal;
34351 adjust for -maltivec=be on a little endian target.
34352 (altivec_vspltb_direct): New.
34353 (altivec_vsplth): Divide into a define_expand and a new
34354 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
34355 little endian target.
34356 (altivec_vsplth_direct): New.
34357 (altivec_vspltw): Divide into a define_expand and a new
34358 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
34359 little endian target.
34360 (altivec_vspltw_direct): New.
34361 (altivec_vspltsf): Divide into a define_expand and a new
34362 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
34363 a little endian target.
34365 2014-01-30 Richard Biener <rguenther@suse.de>
34367 PR tree-optimization/59993
34368 * tree-ssa-forwprop.c (associate_pointerplus): Check we
34369 can propagate form the earlier stmt and avoid the transform
34370 when the intermediate result is needed.
34372 2014-01-30 Alangi Derick <alangiderick@gmail.com>
34374 * README.Portability: Fix typo.
34376 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
34378 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
34379 comparison_operator with ordered_comparison_operator.
34381 2014-01-30 Nick Clifton <nickc@redhat.com>
34383 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
34384 Rename to mn10300_store_multiple_regs.
34385 * config/mn10300/mn10300.c: Likewise.
34386 * config/mn10300/mn10300.md (store_movm): Fix typo: call
34387 store_multiple_regs.
34388 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
34389 Call mn10300_store_multiple_regs.
34391 2014-01-30 Nick Clifton <nickc@redhat.com>
34392 DJ Delorie <dj@redhat.com>
34394 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
34395 %fp 2 to keep registers after it properly word-aligned.
34396 (rl78_alloc_physical_registers_umul): Handle the case where both
34397 input operands are the same.
34399 2014-01-30 Richard Biener <rguenther@suse.de>
34401 PR tree-optimization/59903
34402 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
34405 2014-01-30 Jason Merrill <jason@redhat.com>
34408 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
34411 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
34413 2014-01-30 Richard Biener <rguenther@suse.de>
34415 PR tree-optimization/59951
34416 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
34418 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
34421 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
34422 SFmode to DFmode case.
34424 2014-01-29 DJ Delorie <dj@redhat.com>
34426 * config/msp430/msp430.opt (-minrt): New.
34427 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
34429 (ENDFILE_SPEC): Likewise.
34431 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
34433 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
34434 (estimate_function_body_sizes): Use it.
34436 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
34439 * dwarf2out.c (is_cxx_auto): New.
34440 (is_base_type): Use it.
34441 (gen_type_die_with_usage): Likewise.
34443 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34445 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
34446 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
34447 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
34448 -maltivec=be with LE targets.
34449 (vsx_mergeh_<mode>): Likewise.
34450 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
34451 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
34452 (altivec_vmrghb): Replace with define_expand and new
34453 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
34454 (altivec_vmrghb_direct): New define_insn.
34455 (altivec_vmrghh): Replace with define_expand and new
34456 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
34457 (altivec_vmrghh_direct): New define_insn.
34458 (altivec_vmrghw): Replace with define_expand and new
34459 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
34460 (altivec_vmrghw_direct): New define_insn.
34461 (*altivec_vmrghsf): Adjust for endianness.
34462 (altivec_vmrglb): Replace with define_expand and new
34463 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
34464 (altivec_vmrglb_direct): New define_insn.
34465 (altivec_vmrglh): Replace with define_expand and new
34466 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
34467 (altivec_vmrglh_direct): New define_insn.
34468 (altivec_vmrglw): Replace with define_expand and new
34469 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
34470 (altivec_vmrglw_direct): New define_insn.
34471 (*altivec_vmrglsf): Adjust for endianness.
34472 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
34473 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
34474 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
34475 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
34476 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
34477 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
34478 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
34479 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
34481 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
34483 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
34484 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
34487 2014-01-29 Richard Biener <rguenther@suse.de>
34489 PR tree-optimization/58742
34490 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
34491 associate_pointerplus_align.
34492 (associate_pointerplus_diff): New function.
34493 (associate_pointerplus): Likewise. Call associate_pointerplus_align
34494 and associate_pointerplus_diff.
34496 2014-01-29 Richard Biener <rguenther@suse.de>
34498 * lto-streamer.h (LTO_major_version): Bump to 3.
34499 (LTO_minor_version): Reset to 0.
34501 2014-01-29 Renlin Li <Renlin.Li@arm.com>
34503 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
34504 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
34505 (arm_file_start): Generate correct asm header for armv7ve.
34506 * config/arm/bpabi.h: Add multilib support for armv7ve.
34507 * config/arm/driver-arm.c: Change the architectures of cortex-a7
34508 and cortex-a15 to armv7ve.
34509 * config/arm/t-aprofile: Add multilib support for armv7ve.
34510 * doc/invoke.texi: Document -march=armv7ve.
34512 2014-01-29 Richard Biener <rguenther@suse.de>
34514 PR tree-optimization/58742
34515 * tree-ssa-forwprop.c (associate_plusminus): Return true
34516 if we changed sth, defer EH cleanup to ...
34517 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
34518 (simplify_mult): New function.
34520 2014-01-29 Jakub Jelinek <jakub@redhat.com>
34522 PR middle-end/59917
34523 PR tree-optimization/59920
34524 * tree.c (build_common_builtin_nodes): Remove
34525 __builtin_setjmp_dispatcher initialization.
34526 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
34527 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
34528 instead of gsi_after_labels + manually skipping debug stmts.
34529 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
34530 ignore bbs with IFN_ABNORMAL_DISPATCHER.
34531 * tree-inline.c (copy_edges_for_bb): Remove
34532 can_make_abnormal_goto argument, instead add abnormal_goto_dest
34533 argument. Ignore computed_goto_p stmts. Don't call
34534 make_abnormal_goto_edges. If a call might need abnormal edges
34535 for non-local gotos, see if it already has an edge to
34536 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
34537 with true argument, don't do anything then, otherwise add
34538 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
34539 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
34541 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
34542 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
34543 (lower_stmt): Don't set data->calls_builtin_setjmp.
34544 (lower_builtin_setjmp): Adjust comment.
34545 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
34546 * tree-cfg.c (found_computed_goto): Remove.
34547 (factor_computed_gotos): Remove.
34548 (make_goto_expr_edges): Return bool, true for computed gotos.
34549 Don't call make_abnormal_goto_edges.
34550 (build_gimple_cfg): Don't set found_computed_goto, don't call
34551 factor_computed_gotos.
34552 (computed_goto_p): No longer static.
34553 (make_blocks): Don't set found_computed_goto.
34554 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
34555 (make_edges): If make_goto_expr_edges returns true, push bb
34556 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
34557 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
34558 vector. Record mapping between bbs and OpenMP regions if there
34559 are any, adjust make_gimple_omp_edges caller. Call
34560 handle_abnormal_edges.
34561 (make_abnormal_goto_edges): Remove.
34562 * tree-cfg.h (make_abnormal_goto_edges): Remove.
34563 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
34564 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
34565 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
34566 * internal-fn.def (ABNORMAL_DISPATCHER): New.
34567 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
34568 filling *region also set *region_idx to (*region)->entry->index.
34571 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
34572 For REGs set ORIGINAL_REGNO.
34574 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
34576 * doc/md.texi: Mention that a target shouldn't implement
34577 vec_widen_(s|u)mul_even/odd pair if it is less efficient
34580 2014-01-29 Jakub Jelinek <jakub@redhat.com>
34582 PR tree-optimization/59594
34583 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
34584 a copy of the datarefs vector rather than the vector itself.
34586 2014-01-28 Jason Merrill <jason@redhat.com>
34589 * dwarf2out.c (auto_die): New static.
34590 (gen_type_die_with_usage): Handle C++1y 'auto'.
34591 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
34594 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
34597 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
34598 (SPEC_X32): Likewise.
34599 (SPEC_64): Likewise.
34600 * config/i386/i386.c (ix86_option_override_internal): Turn off
34601 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
34603 (x86_file_start): Output .code16gcc for TARGET_16BIT.
34604 * config/i386/i386.h (TARGET_16BIT): New macro.
34605 (TARGET_16BIT_P): Likewise.
34606 * config/i386/i386.opt: Add m16.
34607 * doc/invoke.texi: Document -m16.
34609 2014-01-28 Jakub Jelinek <jakub@redhat.com>
34611 PR preprocessor/59935
34612 * input.c (location_get_source_line): Bail out on when line number
34613 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
34615 2014-01-28 Richard Biener <rguenther@suse.de>
34617 PR tree-optimization/58742
34618 * tree-ssa-forwprop.c (associate_plusminus): Handle
34619 pointer subtraction of the form (T)(P + A) - (T)P.
34621 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34623 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
34626 2014-01-28 Richard Biener <rguenther@suse.de>
34629 2014-01-28 Richard Biener <rguenther@suse.de>
34631 PR rtl-optimization/45364
34632 PR rtl-optimization/59890
34633 * var-tracking.c (local_get_addr_clear_given_value): Handle
34634 already cleared slot.
34635 (val_reset): Handle not allocated local_get_addr_cache.
34636 (vt_find_locations): Use post-order on the inverted CFG.
34638 2014-01-28 Richard Biener <rguenther@suse.de>
34640 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
34642 2014-01-28 Richard Biener <rguenther@suse.de>
34644 PR rtl-optimization/45364
34645 PR rtl-optimization/59890
34646 * var-tracking.c (local_get_addr_clear_given_value): Handle
34647 already cleared slot.
34648 (val_reset): Handle not allocated local_get_addr_cache.
34649 (vt_find_locations): Use post-order on the inverted CFG.
34651 2014-01-28 Alan Modra <amodra@gmail.com>
34653 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
34654 * configure.ac <recursive call for build != host>: Define
34655 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
34656 and LD_FOR_BUILD too.
34657 * configure: Regenerate.
34659 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
34661 * config/i386/i386.c (get_builtin_code_for_version): Separate
34662 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
34663 Broadwell from Haswell.
34665 2014-01-27 Steve Ellcey <sellcey@mips.com>
34667 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
34668 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
34669 * config/mips/mips.c (mips_option_override): Change setting
34671 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
34672 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
34673 Change from Mask to Var.
34675 2014-01-27 Jeff Law <law@redhat.com>
34677 * ipa-inline.c (inline_small_functions): Fix typo.
34679 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
34681 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
34682 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
34683 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
34684 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
34685 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
34686 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
34687 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
34688 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
34689 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
34690 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
34691 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
34692 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
34693 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
34694 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
34695 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
34696 (_mm512_storeu_epi64): Ditto.
34697 (_mm512_cmpge_epi32_mask): Ditto.
34698 (_mm512_cmpge_epu32_mask): Ditto.
34699 (_mm512_cmpge_epi64_mask): Ditto.
34700 (_mm512_cmpge_epu64_mask): Ditto.
34701 (_mm512_cmple_epi32_mask): Ditto.
34702 (_mm512_cmple_epu32_mask): Ditto.
34703 (_mm512_cmple_epi64_mask): Ditto.
34704 (_mm512_cmple_epu64_mask): Ditto.
34705 (_mm512_cmplt_epi32_mask): Ditto.
34706 (_mm512_cmplt_epu32_mask): Ditto.
34707 (_mm512_cmplt_epi64_mask): Ditto.
34708 (_mm512_cmplt_epu64_mask): Ditto.
34709 (_mm512_cmpneq_epi32_mask): Ditto.
34710 (_mm512_cmpneq_epu32_mask): Ditto.
34711 (_mm512_cmpneq_epi64_mask): Ditto.
34712 (_mm512_cmpneq_epu64_mask): Ditto.
34713 (_mm512_expand_pd): Ditto.
34714 (_mm512_expand_ps): Ditto.
34715 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
34716 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
34717 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
34718 * config/i386/i386.c (ix86_builtins): Add
34719 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
34720 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
34721 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
34722 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
34723 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
34724 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
34725 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
34726 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
34727 IX86_BUILTIN_PMOVUSQW512_MEM.
34728 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
34729 __builtin_ia32_pmovsqd512mem_mask,
34730 __builtin_ia32_pmovqd512mem_mask,
34731 __builtin_ia32_pmovusqw512mem_mask,
34732 __builtin_ia32_pmovsqw512mem_mask,
34733 __builtin_ia32_pmovqw512mem_mask,
34734 __builtin_ia32_pmovusdw512mem_mask,
34735 __builtin_ia32_pmovsdw512mem_mask,
34736 __builtin_ia32_pmovdw512mem_mask,
34737 __builtin_ia32_pmovqb512mem_mask,
34738 __builtin_ia32_pmovusqb512mem_mask,
34739 __builtin_ia32_pmovsqb512mem_mask,
34740 __builtin_ia32_pmovusdb512mem_mask,
34741 __builtin_ia32_pmovsdb512mem_mask,
34742 __builtin_ia32_pmovdb512mem_mask.
34743 (bdesc_args): Add __builtin_ia32_expanddf512,
34744 __builtin_ia32_expandsf512.
34745 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
34746 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
34747 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
34748 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
34749 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
34750 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
34751 (avx512f_<code>v8div16qi2_mask_store): This.
34752 (avx512f_expand<mode>): New.
34754 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
34756 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
34758 (_mm512_mask_prefetch_i64gather_pd): Ditto.
34759 (_mm512_prefetch_i32scatter_pd): Ditto.
34760 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
34761 (_mm512_prefetch_i64scatter_pd): Ditto.
34762 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
34763 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
34764 (_mm512_mask_prefetch_i64gather_ps): Ditto.
34765 (_mm512_prefetch_i32scatter_ps): Ditto.
34766 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
34767 (_mm512_prefetch_i64scatter_ps): Ditto.
34768 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
34769 * config/i386/i386-builtin-types.def: Define
34770 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
34771 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
34772 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
34773 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
34774 IX86_BUILTIN_SCATTERPFQPD.
34775 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
34776 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
34777 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
34778 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
34779 __builtin_ia32_scatterpfqps.
34780 (ix86_expand_builtin): Expand new built-ins.
34781 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
34782 fix memory access data type.
34783 (*avx512pf_gatherpf<mode>_mask): Ditto.
34784 (*avx512pf_gatherpf<mode>): Ditto.
34785 (avx512pf_scatterpf<mode>): Ditto.
34786 (*avx512pf_scatterpf<mode>_mask): Ditto.
34787 (*avx512pf_scatterpf<mode>): Ditto.
34788 (GATHER_SCATTER_SF_MEM_MODE): New.
34789 (avx512pf_gatherpf<mode>df): Ditto.
34790 (*avx512pf_gatherpf<mode>df_mask): Ditto.
34791 (*avx512pf_scatterpf<mode>df): Ditto.
34793 2014-01-27 Jakub Jelinek <jakub@redhat.com>
34796 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
34797 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
34800 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
34802 * common/config/arm/arm-common.c
34803 (arm_rewrite_mcpu): Handle multiple names.
34805 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34807 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
34809 * gimple-builder.h (create_gimple_tmp): Delete.
34811 2014-01-27 Christian Bruel <christian.bruel@st.com>
34813 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
34816 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
34818 * config/pa/pa.md (call): Generate indirect long calls to non-local
34819 functions when outputing 32-bit code.
34820 (call_value): Likewise except for special call to buggy powf function.
34822 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
34823 portable runtime and PIC indirect calls.
34824 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
34825 and PIC call sequences. Use ldo instead of blr to set return register
34826 in PIC call sequence.
34828 2014-01-25 Walter Lee <walt@tilera.com>
34830 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
34831 avoid clobbering a live register.
34833 2014-01-25 Walter Lee <walt@tilera.com>
34835 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
34836 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
34837 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
34838 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
34840 2014-01-25 Walter Lee <walt@tilera.com>
34842 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
34843 arguments on even registers.
34844 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
34846 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
34847 (BIGGEST_ALIGNMENT): Ditto.
34848 (BIGGEST_FIELD_ALIGNMENT): Ditto.
34850 2014-01-25 Walter Lee <walt@tilera.com>
34852 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
34853 insns before bundling.
34854 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
34856 2014-01-25 Walter Lee <walt@tilera.com>
34858 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
34859 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
34860 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
34862 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
34864 * config/mips/constraints.md (kl): Delete.
34865 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
34866 define expands, using...
34867 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
34868 instructions for MIPS16.
34869 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
34870 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
34872 2014-01-25 Walter Lee <walt@tilera.com>
34874 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
34878 2014-01-25 Walter Lee <walt@tilera.com>
34880 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
34881 (TARGET_EXPAND_TO_RTL_HOOK): Define.
34883 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
34885 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
34888 2014-01-25 Jakub Jelinek <jakub@redhat.com>
34890 * print-rtl.c (in_call_function_usage): New var.
34891 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
34892 EXPR_LIST mode as mode and not as reg note name.
34894 PR middle-end/59561
34895 * cfgloopmanip.c (copy_loop_info): If
34896 loop->warned_aggressive_loop_optimizations, make sure
34897 the flag is set in target loop too.
34899 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
34901 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
34903 * builtins.def: Likewise.
34904 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
34905 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
34906 * ira.c (ira_setup_eliminable_regset): Likewise.
34907 * omp-low.c (gate_expand_omp): Likewise.
34908 (execute_lower_omp): Likewise.
34909 (diagnose_sb_0): Likewise.
34910 (gate_diagnose_omp_blocks): Likewise.
34911 (simd_clone_clauses_extract): Likewise.
34914 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34916 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
34917 correction for little endian...
34918 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
34921 2014-01-24 Jeff Law <law@redhat.com>
34923 PR tree-optimization/59919
34924 * tree-vrp.c (find_assert_locations_1): Do not register asserts
34925 for non-returning calls.
34927 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
34929 * common/config/aarch64/aarch64-common.c
34930 (aarch64_rewrite_mcpu): Handle multiple names.
34931 * config/aarch64/aarch64.h
34932 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34934 2014-01-24 Dodji Seketeli <dodji@redhat.com>
34936 * input.c (add_file_to_cache_tab): Handle the case where fopen
34939 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
34942 * config/i386/i386.md (pushsf splitter): Get stack adjustment
34943 from push operand if code of push isn't PRE_DEC.
34945 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
34948 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
34949 -mquad-memory-atomic. Update -mquad-memory documentation to say
34950 it is only used for non-atomic loads/stores.
34952 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
34953 -mquad-memory or -mquad-memory-atomic switches.
34955 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
34956 -mquad-memory-atomic to ISA 2.07 support.
34958 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
34959 to separate support of normal quad word memory operations (ldq, stq)
34960 from the atomic quad word memory operations.
34962 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34963 support to separate non-atomic quad word operations from atomic
34964 quad word operations. Disable non-atomic quad word operations in
34965 little endian mode so that we don't have to swap words after the
34966 load and before the store.
34967 (quad_load_store_p): Add comment about atomic quad word support.
34968 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
34969 options printed with -mdebug=reg.
34971 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
34972 -mquad-memory-atomic as the test for whether we have quad word
34973 atomic instructions.
34974 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
34975 or -mp8-vector are used, allow byte/half-word atomic operations.
34977 * config/rs6000/sync.md (load_lockedti): Insure that the address
34978 is a proper indexed or indirect address for the lqarx instruction.
34979 On little endian systems, swap the hi/lo registers after the lqarx
34981 (load_lockedpti): Use indexed_or_indirect_operand predicate to
34982 insure the address is valid for the lqarx instruction.
34983 (store_conditionalti): Insure that the address is a proper indexed
34984 or indirect address for the stqcrx. instruction. On little endian
34985 systems, swap the hi/lo registers before doing the stqcrx.
34987 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
34988 insure the address is valid for the stqcrx. instruction.
34990 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
34991 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
34992 type of quad memory support is available.
34994 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
34996 PR regression/59915
34997 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
34998 there is a danger of looping.
35000 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
35002 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
35003 force flag_ira_loop_pressure if set via command line.
35005 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
35007 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
35008 (ashr_simd): New builtin handling DI mode.
35009 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
35010 (aarch64_sshr_simddi): New match pattern.
35011 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
35012 (vshrd_n_s64): Likewise.
35013 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
35015 2014-01-23 Nick Clifton <nickc@redhat.com>
35017 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
35018 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
35019 favour of mcu specific scripts.
35020 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
35023 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
35024 Alex Velenko <Alex.Velenko@arm.com>
35026 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
35027 (vaddv_s16): Likewise.
35028 (vaddv_s32): Likewise.
35029 (vaddv_u8): Likewise.
35030 (vaddv_u16): Likewise.
35031 (vaddv_u32): Likewise.
35032 (vaddvq_s8): Likewise.
35033 (vaddvq_s16): Likewise.
35034 (vaddvq_s32): Likewise.
35035 (vaddvq_s64): Likewise.
35036 (vaddvq_u8): Likewise.
35037 (vaddvq_u16): Likewise.
35038 (vaddvq_u32): Likewise.
35039 (vaddvq_u64): Likewise.
35040 (vaddv_f32): Likewise.
35041 (vaddvq_f32): Likewise.
35042 (vaddvq_f64): Likewise.
35043 (vmaxv_f32): Likewise.
35044 (vmaxv_s8): Likewise.
35045 (vmaxv_s16): Likewise.
35046 (vmaxv_s32): Likewise.
35047 (vmaxv_u8): Likewise.
35048 (vmaxv_u16): Likewise.
35049 (vmaxv_u32): Likewise.
35050 (vmaxvq_f32): Likewise.
35051 (vmaxvq_f64): Likewise.
35052 (vmaxvq_s8): Likewise.
35053 (vmaxvq_s16): Likewise.
35054 (vmaxvq_s32): Likewise.
35055 (vmaxvq_u8): Likewise.
35056 (vmaxvq_u16): Likewise.
35057 (vmaxvq_u32): Likewise.
35058 (vmaxnmv_f32): Likewise.
35059 (vmaxnmvq_f32): Likewise.
35060 (vmaxnmvq_f64): Likewise.
35061 (vminv_f32): Likewise.
35062 (vminv_s8): Likewise.
35063 (vminv_s16): Likewise.
35064 (vminv_s32): Likewise.
35065 (vminv_u8): Likewise.
35066 (vminv_u16): Likewise.
35067 (vminv_u32): Likewise.
35068 (vminvq_f32): Likewise.
35069 (vminvq_f64): Likewise.
35070 (vminvq_s8): Likewise.
35071 (vminvq_s16): Likewise.
35072 (vminvq_s32): Likewise.
35073 (vminvq_u8): Likewise.
35074 (vminvq_u16): Likewise.
35075 (vminvq_u32): Likewise.
35076 (vminnmv_f32): Likewise.
35077 (vminnmvq_f32): Likewise.
35078 (vminnmvq_f64): Likewise.
35080 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
35082 * config/aarch64/aarch64-simd.md
35083 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
35084 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
35085 (*aarch64_mul3_elt<mode>): Likewise.
35086 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
35087 (*aarch64_mul3_elt_to_64v2df): Likewise.
35088 (*aarch64_mla_elt<mode>): Likewise.
35089 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
35090 (*aarch64_mls_elt<mode>): Likewise.
35091 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
35092 (*aarch64_fma4_elt<mode>): Likewise.
35093 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
35094 (*aarch64_fma4_elt_to_64v2df): Likewise.
35095 (*aarch64_fnma4_elt<mode>): Likewise.
35096 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
35097 (*aarch64_fnma4_elt_to_64v2df): Likewise.
35098 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
35099 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
35100 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
35101 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
35102 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
35103 (aarch64_sqdmull_lane<mode>_internal): Likewise.
35104 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
35106 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
35108 * config/aarch64/aarch64-simd.md
35109 (aarch64_be_checked_get_lane<mode>): New define_expand.
35110 * config/aarch64/aarch64-simd-builtins.def
35111 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
35112 New builtin definition.
35113 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
35114 Use new safe be builtin.
35116 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
35118 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
35120 (aarch64_be_st1<mode>): Likewise.
35121 (aarch_ld1<VALL:mode>): Define_expand modified.
35122 (aarch_st1<VALL:mode>): Likewise.
35123 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
35124 (UNSPEC_ST1): Likewise.
35126 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
35128 * config/microblaze/microblaze.md: Add trap insn and attribute
35130 2014-01-23 Dodji Seketeli <dodji@redhat.com>
35132 PR preprocessor/58580
35133 * input.h (location_get_source_line): Take an additional line_size
35135 (void diagnostics_file_cache_fini): Declare new function.
35136 * input.c (struct fcache): New type.
35137 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
35138 New static constants.
35139 (diagnostic_file_cache_init, total_lines_num)
35140 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
35141 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
35142 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
35143 (get_next_line, read_next_line, goto_next_line, read_line_num):
35144 New static function definitions.
35145 (diagnostic_file_cache_fini): New function.
35146 (location_get_source_line): Take an additional output line_len
35147 parameter. Re-write using lookup_or_add_file_to_cache_tab and
35149 * diagnostic.c (diagnostic_finish): Call
35150 diagnostic_file_cache_fini.
35151 (adjust_line): Take an additional input parameter for the length
35152 of the line, rather than calculating it with strlen.
35153 (diagnostic_show_locus): Adjust the use of
35154 location_get_source_line and adjust_line with respect to their new
35155 signature. While displaying a line now, do not stop at the first
35156 null byte. Rather, display the zero byte as a space and keep
35157 going until we reach the size of the line.
35158 * Makefile.in: Add vec.o to OBJS-libcommon
35160 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
35161 Ilya Tocar <ilya.tocar@intel.com>
35163 * config/i386/avx512fintrin.h (_mm512_kmov): New.
35164 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
35165 (__builtin_ia32_kmov16): Ditto.
35166 * config/i386/i386.md (UNSPEC_KMOV): New.
35169 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
35171 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
35172 (_mm512_storeu_si512): Ditto.
35174 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
35177 * rtl.h (get_referenced_operands): Declare.
35178 * recog.c (get_referenced_operands): New function.
35179 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
35180 operands have been referenced when recording LO_SUM references.
35182 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
35184 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
35186 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
35188 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
35189 Enable for generic and recent AMD targets.
35191 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
35193 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
35194 ARG_SIZE note when adjustment was eliminated.
35196 2014-01-22 Jeff Law <law@redhat.com>
35198 PR tree-optimization/59597
35199 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
35200 in file. Accept new argument REGISTERING and use it to modify
35201 dump output appropriately.
35202 (register_jump_thread): Corresponding changes.
35203 (mark_threaded_blocks): Reinstate code to cancel unprofitable
35204 thread paths involving joiner blocks. Add code to dump cancelled
35205 jump threading paths.
35207 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
35209 PR rtl-optimization/59477
35210 * lra-constraints.c (inherit_in_ebb): Process call for living hard
35211 regs. Update reloads_num and potential_reload_hard_regs for all insns.
35213 2014-01-22 Tom Tromey <tromey@redhat.com>
35215 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
35217 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
35219 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
35221 PR rtl-optimization/59896
35222 * lra-constraints.c (process_alt_operands): Check unused note for
35223 matched operands of insn with no output reloads.
35225 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
35227 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
35228 (mips_move_from_gpr_cost): Likewise.
35230 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
35232 PR rtl-optimization/59858
35233 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
35234 ira_class_hard_regs_num.
35235 (process_alt_operands): Increase reject for dying matched operand.
35237 2014-01-21 Jakub Jelinek <jakub@redhat.com>
35240 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
35241 smaller than size, perform several stores or loads and stores
35242 at dst + count - size to store or copy all of size bytes, rather
35243 than just last modesize bytes.
35245 2014-01-20 DJ Delorie <dj@redhat.com>
35247 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
35248 that CLOBBERs are REGs before propogating their values.
35250 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
35252 PR middle-end/59789
35253 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
35254 (cgraph_inline_failed_type): New function.
35255 * cgraph.h (DEFCIFCODE): Add type.
35256 (cgraph_inline_failed_type_t): New enum.
35257 (cgraph_inline_failed_type): New prototype.
35258 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
35259 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
35260 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
35261 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
35262 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
35263 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
35264 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
35265 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
35266 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
35267 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
35268 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
35269 OPTIMIZATION_MISMATCH.
35270 * tree-inline.c (expand_call_inline): Emit errors during
35271 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
35273 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
35276 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
35277 mode attribute in insn output.
35279 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
35281 * output.h (output_constant): Delete.
35282 * varasm.c (output_constant): Make private.
35284 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
35286 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
35288 2014-01-20 Jakub Jelinek <jakub@redhat.com>
35290 PR middle-end/59860
35291 * tree.h (fold_builtin_strcat): New prototype.
35292 * builtins.c (fold_builtin_strcat): No longer static. Add len
35293 argument, if non-NULL, don't call c_strlen. Optimize
35294 directly into __builtin_memcpy instead of __builtin_strcpy.
35295 (fold_builtin_2): Adjust fold_builtin_strcat caller.
35296 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
35298 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
35300 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
35301 for SImode_address_operand operands, having only a REG argument.
35303 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
35305 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
35306 loader name using mbig-endian.
35307 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
35309 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
35311 * doc/invoke.texi (-march): Clarify documentation for AArch64.
35312 (-mtune): Likewise.
35315 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
35317 * config/aarch64/aarch64-protos.h
35318 (aarch64_cannot_change_mode_class_ptr): Declare.
35319 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
35320 aarch64_cannot_change_mode_class_ptr): New.
35321 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
35322 backend hook aarch64_cannot_change_mode_class.
35324 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
35326 * common/config/aarch64/aarch64-common.c
35327 (aarch64_handle_option): Don't handle any option order logic here.
35328 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
35329 selected_cpu, warn on architecture version mismatch.
35330 (aarch64_override_options): Fix parsing order for option strings.
35332 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
35333 Iain Sandoe <iain@codesourcery.com>
35336 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
35337 warning. Amend comment to reflect current functionality.
35339 2014-01-20 Richard Biener <rguenther@suse.de>
35341 PR middle-end/59860
35342 * builtins.c (fold_builtin_strcat): Remove case better handled
35343 by tree-ssa-strlen.c.
35345 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
35347 * config/aarch64/aarch64.opt
35348 (mcpu, march, mtune): Make case-insensitive.
35350 2014-01-20 Jakub Jelinek <jakub@redhat.com>
35353 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
35354 if operands[1] is a REG or ZERO_EXTEND of a REG.
35356 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
35358 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
35360 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
35362 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
35363 long non-pic millicode calls.
35365 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
35367 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
35369 2014-01-19 Kito Cheng <kito@0xlab.org>
35371 * builtins.c (expand_movstr): Check movstr expand done or fail.
35373 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
35374 H.J. Lu <hongjiu.lu@intel.com>
35377 * config/i386/i386.md (*lea<mode>): Zero-extend return register
35378 to DImode for zero-extended addresses.
35380 2014-01-19 Jakub Jelinek <jakub@redhat.com>
35382 PR rtl-optimization/57763
35383 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
35384 on the new indirect jump_insn and increment LABEL_NUSES (label).
35386 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
35390 * config.gcc (x86_archs): New variable.
35391 (x86_64_archs): Likewise.
35392 (x86_cpus): Likewise.
35393 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
35394 --with-arch/--with-cpu= options.
35395 Support --with-arch=/--with-cpu={nehalem,westmere,
35396 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
35398 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
35400 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
35401 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
35403 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
35405 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
35407 2014-01-18 Jakub Jelinek <jakub@redhat.com>
35410 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
35411 clear cpp_get_options (parse_in)->warn_unused_macros for
35412 ix86_target_macros_internal with cpp_define.
35414 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
35416 * jump.c (delete_related_insns): Keep (use (insn))s.
35417 * reorg.c (redundant_insn): Check for barriers too.
35419 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
35421 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
35423 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
35425 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
35426 call to $$dyncall when TARGET_LONG_CALLS is true.
35428 2014-01-17 Jeff Law <law@redhat.com>
35430 * ree.c (combine_set_extension): Temporarily disable test for
35431 changing number of hard registers.
35433 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
35435 PR middle-end/58125
35436 * ipa-inline-analysis.c (inline_free_summary):
35437 Do not free summary of aliases.
35439 2014-01-17 Jakub Jelinek <jakub@redhat.com>
35441 PR middle-end/59706
35442 * gimplify.c (gimplify_expr): Use create_tmp_var
35443 instead of create_tmp_var_raw. If cond doesn't have
35444 integral type, don't add the IFN_ANNOTATE builtin at all.
35446 2014-01-17 Martin Jambor <mjambor@suse.cz>
35449 * ipa-cp.c (prev_edge_clone): New variable.
35450 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
35451 Also resize prev_edge_clone vector.
35452 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
35453 (ipcp_edge_removal_hook): New function.
35454 (ipcp_driver): Register ipcp_edge_removal_hook.
35456 2014-01-17 Andrew Pinski <apinski@cavium.com>
35457 Steve Ellcey <sellcey@mips.com>
35460 * config/mips/mips.c (mips_print_operand): Check operand mode instead
35463 2014-01-17 Jeff Law <law@redhat.com>
35465 PR middle-end/57904
35466 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
35467 so that pass_ccp runs first.
35469 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
35471 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
35472 (ix86_adjust_cost): Use !TARGET_XXX.
35473 (do_reorder_for_imul): Likewise.
35474 (swap_top_of_ready_list): Likewise.
35475 (ix86_sched_reorder): Likewise.
35477 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
35479 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
35480 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
35481 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
35482 (intel_memset): New. Duplicate slm_memset.
35483 (intel_cost): New. Duplicate slm_cost.
35484 (m_INTEL): New macro.
35485 (processor_target_table): Add "intel".
35486 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
35487 with PROCESSOR_INTEL for "intel".
35488 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
35489 PROCESSOR_SILVERMONT.
35490 (ix86_issue_rate): Likewise.
35491 (ix86_adjust_cost): Likewise.
35492 (ia32_multipass_dfa_lookahead): Likewise.
35493 (swap_top_of_ready_list): Likewise.
35494 (ix86_sched_reorder): Likewise.
35495 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
35496 instead of TARGET_OPT_AGU.
35497 * config/i386/i386.h (TARGET_INTEL): New.
35498 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
35499 (processor_type): Add PROCESSOR_INTEL.
35500 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
35501 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
35503 2014-01-17 Marek Polacek <polacek@redhat.com>
35506 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
35509 2014-01-17 Richard Biener <rguenther@suse.de>
35511 PR tree-optimization/46590
35512 * opts.c (default_options_table): Add entries for
35513 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
35514 all enabled at -O1 but not for -Og.
35515 * common.opt (fbranch-count-reg): Remove Init(1).
35516 (fmove-loop-invariants): Likewise.
35517 (ftree-pta): Likewise.
35519 2014-01-17 Jakub Jelinek <jakub@redhat.com>
35521 * config/i386/i386.c (ix86_data_alignment): For compatibility with
35522 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
35523 decls to at least the GCC 4.8 used alignments.
35526 * tree-nested.c (convert_nonlocal_reference_stmt,
35527 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
35528 of GIMPLE_BIND stmts, adjust associated decls.
35530 2014-01-17 Richard Biener <rguenther@suse.de>
35532 PR tree-optimization/46590
35533 * vec.h (vec<>::bseach): New member function implementing
35534 binary search according to C89 bsearch.
35535 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
35536 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
35537 bitmap pointer again. Make accesses_in_loop a flat array.
35538 (mem_ref_obstack): New global.
35539 (outermost_indep_loop): Adjust for mem_ref->stored changes.
35540 (mark_ref_stored): Likewise.
35541 (ref_indep_loop_p_2): Likewise.
35542 (set_ref_stored_in_loop): New helper function.
35543 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
35544 (memref_free): Adjust.
35545 (record_mem_ref_loc): Simplify.
35546 (gather_mem_refs_stmt): Adjust.
35547 (sort_locs_in_loop_postorder_cmp): New function.
35548 (analyze_memory_references): Sort accesses_in_loop after
35549 loop postorder number.
35550 (find_ref_loc_in_loop_cmp): New function.
35551 (for_all_locs_in_loop): Find relevant cluster of locs in
35552 accesses_in_loop and iterate without recursion.
35553 (execute_sm): Avoid uninit warning.
35554 (struct ref_always_accessed): Simplify.
35555 (ref_always_accessed::operator ()): Likewise.
35556 (ref_always_accessed_p): Likewise.
35557 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
35558 loop postorder numbers here.
35559 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
35562 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
35565 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
35566 on decls for which assemble_alias has been called.
35568 2014-01-17 Nick Clifton <nickc@redhat.com>
35570 * config/msp430/msp430.opt: (mcpu): New option.
35571 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
35572 (msp430_option_override): Parse target_cpu. If the MCU name
35573 matches a generic string, clear target_mcu.
35574 (msp430_attr): Allow numeric interrupt values up to 63.
35575 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
35576 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
35578 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
35580 * config/msp430/msp430.md (popm): Use %J rather than %I.
35581 (addsi3): Use msp430_nonimmediate_operand for operand 2.
35582 (addhi_cy_i): Use immediate_operand for operand 2.
35583 * doc/invoke.texi: Document -mcpu option.
35585 2014-01-17 Richard Biener <rguenther@suse.de>
35587 PR rtl-optimization/38518
35588 * df.h (df_analyze_loop): Declare.
35589 * df-core.c: Include cfgloop.h.
35590 (df_analyze_1): Split out main part of df_analyze.
35591 (df_analyze): Adjust.
35592 (loop_inverted_post_order_compute): New function.
35593 (loop_post_order_compute): Likewise.
35594 (df_analyze_loop): New function avoiding whole-function
35595 postorder computes.
35596 * loop-invariant.c (find_defs): Use df_analyze_loop.
35597 (find_invariants): Adjust.
35598 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
35600 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
35602 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
35603 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
35605 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
35607 * ipa-ref.c (ipa_remove_stmt_references): Fix references
35608 traversal when removing references.
35610 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
35613 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
35615 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
35617 PR middle-end/56791
35618 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
35619 pushing a reload for an autoinc when we had previously reloaded an
35620 inner part of the address.
35622 2014-01-16 Jakub Jelinek <jakub@redhat.com>
35624 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
35626 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
35627 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
35628 when not giving up or versioning for alias only because of
35630 (vect_analyze_data_ref_dependences): Set to true.
35631 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
35633 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
35634 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
35637 PR middle-end/58344
35638 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
35641 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
35642 operand 0 predicate for gathers, use a new pseudo as subtarget.
35644 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
35646 PR middle-end/59609
35647 * lra-constraints.c (process_alt_operands): Add printing debug info.
35648 Check absence of input/output reloads for matched operands too.
35650 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
35652 PR rtl-optimization/59835
35653 * ira.c (ira_init_register_move_cost): Increase cost for
35656 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
35658 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
35660 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
35663 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
35664 non-register objects. Use gen_(high/low)part more consistently.
35667 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
35670 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
35671 endian support, remove tests for WORDS_BIG_ENDIAN.
35672 (p8_mfvsrd_3_<mode>): Likewise.
35673 (reload_gpr_from_vsx<mode>): Likewise.
35674 (reload_gpr_from_vsxsf): Likewise.
35675 (p8_mfvsrd_4_disf): Likewise.
35677 2014-01-16 Richard Biener <rguenther@suse.de>
35679 PR rtl-optimization/46590
35680 * lcm.c (compute_antinout_edge): Use postorder iteration.
35681 (compute_laterin): Use inverted postorder iteration.
35683 2014-01-16 Nick Clifton <nickc@redhat.com>
35685 PR middle-end/28865
35686 * varasm.c (output_constant): Return the number of bytes actually
35688 (output_constructor_array_range): Update the field size with the
35689 number of bytes emitted by output_constant.
35690 (output_constructor_regular_field): Likewise. Also do not
35691 complain if the total number of bytes emitted is now greater
35692 than the expected fieldpos.
35693 * output.h (output_constant): Update prototype and descriptive comment.
35695 2014-01-16 Marek Polacek <polacek@redhat.com>
35697 PR middle-end/59827
35698 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
35699 it is error_mark_node.
35701 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
35703 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
35704 VALID_AVX256_REG_OR_OI_MODE.
35706 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
35708 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
35709 current procedure should be profiled.
35711 2014-01-15 Andrew Pinski <apinski@cavium.com>
35713 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
35714 of moving from/to the STACK_REG register class.
35716 2014-01-15 Richard Henderson <rth@redhat.com>
35719 * reginfo.c (global_regs_decl): Globalize.
35720 * rtl.h (global_regs_decl): Declare.
35721 * ira.c (do_reload): Diagnose frame_pointer_needed and it
35722 reserved via global_regs.
35724 2014-01-15 Teresa Johnson <tejohnson@google.com>
35726 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
35728 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
35730 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
35731 and vmulosh rather than call gen_vec_widen_smult_*.
35732 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
35733 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
35734 (vec_widen_smult_even_v16qi): Likewise.
35735 (vec_widen_umult_even_v8hi): Likewise.
35736 (vec_widen_smult_even_v8hi): Likewise.
35737 (vec_widen_umult_odd_v16qi): Likewise.
35738 (vec_widen_smult_odd_v16qi): Likewise.
35739 (vec_widen_umult_odd_v8hi): Likewise.
35740 (vec_widen_smult_odd_v8hi): Likewise.
35741 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
35742 vmuloub rather than call gen_vec_widen_umult_*.
35743 (vec_widen_umult_lo_v16qi): Likewise.
35744 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
35745 vmulosb rather than call gen_vec_widen_smult_*.
35746 (vec_widen_smult_lo_v16qi): Likewise.
35747 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
35748 rather than call gen_vec_widen_umult_*.
35749 (vec_widen_umult_lo_v8hi): Likewise.
35750 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
35751 rather than call gen_vec_widen_smult_*.
35752 (vec_widen_smult_lo_v8hi): Likewise.
35754 2014-01-15 Jeff Law <law@redhat.com>
35756 PR tree-optimization/59747
35757 * ree.c (find_and_remove_re): Properly handle case where a second
35758 eliminated extension requires widening a copy created for elimination
35759 of a prior extension.
35760 (combine_set_extension): Ensure that the number of hard regs needed
35761 for a destination register does not change when we widen it.
35763 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
35765 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
35766 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
35767 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
35768 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
35769 (avr-*-rtems*): Likewise.
35770 (bfin*-rtems*): Likewise.
35771 (moxie-*-rtems*): Likewise.
35772 (h8300-*-rtems*): Likewise.
35773 (i[34567]86-*-rtems*): Likewise.
35774 (lm32-*-rtems*): Likewise.
35775 (m32r-*-rtems*): Likewise.
35776 (m68k-*-rtems*): Likewise.
35777 (microblaze*-*-rtems*): Likewise.
35778 (mips*-*-rtems*): Likewise.
35779 (powerpc-*-rtems*): Likewise.
35780 (sh-*-rtems*): Likewise.
35781 (sparc-*-rtems*): Likewise.
35782 (sparc64-*-rtems*): Likewise.
35783 (v850-*-rtems*): Likewise.
35784 (m32c-*-rtems*): Likewise.
35786 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
35788 PR rtl-optimization/59511
35789 * ira.c (ira_init_register_move_cost): Use memory costs for some
35790 cases of register move cost calculations.
35791 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
35792 instead of BB frequency.
35793 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
35794 * lra-assigns.c (find_hard_regno_for): Ditto.
35796 2014-01-15 Richard Biener <rguenther@suse.de>
35798 PR tree-optimization/59822
35799 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
35800 (vectorizable_load): Use it to hoist defs of uses of invariant
35801 loads out of the loop.
35803 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
35804 Kugan Vivekanandarajah <kuganv@linaro.org>
35807 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
35810 2014-01-15 Richard Biener <rguenther@suse.de>
35812 PR rtl-optimization/59802
35813 * lcm.c (compute_available): Use inverted postorder to seed
35814 the initial worklist.
35816 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35819 * config/s390/s390.c (s390_preferred_reload_class): Don't return
35820 ADDR_REGS for invalid symrefs in non-PIC code.
35822 2014-01-15 Jakub Jelinek <jakub@redhat.com>
35825 * builtins.c (determine_block_size): Initialize *probable_max_size
35826 even if len_rtx is CONST_INT.
35828 2014-01-14 Andrew Pinski <apinski@cavium.com>
35830 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
35831 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
35832 (cortexa53_tunings): Likewise.
35833 (aarch64_sched_issue_rate): New function.
35834 (TARGET_SCHED_ISSUE_RATE): Define.
35836 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
35838 * ira-costs.c (find_costs_and_classes): Add missed
35839 ira_init_register_move_cost_if_necessary.
35841 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
35844 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
35846 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
35849 * config/i386/i386.c (type_natural_mode): Add a bool parameter
35850 to indicate if type is used for function return value. Warn ABI
35851 change if the vector mode isn't available for function return value.
35852 (ix86_function_arg_advance): Pass false to type_natural_mode.
35853 (ix86_function_arg): Likewise.
35854 (ix86_gimplify_va_arg): Likewise.
35855 (function_arg_32): Don't warn ABI change.
35856 (ix86_function_value): Pass true to type_natural_mode.
35857 (ix86_return_in_memory): Likewise.
35858 (ix86_struct_value_rtx): Removed.
35859 (TARGET_STRUCT_VALUE_RTX): Likewise.
35861 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
35863 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
35864 converting a conditional jump into a conditional return.
35866 2014-01-14 Richard Biener <rguenther@suse.de>
35868 PR tree-optimization/58921
35869 PR tree-optimization/59006
35870 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
35871 hoisting invariant stmts.
35872 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
35873 invariant loads on the preheader edge if possible.
35875 2014-01-14 Joey Ye <joey.ye@arm.com>
35877 * doc/plugin.texi (Building GCC plugins): Update to C++.
35879 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
35881 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
35882 (_mm_rcp28_round_ss): Ditto.
35883 (_mm_rsqrt28_round_sd): Ditto.
35884 (_mm_rsqrt28_round_ss): Ditto.
35885 (_mm_rcp28_sd): Ditto.
35886 (_mm_rcp28_ss): Ditto.
35887 (_mm_rsqrt28_sd): Ditto.
35888 (_mm_rsqrt28_ss): Ditto.
35889 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
35890 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
35891 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
35892 (IX86_BUILTIN_RCP28SD): Ditto.
35893 (IX86_BUILTIN_RCP28SS): Ditto.
35894 (IX86_BUILTIN_RSQRT28SD): Ditto.
35895 (IX86_BUILTIN_RSQRT28SS): Ditto.
35896 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
35897 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
35898 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
35899 (ix86_expand_special_args_builtin): Expand new FTYPE.
35900 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
35901 (srcp14<mode>): Make insn unary.
35902 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
35903 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
35904 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
35905 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
35906 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
35907 Fix rounding: make it SAE only.
35908 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
35910 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
35912 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
35913 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
35914 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
35915 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
35916 (round_saeonly_mask_scalar_operand4): Ditto.
35917 (round_saeonly_mask_scalar_op3): Ditto.
35918 (round_saeonly_mask_scalar_op4): Ditto.
35920 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35922 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
35923 Implement -maltivec=be for vec_insert and vec_extract.
35925 2014-01-10 DJ Delorie <dj@redhat.com>
35927 * config/msp430/msp430.md (call_internal): Don't allow memory
35928 references with SP as the base register.
35929 (call_value_internal): Likewise.
35930 * config/msp430/constraints.md (Yc): New. For memory references
35931 that don't use SP as a base register.
35933 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
35934 "an integer without a # prefix"
35935 * config/msp430/msp430.md (epilogue_helper): Use it.
35937 2014-01-13 Jakub Jelinek <jakub@redhat.com>
35940 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
35941 AVX512F gather builtins.
35942 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
35943 on gather decls with INTEGER_TYPE masktype.
35944 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
35945 directly into the builtin rather than hoisting it before loop.
35947 PR tree-optimization/59387
35948 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
35949 (scev_const_prop): If folded_casts and type has undefined overflow,
35950 use force_gimple_operand instead of force_gimple_operand_gsi and
35951 for each added stmt if it is assign with
35952 arith_code_with_undefined_signed_overflow, call
35953 rewrite_to_defined_overflow.
35954 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
35955 gimple-fold.h instead.
35956 (arith_code_with_undefined_signed_overflow,
35957 rewrite_to_defined_overflow): Moved to ...
35958 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
35959 rewrite_to_defined_overflow): ... here. No longer static.
35960 Include gimplify-me.h.
35961 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
35962 rewrite_to_defined_overflow): New prototypes.
35964 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35966 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
35968 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
35970 * builtins.c (get_object_alignment_2): Minor tweak.
35971 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
35973 2014-01-13 Christian Bruel <christian.bruel@st.com>
35975 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
35976 optimized non constant lengths.
35978 2014-01-13 Jakub Jelinek <jakub@redhat.com>
35981 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
35982 load as __atomic_load_N if possible.
35984 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
35986 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
35988 (rs6000_expand_builtin): Adjust call.
35990 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
35993 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
35994 * config/rs6000/rs6000.c: Include target-globals.h.
35995 (rs6000_set_current_function): Instead of doing target_reinit
35996 unconditionally, use save_target_globals_default_opts and
35997 restore_target_globals.
35999 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
36001 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
36002 (rs6000_expand_builtin): Handle mffs and mtfsf.
36003 (rs6000_init_builtins): Define mffs and mtfsf.
36004 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
36005 (rs6000_mffs): New pattern.
36006 (rs6000_mtfsf): New pattern.
36008 2014-01-11 Bin Cheng <bin.cheng@arm.com>
36010 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
36011 Start narrowing with START. Apply candidate-use pair
36012 and check overall cost in narrowing.
36013 (iv_ca_prune): Pass new argument.
36015 2014-01-10 Jeff Law <law@redhat.com>
36017 PR middle-end/59743
36018 * ree.c (combine_reaching_defs): Ensure the defining statement
36019 occurs before the extension when optimizing extensions with
36020 different source and destination hard registers.
36022 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
36025 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
36026 vtables into the type inheritance graph.
36028 2014-01-10 Jakub Jelinek <jakub@redhat.com>
36030 PR rtl-optimization/59754
36031 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
36032 modes in the REGNO != REGNO case.
36034 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36036 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
36038 2014-01-10 Jakub Jelinek <jakub@redhat.com>
36040 PR tree-optimization/59745
36041 * tree-predcom.c (tree_predictive_commoning_loop): Call
36042 free_affine_expand_cache if giving up because components is NULL.
36044 * target-globals.c (save_target_globals): Allocate < 4KB structs using
36045 GC in payload of target_globals struct instead of allocating them on
36046 the heap and the larger structs separately using GC.
36047 * target-globals.h (struct target_globals): Make regs, hard_regs,
36048 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
36049 of GTY((skip)) and change type to void *.
36050 (reset_target_globals): Cast loads from those fields to corresponding
36053 2014-01-10 Steve Ellcey <sellcey@mips.com>
36056 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
36057 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
36058 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
36060 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
36063 * aarch64-modes.def (CC_Zmode): New flags mode.
36064 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
36065 represents an equality.
36066 (aarch64_get_condition_code): Handle CC_Zmode.
36067 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
36069 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
36071 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
36072 extraction in good case.
36074 2014-01-10 Richard Biener <rguenther@suse.de>
36076 PR tree-optimization/59374
36077 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
36078 checking after SLP discovery. Mark stmts not participating
36079 in any SLP instance properly.
36081 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36083 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
36084 when handling a SET rtx.
36086 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36088 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
36089 (cortex-a57): Likewise.
36090 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
36092 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36094 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
36095 non-iwmmxt builtins.
36097 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
36101 * ipa-devirt.c record_target_from_binfo): Take as argument
36102 stack of binfos and lookup matching one for virtual inheritance.
36103 (possible_polymorphic_call_targets_1): Update.
36105 2014-01-10 Huacai Chen <chenhc@lemote.com>
36107 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
36108 kernel strings for Loongson-2E/2F/3A.
36110 2014-01-10 Jakub Jelinek <jakub@redhat.com>
36112 PR middle-end/59670
36113 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
36114 is_gimple_call before calling gimple_call_internal_p.
36116 2014-01-09 Steve Ellcey <sellcey@mips.com>
36118 * Makefile.in (TREE_FLOW_H): Remove.
36119 (TREE_SSA_H): Add file names from tree-flow.h.
36120 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
36121 * tree.h: Remove tree-flow.h reference.
36122 * hash-table.h: Remove tree-flow.h reference.
36123 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
36124 reference with tree-ssa-loop.h.
36126 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36128 * doc/invoke.texi: Add -maltivec={be,le} options, and document
36129 default element-order behavior for -maltivec.
36130 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
36131 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
36132 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
36133 when targeting big endian, at least for now.
36134 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
36136 2014-01-09 Jakub Jelinek <jakub@redhat.com>
36138 PR middle-end/47735
36139 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
36140 var satisfies use_register_for_decl, just take into account type
36141 alignment, rather than decl alignment.
36143 PR tree-optimization/59622
36144 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
36145 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
36146 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
36147 Don't devirtualize for inplace at all. For targets.length () == 1,
36148 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
36150 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
36152 * config/i386/i386.md (cpu): Remove the unused btver1.
36154 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
36156 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
36158 2014-01-09 Jakub Jelinek <jakub@redhat.com>
36161 * tree-core.h (struct target_globals): New forward declaration.
36162 (struct tree_target_option): Add globals field.
36163 * tree.h (TREE_TARGET_GLOBALS): Define.
36164 (prepare_target_option_nodes_for_pch): New prototype.
36165 * target-globals.h (struct target_globals): Define even if
36166 !SWITCHABLE_TARGET.
36167 * tree.c (prepare_target_option_node_for_pch,
36168 prepare_target_option_nodes_for_pch): New functions.
36169 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
36170 * config/i386/i386.c: Include target-globals.h.
36171 (ix86_set_current_function): Instead of doing target_reinit
36172 unconditionally, use save_target_globals_default_opts and
36173 restore_target_globals.
36175 2014-01-09 Richard Biener <rguenther@suse.de>
36177 PR tree-optimization/59715
36178 * tree-cfg.h (split_critical_edges): Declare.
36179 * tree-cfg.c (split_critical_edges): Export.
36180 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
36182 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
36184 * cfgexpand.c (expand_stack_vars): Optionally disable
36185 asan stack protection.
36186 (expand_used_vars): Likewise.
36187 (partition_stack_vars): Likewise.
36188 * asan.c (asan_emit_stack_protection): Optionally disable
36189 after return stack usage.
36190 (instrument_derefs): Optionally disable memory access instrumentation.
36191 (instrument_builtin_call): Likewise.
36192 (instrument_strlen_call): Likewise.
36193 (asan_protect_global): Optionally disable global variables protection.
36194 * doc/invoke.texi: Added doc for new options.
36195 * params.def: Added new options.
36196 * params.h: Likewise.
36198 2014-01-09 Jakub Jelinek <jakub@redhat.com>
36200 PR rtl-optimization/59724
36201 * ifcvt.c (cond_exec_process_if_block): Don't call
36202 flow_find_head_matching_sequence with 0 longest_match.
36203 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
36204 non-active insns if !stop_after.
36205 (try_head_merge_bb): Revert 2014-01-07 changes.
36207 2014-01-08 Jeff Law <law@redhat.com>
36209 * ree.c (get_sub_rtx): New function, extracted from...
36210 (merge_def_and_ext): Here.
36211 (combine_reaching_defs): Use get_sub_rtx.
36213 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
36215 * cgraph.h (varpool_variable_node): Do not choke on null node.
36217 2014-01-08 Catherine Moore <clm@codesourcery.com>
36219 * config/mips/mips.md (simple_return): Attempt to use JRC
36221 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
36223 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
36225 PR rtl-optimization/59137
36226 * reorg.c (steal_delay_list_from_target): Call update_block for
36228 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
36230 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36232 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
36233 two duplicate entries.
36235 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
36238 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
36240 * config/mips/mips.c (mips_truncated_op_cost): New function.
36241 (mips_rtx_costs): Adjust test for BADDU.
36242 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
36244 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
36246 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
36247 (*baddu_si): ...this new pattern.
36249 2014-01-08 Jakub Jelinek <jakub@redhat.com>
36252 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
36254 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
36256 PR middle-end/57748
36257 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
36259 (expand_expr, expand_normal): Adjust.
36260 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
36261 inner_reference_p. Use inner_reference_p to expand inner references.
36262 (store_expr): Adjust.
36263 * cfgexpand.c (expand_call_stmt): Adjust.
36265 2014-01-08 Rong Xu <xur@google.com>
36267 * gcov-io.c (gcov_var): Move from gcov-io.h.
36268 (gcov_position): Ditto.
36269 (gcov_is_error): Ditto.
36270 (gcov_rewrite): Ditto.
36271 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
36272 only part to libgcc/libgcov.h.
36274 2014-01-08 Marek Polacek <polacek@redhat.com>
36276 PR middle-end/59669
36277 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
36279 2014-01-08 Marek Polacek <polacek@redhat.com>
36282 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
36284 2014-01-08 Jakub Jelinek <jakub@redhat.com>
36286 PR rtl-optimization/59649
36287 * stor-layout.c (get_mode_bounds): For BImode return
36288 0 and STORE_FLAG_VALUE.
36290 2014-01-08 Richard Biener <rguenther@suse.de>
36292 PR middle-end/59630
36293 * gimple.h (is_gimple_builtin_call): Remove.
36294 (gimple_builtin_call_types_compatible_p): New.
36295 (gimple_call_builtin_p): New overload.
36296 * gimple.c (is_gimple_builtin_call): Remove.
36297 (validate_call): Rename to ...
36298 (gimple_builtin_call_types_compatible_p): ... this and export. Also
36299 check return types.
36300 (validate_type): New static function.
36301 (gimple_call_builtin_p): New overload and adjust.
36302 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
36303 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
36304 (gimple_fold_stmt_to_constant_1): Likewise.
36305 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
36307 2014-01-08 Richard Biener <rguenther@suse.de>
36309 PR middle-end/59471
36310 * gimplify.c (gimplify_expr): Gimplify register-register type
36311 VIEW_CONVERT_EXPRs to separate stmts.
36313 2014-01-07 Jeff Law <law@redhat.com>
36315 PR middle-end/53623
36316 * ree.c (combine_set_extension): Handle case where source
36317 and destination registers in an extension insn are different.
36318 (combine_reaching_defs): Allow source and destination registers
36319 in extension to be different under limited circumstances.
36320 (add_removable_extension): Remove restriction that the
36321 source and destination registers in the extension are the same.
36322 (find_and_remove_re): Emit a copy from the extension's
36323 destination to its source after the defining insn if
36324 the source and destination registers are different.
36326 PR middle-end/59285
36327 * ifcvt.c (merge_if_block): If we are merging a block with more than
36328 one successor with a block with no successors, remove any BARRIER
36329 after the second block.
36331 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
36333 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
36335 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
36338 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
36339 for 14-bit register offsets when INT14_OK_STRICT is false.
36341 2014-01-07 Roland Stigge <stigge@antcom.de>
36342 Michael Meissner <meissner@linux.vnet.ibm.com>
36345 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
36346 Only check TFmode for SPE constants. Don't check TImode or TDmode.
36348 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
36350 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
36353 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
36355 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
36356 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
36357 rtx is const0_rtx or not.
36359 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
36362 * target-globals.c (save_target_globals): Remove this_fn_optab
36364 * toplev.c: Include optabs.h.
36365 (target_reinit): Temporarily restore the global options if another
36366 set of options are in force.
36368 2014-01-07 Jakub Jelinek <jakub@redhat.com>
36370 PR rtl-optimization/58668
36371 * cfgcleanup.c (flow_find_cross_jump): Don't count
36372 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
36373 to determine what is counted.
36374 (flow_find_head_matching_sequence): Use active_insn_p to determine
36376 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
36378 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
36379 determine what is counted.
36381 PR tree-optimization/59643
36382 * tree-predcom.c (split_data_refs_to_components): If one dr is
36383 read and one write, determine_offset fails and the write isn't
36384 in the bad component, just put the read into the bad component.
36386 2014-01-07 Mike Stump <mikestump@comcast.net>
36387 Jakub Jelinek <jakub@redhat.com>
36390 * tree-core.h (struct tree_optimization_option): Change optabs
36391 type from unsigned char * to void *.
36392 * optabs.c (init_tree_optimization_optabs): Adjust
36393 TREE_OPTIMIZATION_OPTABS initialization.
36395 2014-01-06 Jakub Jelinek <jakub@redhat.com>
36398 * config/i386/i386.h (struct machine_function): Add
36399 no_drap_save_restore field.
36400 * config/i386/i386.c (ix86_save_reg): Use
36401 !cfun->machine->no_drap_save_restore instead of
36402 crtl->stack_realign_needed.
36403 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
36404 this function clears frame_pointer_needed. Set
36405 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
36406 and DRAP reg is needed.
36408 2014-01-06 Marek Polacek <polacek@redhat.com>
36411 * doc/implement-c.texi: Mention that other integer types are
36412 permitted as bit-field types in strictly conforming mode.
36414 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
36416 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
36417 is newly allocated.
36419 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
36421 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
36423 2014-01-06 Martin Jambor <mjambor@suse.cz>
36426 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
36428 * ipa-prop.c (ipa_print_node_params): Fix indentation.
36430 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
36434 * var-tracking.c (add_stores): Preserve the value of the source even if
36435 we don't record the store.
36437 2014-01-06 Terry Guo <terry.guo@arm.com>
36439 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
36441 2014-01-05 Iain Sandoe <iain@codesourcery.com>
36444 * config/darwin.c (darwin_function_section): Adjust return values to
36445 correspond to optimisation changes made in r206070.
36447 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
36449 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
36450 from prefetch_block tune setting.
36451 (nocona_cost): Correct size of prefetch block to 64.
36453 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
36455 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
36456 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
36457 used to save the static chain register in the computation of the offset
36458 from which the FP registers need to be restored.
36460 2014-01-04 Jakub Jelinek <jakub@redhat.com>
36462 PR tree-optimization/59519
36463 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
36464 ICE if get_current_def (current_new_name) is already non-NULL, as long
36465 as it is a phi result of some other phi in *new_exit_bb that has
36468 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
36469 or vmovdqu* for misaligned_operand.
36470 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
36471 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
36472 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
36473 aligned_mem for AVX512F masked aligned load and store builtins and for
36474 non-temporal moves.
36476 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
36478 PR tree-optimization/59651
36479 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
36480 Address range for negative step should be added by TYPE_SIZE_UNIT.
36482 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
36484 * config/m68k/m68k.c (handle_move_double): Handle pushes with
36485 overlapping registers also for registers other than the stack pointer.
36487 2014-01-03 Marek Polacek <polacek@redhat.com>
36490 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
36493 2014-01-03 Jakub Jelinek <jakub@redhat.com>
36496 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
36499 * config/i386/i386.md (MODE_SIZE): New mode attribute.
36500 (push splitter): Use <P:MODE_SIZE> instead of
36501 GET_MODE_SIZE (<P:MODE>mode).
36502 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
36503 (mov -1, reg peephole2): Likewise.
36504 * config/i386/sse.md (*mov<mode>_internal,
36505 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
36506 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
36507 *<code><mode>3, *andnot<mode>3<mask_name>,
36508 <mask_codefor><code><mode>3<mask_name>): Likewise.
36509 * config/i386/subst.md (mask_mode512bit_condition,
36510 sd_mask_mode512bit_condition): Likewise.
36512 2014-01-02 Xinliang David Li <davidxl@google.com>
36514 PR tree-optimization/59303
36515 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
36516 (dump_predicates): Better output format.
36517 (pred_equal_p): New function.
36518 (is_neq_relop_p): Ditto.
36519 (is_neq_zero_form_p): Ditto.
36520 (pred_expr_equal_p): Ditto.
36521 (pred_neg_p): Ditto.
36522 (simplify_pred): Ditto.
36523 (simplify_preds_2): Ditto.
36524 (simplify_preds_3): Ditto.
36525 (simplify_preds_4): Ditto.
36526 (simplify_preds): Ditto.
36527 (push_pred): Ditto.
36528 (push_to_worklist): Ditto.
36529 (get_pred_info_from_cmp): Ditto.
36530 (is_degenerated_phi): Ditto.
36531 (normalize_one_pred_1): Ditto.
36532 (normalize_one_pred): Ditto.
36533 (normalize_one_pred_chain): Ditto.
36534 (normalize_preds): Ditto.
36535 (normalize_cond_1): Remove function.
36536 (normalize_cond): Ditto.
36537 (is_gcond_subset_of): Ditto.
36538 (is_subset_of_any): Ditto.
36539 (is_or_set_subset_of): Ditto.
36540 (is_and_set_subset_of): Ditto.
36541 (is_norm_cond_subset_of): Ditto.
36542 (pred_chain_length_cmp): Ditto.
36543 (convert_control_dep_chain_into_preds): Type change.
36544 (find_predicates): Ditto.
36545 (find_def_preds): Ditto.
36546 (destroy_predicates_vecs): Ditto.
36547 (find_matching_predicates_in_rest_chains): Ditto.
36548 (use_pred_not_overlap_with_undef_path_pred): Ditto.
36549 (is_pred_expr_subset): Ditto.
36550 (is_pred_chain_subset_of): Ditto.
36551 (is_included_in): Ditto.
36552 (is_superset_of): Ditto.
36554 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
36556 Update copyright years.
36558 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
36560 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
36561 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
36562 config/arc/arc.md, config/arc/arc.opt,
36563 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
36564 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
36565 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
36566 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
36567 config/linux-protos.h, config/linux.c, config/winnt-c.c,
36568 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
36569 vtable-verify.c, vtable-verify.h: Use the standard form for the
36572 2014-01-02 Tobias Burnus <burnus@net-b.de>
36574 * gcc.c (process_command): Update copyright notice dates.
36575 * gcov-dump.c: Ditto.
36577 * doc/cpp.texi: Bump @copying's copyright year.
36578 * doc/cppinternals.texi: Ditto.
36579 * doc/gcc.texi: Ditto.
36580 * doc/gccint.texi: Ditto.
36581 * doc/gcov.texi: Ditto.
36582 * doc/install.texi: Ditto.
36583 * doc/invoke.texi: Ditto.
36585 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
36587 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
36589 2014-01-01 Jakub Jelinek <jakub@redhat.com>
36591 * config/i386/sse.md (*mov<mode>_internal): Guard
36592 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
36594 PR rtl-optimization/59647
36595 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
36596 new_rtx into UNSIGNED_FLOAT rtxes.
36598 Copyright (C) 2014 Free Software Foundation, Inc.
36600 Copying and distribution of this file, with or without modification,
36601 are permitted in any medium without royalty provided the copyright
36602 notice and this notice are preserved.