spu.c: Include rtl-iter.h
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2
3         * config/spu/spu.c: Include rtl-iter.h
4         (ea_symbol_ref): Replace with...
5         (ea_symbol_ref_p): ...this new function.
6         (spu_legitimate_address_p): Update call accordingly.
7         (spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.
8
9 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
10             Tom Tromey  <tromey@redhat.com>
11
12         * aclocal.m4, configure: Rebuild.
13         * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
14         * configure.ac: Use GCC_ENABLE_PLUGINS.
15         * stor-layout.c (finish_bitfield_layout): Now public.  Change
16         argument type to 'tree'.
17         (finish_record_layout): Update.
18         * stor-layout.h (finish_bitfield_layout): Declare.
19
20 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
21
22         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
23         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
24         Restore, enable for bigendian, update to use __builtin..._scal...
25
26 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
27
28         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
29         reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
30         (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
31         reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
32
33         * config/aarch64/aarch64-simd.md
34         (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
35         (reduc_<maxmin_uns>_internal<mode>): ...this.
36         (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
37         (reduc_<maxmin_uns>_scal_<mode>): New (*2).
38
39         (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
40         (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
41         (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
42
43         * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
44         vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
45         vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
46         vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
47         vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
48         vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
49         vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
50         __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
51
52 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
53
54         * config/aarch64/aarch64-simd-builtins.def
55         (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
56         Remove.
57         (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
58
59         * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
60         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
61
62         (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
63         (aarch64_reduc_plus_internal<mode>): ...this.
64
65         (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
66         (aarch64_reduc_plus_internalv2si): ...this.
67
68         (reduc_splus_<mode>/V2F): Rename to...
69         (aarch64_reduc_plus_internal<mode>): ...this.
70
71         * config/aarch64/iterators.md
72         (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
73         (UNSPEC_ADDV): New.
74         (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
75
76         * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
77         vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
78         vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
79         vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
80         __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
81
82 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
83
84         PR tree-optimization/61114
85         * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
86         optabs, and note in reduc_[us](plus|min|max) to prefer the former.
87
88         * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
89         back to old reduc_... + BIT_FIELD_REF only if not.
90
91         * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
92         return the reduce-to-scalar (reduc_..._scal) optab.
93         (scalar_reduc_to_vector): New.
94
95         * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
96         reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
97         New.
98
99         * optabs.h (scalar_reduc_to_vector): Declare.
100
101         * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
102         to either scalar or vector.
103
104 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
105
106         PR tree-optimization/61114
107         * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
108         extract_bit_field around optab result.
109
110         * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
111         scalar not vector.
112
113         * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
114         for REDUC_{MIN,MAX,PLUS}_EXPR.
115
116         * tree-vect-loop.c (vect_analyze_loop): Update comment.
117         (vect_create_epilog_for_reduction): For direct vector reduction, use
118         result of tree code directly without extract_bit_field.
119
120         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
121         comment.
122
123 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
124
125         * basic-block.h: Remove all includes.
126         (enum profile_status_d, struct control_flow_graph): Move to cfg.h
127         * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
128         * Makefile.in (GTFILES): Add cfg.h to list.
129         * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
130         * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
131         * genconditions.c (write_header): Add predict.h and basic-block.h to
132         lits of includes.
133         * genemit.c (main): Ditto.
134         * genpreds.c (write_insn_preds_c): Ditto.
135         * genrecog.c (write_header): Ditto.
136         * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
137         to list of includes.
138         * alias.c: Adjust include files.
139         * asan.c: Ditto.
140         * auto-inc-dec.c: Ditto.
141         * auto-profile.c: Ditto.
142         * bb-reorder.c: Ditto.
143         * bt-load.c: Ditto.
144         * builtins.c: Ditto.
145         * caller-save.c: Ditto.
146         * calls.c: Ditto.
147         * cfg.c: Ditto.
148         * cfganal.c: Ditto.
149         * cfgbuild.c: Ditto.
150         * cfgcleanup.c: Ditto.
151         * cfgexpand.c: Ditto.
152         * cfghooks.c: Ditto.
153         * cfgloop.c: Ditto.
154         * cfgloopanal.c: Ditto.
155         * cfgloopmanip.c: Ditto.
156         * cfgrtl.c: Ditto.
157         * cgraphbuild.c: Ditto.
158         * cgraphclones.c: Ditto.
159         * cgraphunit.c: Ditto.
160         * combine-stack-adj.c: Ditto.
161         * combine.c: Ditto.
162         * compare-elim.c: Ditto.
163         * coverage.c: Ditto.
164         * cprop.c: Ditto.
165         * cse.c: Ditto.
166         * cselib.c: Ditto.
167         * data-streamer-in.c: Ditto.
168         * data-streamer-out.c: Ditto.
169         * data-streamer.c: Ditto.
170         * dce.c: Ditto.
171         * ddg.c: Ditto.
172         * ddg.h: Ditto.
173         * df-core.c: Ditto.
174         * df-problems.c: Ditto.
175         * df-scan.c: Ditto.
176         * df.h: Ditto.
177         * dojump.c: Ditto.
178         * dominance.c: Ditto.
179         * domwalk.c: Ditto.
180         * dse.c: Ditto.
181         * dwarf2cfi.c: Ditto.
182         * emit-rtl.c: Ditto.
183         * et-forest.c: Ditto.
184         * except.c: Ditto.
185         * expmed.c: Ditto.
186         * expr.c: Ditto.
187         * final.c: Ditto.
188         * fold-const.c: Ditto.
189         * function.c: Ditto.
190         * fwprop.c: Ditto.
191         * gcc-plugin.h: Ditto.
192         * gcse.c: Ditto.
193         * generic-match-head.c: Ditto.
194         * ggc-page.c: Ditto.
195         * gimple-builder.c: Ditto.
196         * gimple-expr.c: Ditto.
197         * gimple-fold.c: Ditto.
198         * gimple-iterator.c: Ditto.
199         * gimple-low.c: Ditto.
200         * gimple-match-head.c: Ditto.
201         * gimple-pretty-print.c: Ditto.
202         * gimple-ssa-isolate-paths.c: Ditto.
203         * gimple-ssa-strength-reduction.c: Ditto.
204         * gimple-streamer-in.c: Ditto.
205         * gimple-streamer-out.c: Ditto.
206         * gimple-streamer.h: Ditto.
207         * gimple-walk.c: Ditto.
208         * gimple.c: Ditto.
209         * gimplify-me.c: Ditto.
210         * gimplify.c: Ditto.
211         * graph.c: Ditto.
212         * graphite-blocking.c: Ditto.
213         * graphite-clast-to-gimple.c: Ditto.
214         * graphite-dependences.c: Ditto.
215         * graphite-interchange.c: Ditto.
216         * graphite-isl-ast-to-gimple.c: Ditto.
217         * graphite-optimize-isl.c: Ditto.
218         * graphite-poly.c: Ditto.
219         * graphite-scop-detection.c: Ditto.
220         * graphite-sese-to-poly.c: Ditto.
221         * graphite.c: Ditto.
222         * haifa-sched.c: Ditto.
223         * hw-doloop.c: Ditto.
224         * ifcvt.c: Ditto.
225         * init-regs.c: Ditto.
226         * internal-fn.c: Ditto.
227         * ipa-cp.c: Ditto.
228         * ipa-devirt.c: Ditto.
229         * ipa-icf-gimple.c: Ditto.
230         * ipa-icf.c: Ditto.
231         * ipa-inline-analysis.c: Ditto.
232         * ipa-inline.c: Ditto.
233         * ipa-polymorphic-call.c: Ditto.
234         * ipa-profile.c: Ditto.
235         * ipa-prop.c: Ditto.
236         * ipa-pure-const.c: Ditto.
237         * ipa-reference.c: Ditto.
238         * ipa-split.c: Ditto.
239         * ipa-utils.c: Ditto.
240         * ipa.c: Ditto.
241         * ira-build.c: Ditto.
242         * ira-color.c: Ditto.
243         * ira-conflicts.c: Ditto.
244         * ira-costs.c: Ditto.
245         * ira-emit.c: Ditto.
246         * ira-lives.c: Ditto.
247         * ira.c: Ditto.
248         * jump.c: Ditto.
249         * lcm.c: Ditto.
250         * loop-doloop.c: Ditto.
251         * loop-init.c: Ditto.
252         * loop-invariant.c: Ditto.
253         * loop-iv.c: Ditto.
254         * loop-unroll.c: Ditto.
255         * lower-subreg.c: Ditto.
256         * lra-assigns.c: Ditto.
257         * lra-coalesce.c: Ditto.
258         * lra-constraints.c: Ditto.
259         * lra-eliminations.c: Ditto.
260         * lra-lives.c: Ditto.
261         * lra-spills.c: Ditto.
262         * lra.c: Ditto.
263         * lto-cgraph.c: Ditto.
264         * lto-compress.c: Ditto.
265         * lto-opts.c: Ditto.
266         * lto-section-in.c: Ditto.
267         * lto-section-out.c: Ditto.
268         * lto-streamer-in.c: Ditto.
269         * lto-streamer-out.c: Ditto.
270         * lto-streamer.c: Ditto.
271         * mcf.c: Ditto.
272         * mode-switching.c: Ditto.
273         * modulo-sched.c: Ditto.
274         * omp-low.c: Ditto.
275         * optabs.c: Ditto.
276         * opts-global.c: Ditto.
277         * passes.c: Ditto.
278         * postreload-gcse.c: Ditto.
279         * postreload.c: Ditto.
280         * predict.c: Ditto.
281         * print-rtl.c: Ditto.
282         * profile.c: Ditto.
283         * recog.c: Ditto.
284         * ree.c: Ditto.
285         * reg-stack.c: Ditto.
286         * regcprop.c: Ditto.
287         * regcprop.h: Ditto.
288         * reginfo.c: Ditto.
289         * regrename.c: Ditto.
290         * regstat.c: Ditto.
291         * reload.c: Ditto.
292         * reload1.c: Ditto.
293         * reorg.c: Ditto.
294         * resource.c: Ditto.
295         * rtlanal.c: Ditto.
296         * sched-deps.c: Ditto.
297         * sched-ebb.c: Ditto.
298         * sched-int.h: Ditto.
299         * sched-rgn.c: Ditto.
300         * sched-vis.c: Ditto.
301         * sel-sched-dump.c: Ditto.
302         * sel-sched-ir.c: Ditto.
303         * sel-sched-ir.h: Ditto.
304         * sel-sched.c: Ditto.
305         * sese.c: Ditto.
306         * shrink-wrap.c: Ditto.
307         * stack-ptr-mod.c: Ditto.
308         * stmt.c: Ditto.
309         * store-motion.c: Ditto.
310         * symtab.c: Ditto.
311         * toplev.c: Ditto.
312         * tracer.c: Ditto.
313         * trans-mem.c: Ditto.
314         * tree-affine.c: Ditto.
315         * tree-call-cdce.c: Ditto.
316         * tree-cfg.c: Ditto.
317         * tree-cfgcleanup.c: Ditto.
318         * tree-chrec.c: Ditto.
319         * tree-complex.c: Ditto.
320         * tree-data-ref.c: Ditto.
321         * tree-dfa.c: Ditto.
322         * tree-eh.c: Ditto.
323         * tree-emutls.c: Ditto.
324         * tree-if-conv.c: Ditto.
325         * tree-inline.c: Ditto.
326         * tree-into-ssa.c: Ditto.
327         * tree-loop-distribution.c: Ditto.
328         * tree-nested.c: Ditto.
329         * tree-nrv.c: Ditto.
330         * tree-object-size.c: Ditto.
331         * tree-outof-ssa.c: Ditto.
332         * tree-parloops.c: Ditto.
333         * tree-phinodes.c: Ditto.
334         * tree-predcom.c: Ditto.
335         * tree-pretty-print.c: Ditto.
336         * tree-profile.c: Ditto.
337         * tree-scalar-evolution.c: Ditto.
338         * tree-sra.c: Ditto.
339         * tree-ssa-address.c: Ditto.
340         * tree-ssa-alias.c: Ditto.
341         * tree-ssa-ccp.c: Ditto.
342         * tree-ssa-coalesce.c: Ditto.
343         * tree-ssa-copy.c: Ditto.
344         * tree-ssa-copyrename.c: Ditto.
345         * tree-ssa-dce.c: Ditto.
346         * tree-ssa-dom.c: Ditto.
347         * tree-ssa-dse.c: Ditto.
348         * tree-ssa-forwprop.c: Ditto.
349         * tree-ssa-ifcombine.c: Ditto.
350         * tree-ssa-live.c: Ditto.
351         * tree-ssa-loop-ch.c: Ditto.
352         * tree-ssa-loop-im.c: Ditto.
353         * tree-ssa-loop-ivcanon.c: Ditto.
354         * tree-ssa-loop-ivopts.c: Ditto.
355         * tree-ssa-loop-manip.c: Ditto.
356         * tree-ssa-loop-niter.c: Ditto.
357         * tree-ssa-loop-prefetch.c: Ditto.
358         * tree-ssa-loop-unswitch.c: Ditto.
359         * tree-ssa-loop.c: Ditto.
360         * tree-ssa-math-opts.c: Ditto.
361         * tree-ssa-operands.c: Ditto.
362         * tree-ssa-phiopt.c: Ditto.
363         * tree-ssa-phiprop.c: Ditto.
364         * tree-ssa-pre.c: Ditto.
365         * tree-ssa-propagate.c: Ditto.
366         * tree-ssa-reassoc.c: Ditto.
367         * tree-ssa-sccvn.c: Ditto.
368         * tree-ssa-sink.c: Ditto.
369         * tree-ssa-strlen.c: Ditto.
370         * tree-ssa-structalias.c: Ditto.
371         * tree-ssa-tail-merge.c: Ditto.
372         * tree-ssa-ter.c: Ditto.
373         * tree-ssa-threadedge.c: Ditto.
374         * tree-ssa-threadupdate.c: Ditto.
375         * tree-ssa-uncprop.c: Ditto.
376         * tree-ssa-uninit.c: Ditto.
377         * tree-ssa.c: Ditto.
378         * tree-ssanames.c: Ditto.
379         * tree-stdarg.c: Ditto.
380         * tree-streamer-in.c: Ditto.
381         * tree-streamer-out.c: Ditto.
382         * tree-streamer.c: Ditto.
383         * tree-switch-conversion.c: Ditto.
384         * tree-tailcall.c: Ditto.
385         * tree-vect-data-refs.c: Ditto.
386         * tree-vect-generic.c: Ditto.
387         * tree-vect-loop-manip.c: Ditto.
388         * tree-vect-loop.c: Ditto.
389         * tree-vect-patterns.c: Ditto.
390         * tree-vect-slp.c: Ditto.
391         * tree-vect-stmts.c: Ditto.
392         * tree-vectorizer.c: Ditto.
393         * tree-vrp.c: Ditto.
394         * tree.c: Ditto.
395         * tsan.c: Ditto.
396         * ubsan.c: Ditto.
397         * valtrack.c: Ditto.
398         * valtrack.h: Ditto.
399         * value-prof.c: Ditto.
400         * var-tracking.c: Ditto.
401         * varasm.c: Ditto.
402         * varpool.c: Ditto.
403         * vtable-verify.c: Ditto.
404         * web.c: Ditto.
405         * config/aarch64/aarch64-builtins.c: Ditto.
406         * config/aarch64/aarch64.c: Ditto.
407         * config/alpha/alpha.c: Ditto.
408         * config/arc/arc.c: Ditto.
409         * config/arm/arm.c: Ditto.
410         * config/avr/avr.c: Ditto.
411         * config/bfin/bfin.c: Ditto.
412         * config/c6x/c6x.c: Ditto.
413         * config/cr16/cr16.c: Ditto.
414         * config/cris/cris.c: Ditto.
415         * config/darwin-c.c: Ditto.
416         * config/darwin.c: Ditto.
417         * config/epiphany/epiphany.c: Ditto.
418         * config/epiphany/mode-switch-use.c: Ditto.
419         * config/epiphany/resolve-sw-modes.c: Ditto.
420         * config/fr30/fr30.c: Ditto.
421         * config/frv/frv.c: Ditto.
422         * config/h8300/h8300.c: Ditto.
423         * config/i386/i386.c: Ditto.
424         * config/i386/winnt.c: Ditto.
425         * config/ia64/ia64.c: Ditto.
426         * config/iq2000/iq2000.c: Ditto.
427         * config/lm32/lm32.c: Ditto.
428         * config/m32c/m32c.c: Ditto.
429         * config/m32r/m32r.c: Ditto.
430         * config/m68k/m68k.c: Ditto.
431         * config/mcore/mcore.c: Ditto.
432         * config/mep/mep.c: Ditto.
433         * config/microblaze/microblaze.c: Ditto.
434         * config/mips/mips.c: Ditto.
435         * config/mmix/mmix.c: Ditto.
436         * config/mn10300/mn10300.c: Ditto.
437         * config/moxie/moxie.c: Ditto.
438         * config/msp430/msp430.c: Ditto.
439         * config/nds32/nds32-cost.c: Ditto.
440         * config/nds32/nds32-fp-as-gp.c: Ditto.
441         * config/nds32/nds32-intrinsic.c: Ditto.
442         * config/nds32/nds32-isr.c: Ditto.
443         * config/nds32/nds32-md-auxiliary.c: Ditto.
444         * config/nds32/nds32-memory-manipulation.c: Ditto.
445         * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
446         * config/nds32/nds32-predicates.c: Ditto.
447         * config/nds32/nds32.c: Ditto.
448         * config/nios2/nios2.c: Ditto.
449         * config/pa/pa.c: Ditto.
450         * config/pdp11/pdp11.c: Ditto.
451         * config/rl78/rl78.c: Ditto.
452         * config/rs6000/rs6000.c: Ditto.
453         * config/rx/rx.c: Ditto.
454         * config/s390/s390.c: Ditto.
455         * config/sh/sh-mem.cc: Ditto.
456         * config/sh/sh.c: Ditto.
457         * config/sh/sh_optimize_sett_clrt.cc: Ditto.
458         * config/sh/sh_treg_combine.cc: Ditto.
459         * config/sparc/sparc.c: Ditto.
460         * config/spu/spu.c: Ditto.
461         * config/stormy16/stormy16.c: Ditto.
462         * config/tilegx/tilegx.c: Ditto.
463         * config/tilepro/tilepro.c: Ditto.
464         * config/v850/v850.c: Ditto.
465         * config/vax/vax.c: Ditto.
466         * config/xtensa/xtensa.c: Ditto.
467
468 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
469
470         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
471         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
472         Remove using preprocessor directives.
473
474 2014-10-27  Richard Biener  <rguenther@suse.de>
475
476         * match.pd (0 % X): Properly use the iterator iterating over
477         all modulo operators.
478         (X % 1): Likewise.
479
480 2014-10-27  Richard Biener  <rguenther@suse.de>
481
482         * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
483         (lattice): New global.
484         (fwprop_ssa_val): New function.
485         (fold_all_stmts): Likewise.
486         (pass_forwprop::execute): Finally fold all stmts.
487
488 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
489
490         PR c++/53061
491         * doc/invoke.texi (fmessage-length): Update text to match reality.
492
493 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
494
495         * config/microblaze/microblaze.c: Include rtl-iter.h.
496         (microblaze_tls_referenced_p_1): Delete.
497         (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
498
499 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
500
501         * config/mips/mips.c (mips_at_reg_p): Delete.
502         (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
503
504 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
505
506         * config/mips/mips.c (mips_record_lo_sum): Replace with...
507         (mips_record_lo_sums): ...this new function.
508         (mips_reorg_process_insns): Update accordingly.
509
510 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
511
512         * config/mips/mips.c (mips_sim_insn): Update comment.
513         (mips_sim_wait_regs_2): Delete.
514         (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
515
516 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
517
518         * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
519         and return a bool.  Iterate over all subrtxes here.
520         (r10k_needs_protection_p): Update accordingly.
521
522 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
523
524         * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
525         rather than an rtx pointer.  Change type of insn from "void *"
526         to its real type.  Return bool rather than int.  Iterate over
527         all subrtxes here.
528         (r10k_needs_protection_p_store): Update accordingly.
529         (r10k_needs_protection_p): Likewise.
530
531 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
532
533         * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
534         (mips16_rewrite_pool_refs): Take the insn and constant pool as
535         parameters.  Iterate over the instruction's pattern and return void.
536         (mips16_lay_out_constants): Update accordingly.
537
538 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
539
540         * config/mips/mips.c (mips_kernel_reg_p): Replace with...
541         (mips_refers_to_kernel_reg_p): ...this new function.
542         (mips_expand_prologue): Update accordingly.
543
544 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
545
546         * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
547         as a parameter instead of the containing MEM.  Iterate over all
548         subrtxes.  Don't return a value.
549         (mips_rewrite_small_data): Update call accordingly.
550
551 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
552
553         * config/mips/mips.c: Include rtl-iter.h.
554         (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
555         Take the context as a parameter instead of the containing MEM.
556         Iterate over all subrtxes.
557         (mips_small_data_pattern_p): Update call accordingly.
558
559 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
560
561         * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
562         (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
563
564 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
565
566         * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
567         return a bool.  Replace "void *" with specific type.  Iterate
568         over all subrtxes.
569         (mep_store_data_bypass_1): Update calls accordingly.
570
571 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
572
573         * config/mep/mep.c: Include rtl-iter.h.
574         (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
575         (xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.
576
577 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
578
579         * config/xtensa/xtensa.c: Include rtl-iter.h.
580         (xtensa_tls_referenced_p_1): Delete.
581         (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
582
583 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
584
585         * config/sh/sh.c (sh_contains_memref_p_1): Delete.
586         (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
587
588 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
589
590         * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
591         rtx as argument and return the number of changes.
592         * config/sh/sh.c: Include rtl-iter.h.
593         (shmedia_cleanup_truncate): Take an rtx as argument and iterate
594         over all subrtxes.  Return the number of changes made.
595         * config/sh/sh.md: Update caller accordingly.
596
597 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
598
599         * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
600         (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
601
602 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
603
604         * config/m68k/m68k.c: Include rtl-iter.h.
605         (m68k_final_prescan_insn_1): Delete.
606         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
607
608 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
609
610         PR tree-optimization/63641
611         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
612         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
613
614 2014-10-25  Alan Modra  <amodra@gmail.com>
615
616         PR rtl-optimization/63615
617         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
618         decomposing PLUS or MINUS if operands are not placed adjacent
619         in the "ops" array.
620
621 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
622
623         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
624         not allow e500 double in registers not satisyfing
625         SPE_SIMD_REGNO_P.
626
627 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
628
629         * dwarf2out.c (declare_in_namespace): Only emit external
630         declarations in the local scope once.
631
632 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
633
634         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
635
636 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
637
638         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
639         update uses to use new macro arguments.
640         (__LD3_LANE_FUNC): Likewise.
641         (__LD4_LANE_FUNC): Likewise.
642
643 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
644
645         * config/aarch64/aarch64-builtins.c
646         (aarch64_types_loadstruct_lane_qualifiers): Define.
647         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
648         ld4_lane): New builtins.
649         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
650         New pattern.
651         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
652         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
653         (aarch64_ld2_lane<mode>): New expand.
654         (aarch64_ld3_lane<mode>): Likewise.
655         (aarch64_ld4_lane<mode>): Likewise.
656         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
657         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
658
659 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
660
661         * avr-protos.h (avr_out_sign_extend): New.
662         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
663         (avr_out_sign_extend): New function.
664         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
665         (extendhisi2, extendpsisi2): Use it.
666         (adjust_len) [sext]: New.
667
668 2014-10-24  Martin Liska  <mliska@suse.cz>
669
670         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
671         added.
672
673 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
674
675         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
676         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
677         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
678         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
679
680 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
681
682         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
683         do while (0).
684         * config/aarch64/aarch64.c (is_mem_p): Delete.
685         (is_memory_op): Rename to...
686         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
687         (dep_between_memop_and_curr): Assert that the input is a SET.
688         (aarch64_madd_needs_nop): Add comment.  Do not call
689         dep_between_memop_and_curr on NULL body.
690         (aarch64_final_prescan_insn): Add comment.
691         Include rtl-iter.h.
692
693 2014-10-24  Richard Biener  <rguenther@suse.de>
694
695         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
696         to genmatch BUILD_LIBS instead.
697
698 2014-10-24  Richard Biener  <rguenther@suse.de>
699
700         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
701         and build_call_expr_loc.
702         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
703         non_lvalue_loc to build it for GENERIC.
704         (decision_tree::gen_generic): Add location argument to
705         generic_simplify prototype.
706         (capture_info): New class.
707         (capture_info::capture_info): New constructor.
708         (capture_info::walk_match): New method.
709         (capture_info::walk_result): New method.
710         (capture_info::walk_c_expr): New method.
711         (dt_simplify::gen): Handle preserving side-effects for
712         GENERIC code generation.
713         (decision_tree::gen_generic): Do not reject operands
714         with TREE_SIDE_EFFECTS.
715         * generic-match.h: New file.
716         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
717         * match.pd: Add some constant folding patterns from fold-const.c.
718         * fold-const.c: Include generic-match.h.
719         (fold_unary_loc): Dispatch to generic_simplify.
720         (fold_ternary_loc): Likewise.
721         (fold_binary_loc): Likewise.  Remove patterns now implemented
722         by generic_simplify.
723         * gimple-fold.c (replace_stmt_with_simplification): New function.
724         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
725         (no_follow_ssa_edges): New function.
726         (fold_stmt): New overload with valueization hook.  Use
727         no_follow_ssa_edges for the overload without hook.
728         (fold_stmt_inplace): Likewise.
729         * gimple-fold.h (no_follow_ssa_edges): Declare.
730
731 2014-10-24  Felix Yang  <felix.yang@huawei.com>
732         Jiji Jiang  <jiangjiji@huawei.com>
733
734         PR target/63173
735         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
736         (__LD3R_FUNC): Ditto.
737         (__LD4R_FUNC): Ditto.
738         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
739          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
740          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
741          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
742          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
743          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
744         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
745          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
746          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
747          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
748          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
749          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
750         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
751          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
752          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
753          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
754          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
755          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
756         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
757         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
758         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
759         builtins.
760         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
761         (aarch64_simd_ld3r<mode>): Likewise.
762         (aarch64_simd_ld4r<mode>): Likewise.
763         (aarch64_ld2r<mode>): New expand.
764         (aarch64_ld3r<mode>): Likewise.
765         (aarch64_ld4r<mode>): Likewise.
766
767 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
768
769         * rtlanal.c (get_base_term): Handle SCRATCH.
770
771 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
772
773         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
774         register pressure.
775
776 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
777
778         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
779         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
780         (max_issue, choose_ready, sched_init): Update.
781
782 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
783
784         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
785         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
786         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
787         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
788         (print_rank_for_schedule_stats): Print out elements of ready list that
789         ended up on their respective places due to each of the sorting
790         heuristics.
791         (ready_sort): Update.
792         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
793         (schedule_block): Update.
794
795 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
796
797         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
798         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
799         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
800         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
801         (model_start_schedule): Update.
802         (sched_pressure_start_bb): New static function.  Calculate
803         sched_class_regs_num.
804         (schedule_block): Use it.
805         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
806
807 2014-10-24  Richard Biener  <rguenther@suse.de>
808
809         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
810         host library and make sure to pull in the required libintl
811         and libiconv dependencies.
812
813 2014-10-24  Richard Biener  <rguenther@suse.de>
814
815         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
816
817 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
818
819         PR bootstrap/63632
820         * collect2.c (main): Filter out -fno-lto.
821
822 2014-10-24  Martin Liska  <mliska@suse.cz>
823
824         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
825         division by zero in dumps.
826         (sem_item_optimizer::merge_classes): Ditto.
827
828 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
829
830         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
831
832 2014-10-23  Ian Lance Taylor  <iant@google.com>
833
834         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
835
836 2014-10-23  Ian Lance Taylor  <iant@google.com>
837
838         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
839
840 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
841
842         PR debug/63623
843         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
844         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
845         instead of only handling autoinc in dest if it is a MEM.
846         (vt_stack_adjustments): Fix up formatting.
847
848 2014-10-23  DJ Delorie  <dj@redhat.com>
849
850         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
851         independend of -mlarge.
852         * config/msp430/constraints.md (Ys): Update comment.
853
854 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
855
856         PR target/63534
857         PR target/63618
858         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
859         while it is pseudo.
860         * dse.c (deletable_insn_p): Likewise.
861
862 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
863
864         * config/avr/avr.c: Fix GNU coding rules and typos.
865         * config/avr/avr.h: Dito.
866         * config/avr/avr-c.c: Dito.
867         * config/avr/avr.md: Dito.
868
869 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
870
871         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
872         New.
873         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
874         iterator.
875         (define_expand "abs<mode>2"): Ditto.
876
877 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
878
879         * tree-core.h (tree_var_decl): Extend `function_code' field
880         by one bit, move `regdecl_flag' field to ...
881         (tree_decl_with_vis): Here.
882         * tree.h (DECL_STATIC_CHAIN): Update struct name.
883
884 2014-10-23  Richard Biener  <rguenther@suse.de>
885
886         * Makefile.in (BUILD_CPPLIB): Add.
887         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
888         Drop LIBIBERTY.
889
890 2014-10-23  Richard Biener  <rguenther@suse.de>
891
892         * fold-const.c (fold_binary_loc): Preserve side-effects of
893         X - X when simplifying to 0.
894         * stor-layout.c (finish_bitfield_representative): Strip
895         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
896
897 2014-10-22  Richard Biener  <rguenther@suse.de>
898             Tobias Burnus <burnus@net-b.de>
899
900         PR lto/63603
901         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
902
903 2014-10-22  Dehao Chen  <dehao@google.com>
904
905         * auto-profile.c: Change order of header files.
906
907 2014-10-22  Guozhi Wei  <carrot@google.com>
908
909         PR tree-optimization/63530
910         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
911         pointer alignment according to DR_MISALIGNMENT.
912
913 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
914
915         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
916
917 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
918
919         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
920         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
921         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
922         * dominance.h: New.  Add prototypes for dominance.c.
923         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
924         * cfghooks.h: (struct profile_record) Relocate here.
925         Relocate 2 prototypes from basic-block.h.
926         * basic-block.h: Move prototypes and struct to new header files.
927         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
928         * rtl.h: Move a few prototypes to new header files.
929         * cfgcleanup.c (merge_memattrs): Make static.
930         * genopinit.c (main): Add predict.h to list of includes.
931         * predict.h: Update prototype list to match predict.c.
932         * predict.c (maybe_hot_count_p): Export.
933         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
934         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
935         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
936         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
937         * profile.h: Adjust prototypes.
938         * ifcvt.h: New.  Relocate struct ce_if_block here.
939         * ifcvt.c: Include ifcvt.h.
940         * config/frv/frv.c: Include ifcvt.h.
941         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
942
943 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
944
945         * lra.c (lra): Remove call to recog_init.
946         * config/i386/i386.md (preferred_for_speed): New attribute
947         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
948         "enabled".  Remove check for sched1.
949
950 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
951
952         * recog.h (recog_data_d): Remove enabled_alternatives.
953         * recog.c (extract_insn): Don't set it.
954         * reload.c (find_reloads): Call get_enabled_alternatives.
955
956 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
957
958         * recog.h (constrain_operands): Add an alternative_mask parameter.
959         (constrain_operands_cached): Likewise.
960         (get_preferred_alternatives): Declare new form.
961         * recog.c (get_preferred_alternatives): New bb-taking instance.
962         (constrain_operands): Take the set of available alternatives as
963         a parameter.
964         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
965         (extract_constrain_insn_cached): Update calls to constrain_operands.
966         * caller-save.c (reg_save_code): Likewise.
967         * ira.c (setup_prohibited_mode_move_regs): Likewise.
968         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
969         * ree.c (combine_reaching_defs): Likewise.
970         * reload.c (can_reload_into): Likewise.
971         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
972         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
973         (emit_insn_if_valid_for_reload): Likewise.
974         * reorg.c (fill_slots_from_thread): Likewise.
975         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
976         * config/pa/pa.c (pa_can_combine_p): Likewise.
977         * config/rl78/rl78.c (insn_ok_now): Likewise.
978         * config/sh/sh.md (define_peephole2): Likewise.
979         * final.c (final_scan_insn): Update call to constrain_operands_cached.
980
981 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
982
983         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
984         attributes.
985         * genattr.c (main): Handle "preferred_for_size" and
986         "preferred_for_speed" in the same way as "enabled".
987         * recog.h (bool_attr): New enum.
988         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
989         (get_preferred_alternatives, check_bool_attrs): Declare.
990         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
991         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
992         New functions.
993         (get_enabled_alternatives): Use get_bool_attr_mask.
994         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
995         instead of recog_data.enabled_alternatives.
996         * ira.c (ira_setup_alts): Likewise.
997         * postreload.c (reload_cse_simplify_operands): Likewise.
998         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
999         * ira-lives.c (preferred_alternatives): New variable.
1000         (process_bb_node_lives): Set it.
1001         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
1002         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
1003         of recog_data.enabled_alternatives.
1004         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
1005         to preferred_alternatives.
1006         * lra-constraints.c (process_alt_operands): Update accordingly.
1007         * lra.c (lra_set_insn_recog_data): Likewise.
1008         (lra_update_insn_recog_data): Assert check_bool_attrs.
1009
1010 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
1011
1012         * recog.h (extract_constrain_insn): Declare.
1013         * recog.c (extract_constrain_insn): New function.
1014         * lra.c (check_rtl): Use it.
1015         * postreload.c (reload_cse_simplify_operands): Likewise.
1016         * reg-stack.c (check_asm_stack_operands): Likewise.
1017         (subst_asm_stack_regs): Likewise.
1018         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
1019         * regrename.c (build_def_use): Likewise.
1020         * sel-sched.c (get_reg_class): Likewise.
1021         * config/arm/arm.c (note_invalid_constants): Likewise.
1022         * config/s390/predicates.md (execute_operation): Likewise.
1023
1024 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
1025             Yury Gribov  <y.gribov@samsung.com>
1026
1027         * common.opt (flag_sanitize_recover): New variable.
1028         (fsanitize-recover): Remove Var/Init, deprecate.
1029         (fsanitize-recover=): New option.
1030         * doc/invoke.texi (fsanitize-recover): Update docs.
1031         * opts.c (finish_options): Use opts->x_flag_sanitize
1032         instead of flag_sanitize.  Prohibit -fsanitize-recover
1033         for anything besides UBSan.  Formatting.
1034         (common_handle_option): Handle OPT_fsanitize_recover_
1035         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
1036         instead of flag_sanitize.
1037         * asan.c (pass_sanopt::execute): Fix up formatting.
1038         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
1039         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
1040         instrument_bool_enum_load, ubsan_instrument_float_cast,
1041         instrument_nonnull_arg, instrument_nonnull_return): Check
1042         bits in flag_sanitize_recover bitmask instead of
1043         flag_sanitize_recover as bool flag.
1044
1045 2014-10-22  Jiong Wang <jiong.wang@arm.com>
1046
1047         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
1048
1049 2014-10-22  Renlin Li <renlin.li@arm.com>
1050
1051         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
1052         __ARM_FEATURE_IDIV__.
1053
1054 2014-10-22  Richard Biener  <rguenther@suse.de>
1055
1056         * Makefile.in (s-match): Adjust dependencies to only catch
1057         match.pd.
1058
1059 2014-10-22  Richard Biener  <rguenther@suse.de>
1060         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
1061
1062         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
1063         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
1064         (gimple-match.c): Generate by triggering s-match.
1065         (generic-match.c): Likewise.
1066         (s-match): Rule to build gimple-match.c and generic-match.c
1067         by running the genmatch generator program.
1068         (build/hash-table.o): Dependencies to build hash-table.c for the host.
1069         (build/genmatch.o): Dependencies to build genmatch.
1070         (genprog): Add match.
1071         (build/genmatch): Likewise.
1072         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
1073         * generic-match-head.c: New file.
1074         * gimple-match-head.c: Likewise.
1075         * gimple-match.h: Likewise.
1076         * genmatch.c: Likewise.
1077         * match.pd: Likewise.
1078         * builtins.h (fold_builtin_n): Export.
1079         * builtins.c (fold_builtin_n): Likewise.
1080         * gimple-fold.h (gimple_build): Declare various overloads.
1081         (gimple_simplify): Likewise.
1082         (gimple_convert): Re-implement in terms of gimple_build.
1083         * gimple-fold.c (gimple_convert): Remove.
1084         (gimple_build): New functions.
1085         * doc/match-and-simplify.texi: New file.
1086         * doc/gccint.texi: Add menu item Match and Simplify and include
1087         match-and-simplify.texi.
1088
1089 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
1090
1091         PR target/63594
1092         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
1093         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
1094         even for just TARGET_AVX2, not only for
1095         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
1096         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
1097         otherwise build it using concatenation of 256-bit
1098         broadcast.
1099         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
1100         avx512 broadcast patterns.
1101         (vec_dup<mode>): Likewise.  For avx2 use
1102         v<sseintprefix>broadcast<bcstscalarsuff> instead of
1103         vbroadcast<ssescalarmodesuffix>.
1104         (AVX2_VEC_DUP_MODE): New mode iterator.
1105         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
1106         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
1107
1108         PR target/63542
1109         * config/i386/i386.c (ix86_pic_register_p): Also return
1110         true if x is a hard register with ORIGINAL_REGNO equal to
1111         pic_offset_table_rtx pseudo REGNO.
1112         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
1113         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
1114
1115 2014-10-22  Alan Modra  <amodra@gmail.com>
1116
1117         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
1118         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
1119         (gcc_obstack_init): Use obstack_specify_allocation in place of
1120         _obstack_begin.
1121         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
1122         (regexp_representation): Likewise.
1123         * godump.c (go_output_type): Likewise.
1124
1125 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
1126
1127         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
1128         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
1129         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
1130
1131 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
1132
1133         * doc/invoke.texi (pedantic-errors): Explain better.
1134
1135 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
1136             Vidya Praveen <vidya.praveen@atmel.com>
1137             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
1138             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
1139             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
1140
1141         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
1142         __MEMX for avrtiny.
1143         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
1144         (avr_nonconst_pointer_addrspace): Likewise.
1145         * config/avr/avr.h (AVR_HAVE_LPM): Define.
1146
1147         Added AVRTINY architecture to avr target.
1148         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
1149         (base_arch_s): member added for AVRTINY architecture.
1150         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
1151         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
1152         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
1153         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
1154         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
1155         in callee saved register list.
1156         (avr_option_override): CCP address updated for AVRTINY.
1157         (avr_init_expanders): tmp and zero rtx initialized as per arch.
1158         Reset avr_have_dimode if AVRTINY.
1159         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
1160         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
1161         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
1162         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
1163         (expand_epilogue): Likewise.
1164         (avr_print_operand): Print CCP address in case of AVRTINY also.
1165         <TBD>bad address
1166         (function_arg_regno_p): Check different register list for arguments
1167         if AVRTINY.
1168         (init_cumulative_args): Check for AVRTINY to update number of argument
1169         registers.
1170         (tiny_valid_direct_memory_access_range): New function. Return false if
1171         direct memory access range is not in accepted range for AVRTINY.
1172         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
1173         indirect load (with displacement) for AVRTINY.
1174         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
1175         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
1176         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
1177         indirect load (no displacement) for AVRTINY.
1178         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
1179         indirect load (with displacement) for AVRTINY.
1180         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
1181         indirect load for pre-decrement address.
1182         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
1183         functions. Update instruction length for AVRTINY.
1184         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
1185         SImode.
1186         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
1187         (out_movsi_r_mr): Likewise, for SImode.
1188         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
1189         indirect store (no displacement) for AVRTINY.
1190         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
1191         indirect store (with displacement) for AVRTINY.
1192         (out_movsi_mr_r): Emit out insn for IO address store. Update store
1193         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
1194         store functions.
1195         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
1196         indirect load (no displacement) for PSImode in AVRTINY.
1197         (avr_out_load_psi_reg_disp_tiny): New function to handle register
1198         indirect load (with displacement) for PSImode in AVRTINY.
1199         (avr_out_load_psi): Call PSImode register indirect load functions for
1200         AVRTINY. Update instruction length for AVRTINY.
1201         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
1202         indirect store (no displacement) for PSImode in AVRTINY.
1203         (avr_out_store_psi_reg_disp_tiny): New function to handle register
1204         indirect store (with displacement) for PSImode in AVRTINY.
1205         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
1206         register indirect store functions for AVRTINY.
1207         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
1208         register indirect store (with displacement) for AVRTINY.
1209         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
1210         register indirect store function for QImode in AVRTINY.
1211         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
1212         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
1213         indirect store (no displacement) for HImode in AVRTINY.
1214         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
1215         indirect store (with displacement) for HImode in AVRTINY.
1216         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
1217         indirect store for post-increment address in HImode.
1218         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
1219         register indirect store function for HImode in AVRTINY.
1220         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
1221         in case of AVRTINY.
1222         (order_regs_for_local_alloc): Updated register allocation order for
1223         AVRTINY.
1224         (avr_conditional_register_usage): New function. It is a target hook
1225         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
1226         used registers list and register allocation order for AVRTINY.
1227         (avr_return_in_memory): Update return value size for AVRTINY.
1228         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
1229         for AVRTINY arch and tiny program memory base address.
1230         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
1231         (avr_texinfo): Added description for AVRTINY arch.
1232         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
1233         STATIC_CHAIN_REGNUM for AVRTINY.
1234         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
1235         * config/avr/avr.md: Added constants for tmp/ zero registers in
1236         AVRTINY. Attributes for AVRTINY added.
1237         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
1238         memory access range.
1239         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
1240         in AVRTINY memory access range.
1241         (*mov<mode>): Likewise for HImode and SImode.
1242         (*movsf): Likewise for SFmode.
1243         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
1244         not have sbiw.
1245         * config/avr/avr-protos.h: Added function prototype for
1246         tiny_valid_direct_memory_access_range.
1247         * config/avr/avr-tables.opt: Regenerate.
1248         * gcc/config/avr/t-multilib: Regenerate.
1249         * doc/avr-mmcu.texi: Regenerate.
1250
1251 2014-10-21  Andrew Pinski  <apinski@cavium.com>
1252
1253         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
1254         available option also.
1255         * config/aarch64/aarch64-cost-tables.h: New file.
1256         * config/aarch64/aarch64-cores.def (thunderx): New core.
1257         * config/aarch64/aarch64-tune.md: Regenerate.
1258         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
1259         of config/arm/aarch-cost-tables.h.
1260         (thunderx_regmove_cost): New variable.
1261         (thunderx_tunings): New variable.
1262
1263 2014-10-21  Dehao Chen  <dehao@google.com>
1264
1265         * auto-profile.c: New file.
1266         * auto-profile.h: New file.
1267         * basic-block.h (maybe_hot_count_p): New export func.
1268         (add_working_set): New export func.
1269         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
1270         (GCOV_TAG_AFDO_FUNCTION): Likewise.
1271         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
1272         * opts.c (enable_fdo_optimizations): New func.
1273         (common_handle_option): Handle -fauto-profile flag.
1274         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
1275         (class pass_early_inline): Export early_inliner.
1276         (early_inliner): Likewise.
1277         (pass_early_inline::execute): Likewise.
1278         * ipa-inline.h (early_inliner): Likewise.
1279         * predict.c (maybe_hot_count_p): New export func.
1280         (counts_to_freqs): AutoFDO logic.
1281         (rebuild_frequencies): Likewise.
1282         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
1283         * profile.c (add_working_set): New func.
1284         * Makefile.in (auto-profile.o): New object file.
1285         * passes.def (pass_ipa_auto_profile): New pass.
1286         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
1287         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
1288         * toplev.c (compile_file): AutoFDO logic.
1289         * doc/invoke.texi (-fauto-profile): New doc.
1290         * coverage.c (coverage_init): AutoFDO logic.
1291         * common.opt (-fauto-profile): New flag.
1292         * timevar.def (TV_IPA_AUTOFDO): New tag.
1293         * value-prof.c (gimple_alloc_histogram_value): New export func.
1294         (check_ic_target): Likewise.
1295         * value-prof.h (gimple_alloc_histogram_value): Likewise.
1296         (check_ic_target): Likewise.
1297
1298 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
1299
1300         * cgraph.c (cgraph_c_finalize): New function.
1301         * cgraph.h (cgraph_c_finalize): New prototype.
1302         (cgraphunit_c_finalize): New prototype.
1303         * cgraphunit.c (first_analyzed): Move from analyze_functions
1304         to file-scope.
1305         (first_analyzed_var): Likewise.
1306         (analyze_functions): Move static variables into file-scope.
1307         (cgraphunit_c_finalize): New function.
1308         * diagnostic.c (diagnostic_finish): Free the memory for
1309         context->classify_diagnostic and context->printer, running the
1310         destructor for the latter.
1311         (bt_stop): Use toplev::main.
1312         * dwarf2out.c (dwarf2out_finalize): New function.
1313         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
1314         * gcse.c (gcse_c_finalize): New function.
1315         * gcse.h (gcse_c_finalize): New prototype.
1316         * ggc-page.c (init_ggc): Make idempotent.
1317         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
1318         * ipa-cp.c (ipa_cp_c_finalize): New function.
1319         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
1320         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
1321         a field of class pass_ipa_pure_const.
1322         (node_duplication_hook_holder): Likewise.
1323         (node_removal_hook_holder): Likewise.
1324         (register_hooks): Convert to method...
1325         (pass_ipa_pure_const::register_hooks): ...here, converting
1326         static variable init_p into...
1327         (pass_ipa_pure_const::init_p): ...new field.
1328         (pure_const_generate_summary): Update invocation of
1329         register_hooks to invoke as a method of current_pass.
1330         (pure_const_read_summary): Likewise.
1331         (propagate): Convert to...
1332         (pass_ipa_pure_const::execute): ...method.
1333         * ipa-reference.c (ipa_init): Move static bool init_p from here
1334         to...
1335         (ipa_init_p): New file-scope variable, so that it can be reset
1336         when repeatedly invoking the compiler within one process by...
1337         (ipa_reference_c_finalize): New function.
1338         * ipa-reference.h (ipa_reference_c_finalize): New.
1339         * main.c (main): Replace invocation of toplev_main with
1340         construction of a toplev instance, and call its "main" method.
1341         * params.c (global_init_params): Add an assert that
1342         params_finished is false.
1343         (params_c_finalize): New.
1344         * params.h (params_c_finalize): New.
1345         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
1346         invoking generate_summary, for the benefit of pass_ipa_pure_const.
1347         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
1348         before calling write_summary hook.
1349         (ipa_write_optimization_summaries_1): Likewise when calling
1350         write_optimization_summary hook.
1351         (ipa_read_summaries_1): Likewise for read_summary hook.
1352         (ipa_read_optimization_summaries_1): Likewise for
1353         read_optimization_summary hook.
1354         (execute_ipa_stmt_fixups): Likewise.
1355         * stringpool.c (init_stringpool): Clean up if we're called more
1356         than once.
1357         * timevar.c (timevar_init): Ignore repeated calls.
1358         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
1359         "ipa-prop.h".
1360         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
1361         (initialize_rtl): Move static local "initialized_once"
1362         into file scope, and rename to...
1363         (rtl_initialized): New variable.
1364         (do_compile): Move timevar initialization from here to
1365         toplev::start_timevars.
1366         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
1367         toplev::finalize): New functions.
1368         (toplev_main): Rename to...
1369         (toplev::main): ...this.
1370         * toplev.h (class toplev): New class.
1371
1372 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
1373
1374         * loop-doloop.c: Include loop-unroll.h.
1375
1376 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
1377
1378         * cfg.h: New.  Header file for cfg.c.
1379         * cfganal.h: New.  Header file for cfganal.c.
1380         * lcm.h: New.  Header file for lcm.c.
1381         * loop-unroll.h: New.  Header file for loop-unroll.h.
1382         * cfgloop.h: (unroll_loops): Remove prototype.
1383         * basic-block.h: Move prototypes and structs to new header files.
1384         Include cfg.h, cfganal.h, and lcm.h.
1385         * loop-init.c: Include loop-unroll.h.
1386         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
1387         * modulo-sched.c: Include loop-unroll.h.
1388
1389 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1390
1391         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
1392         MARKER_BYTE_UNKNOWN markers when handling casts.
1393
1394 2014-10-21  Richard Biener  <rguenther@suse.de>
1395
1396         * tree-ssa-phiopt.c (value_replacement): Properly verify we
1397         are the non-singleton PHI.
1398
1399 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
1400
1401         PR tree-optimization/63563
1402         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
1403         if either dra or drb stmts are not normal loads/stores.
1404
1405 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
1406
1407         * config/i386/i386.c (expand_vec_perm_1): Fix
1408         expand_vec_perm_palignr case.
1409         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
1410         VI1_AVX512.
1411
1412 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
1413
1414         * cfgloopanal.c (seq_cost): Delete.
1415         * rtl.h (seq_cost): New prototype.
1416         * rtlanal.c (seq_cost): New function.
1417         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
1418
1419 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
1420
1421         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
1422         * basic-block.h: Remove prototypes for cfgrtl.c.
1423         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
1424         prototypes to cfgrtl.h.
1425         * profile.h (profile_info): Add extern export declaration.
1426         * rtl.h: Remove prototypes for cfgrtl.h.
1427         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
1428         * ipa-inline.c: Include profile.h.
1429         * loop-unroll.c: Ditto.
1430         * modulo-sched.c: Ditto.
1431         * postreload-gcse.c: Ditto.
1432         * predict.c: Ditto.
1433         * sched-ebb.c: Ditto.
1434         * sched-rgn.c: Ditto.
1435         * tracer.c: Ditto.
1436         * tree-ssa-loop-ivcanon.c: Ditto.
1437
1438 2014-10-20  Richard Biener  <rguenther@suse.de>
1439
1440         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
1441         operands to get a def operand kind match.  Signal mismatches
1442         to the parent so we can try swapping its operands.
1443         (vect_build_slp_tree): Try swapping operands if they have
1444         a mismatched operand kind.
1445
1446 2014-10-20  Alan Modra  <amodra@gmail.com>
1447
1448         PR debug/60655
1449         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
1450         Increase "ops" array size.  Correct array size tests.  Init
1451         n_constants in loop.  Break out of innermost loop when finding
1452         a trivial CONST expression.
1453
1454 2014-10-20  Martin Liska  <mliska@suse.cz>
1455
1456         PR ipa/63583
1457         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
1458         Gimple tempate string is compared.
1459
1460 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
1461
1462         * varasm.c (const_alias_set): Remove.
1463         (init_varasm_once): Remove initialization of const_alias_set.
1464         (build_constant_desc): Do not set alias set to const_alias_set.
1465
1466 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
1467
1468         * configure: Regenerate.
1469         * configure.ac: Move the test for section attribute specifier "e" in GAS
1470         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
1471         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
1472         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
1473         ifdef HAVE_GAS_SECTION_EXCLUDE.
1474
1475 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
1476
1477         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
1478         match_operand expression.
1479
1480 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
1481             David Edelsohn  <dje.gcc@gmail.com>
1482
1483         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
1484         function.
1485         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
1486
1487 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1488
1489         * doc/invoke.texi (Options to Request or Suppress Warnings):
1490         Explain options precedence.
1491         (Wtrampolines): Do not indent paragraph.
1492
1493 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
1494
1495         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
1496         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
1497         (pa_jump_in_call_delay): Likewise.
1498         * config/pa/pa.c (pa_option_override): Remove jump in call delay
1499         override.
1500         (pa_output_millicode_call): Remove support for jump in call delay.
1501         (pa_output_call): Likewise.
1502         (pa_jump_in_call_delay): Delete.
1503         (pa_following_call): Likewise.
1504         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
1505         (uncond_branch): Remove following call check from attribute length.
1506
1507 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
1508
1509         PR target/53513
1510         * config/sh/sh-modes.def (PSI): Remove.
1511         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
1512         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
1513         (sh_reorg): Remove commented out FPSCR code.
1514         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
1515         insn instead of move insn.
1516         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
1517         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
1518         handling.
1519         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
1520         (sh1_builtin_p): Uncomment.
1521         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
1522         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
1523         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
1524         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
1525         (general_movsrc_operand, general_movdst_operand): Disallow
1526         fpscr_operand.
1527         * config/sh/sh.md (FPSCR_FR): New constant.
1528         (push_fpscr): Emit sts_fpscr insn.
1529         (pop_fpscr): Emit lds_fpscr_insn.
1530         (movsi_ie): Disallow FPSCR operands.
1531         (fpu_switch, unnamed related split, extend_psi_si,
1532         truncate_si_psi): Remove insns.
1533         (lds_fpscr, sts_fpscr): New insns.
1534         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
1535
1536 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1537
1538         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
1539         (clone_inlined_nodes): Do not overwrite the clone if above predicate
1540         returns true.
1541
1542 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
1543
1544         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
1545         (expand_vec_perm_d): Ditto.
1546         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
1547         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
1548         V4DFmode.
1549         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
1550         (ix86_expand_sse_unpack): Handle V64QImode.
1551         (expand_vec_perm_blend): Update conditions for TARGET, handle
1552         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
1553         (expand_vec_perm_pshufb): Handle V64QImode.
1554         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
1555         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
1556         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
1557         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
1558         (ix86_expand_vecop_qihi): Handle V64QImode.
1559         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
1560         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
1561         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
1562         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
1563         (mul<mode>3): Use VI1_AVX512.
1564         (<sse2_avx2>_packsswb): Ditto.
1565         (<sse2_avx2>_packuswb): Ditto.
1566         (<ssse3_avx2>_pshufb<mode>3): Ditto.
1567         (<shift_insn><mode>3): Ditto.
1568
1569 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
1570
1571         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
1572         conditions to fix bootstrap.
1573
1574 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
1575
1576         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
1577
1578 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1579             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1580             Anna Tikhonova  <anna.tikhonova@intel.com>
1581             Ilya Tocar  <ilya.tocar@intel.com>
1582             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1583             Ilya Verbin  <ilya.verbin@intel.com>
1584             Kirill Yukhin  <kirill.yukhin@intel.com>
1585             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1586
1587         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
1588         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
1589         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
1590         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
1591         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
1592         (define_expand "vec_init<mode>"): Use VF48_I1248.
1593
1594 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1595             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1596             Anna Tikhonova  <anna.tikhonova@intel.com>
1597             Ilya Tocar  <ilya.tocar@intel.com>
1598             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1599             Ilya Verbin  <ilya.verbin@intel.com>
1600             Kirill Yukhin  <kirill.yukhin@intel.com>
1601             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1602
1603         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
1604         expand_sse2_mulvxdi3.
1605
1606 2014-10-17  Richard Biener  <rguenther@suse.de>
1607
1608         * fold-const.c (fold_comparison): Remove redundant constant
1609         folding and operand swapping.
1610         (fold_binary_loc): Do comparison operand swapping here.
1611         (fold_ternary_loc): Canonicalize operand order for
1612         commutative ternary operations.
1613         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
1614         and FMA_EXPR.
1615
1616 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
1617
1618         PR tree-optimization/63464
1619         * gimple.h (gimple_seq_discard): New prototype.
1620         * gimple.c: Include stringpool.h and tree-ssanames.h.
1621         (gimple_seq_discard): New function.
1622         * optabs.h (lshift_cheap_p): New prototype.
1623         * optabs.c (lshift_cheap_p): New function, moved from...
1624         * tree-switch-conversion.c (lshift_cheap_p): ... here.
1625         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
1626         (reassoc_branch_fixups): New variable.
1627         (update_range_test): Add otherrangep and seq arguments.
1628         Unshare exp.  If otherrange is NULL, use for other ranges
1629         array of pointers pointed by otherrangep instead.
1630         Emit seq before gimplified statements for tem.
1631         (optimize_range_tests_diff): Adjust update_range_test
1632         caller.
1633         (optimize_range_tests_xor): Likewise.  Fix up comment.
1634         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
1635         functions.
1636         (optimize_range_tests): Adjust update_range_test caller.
1637         Call optimize_range_tests_to_bit_test.
1638         (branch_fixup): New function.
1639         (execute_reassoc): Call branch_fixup.
1640
1641         PR tree-optimization/63302
1642         * tree-ssa-reassoc.c (optimize_range_tests_xor,
1643         optimize_range_tests_diff): Use !integer_pow2p () instead of
1644         tree_log2 () < 0.
1645
1646 2014-10-17  Martin Liska  <mliska@suse.cz>
1647
1648         * ipa-icf.c (sem_function::merge): Local flags are set to false
1649         to enforce equal calling convention to be used.
1650         * opts.c (common_handle_option): Indentation fix.
1651
1652 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
1653
1654         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
1655
1656 2014-10-17  Tom de Vries  <tom@codesourcery.com>
1657
1658         PR rtl-optimization/61605
1659         * regcprop.c (copyprop_hardreg_forward_1): Use
1660         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
1661
1662 2014-10-17  Tom de Vries  <tom@codesourcery.com>
1663
1664         PR rtl-optimization/61605
1665         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
1666         notice stores for noops.  Don't regard noops as copies.
1667
1668 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
1669
1670         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
1671         register in a special way.
1672         (__cpuid_count): Ditto.
1673         * config/i386/driver-i386.h: Protect with
1674         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
1675         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
1676         is required to compile the function.
1677
1678 2014-10-16  DJ Delorie  <dj@redhat.com>
1679
1680         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
1681         integers.
1682
1683         * config/rs6000/rs6000-c.c (rid_int128): New.
1684         (rs6000_macro_to_expand): Use instead of RID_INT128.
1685
1686 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
1687
1688         * function.h: Flatten file.  Remove includes, adjust prototypes to
1689         reflect only what is in function.h.
1690         (enum direction, struct args_size, struct locate_and_pad_arg_data,
1691         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
1692         from expr.h.
1693         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
1694         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
1695         prototypes to predict.h.
1696         (init_varasm_status): Move prototype to varasm.h.
1697         * expr.h: Adjust include files.
1698         (enum direction, struct args_size, struct locate_and_pad_arg_data,
1699         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
1700         to function.h.
1701         (locate_and_pad_parm): Move prototype to function.h.
1702         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
1703         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
1704         assign_temp, reposition_prologue_and_epilogue_notes,
1705         prologue_epilogue_contains, sibcall_epilogue_contains,
1706         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
1707         set_return_jump_label): Move prototypes to function.h.
1708         * predict.h (optimize_function_for_size_p,
1709         optimize_function_for_speed_p): Relocate prototypes from function.h.
1710         * shrink-wrap.h (emit_return_into_block, active_insn_between,
1711         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
1712         function.h.
1713         * varasm.h (init_varasm_status): Relocate prototype from function.h.
1714         * genattrtab.c (write_header): Add predict.h to include list.
1715         * genconditions.c (write_header): Add predict.h to include list.
1716         * genemit.c (main): Adjust header file includes.
1717         * gengtype.c (ifiles): Add flattened function.h header files.
1718         * genoutput.c (output_prologue): Add predict.h to include list.
1719         * genpreds.c (write_insn_preds_c): Adjust header file includes.
1720         * genrecog.c (write_header): Add flattened function.h header files.
1721         * alias.c: Adjust include files.
1722         * auto-inc-dec.c: Likewise.
1723         * basic-block.h: Likewise.
1724         * bb-reorder.c: Likewise.
1725         * bt-load.c: Likewise.
1726         * builtins.c: Likewise.
1727         * caller-save.c: Likewise.
1728         * calls.c: Likewise.
1729         * cfgbuild.c: Likewise.
1730         * cfgcleanup.c: Likewise.
1731         * cfgexpand.c: Likewise.
1732         * cfgloop.c: Likewise.
1733         * cfgloop.h: Likewise.
1734         * cfgrtl.c: Likewise.
1735         * cgraph.h: Likewise.
1736         * cgraphclones.c: Likewise.
1737         * cgraphunit.c: Likewise.
1738         * combine-stack-adj.c: Likewise.
1739         * combine.c: Likewise.
1740         * coverage.c: Likewise.
1741         * cprop.c: Likewise.
1742         * cse.c: Likewise.
1743         * cselib.c: Likewise.
1744         * dbxout.c: Likewise.
1745         * ddg.c: Likewise.
1746         * df-core.c: Likewise.
1747         * df-problems.c: Likewise.
1748         * df-scan.c: Likewise.
1749         * dojump.c: Likewise.
1750         * dwarf2cfi.c: Likewise.
1751         * dwarf2out.c: Likewise.
1752         * emit-rtl.c: Likewise.
1753         * except.c: Likewise.
1754         * explow.c: Likewise.
1755         * expr.c: Likewise.
1756         * final.c: Likewise.
1757         * function.c: Likewise.
1758         * gcse.c: Likewise.
1759         * gimple-fold.c: Likewise.
1760         * gimple-low.c: Likewise.
1761         * gimple-streamer.h: Likewise.
1762         * haifa-sched.c: Likewise.
1763         * ifcvt.c: Likewise.
1764         * ira.c: Likewise.
1765         * jump.c: Likewise.
1766         * lcm.c: Likewise.
1767         * loop-invariant.c: Likewise.
1768         * lra-assigns.c: Likewise.
1769         * lra-coalesce.c: Likewise.
1770         * lra-constraints.c: Likewise.
1771         * lra-eliminations.c: Likewise.
1772         * lra-lives.c: Likewise.
1773         * lra-spills.c: Likewise.
1774         * lra.c: Likewise.
1775         * lto-cgraph.c: Likewise.
1776         * lto-section-in.c: Likewise.
1777         * lto-section-out.c: Likewise.
1778         * lto-streamer-in.c: Likewise.
1779         * lto-streamer-out.c: Likewise.
1780         * mode-switching.c: Likewise.
1781         * modulo-sched.c: Likewise.
1782         * omp-low.c: Likewise.
1783         * optabs.c: Likewise.
1784         * passes.c: Likewise.
1785         * postreload-gcse.c: Likewise.
1786         * postreload.c: Likewise.
1787         * predict.c: Likewise.
1788         * profile.c: Likewise.
1789         * recog.c: Likewise.
1790         * ree.c: Likewise.
1791         * reg-stack.c: Likewise.
1792         * regcprop.c: Likewise.
1793         * reginfo.c: Likewise.
1794         * regrename.c: Likewise.
1795         * reload.c: Likewise.
1796         * reload1.c: Likewise.
1797         * reorg.c: Likewise.
1798         * resource.c: Likewise.
1799         * rtlanal.c: Likewise.
1800         * sched-deps.c: Likewise.
1801         * sched-ebb.c: Likewise.
1802         * sched-rgn.c: Likewise.
1803         * sel-sched-dump.c: Likewise.
1804         * sel-sched-ir.c: Likewise.
1805         * sel-sched.c: Likewise.
1806         * shrink-wrap.c: Likewise.
1807         * simplify-rtx.c: Likewise.
1808         * statistics.c: Likewise.
1809         * stmt.c: Likewise.
1810         * stor-layout.c: Likewise.
1811         * store-motion.c: Likewise.
1812         * symtab.c: Likewise.
1813         * targhooks.c: Likewise.
1814         * toplev.c: Likewise.
1815         * trans-mem.c: Likewise.
1816         * tree-cfg.c: Likewise.
1817         * tree-cfgcleanup.c: Likewise.
1818         * tree-dfa.c: Likewise.
1819         * tree-eh.c: Likewise.
1820         * tree-inline.c: Likewise.
1821         * tree-into-ssa.c: Likewise.
1822         * tree-nested.c: Likewise.
1823         * tree-nrv.c: Likewise.
1824         * tree-profile.c: Likewise.
1825         * tree-ssa-alias.c: Likewise.
1826         * tree-ssa-ccp.c: Likewise.
1827         * tree-ssa-copy.c: Likewise.
1828         * tree-ssa-copyrename.c: Likewise.
1829         * tree-ssa-dom.c: Likewise.
1830         * tree-ssa-operands.c: Likewise.
1831         * tree-ssa-propagate.c: Likewise.
1832         * tree-ssa-structalias.c: Likewise.
1833         * tree-ssa-tail-merge.c: Likewise.
1834         * tree-ssa-threadedge.c: Likewise.
1835         * tree-ssa-threadupdate.c: Likewise.
1836         * tree-ssa-uncprop.c: Likewise.
1837         * tree-ssa-uninit.c: Likewise.
1838         * tree-ssa.c: Likewise.
1839         * tree-stdarg.c: Likewise.
1840         * tree-tailcall.c: Likewise.
1841         * tree.c: Likewise.
1842         * tsan.c: Likewise.
1843         * valtrack.c: Likewise.
1844         * varasm.c: Likewise.
1845         * vmsdbgout.c: Likewise.
1846         * web.c: Likewise.
1847         * config/aarch64/aarch64.c: Add flattened includes from function.h.
1848         * config/alpha/alpha.c: Likewise.
1849         * config/arc/arc.c: Likewise.
1850         * config/arm/arm.c: Likewise.
1851         * config/avr/avr-log.c: Likewise.
1852         * config/avr/avr.c: Likewise.
1853         * config/bfin/bfin.c: Likewise.
1854         * config/c6x/c6x.c: Likewise.
1855         * config/cr16/cr16.c: Likewise.
1856         * config/cris/cris.c: Likewise.
1857         * config/darwin.c: Likewise.
1858         * config/epiphany/epiphany.c: Likewise.
1859         * config/epiphany/mode-switch-use.c: Likewise.
1860         * config/epiphany/resolve-sw-modes.c: Likewise.
1861         * config/fr30/fr30.c: Likewise.
1862         * config/frv/frv.c: Likewise.
1863         * config/h8300/h8300.c: Likewise.
1864         * config/i386/i386.c: Likewise.
1865         * config/ia64/ia64.c: Likewise.
1866         * config/iq2000/iq2000.c: Likewise.
1867         * config/lm32/lm32.c: Likewise.
1868         * config/m32c/m32c.c: Likewise.
1869         * config/m32r/m32r.c: Likewise.
1870         * config/m68k/m68k.c: Likewise.
1871         * config/mcore/mcore.c: Likewise.
1872         * config/mep/mep-pragma.c: Likewise.
1873         * config/mep/mep.c: Likewise.
1874         * config/microblaze/microblaze.c: Likewise.
1875         * config/mips/mips.c: Likewise.
1876         * config/mmix/mmix.c: Likewise.
1877         * config/mn10300/mn10300.c: Likewise.
1878         * config/moxie/moxie.c: Likewise.
1879         * config/msp430/msp430.c: Likewise.
1880         * config/nds32/nds32-cost.c: Likewise.
1881         * config/nds32/nds32-fp-as-gp.c: Likewise.
1882         * config/nds32/nds32-intrinsic.c: Likewise.
1883         * config/nds32/nds32-isr.c: Likewise.
1884         * config/nds32/nds32-md-auxiliary.c: Likewise.
1885         * config/nds32/nds32-memory-manipulation.c: Likewise.
1886         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1887         * config/nds32/nds32-predicates.c: Likewise.
1888         * config/nds32/nds32.c: Likewise.
1889         * config/nios2/nios2.c: Likewise.
1890         * config/pa/pa.c: Likewise.
1891         * config/pdp11/pdp11.c: Likewise.
1892         * config/rl78/rl78.c: Likewise.
1893         * config/rs6000/rs6000.c: Likewise.
1894         * config/rx/rx.c: Likewise.
1895         * config/s390/s390.c: Likewise.
1896         * config/score/score.c: Likewise.
1897         * config/sh/sh.c: Likewise.
1898         * config/sparc/sparc.c: Likewise.
1899         * config/spu/spu.c: Likewise.
1900         * config/stormy16/stormy16.c: Likewise.
1901         * config/tilegx/tilegx.c: Likewise.
1902         * config/tilepro/tilepro.c: Likewise.
1903         * config/v850/v850.c: Likewise.
1904         * config/vax/vax.c: Likewise.
1905         * config/xtensa/xtensa.c: Likewise.
1906
1907 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
1908
1909         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
1910         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
1911
1912 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1913
1914         * config/sh/sh-protos.h (fldi_ok): Remove.
1915         * config/sh/sh.c (fldi_ok): Likewise.
1916         (sh_secondary_reload): Don't use fldi_ok.
1917         * config/sh/constraints.md (G constraint, H constraint): Don't use
1918         fldi_ok.
1919
1920 2014-10-16  Martin Liska  <mliska@suse.cz>
1921
1922         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
1923         Cast to unsigned long.
1924         (sem_item_optimizer::dump_cong_classes): Likewise.
1925
1926 2014-10-16  Tom de Vries  <tom@codesourcery.com>
1927
1928         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
1929         with SSA_NAME_IN_FREELIST.
1930
1931 2014-10-16  Richard Biener  <rguenther@suse.de>
1932
1933         PR middle-end/63554
1934         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
1935         (fold_builtin_strncat_chk): Move ...
1936         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
1937         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
1938
1939 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1940
1941         PR target/59401
1942         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
1943         GBR to 0.
1944
1945 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1946             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1947             Anna Tikhonova  <anna.tikhonova@intel.com>
1948             Ilya Tocar  <ilya.tocar@intel.com>
1949             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1950             Ilya Verbin  <ilya.verbin@intel.com>
1951             Kirill Yukhin  <kirill.yukhin@intel.com>
1952             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1953
1954         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
1955         V64QI modes.
1956
1957 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1958             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1959             Anna Tikhonova  <anna.tikhonova@intel.com>
1960             Ilya Tocar  <ilya.tocar@intel.com>
1961             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1962             Ilya Verbin  <ilya.verbin@intel.com>
1963             Kirill Yukhin  <kirill.yukhin@intel.com>
1964             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1965
1966         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
1967         V16SI, V32HI, V64QI modes.
1968
1969 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1970
1971         PR target/53513
1972         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
1973         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
1974
1975         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
1976         to match fp insn patterns.
1977         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
1978         list.
1979         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
1980         expand_df_unop, expand_df_binop): Remove.
1981         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
1982         FPSCR_STAT_REG as not call clobbered.
1983         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
1984         invoking fpscr_set_from_mem.
1985
1986         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
1987         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
1988         FPSCR_STAT_REG.
1989         (REGISTER_NAMES): Adjust.
1990         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
1991         (FIRST_PSEUDO_REGISTER): Increase to 156.
1992         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
1993         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
1994         FPSCR_STAT_REG.
1995         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
1996         FPSCR_MODES_REG and FPSCR_STAT_REG.
1997         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
1998
1999         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
2000         FPSCR_SZ): Add new constants.
2001         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
2002
2003         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
2004         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
2005         Use TARGET_FPU_ANY condition.
2006         (fpu_switch peephole2): Remove.
2007         (fpu_switch split): Use simple_mem_operand to capture the mem and
2008         adjust split implementation.
2009         (extend_psi_si, truncate_si_psi): New insns.
2010         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
2011         set of FPSCR_MODES_REG.
2012
2013         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
2014         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
2015         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
2016         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
2017         call_value_compact, call_value_compact_rettramp, call,
2018         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
2019         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
2020         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
2021         sibcall_value_compact, sibcall_value, call_value_pop_compact,
2022         call_value_pop_compact_rettramp, various unnamed splits):
2023         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
2024         function uses.
2025
2026         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
2027         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
2028         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
2029         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
2030         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
2031
2032         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
2033         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
2034         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
2035         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
2036         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
2037         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
2038         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
2039
2040 2014-10-16  Martin Liska  <mliska@suse.cz>
2041             Jan Hubicka  <hubicka@ucw.cz>
2042
2043         * Makefile.in: New object files included.
2044         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
2045         is printed.
2046         (verify_edge_corresponds_to_fndecl): More sensitive verification
2047         of nodes that are merged by IPA ICF.
2048         * cgraph.h (cgraph_node::num_references): New function.
2049         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
2050         * common.opt: New options ipa-icf, ipa-icf-functions and
2051         ipa-icf-variables introduced.
2052         * doc/invoke.texi: Documentation of new options introduced.
2053         * ipa-icf-gimple.c: New file.
2054         * ipa-icf-gimple.h: New file.
2055         * ipa-icf.c: New file.
2056         * ipa-icf.h: New file.
2057         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
2058         (input_overwrite_node): Likewise.
2059         * lto-section-in.c: New icf section added.
2060         * lto-streamer.h (enum lto_section_type): Likewise.
2061         * opts.c (common_handle_option): New option added.
2062         * passes.def: New pass included.
2063         * timevar.def: Time variable for IPA ICF added.
2064         * tree-pass.h: New IPA ICF pass entry point added.
2065
2066 2014-10-16  Richard Biener  <rguenther@suse.de>
2067
2068         PR tree-optimization/63168
2069         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
2070         latches if after merging they are no longer simple.
2071         * cfghooks.c (merge_blocks): Handle merging a latch block
2072         into another block.
2073
2074 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2075             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2076             Anna Tikhonova  <anna.tikhonova@intel.com>
2077             Ilya Tocar  <ilya.tocar@intel.com>
2078             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2079             Ilya Verbin  <ilya.verbin@intel.com>
2080             Kirill Yukhin  <kirill.yukhin@intel.com>
2081             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2082
2083         * config/i386/sse.md
2084         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
2085         support AVX-512VL instructions.
2086
2087 2014-10-16  DJ Delorie  <dj@redhat.com>
2088
2089         * tree-core.h: Fix comment to not assume pointers are multiples of
2090         bytes.
2091
2092 2014-10-15  Tom Tromey  <tromey@redhat.com>
2093
2094         * timevar.h (class auto_timevar): New class.
2095
2096 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
2097
2098         PR go/59432
2099         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
2100         Remove the second alternative.
2101         (regprefix): Remove mode attribute.
2102         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
2103         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
2104
2105         Revert:
2106         2013-11-05  Ian Lance Taylor  <iant@google.com>
2107
2108         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
2109         If possible, add .cfi directives to record change to bx.
2110         * config/i386/i386.c (ix86_emit_cfi): New function.
2111         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
2112
2113 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
2114
2115         PR lto/62026
2116         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
2117         to duplicate.
2118         * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
2119         at WPA time.
2120
2121 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
2122
2123         PR rtl-optimization/63448
2124         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
2125         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
2126         (LRA_MAX_INHERITANCE_PASSES): Use it.
2127         (lra_constraint_iter_after_spill): Remove.
2128         (lra_assignment_iter): New.
2129         (lra_assignment_iter_after_spill): New.
2130         * lra-assigns.c (lra_assignment_iter): New.
2131         (lra_assignment_iter_after_spill): New.
2132         (former_reload_pseudo_spill_p): New.
2133         (spill_for): Set up former_reload_pseudo_spill_p.
2134         (setup_live_pseudos_and_spill_after_risky): Ditto.
2135         (assign_by_spills): Ditto.
2136         (lra_assign): Increment lra_assignment_iter.  Print the iteration
2137         number.  Reset former_reload_pseudo_spill_p.  Check
2138         lra_assignment_iter_after_spill.
2139         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
2140         lra_assignment_iter and lra_assignment_iter_after_spill.
2141         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
2142         (lra_constraints): Remove code with
2143         lra_assignment_iter_after_spill.
2144
2145 2014-10-15  Teresa Johnson  <tejohnson@google.com>
2146
2147         PR bootstrap/63432
2148         * tree-ssa-threadupdate.c (recompute_probabilities): Better
2149         overflow checking.
2150
2151 2014-10-15  Renlin Li <renlin.li@arm.com>
2152
2153         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
2154         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
2155         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
2156         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
2157
2158 2014-10-15  Richard Biener  <rguenther@suse.de>
2159
2160         * gimple-fold.c (gimple_fold_call): Properly keep virtual
2161         SSA form up-to-date when devirtualizing a call to
2162         __builtin_unreachable and avoid fixing up EH info here.
2163
2164 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2165             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2166             Anna Tikhonova  <anna.tikhonova@intel.com>
2167             Ilya Tocar  <ilya.tocar@intel.com>
2168             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2169             Ilya Verbin  <ilya.verbin@intel.com>
2170             Kirill Yukhin  <kirill.yukhin@intel.com>
2171             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2172
2173         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
2174         to support AVX-512BW.
2175         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
2176         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
2177         (define_insn "*<plusminus_insn><mode>3"): Ditto.
2178         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
2179         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
2180         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
2181         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
2182         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
2183         (define_insn "*andnot<mode>3"): Ditto.
2184         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
2185         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
2186         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
2187         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
2188         (define_insn "*abs<mode>2"): Remove masking support.
2189         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
2190         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
2191         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
2192
2193 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2194             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2195             Anna Tikhonova  <anna.tikhonova@intel.com>
2196             Ilya Tocar  <ilya.tocar@intel.com>
2197             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2198             Ilya Verbin  <ilya.verbin@intel.com>
2199             Kirill Yukhin  <kirill.yukhin@intel.com>
2200             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2201
2202         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
2203         * config/i386/sse.md
2204         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
2205         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
2206         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
2207         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
2208         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
2209         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
2210         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
2211
2212 2014-10-15  Renlin Li <renlin.li@arm.com>
2213
2214         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
2215
2216 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
2217
2218         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
2219         MINUS_EXPR in unsigned type to avoid undefined behavior.
2220
2221 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
2222
2223         * stor-layout.c (self_referential_size): Do not promote arguments.
2224
2225 2014-10-15  Marek Polacek  <polacek@redhat.com>
2226
2227         * doc/invoke.texi: Update to reflect that GNU11 is the default
2228         mode for C.
2229         * c-common.h (c_language_kind): Update comment.
2230
2231 2014-10-15  Richard Biener  <rguenther@suse.de>
2232
2233         * hash-table.c: Include bconfig.h if building for the host.
2234         * hash-table.h: Do not include ggc.h on the host but just declare
2235         a few ggc allocation templates.
2236
2237 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
2238             Jeff Law  <law@redhat.com>
2239
2240         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
2241         multiple hard registers, use smaller mode derived from MODE.
2242
2243 2014-10-15  Andreas Schwab  <schwab@suse.de>
2244
2245         * explow.c (convert_memory_address_addr_space_1): Mark in_const
2246         as ATTRIBUTE_UNUSED.
2247
2248 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
2249
2250         * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
2251         (decide_unrolling): ... this one.
2252         (peel_loops_completely): Remove.
2253         (decide_peel_simple): Remove.
2254         (decide_peel_once_rolling): Remove.
2255         (decide_peel_completely): Remove.
2256         (peel_loop_simple): Remove.
2257         (peel_loop_completely): Remove.
2258         (unroll_and_peel_loops): Rename to ...
2259         (unroll_loops): ... this one; handle only unrolling.
2260         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
2261         LPT_PEEL_SIMPLE.
2262         (UAP_PEEL): Remove.
2263         (unroll_and_peel_loops): Remove.
2264         (unroll_loops): New.
2265         * passes.def: Replace
2266         pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
2267         * loop-init.c (gate_rtl_unroll_and_peel_loops,
2268         rtl_unroll_and_peel_loops): Rename to ...
2269         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
2270         (pass_rtl_unroll_and_peel_loops): Rename to ...
2271         (pass_rtl_unroll_loops): ... this one.
2272         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
2273         (make_pass_rtl_unroll_loops): New.
2274         * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
2275         (canonicalize_loop_induction_variables): Update.
2276
2277 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
2278
2279         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
2280         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
2281         !TARGET_HARD_FLOAT_POSTINC.
2282         (*lsip, *ssip): new instructions.
2283
2284 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
2285
2286         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
2287         remove.
2288
2289 2014-10-14  Andrew Pinski  <apinski@cavium.com>
2290
2291         * explow.c (convert_memory_address_addr_space): Rename to ...
2292         (convert_memory_address_addr_space_1): This.  Add in_const argument.
2293         Inside a CONST RTL, permute the conversion and addition of constant
2294         for zero and sign extended pointers.
2295         (convert_memory_address_addr_space): New function.
2296
2297 2014-10-14  Andrew Pinski  <apinski@cavium.com>
2298
2299         Revert:
2300         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
2301
2302         PR middle-end/49721
2303         * explow.c (convert_memory_address_addr_space): Also permute the
2304         conversion and addition of constant for zero-extend.
2305
2306 2014-10-14  DJ Delorie  <dj@redhat.com>
2307
2308         * config/msp430/msp430-modes.def (PSI): Add.
2309
2310         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
2311         (msp430_hard_regno_nregs_with_padding): New.
2312         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
2313         (msp430_hard_regno_nregs_has_padding): New.
2314         (msp430_hard_regno_nregs_with_padding): New.
2315         (msp430_unwind_word_mode): Use PSImode instead of SImode.
2316         (msp430_addr_space_legitimate_address_p): New.
2317         (msp430_asm_integer): New.
2318         (msp430_init_dwarf_reg_sizes_extra): New.
2319         (msp430_print_operand): Use X suffix for PSImode even in small model.
2320         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
2321         (PTR_SIZE): ...but 4 bytes for EH.
2322         (SIZE_TYPE): Use __int20.
2323         (PTRDIFF_TYPE): Likewise.
2324         (INCOMING_FRAME_SP_OFFSET): Adjust.
2325         * config/msp430/msp430.md (movqi_topbyte): New.
2326         (movpsi): Use fixed suffixes.
2327         (movsipsi2): Enable for 430X, not large model.
2328         (extendhipsi2): Likewise.
2329         (zero_extendhisi2): Likewise.
2330         (zero_extendhisipsi2): Likewise.
2331         (extend_and_shift1_hipsi2): Likewise.
2332         (extendpsisi2): Likewise.
2333         (*bitbranch<mode>4_z): Fix suffix logic.
2334
2335 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
2336
2337         PR ada/62019
2338         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
2339         do not choke on null node.
2340         <VAR_DECL>: Likewise.
2341
2342 2014-10-14  DJ Delorie  <dj@redhat.com>
2343
2344         * machmode.h (int_n_data_t): New.
2345         (int_n_enabled_p): New.
2346         (int_n_data): New.
2347         * tree.c (int_n_enabled_p): New.
2348         (int_n_trees): New.
2349         (make_or_reuse_type): Check for all __intN types, not just
2350         __int128.
2351         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
2352         entries.
2353         * tree.h (int128_integer_type_node): Remove.
2354         (int128_unsigned_type_node): Remove.
2355         (int_n_trees_t): New.
2356         (int_n_enabled_p): New.
2357         (int_n_trees): New.
2358         * toplev.c (standard_type_bitsize): New.
2359         (do_compile): Check which __intN types are enabled for the current
2360         run.
2361         * builtin-types.def (BT_INT128): Remove.
2362         (BT_UINT128): Remove.
2363         * machmode.def: Add macro to create __int128 for all targets.
2364         * stor-layout.c (mode_for_size): Support __intN types.
2365         (smallest_mode_for_size): Likewise.
2366         (initialize_sizetypes): Support __intN types.
2367         * genmodes.c (struct mode_data): Add int_n field.
2368         (blank_mode): Likewise.
2369         (INT_N): New.
2370         (make_int_n): New.
2371         (emit_insn_modes_h): Count __intN entries and define
2372         NUM_INT_N_ENTS.
2373         (emit_mode_int_n): New.
2374         (emit_insn_modes_c): Call it.
2375         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
2376         types, not just __int128.
2377         * tree-core.h (integer_type_kind): Remove __int128-specific
2378         entries, reserve spots for __intN entries.
2379
2380         * config/msp430/msp430-modes.def (PSI): Add.
2381
2382 2014-10-14  Kito Cheng  <kito@0xlab.org>
2383
2384         * ira.c: Fix typo in comment.
2385         * ira.h: Ditto.
2386         * ira-build.c: Ditto.
2387         * ira-color.c: Ditto.
2388         * ira-emit.c: Ditto.
2389         * ira-int.h: Ditto.
2390         * ira-lives.c: Ditto.
2391
2392 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
2393
2394         PR rtl-optimization/63475
2395         * alias.c (true_dependence_1): Always use get_addr to extract
2396         true address operands from x_addr and mem_addr.  Use extracted
2397         address operands to check for references with alignment ANDs.
2398         Use extracted address operands with find_base_term and
2399         base_alias_check. For noncanonicalized operands call canon_rtx with
2400         extracted address operand.
2401         (write_dependence_1): Ditto.
2402         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
2403
2404 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
2405
2406         PR target/63534
2407         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
2408         __morestack local.
2409
2410 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2411             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2412             Anna Tikhonova  <anna.tikhonova@intel.com>
2413             Ilya Tocar  <ilya.tocar@intel.com>
2414             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2415             Ilya Verbin  <ilya.verbin@intel.com>
2416             Kirill Yukhin  <kirill.yukhin@intel.com>
2417             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2418
2419         * config/i386/i386.c
2420         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
2421         (ix86_expand_int_vcond): Ditto.
2422
2423 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2424             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2425             Anna Tikhonova  <anna.tikhonova@intel.com>
2426             Ilya Tocar  <ilya.tocar@intel.com>
2427             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2428             Ilya Verbin  <ilya.verbin@intel.com>
2429             Kirill Yukhin  <kirill.yukhin@intel.com>
2430             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2431
2432         * config/i386/i386.c
2433         (emit_reduc_half): Handle V64QI and V32HI mode.
2434         * config/i386/sse.md
2435         (define_mode_iterator VI_AVX512BW): New.
2436         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
2437
2438 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2439             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2440             Anna Tikhonova  <anna.tikhonova@intel.com>
2441             Ilya Tocar  <ilya.tocar@intel.com>
2442             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2443             Ilya Verbin  <ilya.verbin@intel.com>
2444             Kirill Yukhin  <kirill.yukhin@intel.com>
2445             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2446
2447         * config/i386/sse.md
2448         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
2449
2450 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2451             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2452             Anna Tikhonova  <anna.tikhonova@intel.com>
2453             Ilya Tocar  <ilya.tocar@intel.com>
2454             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2455             Ilya Verbin  <ilya.verbin@intel.com>
2456             Kirill Yukhin  <kirill.yukhin@intel.com>
2457             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2458
2459         * config/i386/i386.c
2460         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
2461         * config/i386/sse.md
2462         (define_mode_iterator VI): Add V64QI and V32HI modes.
2463
2464 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2465             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2466             Anna Tikhonova  <anna.tikhonova@intel.com>
2467             Ilya Tocar  <ilya.tocar@intel.com>
2468             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2469             Ilya Verbin  <ilya.verbin@intel.com>
2470             Kirill Yukhin  <kirill.yukhin@intel.com>
2471             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2472
2473         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
2474
2475 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2476             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2477             Anna Tikhonova  <anna.tikhonova@intel.com>
2478             Ilya Tocar  <ilya.tocar@intel.com>
2479             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2480             Ilya Verbin  <ilya.verbin@intel.com>
2481             Kirill Yukhin  <kirill.yukhin@intel.com>
2482             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2483
2484         * config/i386/sse.md
2485         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
2486         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
2487
2488 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2489             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2490             Anna Tikhonova  <anna.tikhonova@intel.com>
2491             Ilya Tocar  <ilya.tocar@intel.com>
2492             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2493             Ilya Verbin  <ilya.verbin@intel.com>
2494             Kirill Yukhin  <kirill.yukhin@intel.com>
2495             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2496
2497         * config/i386/sse.md
2498         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
2499         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
2500
2501 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2502             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2503             Anna Tikhonova  <anna.tikhonova@intel.com>
2504             Ilya Tocar  <ilya.tocar@intel.com>
2505             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2506             Ilya Verbin  <ilya.verbin@intel.com>
2507             Kirill Yukhin  <kirill.yukhin@intel.com>
2508             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2509
2510         * config/i386/sse.md
2511         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
2512         (define_mode_iterator VI2_AVX2): Add V32HI mode.
2513         (define_expand "mul<mode>3<mask_name>"): Add masking.
2514         (define_insn "*mul<mode>3<mask_name>"): Ditto.
2515         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
2516         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
2517         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
2518         (define_mode_attr SDOT_PMADD_SUF): Ditto.
2519         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
2520         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
2521         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
2522         (define_insn "avx2_packusdw"): Delete.
2523         (define_insn "sse4_1_packusdw"): Ditto.
2524         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
2525
2526 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2527             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2528             Anna Tikhonova  <anna.tikhonova@intel.com>
2529             Ilya Tocar  <ilya.tocar@intel.com>
2530             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2531             Ilya Verbin  <ilya.verbin@intel.com>
2532             Kirill Yukhin  <kirill.yukhin@intel.com>
2533             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2534
2535         * config/i386/sse.md
2536         (define_insn "vec_dup<mode>"): Update constraints.
2537
2538 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2539             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2540             Anna Tikhonova  <anna.tikhonova@intel.com>
2541             Ilya Tocar  <ilya.tocar@intel.com>
2542             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2543             Ilya Verbin  <ilya.verbin@intel.com>
2544             Kirill Yukhin  <kirill.yukhin@intel.com>
2545             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2546
2547         * config/i386/sse.md
2548         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
2549         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
2550         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
2551
2552 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2553             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2554             Anna Tikhonova  <anna.tikhonova@intel.com>
2555             Ilya Tocar  <ilya.tocar@intel.com>
2556             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2557             Ilya Verbin  <ilya.verbin@intel.com>
2558             Kirill Yukhin  <kirill.yukhin@intel.com>
2559             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2560
2561         * config/i386/sse.md
2562         (define_expand "mul<mode>3<mask_name>"): Add masking.
2563
2564 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2565             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2566             Anna Tikhonova  <anna.tikhonova@intel.com>
2567             Ilya Tocar  <ilya.tocar@intel.com>
2568             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2569             Ilya Verbin  <ilya.verbin@intel.com>
2570             Kirill Yukhin  <kirill.yukhin@intel.com>
2571             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2572
2573         * config/i386/sse.md
2574         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
2575         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
2576
2577 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2578             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2579             Anna Tikhonova  <anna.tikhonova@intel.com>
2580             Ilya Tocar  <ilya.tocar@intel.com>
2581             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2582             Ilya Verbin  <ilya.verbin@intel.com>
2583             Kirill Yukhin  <kirill.yukhin@intel.com>
2584             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2585
2586         * config/i386/sse.md
2587         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
2588         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
2589         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
2590         Ditto.
2591
2592 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2593             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2594             Anna Tikhonova  <anna.tikhonova@intel.com>
2595             Ilya Tocar  <ilya.tocar@intel.com>
2596             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2597             Ilya Verbin  <ilya.verbin@intel.com>
2598             Kirill Yukhin  <kirill.yukhin@intel.com>
2599             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2600
2601         * config/i386/sse.md
2602         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
2603         use VF_128_256 mode iterator and update assembler emit code.
2604         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
2605         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
2606         Add masking, use VF_128_256 mode iterator.
2607         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
2608         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
2609         Add masking, use VF_128_256 mode iterator and update assembler emit
2610         code.
2611         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
2612         (define_mode_attr avx512flogicsuff): Delete.
2613         (define_insn "avx512f_<logic><mode>"): Ditto.
2614         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
2615         MODE_TI.
2616         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
2617
2618 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2619             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2620             Anna Tikhonova  <anna.tikhonova@intel.com>
2621             Ilya Tocar  <ilya.tocar@intel.com>
2622             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2623             Ilya Verbin  <ilya.verbin@intel.com>
2624             Kirill Yukhin  <kirill.yukhin@intel.com>
2625             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2626
2627         * config/i386/sse.md
2628         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
2629         (define_expand "vashr<mode>3<mask_name>"): Add masking,
2630         use VI12_128 mode iterator.
2631         (define_expand "ashrv2di3<mask_name>"): New.
2632
2633 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2634             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2635             Anna Tikhonova  <anna.tikhonova@intel.com>
2636             Ilya Tocar  <ilya.tocar@intel.com>
2637             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2638             Ilya Verbin  <ilya.verbin@intel.com>
2639             Kirill Yukhin  <kirill.yukhin@intel.com>
2640             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2641
2642         * config/i386/i386.c
2643         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
2644         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
2645         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
2646         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
2647         CODE_FOR_avx512vl_ucmpv4si3_mask.
2648         * config/i386/sse.md
2649         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
2650         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
2651         (define_insn
2652         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
2653         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
2654         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
2655         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
2656         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
2657         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
2658
2659 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2660             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2661             Anna Tikhonova  <anna.tikhonova@intel.com>
2662             Ilya Tocar  <ilya.tocar@intel.com>
2663             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2664             Ilya Verbin  <ilya.verbin@intel.com>
2665             Kirill Yukhin  <kirill.yukhin@intel.com>
2666             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2667
2668         * config/i386/sse.md
2669         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
2670         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
2671         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
2672         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
2673         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
2674         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
2675         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2676         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2677         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
2678
2679 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2680             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2681             Anna Tikhonova  <anna.tikhonova@intel.com>
2682             Ilya Tocar  <ilya.tocar@intel.com>
2683             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2684             Ilya Verbin  <ilya.verbin@intel.com>
2685             Kirill Yukhin  <kirill.yukhin@intel.com>
2686             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2687
2688         * config/i386/sse.md
2689         (define_insn "avx512f_blendm<mode>"): Delete.
2690         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
2691         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
2692         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
2693         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
2694         (define_insn
2695         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2696         Remove.
2697         (define_insn
2698         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2699         New.
2700         (define_insn
2701         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2702         Ditto.
2703         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
2704         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
2705         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
2706         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
2707         Delete.
2708         (define_insn
2709         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
2710         New.
2711         (define_insn
2712         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
2713         Ditto.
2714         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
2715         Delete.
2716         (define_insn
2717         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
2718         New.
2719         (define_insn
2720         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
2721         Ditto.
2722
2723 2014-10-14  Richard Biener  <rguenther@suse.de>
2724
2725         PR tree-optimization/63512
2726         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
2727         modified.
2728
2729 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
2730
2731         PR target/63260
2732         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
2733         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
2734         of FPSCR.
2735         (negsf2_i): Rename to *negsf2_i.
2736         (abssf2_i): Rename to *abssf2_i.
2737         (negdf2_i): Rename to *negdf2_i.
2738         (absdf2_i): Rename to *absdf2_i.
2739
2740 2014-10-14  Felix Yang  <felix.yang@huawei.com>
2741             Jeff Law  <law@redhat.com>
2742
2743         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
2744         "replace" into boolean bitfields; turn member "loop_depth" into a short
2745         integer; add new member "no_equiv" and "reserved".
2746         (no_equiv): Set no_equiv of struct equivalence if register is marked
2747         as having no known equivalence.
2748         (update_equiv_regs): Check all definitions for a multiple-set
2749         register to make sure that the RHS have the same value.
2750
2751 2014-10-13  Richard Henderson  <rth@redhat.com>
2752
2753         * combine-stack-adj.c (no_unhandled_cfa): New.
2754         (maybe_merge_cfa_adjust): New.
2755         (combine_stack_adjustments_for_block): Use them.
2756
2757 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
2758
2759         * Makefile.in (TAGS): Tag ../include files.
2760
2761 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2762
2763         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
2764         to rs6000_dbx_register_number.
2765         (DWARF_FRAME_REGNUM): Redefine as identity map.
2766         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
2767         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
2768         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
2769         argument to handle .debug_frame and .eh_frame directly.  Always
2770         translate SPE high register numbers.  Add special treatment for CR,
2771         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
2772
2773         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
2774         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
2775         (RS6000_USE_DWARF_NUMBERING): Define.
2776         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
2777         (RS6000_USE_DWARF_NUMBERING): Define.
2778         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
2779         (RS6000_USE_DWARF_NUMBERING): Define.
2780         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
2781         (RS6000_USE_DWARF_NUMBERING): Define.
2782         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
2783         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
2784
2785 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
2786
2787         * config/i386/i386.c (ix86_address_cost): Lower cost for
2788         when address contains GOT register.
2789
2790 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2791             Vladimir Makarov  <vmakarov@redhat.com>
2792
2793         PR target/8340
2794         PR middle-end/47602
2795         PR rtl-optimization/55458
2796         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
2797         (ix86_init_pic_reg): New.
2798         (ix86_select_alt_pic_regnum): Add check on pseudo register.
2799         (ix86_save_reg): Likewise.
2800         (ix86_expand_prologue): Remove PIC register initialization
2801         now performed in ix86_init_pic_reg.
2802         (ix86_output_function_epilogue): Add check on pseudo register.
2803         (set_pic_reg_ever_alive): New.
2804         (legitimize_pic_address): Replace df_set_regs_ever_live with new
2805         set_pic_reg_ever_alive.
2806         (legitimize_tls_address): Likewise.
2807         (ix86_pic_register_p): New check.
2808         (ix86_delegitimize_address): Add check on pseudo register.
2809         (ix86_expand_call): Insert move from pseudo PIC register to ABI
2810         defined REAL_PIC_OFFSET_TABLE_REGNUM.
2811         (TARGET_INIT_PIC_REG): New.
2812         (TARGET_USE_PSEUDO_PIC_REG): New.
2813         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
2814         if pic_offset_table_rtx exists.
2815         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
2816         Document.
2817         * doc/tm.texi: Regenerate.
2818         * function.c (assign_parms): Generate pseudo register for PIC.
2819         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
2820         register.
2821         * ira-color.c (color_pass): Add check on pseudo register.
2822         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
2823         register.
2824         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
2825         register.
2826         (ira): Add target specific PIC register initialization.
2827         (do_reload): Keep PIC pseudo register.
2828         * lra-assigns.c (spill_for): Add checks on pseudo register.
2829         * lra-constraints.c (contains_symbol_ref_p): New.
2830         (lra_constraints): Enable lra risky transformations when PIC is pseudo
2831         register.
2832         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
2833         * target.def (use_pseudo_pic_reg): New.
2834         (init_pic_reg): New.
2835
2836 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
2837
2838         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
2839         Remove m_SILVERMONT and m_INTEL from the tune.
2840
2841 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2842
2843         PR libfortran/63471
2844         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
2845         when _HPUX_SOURCE is defined.
2846
2847 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
2848
2849         PR tree-optimization/62127
2850         * tree.c (remap_type_1): When remapping array, remap
2851         also its type.
2852
2853 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
2854
2855         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
2856         longer impact parallelization.
2857
2858 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
2859
2860         PR bootstrap/63496
2861         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
2862
2863 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
2864
2865         * asan.c (instrument_derefs): BIT_FIELD_REF added.
2866
2867 2014-10-13  Richard Biener  <rguenther@suse.de>
2868
2869         PR tree-optimization/63419
2870         * gimple-fold.h (gimple_convert): New function.
2871         * gimple-fold.c (gimple_convert): Likewise.
2872         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
2873         to split out required conversions early.
2874
2875 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
2876
2877         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
2878         Add the parts of an insn in reverse order, with the pattern at
2879         the top of the queue.  Detect when we're iterating over a SEQUENCE
2880         pattern and in that case just consider patterns of subinstructions.
2881
2882 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
2883
2884         PR target/59401
2885         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
2886         of rtx.
2887         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
2888         insn walking.
2889         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
2890         address.  Use def chains to handle GBR clobbering call insns.
2891
2892 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
2893
2894         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
2895         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
2896         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
2897         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
2898         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
2899         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
2900         * doc/gty.texi (for_user): Document new option.
2901         * gengtype.c (create_user_defined_type): Don't try to get a struct for
2902         char.
2903         (walk_type): Don't error out on for_user option.
2904         (write_func_for_structure): Emit user marking routines if requested by
2905         for_user option.
2906         (write_local_func_for_structure): Likewise.
2907         (main): Mark types with for_user option as used.
2908         * ggc.h (gt_pch_nx): Add overload for unsigned int.
2909         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
2910         * hash-table.h (ggc_hasher): New struct.
2911         (hash_table::create_ggc): New function.
2912         (gt_pch_nx): New overload for hash_table.
2913
2914 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
2915
2916         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
2917         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
2918         * config/sh/sh.c: Likewise.
2919         * config/sh/sh-mem.cc: Likewise.
2920         * config/sh/sh.md: Likewise.
2921         * config/sh/predicates.md: Likewise.
2922         * config/sh/sync.md: Likewise.
2923
2924 2014-10-11  Martin Liska  <mliska@suse.cz>
2925
2926         PR middle-end/63376
2927         * cgraphunit.c (symbol_table::process_new_functions): Missing call
2928         for call_cgraph_insertion_hooks added.
2929
2930 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
2931
2932         PR c/63495
2933         * stor-layout.c (min_align_of_type): Don't decrease alignment
2934         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
2935         TYPE_USER_ALIGN is set.
2936
2937 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
2938
2939         PR rtl-optimization/63483
2940         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
2941         references when alignment ANDs are involved.
2942         (write_dependence_p): Ditto.
2943         (may_alias_p): Ditto.
2944
2945 2014-10-10  Marek Polacek  <polacek@redhat.com>
2946
2947         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
2948         * doc/invoke.texi: Document -fsanitize=object-size.
2949         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
2950         or it into SANITIZE_UNDEFINED.
2951         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
2952         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
2953         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
2954         * opts.c (common_handle_option): Handle -fsanitize=object-size.
2955         * ubsan.c: Include tree-object-size.h.
2956         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
2957         (ubsan_expand_bounds_ifn): Use false instead of 0.
2958         (ubsan_expand_objsize_ifn): New function.
2959         (instrument_object_size): New function.
2960         (pass_ubsan::execute): Add object size instrumentation.
2961         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
2962
2963 2014-10-10  Richard Henderson  <rth@redhat.com>
2964
2965         PR target/63404
2966         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
2967         Restrict the set of expressions we're willing to move.
2968
2969 2014-10-10  Jeff Law  <law@redhat.com>
2970
2971         * ira.c (struct equivalence): Promote INIT_INSNs field to
2972         an rtx_insn_list.  Add comments.
2973         (no_equiv): Promote LIST to an rtx_insn_list.  Update
2974         testing for and creating the special marker.  Use methods
2975         to extract the insn and next pointers.  Promote INSN to an
2976         rtx_insn.
2977         (update_equiv_regs): Update test for special marker in the
2978         INIT_INSNs list.
2979
2980 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2981
2982         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
2983         * configure: Regenerate.
2984         * config/aarch64/aarch64.c (aarch64_override_options): Handle
2985         TARGET_FIX_ERR_A53_835769_DEFAULT.
2986         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
2987         value to 2.
2988         * doc/install.texi (aarch64*-*-*): Document
2989         new --enable-fix-cortex-a53-835769 option.
2990
2991 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2992             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2993
2994         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
2995         (ADJUST_INSN_LENGTH): Define.
2996         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
2997         * config/aarch64/aarch64.c (is_mem_p): New function.
2998         (is_memory_op): Likewise.
2999         (aarch64_prev_real_insn): Likewise.
3000         (is_madd_op): Likewise.
3001         (dep_between_memop_and_curr): Likewise.
3002         (aarch64_madd_needs_nop): Likewise.
3003         (aarch64_final_prescan_insn): Likewise.
3004         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
3005         and -mno-fix-cortex-a53-835769 options.
3006
3007 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
3008
3009         PR tree-optimization/63464
3010         * tree-switch-conversion.c (struct case_bit_test): Remove
3011         hi and lo fields, add wide_int mask field.
3012         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
3013         hi/lo fields into wide_int mask operations, optimize by pretending
3014         minval to be 0 if maxval is small enough.
3015         (process_switch): Adjust caller.
3016
3017 2014-10-10  Richard Biener  <rguenther@suse.de>
3018
3019         PR tree-optimization/63379
3020         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
3021         a neutral operand for min/max when it is not a reduction chain.
3022
3023 2014-10-10  Richard Biener  <rguenther@suse.de>
3024
3025         PR tree-optimization/63476
3026         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
3027         (BB_LIVE_VOP_ON_EXIT): New define.
3028         (create_expression_by_pieces): Assign VUSEs to stmts.
3029         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
3030         (pass_pre::execute): Assert virtual SSA form is up-to-date
3031         after insertion.
3032
3033 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
3034
3035         * lra-assigns.c (assign_by_spills): Error out on spill failure.
3036
3037 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
3038
3039         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
3040         assertion.
3041
3042 2014-10-09  Richard Biener  <rguenther@suse.de>
3043
3044         PR tree-optimization/63380
3045         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
3046         may trap.
3047
3048 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
3049
3050         * config/avr/avr.opt (mmcu=): Change to have a string value.
3051         (mn-flash=, mskip-bug, march=, mrmw): New options.
3052         (HeaderInclude): New.
3053         (mmcu=): Remove Var / Init clauses.
3054         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
3055         -specs option.
3056         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
3057         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
3058         (SYMBOL_FLAG_IO_LOW): Define.
3059         (avr_device_to_as, avr_device_to_ld): Don't declare.
3060         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3061         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
3062         (EXTRA_SPEC_FUNCTIONS): Don't define.
3063         (ASM_SPEC): Translate -arch= option to -mmcu= option.
3064         (LINK_SPEC): Translate -arch= option to -m= option.
3065         Don't use device_to_ld / device_to_data_start.
3066         (STARTFILE_SPEC): Now empty.
3067         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
3068         * config/avr/gen-avr-mmcu-specs.c: New file.
3069         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
3070         (s-device-specs): Likewise.
3071         (GCC_PASSES): Add s-device-specs.
3072         (install-driver): Depend on install-device-specs.
3073         (install-device-specs): New rule.
3074         * config/avr/avr.c (avr_option_override): Look up mcu arch by
3075         avr_arch_index and provide fallback initialization for avr_n_flash.
3076         (varasm.h): #include.
3077         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
3078         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
3079         (avr_attribute_table): Add "io", "address" and "io_low".
3080         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
3081         Add special handling for symbols with "io" and/or "address" attributes.
3082         (avr_asm_asm_output_aligned_bss): New function.
3083         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
3084         as appropriate.  Handle io_low attribute.
3085         (avr_out_sbxx_branch): Handle symbolic io addresses.
3086         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
3087         avr_n_flash instead of avr_current_device->n_flash.
3088         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
3089         (avr_emit_movmemhi): Likewise.
3090         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
3091         Use TARGET_RMW instead of avr_current_device->dev_attributes.
3092         Don't define avr_current_device->macro (that's the specfile's job).
3093         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
3094         * config/avr/avr.c (avr_2word_insn_p): Likewise.
3095         * config/avr/avr.md (*cpse.ne): Likewise.
3096         (mov<mode>): Use avr_eval_addr_attrib.
3097         (cbi): Change constraint for low_io_address_operand operand to "i".
3098         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
3099         * config/avr/predicates.md (io_address_operand):
3100         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
3101         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
3102         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
3103         Update prototype.
3104         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
3105         * config/avr/genmultilib.awk: Use -march=.
3106         Remove Multilib matches processing.
3107         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
3108         * config/avr/avr-arch.h: Add double include guard.
3109         (avr_mcu_t) <library_name>: Update comment.
3110         * config/avr/driver-avr.c (avr_device_to_as): Delete.
3111         (avr_device_to_ld, avr_device_to_data_start): Likewise.
3112         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
3113         (avr_device_to_sp8): Likewise.
3114         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
3115
3116         * doc/extend.texi (io, address): Document new AVR variable attributes.
3117         (io_low): Likewise.
3118
3119 2014-10-09  Marek Polacek  <polacek@redhat.com>
3120
3121         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
3122
3123 2014-10-08  Richard Biener  <rguenther@suse.de>
3124
3125         PR tree-optimization/61969
3126         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
3127         variables.
3128
3129 2014-10-09  Richard Biener  <rguenther@suse.de>
3130
3131         PR tree-optimization/63445
3132         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
3133         overflow for non-equality compares.
3134
3135 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
3136
3137         PR rtl-optimization/57003
3138         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
3139         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
3140         killing regs_invalidated_by_call.
3141
3142 2014-10-08  Teresa Johnson  <tejohnson@google.com>
3143
3144         PR bootstrap/63432.
3145         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
3146         (ssa_fix_duplicate_block_edges): Invoke it.
3147         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
3148
3149 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
3150
3151         PR target/52941
3152         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
3153         atomic_fetch_<fetchop_name>si_hard,
3154         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
3155         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
3156         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
3157         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
3158
3159 2014-10-08  Rong Xu  <xur@google.com>
3160
3161         * gcov-tool.c (profile_overlap): New driver function
3162         to compute profile overlap.
3163         (print_overlap_usage_message): New.
3164         (overlap_usage): New.
3165         (do_overlap): New.
3166         (print_usage): Add calls to overlap function.
3167         (main): Ditto.
3168         * doc/gcov-tool.texi: Add documentation.
3169
3170 2014-10-08  Steve Ellcey  <sellcey@mips.com>
3171
3172         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
3173         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
3174
3175 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
3176
3177         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
3178         pattern matching of MEM_REF.
3179         (check_stmt_for_type_change): Update.
3180
3181 2014-10-08  Steve Ellcey  <sellcey@mips.com>
3182
3183         * config/mips/linux64.h: Remove.
3184         * config/mips/gnu-user64.h: Remove.
3185         * gcc.config (mips*-*-*): Remove references to linux64.h and
3186         gnu-user64.h
3187         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
3188         with modified version from gnu-user64.h.
3189         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
3190         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
3191         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
3192         linux64.h.
3193         (GNU_USER_LINK_EMULATION64): Ditto.
3194         (GNU_USER_LINK_EMULATIONN32): Ditto.
3195         (GLIBC_DYNAMIC_LINKER32): Ditto.
3196         (GLIBC_DYNAMIC_LINKER64): Ditto.
3197         (GLIBC_DYNAMIC_LINKERN32): Ditto.
3198         (UCLIBC_DYNAMIC_LINKER32): Ditto.
3199         (UCLIBC_DYNAMIC_LINKER64): Ditto.
3200         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
3201         (BIONIC_DYNAMIC_LINKERN32): Ditto.
3202         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
3203         (GLIBC_DYNAMIC_LINKER): Delete.
3204         (UCLIBC_DYNAMIC_LINKER): Delete.
3205
3206 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
3207             Richard Biener  <rguenther@suse.de>
3208
3209         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
3210         Get address space from operand 0 (BASE).
3211
3212 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
3213
3214         PR target/61387
3215         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
3216
3217 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
3218
3219         * dwarf2out.c: Remove current_function_has_inlines.
3220         (gen_subprogram_die): Same.
3221         (gen_inlined_subroutine_die): Same.
3222
3223 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
3224
3225         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
3226         type.
3227         (_addcarry_u64): Ditto.
3228         (_addcarryx_u64): Ditto.
3229
3230 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
3231
3232         * cgraph.h (cgraph_node::get_fun): Declare.
3233         * cgraph.c (cgraph_node::get_fun): New method.
3234         * ipa-inline.c (can_inline_edge_p): Use it.
3235
3236 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
3237
3238         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
3239         and -ftrapping-math.
3240         * lto-wrapper.c (merge_and_complain): Likewise.
3241         (run_gcc): Likewise.
3242
3243 2014-10-06  Rong Xu  <xur@google.com>
3244
3245         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
3246         * tree-profile.c: (params.h): New include.
3247         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
3248         and __gcov_indirect_call_topn_counters for
3249         indirect_call_topn_profile.
3250         (gimple_init_edge_profiler): New decls for
3251         __gcov_indirect_call_topn_profiler.
3252         (gimple_gen_ic_profiler): Generate the correct profiler call.
3253         (gimple_gen_ic_func_profiler): Fix format.
3254         * value-prof.c (params.h): New include.
3255         (dump_histogram_value): Hanlde indirect_call_topn counters.
3256         (stream_in_histogram_value): Ditto.
3257         (gimple_indirect_call_to_profile): Use indirect_call_topn
3258         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
3259         (gimple_find_values_to_profile): Hanlde indirect_call_topn
3260         counters.
3261         * value-prof.h (enum hist_type): Histrogram type for
3262         indirect_call_topn counters.
3263         * profile.c (instrument_values): Instrument
3264         indirect_call_topn counters.
3265
3266 2014-10-06  Rong Xu  <xur@google.com>
3267
3268         * Makefile.in: Fix dependence.
3269         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
3270         indirect call topn profiler.
3271         * gcov-io.h: Ditto.
3272
3273 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3274
3275         * calls.c (expand_call): Do not use the target as the return slot if
3276         it is not sufficiently aligned.
3277
3278 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3279
3280         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
3281         discussion of permutes and why we don't handle them.
3282
3283 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3284
3285         * config/sparc/predicates.md (int_register_operand): Delete.
3286
3287 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3288
3289         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
3290
3291 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
3292
3293         * ubsan.h (ubsan_get_source_location): New prototype.
3294         * ubsan.c (ubsan_source_location_type): New variable.
3295         Function renamed to ...
3296         (ubsan_get_source_location_type): ... this.  Cache
3297         return value in ubsan_source_location_type variable.
3298         (ubsan_source_location, ubsan_create_data): Use
3299         ubsan_get_source_location_type instead of
3300         ubsan_source_location_type.
3301         * asan.c (asan_protect_global): Don't protect globals
3302         with ubsan_get_source_location_type () type.
3303         (asan_add_global): Provide global decl location info
3304         if possible.
3305
3306 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
3307
3308         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
3309         sanity check.
3310
3311 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
3312
3313         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
3314         on size.
3315         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
3316         into vptr pointer.
3317         (ipa_polymorphic_call_context::dump): Fix formating.
3318         (walk_ssa_copies): Add logic avoiding loops; update uses.
3319         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
3320
3321 2014-10-02  Mark Wielaard  <mjw@redhat.com>
3322
3323         PR debug/63239
3324         * dwarf2out.c (gen_subprogram_die): When a member function is
3325         explicitly deleted then add a DW_AT_GNU_deleted attribute.
3326         * langhooks.h (struct lang_hooks_for_decls): Add
3327         function_decl_deleted_p langhook.
3328         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
3329         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
3330
3331 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
3332
3333         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
3334         NULL pointer checks.
3335         (ipa_polymorphic_call_context::get_dynamic_type): Return true
3336         if type doesn't change.
3337         * cgraph.h (cgraph_indirect_call_info): New flag.
3338         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
3339         (cgraph_node::dump): Dump it.
3340         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
3341         of context.get_dynamic_type.
3342         (ipa_make_edge_direct_to_target): Do not speculate
3343         edge that is already speuclative.
3344         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
3345         speculate to __builtin_unreachable
3346         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
3347         vptr_changed.
3348         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
3349
3350 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
3351
3352         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
3353         get_dynamic_type; drop TODO.
3354         * ipa-polymorphic-call.c
3355         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
3356         for otr_type to be unknown.
3357
3358 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
3359
3360         * common/config/score/score-common.c: Remove.
3361         * config.gcc: Remove support for score-*.
3362         * config/score/constraints.md: Remove.
3363         * config/score/elf.h: Remove.
3364         * config/score/predicates.md: Remove.
3365         * config/score/score-conv.h: Remove.
3366         * config/score/score-generic.md: Remove.
3367         * config/score/score-modes.def: Remove.
3368         * config/score/score-protos.h: Remove.
3369         * config/score/score.c: Remove.
3370         * config/score/score.h: Remove.
3371         * config/score/score.md: Remove.
3372         * config/score/score.opt: Remove.
3373         * doc/md.texi: Don't document score-*.
3374
3375 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
3376
3377         PR pch/63429
3378         * genconditions.c: Directly include ggc.h before rtl.h.
3379
3380 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
3381
3382         * ipa-polymorphic-call.c
3383         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
3384         code determining speculative type.
3385         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
3386
3387 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3388
3389         * altivec.md (altivec_lvsl): New define_expand.
3390         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
3391         (altivec_lvsr): New define_expand.
3392         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
3393         * rs6000.c (rs6000_expand_builtin): Change to use
3394         altivec_lvs[lr]_direct; remove commented-out code.
3395
3396 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3397
3398         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3399         Issue a warning message when vec_lvsl or vec_lvsr is used with a
3400         little endian target.
3401
3402 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3403
3404         * tree-pretty-print.c (dump_location): Make it extern. Dump also
3405         the column.
3406         * tree-pretty-print.h (dump_location): Declare.
3407         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
3408         (pp_gimple_stmt_1): Likewise.
3409         (dump_implicit_edges): Likewise.
3410         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
3411         LOCATION_LINE.
3412
3413
3414 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
3415
3416         * gcc.c (driver::global_initializations): Remove "const" so
3417         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
3418         and decoded_options_count.
3419
3420 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
3421
3422         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
3423         macro.
3424         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
3425         TARGET_E500_DOUBLE case here.
3426
3427 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
3428
3429         PR c++/54427
3430         PR c++/57198
3431         PR c++/58845
3432         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
3433
3434 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
3435
3436         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
3437         * lto-cgraph.c (lto_output_edge, input_edge): Stream
3438         in_polymorphic_cdtor
3439         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
3440         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
3441         * cgraphclones.c (cgraph_edge::clone): Likewise.
3442         * ipa-prop.c (update_jump_functions_after_inlining,
3443         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
3444         to possible_dynamic_type_change.
3445         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
3446         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
3447         IN_POLY_CDOTR argument.
3448
3449         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
3450         for BASE and OUTER_TYPE being NULL.
3451         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
3452         in_poly_cdtor parameter.
3453
3454 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
3455
3456         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
3457         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
3458         TARGET_AVX512F.
3459         (expand_vec_perm_1): Likewise.
3460
3461 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
3462             Uros Bizjak  <ubizjak@gmail.com>
3463
3464         PR tree-optimization/61403
3465         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
3466         error in comment.  Also optimize 256-bit vectors for AVX2
3467         or AVX (floating vectors only), provided the first permutation
3468         can be performed in one insn.
3469
3470 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
3471
3472         * gcc.c (class driver): New class.
3473         (main): Reimplement in terms of driver::main, moving most of the
3474         locals to be locals within individual methods of class driver.
3475         The remaining locals "explicit_link_files", "decoded_options" and
3476         "decoded_options_count" are used by multiple driver:: methods, and
3477         so become member data.  Doing so isolates the argc/argv reads and
3478         writes.  Replace "goto out" with a special exit code from
3479         new method driver::prepare_infiles.  Split out the old
3480         implementation of main into the following...
3481         (driver::main): New function, corresponding to the old "main"
3482         implementation.
3483         (driver::set_progname): New function, taken from the old
3484         "main" implementation.
3485         (driver::expand_at_files): Likewise.
3486         (driver::decode_argv): Likewise.
3487         (driver::global_initializations): Likewise.
3488         (driver::build_multilib_strings): Likewise.
3489         (driver::set_up_specs): Likewise.
3490         (driver::putenv_COLLECT_GCC): Likewise.
3491         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
3492         (driver::handle_unrecognized_options): Likewise.
3493         (driver::maybe_print_and_exit): Likewise.
3494         (driver::prepare_infiles): Likewise.
3495         (driver::do_spec_on_infiles): Likewise.
3496         (driver::maybe_run_linker): Likewise.
3497         (driver::final_actions): Likewise.
3498         (driver::get_exit_code): Likewise.
3499
3500 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
3501
3502         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
3503         don't emit empty ctors.
3504
3505 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
3506
3507         * convert.c (convert_to_integer): Do not introduce useless conversions
3508         between integral types.
3509
3510 2014-10-03  David Sherwood  <david.sherwood@arm.com>
3511
3512         * ira-int.h (ira_allocno): Mark hard_regno as signed.
3513
3514 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
3515
3516         * lra-constraints.c (inherit_in_ebb): Handle calls with
3517         multiple return values.
3518         * caller-save.c (save_call_clobbered_regs): Likewise.
3519
3520 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
3521
3522         * tree-vect-data-refs.c (vect_permute_load_chain,
3523         vect_shift_permute_load_chain): Fix a typo in temporary var names,
3524         suffle3 to shuffle3.
3525
3526         PR libgomp/61200
3527         * omp-low.c (taskreg_contexts): New variable.
3528         (scan_omp_parallel): Push newly created context into taskreg_contexts
3529         vector and move record layout code to finish_taskreg_scan.
3530         (scan_omp_task): Likewise.
3531         (finish_taskreg_scan): New function.
3532         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
3533         vector elements and release it.
3534
3535         PR target/62128
3536         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
3537         of palignr arguments can't be used due to min 0 or max - min
3538         too high, try also op0, op1 order of palignr arguments.
3539
3540 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
3541
3542         * cgraph.h (ipa_polymorphic_call_context):
3543         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
3544         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
3545         * ipa-polymorphic-call.c
3546         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
3547         past end of dynamic types.
3548         (ipa_polymorphic_call_context::stream_out,
3549         speculative_outer_type): Stream dynamic flag.
3550         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
3551         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
3552         Clear DYNAMIC.
3553         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
3554         set it.
3555         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
3556         * ipa-prop.c (update_jump_functions_after_inlining,
3557         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
3558
3559 2014-10-02  Teresa Johnson  <tejohnson@google.com>
3560
3561         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
3562         up when synthesizing counts to avoid rounding errors.
3563
3564 2014-10-02  Teresa Johnson  <tejohnson@google.com>
3565
3566         PR middle-end/63422
3567         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
3568         asserts to handle incoming insanities.
3569
3570 2014-10-02  Martin Jambor  <mjambor@suse.cz>
3571
3572         PR tree-optimization/63375
3573         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
3574         references.
3575
3576 2014-10-02  Olivier Hainque  <hainque@adacore.com>
3577
3578         * Makefile.in (CROSS): Define, to @CROSS.
3579
3580 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
3581
3582         PR target/62128
3583         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
3584         if it expands to a single insn only.
3585         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
3586         fail unless in_order is true.  Add forward declaration.
3587         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
3588         is useful for one_operand_p.
3589         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
3590
3591 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3592
3593         * cgraphclones.c (build_function_type_skip_args): Do not make new
3594         type variant of old.
3595
3596 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3597
3598         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
3599         when speculation is added.
3600         (ipa_edge_args): Add polymorphic_call_contexts.
3601         (ipa_get_ith_polymorhic_call_context): New accesor.
3602         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
3603         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
3604         (ipa_compute_jump_functions_for_edge): Compute contexts.
3605         (update_jump_functions_after_inlining): Update contexts.
3606         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
3607         update dumping; add speculative edge creation.
3608         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
3609         context updating.
3610         (update_indirect_edges_after_inlining): Pass down context.
3611         (ipa_edge_duplication_hook): Duplicate contexts.
3612         (ipa_write_node_info): Stream out contexts.
3613         (ipa_read_node_info): Stream in contexts.
3614         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
3615         types.
3616         (try_speculative_devirtualization): New function.
3617         * ipa-utils.h (try_speculative_devirtualization): Declare.
3618
3619 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3620
3621         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
3622         dumping during WPA.
3623
3624 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3625
3626         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
3627         type variants.
3628
3629 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3630
3631         * ipa-polymorphic-call.c
3632         (ipa_polymorphic_call_context::restrict_to_inner_class):
3633         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
3634         use speculation_consistent_p to do so; Add CONSDER_BASES
3635         and CONSIDER_PLACEMENT_NEW parameters.
3636         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
3637         short circuit obvious cases.
3638         (ipa_polymorphic_call_context::dump): Improve formatting.
3639         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
3640         combine_speculation_with to record speculations; Do not ICE when
3641         object is located in pointer type decl; do not ICE for methods
3642         of UNION_TYPE; do not record nonpolymorphic types.
3643         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
3644         (ipa_polymorphic_call_context::combine_speculation_with): New method.
3645         (ipa_polymorphic_call_context::combine_with): New method.
3646         (ipa_polymorphic_call_context::make_speculative): Move here; use
3647         combine speculation.
3648         * cgraph.h (ipa_polymorphic_call_context): Update
3649         restrict_to_inner_class prototype; add offset_by, make_speculative,
3650         combine_with, useless_p, combine_speculation_with and
3651         speculation_consistent_p methods.
3652         (ipa_polymorphic_call_context::offset_by): New method.
3653         (ipa_polymorphic_call_context::useless_p): New method.
3654
3655 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3656
3657         PR rtl-optimization/62151
3658         * combine.c (can_combine_p): Allow the destination register of INSN
3659         to be clobbered in I3.
3660         (subst): Do not substitute into clobbers of registers.
3661
3662 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
3663
3664         PR debug/63342
3665         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
3666         offset, TARGET_MEM_REF and SSA_NAME.
3667
3668         * config/i386/i386.c (expand_vec_perm_palignr): Handle
3669         256-bit vectors for TARGET_AVX2.
3670
3671         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
3672         dfirst permutation.
3673
3674         PR target/63428
3675         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
3676         argument to avx2_permv2ti.
3677
3678 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3679
3680         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
3681
3682 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
3683
3684         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
3685         (fmod<mode>3): Ditto.
3686         (fpremxf4_i387): Ditto.
3687         (reminderxf3): Ditto.
3688         (reminder<mode>3): Ditto.
3689         (fprem1xf4_i387): Ditto.
3690
3691 2014-09-30  Teresa Johnson  <tejohnson@google.com>
3692
3693         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
3694         duplicate_blocks bitmap.
3695         (remove_ctrl_stmt_and_useless_edges): Ditto.
3696         (create_block_for_threading): Ditto.
3697         (compute_path_counts): New function.
3698         (update_profile): Ditto.
3699         (recompute_probabilities): Ditto.
3700         (update_joiner_offpath_counts): Ditto.
3701         (freqs_to_counts_path): Ditto.
3702         (clear_counts_path): Ditto.
3703         (ssa_fix_duplicate_block_edges): Update profile info.
3704         (ssa_create_duplicates): Pass new parameter.
3705         (ssa_redirect_edges): Remove old profile update.
3706         (thread_block_1): New duplicate_blocks bitmap,
3707         remove old profile update.
3708         (thread_single_edge): Pass new parameter.
3709
3710 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
3711
3712         PR middle-end/62120
3713         * varasm.c (decode_reg_name_and_count): Check availability for
3714         registers from ADDITIONAL_REGISTER_NAMES.
3715
3716 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
3717
3718         PR plugins/63410
3719         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
3720         (PLUGIN_HEADERS): Add pass-instances.def.
3721
3722 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
3723
3724         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
3725         iterator.
3726         * config/aarch64/aarch64-simd.md
3727         (aarch64_sqdmull_laneq<mode>): Expand iterator.
3728         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
3729         (vqdmulls_lane_s32): Fix return type.
3730         (vqdmulls_laneq_s32): New.
3731
3732 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
3733
3734         PR inline-asm/63282
3735         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
3736         or invert_jump_1 if jump isn't any_condjump_p.
3737
3738 2014-09-30  Terry Guo  <terry.guo@arm.com>
3739
3740         * config/arm/arm-cores.def (cortex-m7): New core name.
3741         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
3742         (fpv5-d16): Ditto.
3743         * config/arm/arm-tables.opt: Regenerated.
3744         * config/arm/arm-tune.md: Regenerated.
3745         * config/arm/arm.h (TARGET_VFP5): New macro.
3746         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
3747         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
3748         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
3749         * doc/invoke.texi: Document new cpu and fpu names.
3750
3751 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
3752
3753         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
3754         before sinking insn.
3755
3756 2014-09-30  David Sherwood  <david.sherwood@arm.com>
3757
3758         * ira-int.h (ira_allocno): Add "wmode" field.
3759         * ira-build.c (create_insn_allocnos): Add new "parent" function
3760         parameter.
3761         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
3762         that cannot be accessed in wmode.
3763
3764 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
3765
3766         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
3767         integer overflow.
3768
3769 2014-09-29  Andi Kleen  <ak@linux.intel.com>
3770
3771         * opts.c (print_filtered_help): Print --param min/max/default
3772         with -Q.
3773
3774 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3775
3776         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
3777
3778 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
3779
3780         * tree-vrp.c (get_single_symbol): New function.
3781         (build_symbolic_expr): Likewise.
3782         (symbolic_range_based_on_p): New predicate.
3783         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
3784         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
3785         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
3786         operand is symbolic and based on the other operand.
3787
3788 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
3789
3790         * config/microblaze/microblaze.md (call_internal1): Use VOID
3791         instead of SI to fix "((void (*)(void)) 0)()" issue
3792
3793 2014-09-29  Nick Clifton  <nickc@redhat.com>
3794
3795         * config/msp430/msp430.c (msp430_expand_prologue): Return a
3796         CLOBBER rtx for naked functions.
3797         (msp430_expand_epilogue): Likewise.
3798         (msp430_use_f5_series_hwmult): Cache result.
3799         (use_32bit_hwmult): Cache result.
3800         (msp430_no_hwmult): New function.
3801         (msp430_output_labelref): Use it.
3802
3803 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
3804
3805         PR middle-end/63247
3806         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
3807         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
3808         use the alignment of avar rather than ovar.
3809
3810 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
3811
3812         * config/pa/pa.c (pa_output_function_epilogue): Only update
3813         last_address when a nonnote insn is found.
3814
3815 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3816
3817         PR ipa/60665
3818         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
3819
3820 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3821
3822         PR ipa/62121
3823         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
3824         fix pasto in checking array size.
3825
3826 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3827
3828         PR middle-end/35545
3829         * passes.def (pass_tracer): Move before last dominator pass.
3830
3831 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
3832
3833         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
3834         users.
3835         (run_attempt): Handle errors of "pex_run" invocation.
3836
3837 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
3838
3839         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
3840         (CC1_SPEC): Define.
3841         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
3842         (TARGET_ASAN_SHADOW_OFFSET): Define.
3843
3844 2014-09-26  Martin Liska  <mliska@suse.cz>
3845
3846         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
3847         introduced.
3848         * cgraph.h: Likewise.
3849         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
3850         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
3851         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
3852         * tree-ssa-alias.h: Likewise.
3853
3854 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
3855             Max Ostapenko  <m.ostapenko@partner.samsung.com>
3856
3857         * common.opt: New option.
3858         * doc/invoke.texi: Describe new option.
3859         * gcc.c (execute): Don't free first string early, but at the end
3860         of the function.  Call retry_ice if compiler exited with
3861         ICE_EXIT_CODE.
3862         (main): Factor out common code.
3863         (print_configuration): New function.
3864         (files_equal_p): Likewise.
3865         (check_repro): Likewise.
3866         (run_attempt): Likewise.
3867         (do_report_bug): Likewise.
3868         (append_text): Likewise.
3869         (try_generate_repro): Likewise
3870
3871 2014-09-25  Andi Kleen  <ak@linux.intel.com>
3872
3873         * config/i386/i386.c (x86_print_call_or_nop): New function.
3874         (x86_function_profiler): Support -mnop-mcount and
3875         -mrecord-mcount.
3876         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
3877         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
3878
3879 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3880
3881         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
3882         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
3883         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
3884         Remove.
3885
3886 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3887
3888         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
3889         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
3890         types_odr_comparable): Declare.
3891         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
3892         * ipa-polymorphic-call.c: New file.
3893         (contains_polymorphic_type_p, possible_placement_new,
3894         ipa_polymorphic_call_context::restrict_to_inner_class,
3895         contains_type_p, decl_maybe_in_construction_p,
3896         ipa_polymorphic_call_context::stream_out,
3897         ipa_polymorphic_call_context::debug,
3898         ipa_polymorphic_call_context::stream_in,
3899         ipa_polymorphic_call_context::set_by_decl,
3900         ipa_polymorphic_call_context::set_by_invariant,
3901         walk_ssa_copies,
3902         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3903         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3904         extr_type_from_vtbl_ptr_store, record_known_type
3905         check_stmt_for_type_change,
3906         ipa_polymorphic_call_context::get_dynamic_type): Move here from
3907         ipa-devirt.c
3908         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
3909         and streamer-hooks.h
3910         (contains_polymorphic_type_p, possible_placement_new,
3911         ipa_polymorphic_call_context::restrict_to_inner_class,
3912         contains_type_p, decl_maybe_in_construction_p,
3913         ipa_polymorphic_call_context::stream_out,
3914         ipa_polymorphic_call_context::debug,
3915         ipa_polymorphic_call_context::stream_in,
3916         ipa_polymorphic_call_context::set_by_decl,
3917         ipa_polymorphic_call_context::set_by_invariant,
3918         walk_ssa_copies,
3919         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3920         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3921         extr_type_from_vtbl_ptr_store, record_known_type
3922         check_stmt_for_type_change,
3923         ipa_polymorphic_call_context::get_dynamic_type): Move to
3924         ipa-polymorphic-call.c
3925         (type_all_derivations_known_p, types_odr_comparable,
3926         types_must_be_same_for_odr): Export.
3927         (type_known_to_have_no_deriavations_p): New function.
3928         * Makefile.in: Add ipa-polymorphic-call.c
3929
3930 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3931
3932         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
3933         for better storage.
3934         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
3935         (possible_polymorphic_call_targets): Instead of computing both
3936         speculative and non-speculative answers, do just one at a time.
3937         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
3938         (dump_targets): Break out from ...
3939         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
3940         and non-speculative lists.
3941         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
3942         * ipa-utils.h (possible_polymorphic_call_targets): Update.
3943
3944 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
3945
3946         PR rtl-optimization/63348
3947         * emit-rtl.c (try_split): Do not emit extra barrier.
3948
3949 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
3950
3951         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
3952         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
3953         new predicates.
3954         (aarch64_<sur>shll2_n<mode>): Likewise.
3955         (aarch64_<sur>shr_n<mode>): Likewise.
3956         (aarch64_<sur>sra_n<mode>: Likewise.
3957         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
3958         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
3959         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
3960         * config/aarch64/iterators.md (ve_mode): New.
3961         (offsetlr): Remap to infix text for use in new predicates.
3962         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
3963         (aarch64_simd_shift_imm_hi): Likewise.
3964         (aarch64_simd_shift_imm_si): Likewise.
3965         (aarch64_simd_shift_imm_di): Likewise.
3966         (aarch64_simd_shift_imm_offset_qi): Likewise.
3967         (aarch64_simd_shift_imm_offset_hi): Likewise.
3968         (aarch64_simd_shift_imm_offset_si): Likewise.
3969         (aarch64_simd_shift_imm_offset_di): Likewise.
3970         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
3971         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
3972         (aarch64_simd_shift_imm_bitsize_si): Likewise.
3973         (aarch64_simd_shift_imm_bitsize_di): Likewise.
3974
3975 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
3976
3977         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
3978         new created BB as the intersection of live-in from "old_dest" and
3979         live-out from "bb".
3980
3981 2014-09-25  Felix Yang  <felix.yang@huawei.com>
3982
3983         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
3984         * genautomata.c (merge_states): Ditto.
3985
3986 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
3987
3988         PR target/62218
3989         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
3990         in instruction sequence.
3991
3992 2014-09-25  Nick Clifton  <nickc@redhat.com>
3993
3994         PR target/62218
3995         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
3996         in instruction sequence.
3997
3998 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3999
4000         PR target/63335
4001         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
4002         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
4003
4004 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4005             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4006             Anna Tikhonova  <anna.tikhonova@intel.com>
4007             Ilya Tocar  <ilya.tocar@intel.com>
4008             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4009             Ilya Verbin  <ilya.verbin@intel.com>
4010             Kirill Yukhin  <kirill.yukhin@intel.com>
4011             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4012
4013         * config/i386/sse.md
4014         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
4015         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
4016         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
4017         (define_expand "<avx512>_perm<mode>_mask"): ... this.
4018         Use VI8F_256_512 mode iterator.
4019         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
4020         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
4021
4022 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4023             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4024             Anna Tikhonova  <anna.tikhonova@intel.com>
4025             Ilya Tocar  <ilya.tocar@intel.com>
4026             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4027             Ilya Verbin  <ilya.verbin@intel.com>
4028             Kirill Yukhin  <kirill.yukhin@intel.com>
4029             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4030
4031         * config/i386/sse.md
4032         (define_insn "avx_movshdup256<mask_name>"): Add masking.
4033         (define_insn "sse3_movshdup<mask_name>"): Ditto.
4034         (define_insn "avx_movsldup256<mask_name>"): Ditto.
4035         (define_insn "sse3_movsldup<mask_name>"): Ditto.
4036         (define_insn "vec_dupv2df<mask_name>"): Ditto.
4037         (define_insn "*vec_concatv2df"): Add EVEX version.
4038
4039 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4040             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4041             Anna Tikhonova  <anna.tikhonova@intel.com>
4042             Ilya Tocar  <ilya.tocar@intel.com>
4043             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4044             Ilya Verbin  <ilya.verbin@intel.com>
4045             Kirill Yukhin  <kirill.yukhin@intel.com>
4046             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4047
4048         * config/i386/sse.md
4049         (define_insn "vec_set<mode>_0"): Add EVEX version.
4050
4051 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4052             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4053             Anna Tikhonova  <anna.tikhonova@intel.com>
4054             Ilya Tocar  <ilya.tocar@intel.com>
4055             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4056             Ilya Verbin  <ilya.verbin@intel.com>
4057             Kirill Yukhin  <kirill.yukhin@intel.com>
4058             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4059
4060         * config/i386/sse.md
4061         (define_insn
4062         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
4063         New.
4064         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
4065         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
4066         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
4067         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
4068         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
4069         (define_expand "sse2_cvtpd2ps_mask): New.
4070         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
4071         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
4072
4073 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4074             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4075             Anna Tikhonova  <anna.tikhonova@intel.com>
4076             Ilya Tocar  <ilya.tocar@intel.com>
4077             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4078             Ilya Verbin  <ilya.verbin@intel.com>
4079             Kirill Yukhin  <kirill.yukhin@intel.com>
4080             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4081
4082         * config/i386/i386.c
4083         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
4084         (ufix_notruncv8dfv8si2_mask_round): ... this.
4085         * config/i386/sse.md
4086         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
4087         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
4088         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
4089         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
4090         (define_expand "sse2_cvtpd2dq"): Delete.
4091         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
4092         make 2nd operand const0 vector.
4093         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
4094         Delete.
4095         (define_mode_attr pd2udqsuff): New.
4096         (define_insn
4097         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
4098         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
4099         (define_insn "*avx_cvttpd2dq256_2"): Delete.
4100         (define_expand "sse2_cvttpd2dq"): Ditto.
4101         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
4102         make 2nd operand const0 vector.
4103
4104 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
4105
4106         PR tree-optimization/63341
4107         * tree-vectorizer.h (vect_create_data_ref_ptr,
4108         vect_create_addr_base_for_vector_ref): Add another tree argument
4109         defaulting to NULL_TREE.
4110         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
4111         argument, pass it down to vect_create_addr_base_for_vector_ref.
4112         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
4113         add that to base_offset too if non-NULL.
4114         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
4115         for dr_explicit_realign_optimized set it to vector byte size
4116         - 1 instead of setting offset, pass byte_offset down to
4117         vect_create_data_ref_ptr.
4118
4119 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
4120
4121         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
4122         forgotten debug output; canonicalize querries more wtih LTO.
4123
4124 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
4125
4126         * cgraph.h (class ipa_polymorphic_call_context): Move here from
4127         ipa-utils.h; add stream_int and stream_out methods.
4128         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
4129         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
4130         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
4131         add CONTEXT.
4132         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4133         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4134         ipa_polymorphic_call_context::clear_speculation,
4135         ipa_polymorphic_call_context::clear_outer_type): Move here from
4136         ipa-utils.h
4137         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
4138         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4139         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4140         ipa_polymorphic_call_context::clear_speculation,
4141         ipa_polymorphic_call_context::clear_outer_type): Likewise.
4142         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
4143         streamer-hooks.h
4144         (ipa_polymorphic_call_context::stream_out): New method.
4145         (ipa_polymorphic_call_context::stream_in): New method.
4146         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
4147         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
4148         OUTER_TYPE.
4149         (ipa_analyze_call_uses): Simplify.
4150         (update_indirect_edges_after_inlining): Do not care about outer_type.
4151         (ipa_write_indirect_edge_info): Update.
4152         (ipa_write_indirect_edge_info): Likewise.
4153         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
4154         (dump_edge_flags): Break out from ...
4155         (cgraph_node::dump): ... here; dump indirect edges.
4156
4157 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
4158
4159         * ipa-utils.h (polymorphic_call_context): Add
4160         metdhos dump, debug and clear_outer_type.
4161         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
4162         (ipa_polymorphic_call_context::clear_outer_type): New method.
4163         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
4164         * ipa-devirt.c (types_odr_comparable): New function.
4165         (types_must_be_same_for_odr): New function.
4166         (odr_subtypes_equivalent_p): Simplify.
4167         (possible_placement_new): Break out from ...
4168         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
4169         be more cuatious about returning false in cases the context may be
4170         valid in derived type or via placement new.
4171         (contains_type_p): Clear maybe_derived_type
4172         (ipa_polymorphic_call_context::dump): New method.
4173         (ipa_polymorphic_call_context::debug): New method.
4174         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
4175         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
4176         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
4177         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
4178         to suceed on all valid cases; remove confused sanity check.
4179         (dump_possible_polymorphic_call_targets): Simplify.
4180
4181 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
4182
4183         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
4184         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
4185         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
4186         varpool.c: Rename all instances of DECL_ABSTRACT to
4187         DECL_ABSTRACT_P.
4188
4189 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4190
4191         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
4192         special handling for stores whose SET_SRC is an UNSPEC (such as
4193         UNSPEC_STVE).
4194
4195 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
4196
4197         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
4198         !REG_P (src) to release more instruction sink opportunities.
4199
4200 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
4201
4202         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
4203         move costs for 128-bit types.
4204
4205 2014-09-24  Martin Jambor  <mjambor@suse.cz>
4206
4207         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
4208         when duplicating a PASS_THROUGH jump function when creating a
4209         speculative edge.
4210
4211 2014-09-24  Marek Polacek  <polacek@redhat.com>
4212
4213         PR c/61405
4214         PR c/53874
4215         * asan.c (maybe_instrument_call): Add default case.
4216         * ipa-pure-const.c (special_builtin_state): Likewise.
4217         * predict.c (expr_expected_value_1): Likewise.
4218         * lto-streamer-out.c (write_symbol): Initialize variable.
4219
4220 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4221
4222         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
4223         the lane.
4224         (vmuld_laneq_f64): Likewise.
4225         (vmuls_lane_f32): Likewise.
4226         (vmuls_laneq_f32): Likewise.
4227
4228 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
4229
4230         PR bootstrap/63235
4231         * varpool.c (varpool_node::add): Pass decl attributes
4232         to lookup_attribute.
4233
4234 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
4235
4236         PR sanitizer/63316
4237         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
4238
4239 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4240
4241         PR tree-optimization/63266
4242         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
4243         marker for unknown byte value.
4244         (MARKER_MASK): New macro.
4245         (MARKER_BYTE_UNKNOWN): New macro.
4246         (HEAD_MARKER): New macro.
4247         (do_shift_rotate): Mark bytes with unknown values due to sign
4248         extension when doing an arithmetic right shift. Replace hardcoded
4249         mask for marker by new MARKER_MASK macro.
4250         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
4251         numbers accordingly.
4252
4253 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4254             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4255             Anna Tikhonova  <anna.tikhonova@intel.com>
4256             Ilya Tocar  <ilya.tocar@intel.com>
4257             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4258             Ilya Verbin  <ilya.verbin@intel.com>
4259             Kirill Yukhin  <kirill.yukhin@intel.com>
4260             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4261
4262         * config/i386/sse.md
4263         (define_insn
4264         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
4265         Add masking.
4266         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
4267         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
4268
4269 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4270             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4271             Anna Tikhonova  <anna.tikhonova@intel.com>
4272             Ilya Tocar  <ilya.tocar@intel.com>
4273             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4274             Ilya Verbin  <ilya.verbin@intel.com>
4275             Kirill Yukhin  <kirill.yukhin@intel.com>
4276             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4277
4278         * config/i386/sse.md
4279         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
4280         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
4281         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
4282         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
4283         (define_expand "avx512vl_pshuflw_mask"): New.
4284         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
4285         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
4286         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
4287         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
4288         (define_expand "avx512vl_pshufhw_mask"): New.
4289         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
4290
4291 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4292             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4293             Anna Tikhonova  <anna.tikhonova@intel.com>
4294             Ilya Tocar  <ilya.tocar@intel.com>
4295             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4296             Ilya Verbin  <ilya.verbin@intel.com>
4297             Kirill Yukhin  <kirill.yukhin@intel.com>
4298             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4299
4300         * config/i386/i386.c
4301         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
4302         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
4303         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
4304         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
4305         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
4306         * config/i386/sse.md
4307         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
4308         (define_insn
4309         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
4310         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
4311         (define_insn
4312         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
4313         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
4314         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
4315         (define_expand "avx512vl_pshufd_mask"): New.
4316         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
4317
4318 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4319             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4320             Anna Tikhonova  <anna.tikhonova@intel.com>
4321             Ilya Tocar  <ilya.tocar@intel.com>
4322             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4323             Ilya Verbin  <ilya.verbin@intel.com>
4324             Kirill Yukhin  <kirill.yukhin@intel.com>
4325             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4326
4327         * config/i386/i386.c
4328         (CODE_FOR_avx2_extracti128): Rename to ...
4329         (CODE_FOR_avx_vextractf128v4di): this.
4330         (CODE_FOR_avx2_inserti128): Rename to ...
4331         (CODE_FOR_avx_vinsertf128v4di): this.
4332         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
4333         CODE_FOR_avx_vextractf128v4di.
4334         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
4335         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
4336         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
4337         CODE_FOR_avx512vl_vinsertv8si.
4338         * config/i386/sse.md
4339         (define_expand
4340         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
4341         AVX512_VEC mode iterator.
4342         (define_insn
4343         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
4344         Ditto.
4345         (define_expand
4346         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
4347         AVX512_VEC_2 mode iterator.
4348         (define_insn "vec_set_lo_<mode><mask_name>"): New.
4349         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4350         (define_expand "avx512vl_vinsert<mode>"): Ditto.
4351         (define_insn "avx2_vec_set_lo_v4di"): Delete.
4352         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
4353         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
4354         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4355         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
4356         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4357         (define_expand "avx2_extracti128"): Delete.
4358         (define_expand "avx2_inserti128"): Ditto.
4359
4360 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4361             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4362             Anna Tikhonova  <anna.tikhonova@intel.com>
4363             Ilya Tocar  <ilya.tocar@intel.com>
4364             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4365             Ilya Verbin  <ilya.verbin@intel.com>
4366             Kirill Yukhin  <kirill.yukhin@intel.com>
4367             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4368
4369         * config/i386/sse.md
4370         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
4371         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
4372         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
4373         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
4374         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
4375         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
4376         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
4377         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
4378         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
4379         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
4380         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
4381         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
4382         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
4383
4384 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
4385
4386         PR rtl-optimization/63210
4387         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
4388         HARD_REGNO is not available for CONFLICT_A.
4389
4390 2014-09-23  Andi Kleen  <ak@linux.intel.com>
4391
4392         * cgraph.h (symtab_node): Add no_reorder attribute.
4393         (symbol_table::output_asm_statements): Remove.
4394         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
4395         (cgraph_node::create_version_clone): Dito.
4396         (symbol_table::output_asm_statements): Remove.
4397         * trans-mem.c (ipa_tm_create_version_alias): Dito.
4398         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
4399         (output_in_order): Add no_reorder flag. Only handle no_reorder
4400         nodes when set.
4401         (symbol_table::compile): Add separate pass for no_reorder nodes.
4402         (process_common_attributes): Set no_reorder flag in symtab node.
4403         Add node argument.
4404         (process_function_and_variable_attributes): Pass symtab nodes to
4405         process_common_attributes.
4406         * doc/extend.texi (no_reorder): Document no_reorder attribute.
4407         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
4408         (lto_output_varpool_node): Dito.
4409         (input_overwrite_node): Dito.
4410         (input_varpool_node): Dito.
4411         * varpool.c (varpool_node::add): Set no_reorder attribute.
4412         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
4413         (symbol_table::output_variables): Dito.
4414         * symtab.c (symtab_node::dump_base): Print no_reorder.
4415
4416 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
4417
4418         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
4419         be INVALID_REGNUM.
4420
4421 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4422
4423         * configure: Regenerate.
4424
4425 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
4426
4427         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
4428         when result_mode == shift_mode.
4429
4430 2014-09-23  Kostya Serebryany  <kcc@google.com>
4431
4432         Update to match the changed asan API.
4433         * asan.c (asan_global_struct): Update the __asan_global definition
4434         to match the new API.
4435         (asan_add_global): Ditto.
4436         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
4437         to __asan_init_v4.
4438
4439 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4440
4441         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
4442         refine the constraints used on 32/64-bit floating point moves.
4443         (f32_av): Likewise.
4444         (f64_vsx): Likewise.
4445         (f64_dm): Likewise.
4446         (f64_av): Likewise.
4447         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
4448         (BOOL_REGS_OP1): Likewise.
4449         (BOOL_REGS_OP2): Likewise.
4450         (BOOL_REGS_UNARY): Likewise.
4451         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
4452         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
4453         for moves involving VSX registers.  Do not use constraints that
4454         target VSX registers for decimal types.
4455         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
4456         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
4457
4458 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
4459
4460         * tree.h (int_bit_position): Turn into inline function;
4461         implement using wide int.
4462         * tree.c (int_bit_position): Remove.
4463
4464 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
4465
4466         PR bootstrap/63280
4467         * target-globals.c (target_globals::~target_globals): Fix location
4468         of ira_int destruction.
4469
4470 2014-09-23  Renlin Li  <renlin.li@arm.com>
4471
4472         * config/aarch64/aarch64.md (return): New.
4473         (simple_return): Likewise.
4474         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
4475         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
4476
4477 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
4478
4479         * common/config/aarch64/aarch64-common.c:
4480         (default_options aarch_option_optimization_table):
4481         Default to -fsched-pressure.
4482
4483 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
4484
4485         * cfgcleanup.c (try_optimize_cfg): Do not remove label
4486         with LABEL_PRESERVE_P flag set.
4487
4488 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4489             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4490             Anna Tikhonova  <anna.tikhonova@intel.com>
4491             Ilya Tocar  <ilya.tocar@intel.com>
4492             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4493             Ilya Verbin  <ilya.verbin@intel.com>
4494             Kirill Yukhin  <kirill.yukhin@intel.com>
4495             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4496
4497         * config/i386/sse.md
4498         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
4499         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
4500         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
4501         (define_insn "sse2_shufpd_v2df_mask"): New.
4502
4503 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4504             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4505             Anna Tikhonova  <anna.tikhonova@intel.com>
4506             Ilya Tocar  <ilya.tocar@intel.com>
4507             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4508             Ilya Verbin  <ilya.verbin@intel.com>
4509             Kirill Yukhin  <kirill.yukhin@intel.com>
4510             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4511
4512         * config/i386/sse.md
4513         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
4514         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
4515         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
4516         (define_insn "sse_shufps_v4sf_mask"): New.
4517
4518 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4519             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4520             Anna Tikhonova  <anna.tikhonova@intel.com>
4521             Ilya Tocar  <ilya.tocar@intel.com>
4522             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4523             Ilya Verbin  <ilya.verbin@intel.com>
4524             Kirill Yukhin  <kirill.yukhin@intel.com>
4525             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4526
4527         * config/i386/sse.md
4528         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
4529         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
4530         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
4531         (define_insn "unpcklps128_mask"): New.
4532
4533 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4534             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4535             Anna Tikhonova  <anna.tikhonova@intel.com>
4536             Ilya Tocar  <ilya.tocar@intel.com>
4537             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4538             Ilya Verbin  <ilya.verbin@intel.com>
4539             Kirill Yukhin  <kirill.yukhin@intel.com>
4540             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4541
4542         * config/i386/sse.md
4543         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
4544         (define_insn "avx512vl_unpckhpd128_mask"): New.
4545         (define_expand "avx_movddup256<mask_name>"): Add masking.
4546         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
4547         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
4548         (define_insn "avx512vl_unpcklpd128_mask"): New.
4549
4550 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
4551
4552         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4553         * doc/tm.texi: Regenerate.
4554         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
4555         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4556         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4557         Remove.
4558         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4559         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4560         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4561         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4562         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4563         Remove.
4564         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4565         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4566         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4567         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4568         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4569         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4570         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4571         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4572         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4573         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4574         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4575         Remove.
4576
4577 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
4578
4579         * tree-ssa-ccp.c (prop_value_d): Rename to ...
4580         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
4581         * ipa-prop.c (struct type_change_info): Rename to ...
4582         (prop_type_change_info): ... this; update uses.
4583         * ggc-page.c (globals): Rename to ...
4584         (static struct ggc_globals): ... this; update uses.
4585         * tree-ssa-loop-im.c (mem_ref): Rename to ...
4586         (im_mem_ref): ... this; update uses.
4587         * ggc-common.c (loc_descriptor): Rename to ...
4588         (ggc_loc_descriptor): ... this; update uses.
4589         * lra-eliminations.c (elim_table): Rename to ...
4590         (lra_elim_table): ... this; update uses.
4591         * bitmap.c (output_info): Rename to ...
4592         (bitmap_output_info): ... this; update uses.
4593         * gcse.c (expr): Rename to ...
4594         (gcse_expr) ... this; update uses.
4595         (occr): Rename to ...
4596         (gcse_occr): .. this; update uses.
4597         * tree-ssa-copy.c (prop_value_d): Rename to ...
4598         (prop_value_t): ... this.
4599         * predict.c (block_info_def): Rename to ...
4600         (block_info): ... this; update uses.
4601         (edge_info_def): Rename to ...
4602         (edge_info): ... this; update uses.
4603         * profile.c (bb_info): Rename to ...
4604         (bb_profile_info): ... this; update uses.
4605         * alloc-pool.c (output_info): Rename to ...
4606         (pool_output_info): ... this; update uses.
4607         * ipa-cp.c (topo_info): Rename to ..
4608         (ipa_topo_info): ... this; update uses.
4609         * tree-nrv.c (nrv_data): Rename to ...
4610         (nrv_data_t): ... this; update uses.
4611         * ipa-split.c (bb_info): Rename to ...
4612         (split_bb_info): ... this one.
4613         * profile.h (edge_info): Rename to ...
4614         (edge_profile_info): ... this one; update uses.
4615         * dse.c (bb_info): Rename to ...
4616         (dse_bb_info): ... this one; update uses.
4617         * cprop.c (occr): Rename to ...
4618         (cprop_occr): ... this one; update uses.
4619         (expr): Rename to ...
4620         (cprop_expr): ... this one; update uses.
4621
4622 2014-09-22  Jason Merrill  <jason@redhat.com>
4623
4624         * Makefile.in (check-parallel-%): Add @.
4625
4626 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
4627
4628         * config/aarch64/geniterators.sh: New.
4629         * config/aarch64/iterators.md (VDQF_DF): New.
4630         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
4631         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
4632
4633 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
4634
4635         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
4636         -lnosys when -msim absent.
4637
4638 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
4639
4640         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
4641
4642 2014-09-22  Richard Biener  <rguenther@suse.de>
4643
4644         * gimplify.c (gimplify_init_constructor): Do not leave
4645         non-GIMPLE vector constructors around.
4646         * tree-cfg.c (verify_gimple_assign_single): Verify that
4647         CONSTRUCTORs have gimple elements.
4648
4649 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
4650
4651         PR debug/63328
4652         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
4653         insert a debug source bind stmt setting DEBUG_EXPR_DECL
4654         instead of a normal gimple assignment stmt.
4655
4656 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
4657
4658         * config/bfin/bfin.md: Fix use of constraints in define_split.
4659
4660 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4661
4662         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
4663         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
4664
4665 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4666
4667         * hard-reg-set.h: Include hash-table.h.
4668         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
4669         field.
4670         * target-globals.c (target_globals::~target_globals): Call
4671         hard_regs->finalize.
4672         * rtl.h (subreg_shape): New structure.
4673         (shape_of_subreg): New function.
4674         (simplifiable_subregs): Declare.
4675         * reginfo.c (simplifiable_subreg): New structure.
4676         (simplifiable_subregs_hasher): Likewise.
4677         (simplifiable_subregs): New function.
4678         (invalid_mode_changes): Delete.
4679         (alid_mode_changes, valid_mode_changes_obstack): New variables.
4680         (record_subregs_of_mode): Remove subregs_of_mode parameter.
4681         Record valid mode changes in valid_mode_changes.
4682         (find_subregs_of_mode): Remove subregs_of_mode parameter.
4683         Update calls to record_subregs_of_mode.
4684         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
4685         handling.  Initialize new variables.  Update call to
4686         find_subregs_of_mode.
4687         (invalid_mode_change_p): Check new variables instead of
4688         invalid_mode_changes.
4689         (finish_subregs_of_mode): Finalize new variables instead of
4690         invalid_mode_changes.
4691         (target_hard_regs::finalize): New function.
4692         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
4693         even when CLASS_CANNOT_CHANGE_MODE is undefined.
4694
4695 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4696
4697         * combine.c (subst): Use simplify_subreg_regno rather than
4698         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
4699
4700 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4701
4702         * rtl.h (subreg_info): Expand commentary
4703         * rtlanal.c (subreg_get_info): Likewise.
4704
4705 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4706
4707         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
4708         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
4709         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
4710
4711 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
4712
4713         * config/arm/arm.c: #include "tm-constrs.h"
4714         (thumb1_size_rtx_costs): Adjust rtx costs.
4715
4716 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
4717
4718         * configure.ac (target_header_dir): Move block defining
4719         this to before the block setting inhibit_libc.
4720         (inhibit_libc): When considering $with_headers, just
4721         check it it's explicitly "no".  If not, also check if
4722         $target_header_dir/stdio.h is present.  If not, set
4723         inhibit_libc=true.
4724         * configure: Regenerate.
4725
4726 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
4727
4728         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
4729
4730 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4731
4732         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
4733         insn for divides by integer powers of two.
4734         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
4735         (mod<mode>3): Fix formatting.
4736         (three anonymous define_insn and two define_split): Delete.
4737
4738 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4739
4740         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
4741         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
4742         (floatdisf2_internal2): Ditto.
4743         (ashrdi3_no_power): Ditto.  Fix formatting.
4744
4745 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4746
4747         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
4748         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
4749         Tidy.
4750
4751 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4752
4753         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
4754         constant, use addsi3 directly.
4755         (three anonymous define_insn, two define_split): Delete.
4756         (sub<mode>3): Move.  Do not allow constant second operand.
4757         Generate different insn for constant first operand.
4758         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
4759         (subf<mode>3_imm): New.
4760         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
4761         (*plus_ltu<mode>): Only handle registers.
4762         (*plus_ltu<mode>_1): New.  Handle integer third operand.
4763         (*plus_gtu<mode>): Only handle registers.
4764         (*plus_gtu<mode>_1): New.  Handle integer third operand.
4765
4766 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4767
4768         * config/rs6000/rs6000.md (iorxor): New code_iterator.
4769         (iorxor): New code_attr.
4770         (IORXOR): New code_attr.
4771         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
4772         (ior<mode>3, xor<mode>3): Delete.
4773         (<iorxor><mode>3): New.
4774         (splitter for "big" integer ior, xor): New.
4775         (*bool<mode>3): Move.  Also handle AND.
4776         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
4777         (splitter for "big" integer ior, xor): Delete.
4778
4779 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4780
4781         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
4782         (two anonymous define_insn and two define_split): Delete.
4783         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
4784
4785 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4786
4787         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
4788         (two anonymous define_insn and two define_split): Delete.
4789         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
4790
4791 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4792
4793         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
4794
4795 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4796
4797         * config/rs6000/predicates.md (ca_operand): Allow subregs.
4798         (input_operand): Do not allow ca_operand.
4799         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
4800         carry bit, allow SImode and Pmode.
4801         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
4802
4803 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
4804
4805         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
4806         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
4807         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
4808         (*call_rex64_ms_sysv): Remove.
4809         (*call_value_rex64_ms_sysv): Ditto.
4810         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
4811
4812 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
4813
4814         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
4815         operand 3 to "CnL".
4816
4817 2014-09-20  Andreas Schwab  <schwab@suse.de>
4818
4819         * config/ia64/ia64.md: Remove constraints from define_split
4820         patterns.
4821
4822 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4823
4824         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
4825         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
4826         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
4827         (get_dynamic_type): Remove.
4828         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
4829         (clear_speculation): Bring to ipa-deivrt.h
4830         (get_class_context): Rename to ...
4831         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
4832         (contains_type_p): Update.
4833         (get_dynamic_type): Rename to ...
4834         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
4835         (possible_polymorphic_call_targets): UPdate.
4836         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
4837         * ipa-prop.c (ipa_analyze_call_uses): Update.
4838
4839 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4840
4841         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
4842         privatize dynamic TLS variables.
4843
4844 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4845
4846         * diagnostic.c (warning_n): New function.
4847         * diagnostic-core.h (warning_n): Declare.
4848         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
4849         output dynamic counts when available.
4850
4851 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4852
4853         PR tree-optimization/63255
4854         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
4855         issue in setting body_removed flag.
4856
4857 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4858
4859         PR c++/61825
4860         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
4861         that visibility change is possible
4862         (handle_weakref_attribute): Likewise.
4863         * cgraph.h (symtab_node): Add method get_create and
4864         field refuse_visibility_changes.
4865         (symtab_node::get_create): New method.
4866         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
4867         * varasm.c (mark_weak): Verify that visibility change is
4868         possible.
4869
4870 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
4871
4872         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
4873         for base_reg_operand to be common between LO_SUM and PLUS.
4874         (fusion_gpr_mem_combo): New predicate to match a fused address
4875         that combines the addis and memory offset address.
4876
4877         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
4878         calling signature.
4879         (emit_fusion_gpr_load): Likewise.
4880
4881         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
4882         signature to pass each argument separately, rather than
4883         using an operands array.  Rewrite the insns found by peephole2 to
4884         be a single insn, rather than hoping the insns will still be
4885         together when the peephole pass is done.  Drop being called via a
4886         normal peephole.
4887         (emit_fusion_gpr_load): Change calling signature to be called from
4888         the fusion_gpr_load_<mode> insns with a combined memory address
4889         instead of the peephole pass passing the addis and offset
4890         separately.
4891
4892         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
4893         fusion.
4894         (power8 fusion peephole): Drop support for doing power8 via a
4895         normal peephole that was created by the peephole2 pass.
4896         (power8 fusion peephole2): Create a new insn with the fused
4897         address, so that the fused operation is kept together after
4898         register allocation is done.
4899         (fusion_gpr_load_<mode>): Likewise.
4900
4901 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4902
4903         PR lto/63286
4904         * tree.c (need_assembler_name_p): Do not mangle variadic types.
4905
4906 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
4907
4908         * recog.c (scratch_operand): Do not simply allow all hard registers:
4909         only allow those that are allocatable.
4910
4911 2014-09-19  Felix Yang  <felix.yang@huawei.com>
4912
4913         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
4914         comments and fix spacing to conform to coding style.
4915
4916 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4917
4918         * genrecog.c (validate_pattern): Allow empty constraints in
4919         a match_scratch.
4920
4921 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
4922
4923         * dwarf2out.c (decl_ultimate_origin): Update comment.
4924         * tree.c (block_ultimate_origin): Same.
4925
4926 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4927
4928         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
4929         Update GCC version name to GCC 5.
4930         (rs6000_function_arg_boundary): Likewise.
4931         (rs6000_function_arg): Likewise.
4932
4933 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4934
4935         * config/sh/sh.md: Fix use of constraints in define_split.
4936
4937 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
4938
4939         PR ipa/61998
4940         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
4941
4942 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4943
4944         * doc/md.texi (Modifiers): Consistently use "read/write"
4945         nomenclature rather than "input/output".
4946         * genrecog.c (constraints_supported_in_insn_p): New.
4947         (validate_pattern): If needed, also check constraints on
4948         MATCH_SCRATCH operands.
4949         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
4950         operands with no '=' or '+' modifier.
4951
4952 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4953
4954         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
4955         scratch register as written.
4956
4957 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4958
4959         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
4960         assignment.
4961
4962 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4963
4964         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
4965         expanders.
4966
4967 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4968
4969         PR target/62662
4970         * config/s390/s390.c (s390_emit_epilogue): When doing the return
4971         address load optimization force s390_optimize_prologue to leave it
4972         that way.  Only do the optimization if we already decided to push
4973         r14 into a stack slot.
4974
4975 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
4976
4977         * asan.c (build_check_stmt): Alignment arg was added.
4978         (asan_expand_check_ifn): Optimization for alignment >= 8.
4979
4980 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4981
4982         * config/i386/vxworksae.h: Remove obsolete definitions.
4983         (STACK_CHECK_PROTECT): Define.
4984         * config/i386/vx-common.h: Remove.  Merge contents within
4985         config/i386/vxworks.h.
4986         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
4987         i386/vx-common.h.
4988
4989 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4990
4991         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
4992         * config/rs6000/t-vxworksmils: New file.
4993         * config/rs6000/vxworksmils.h: New file.
4994
4995 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4996
4997         * varasm.c (default_section_type_flags): Flag .persistent.bss
4998         sections as SECTION_BSS.
4999
5000 2014-09-19  Nick Clifton  <nickc@redhat.com>
5001
5002         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
5003         pop'ed registers so that DCE does not eliminate them.
5004
5005 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
5006
5007         PR lto/63298
5008         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
5009
5010 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
5011
5012         * system.h (LIBGCC2_TF_CEXT): Poison.
5013         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
5014         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
5015         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
5016         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
5017         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
5018         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
5019         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
5020         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
5021         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
5022
5023 2014-09-19  Kito Cheng  <kito@0xlab.org>
5024
5025         * except.h: Fix header guard.
5026         * addresses.h: Add missing header guard.
5027         * cfghooks.h: Likewise.
5028         * collect-utils.h: Likewise.
5029         * collect2-aix.h: Likewise.
5030         * conditions.h: Likewise.
5031         * cselib.h: Likewise.
5032         * dwarf2asm.h: Likewise.
5033         * graphds.h: Likewise.
5034         * graphite-scop-detection.h: Likewise.
5035         * gsyms.h: Likewise.
5036         * hw-doloop.h: Likewise.
5037         * incpath.h: Likewise.
5038         * ipa-inline.h: Likewise.
5039         * ipa-ref.h: Likewise.
5040         * ira-int.h: Likewise.
5041         * ira.h: Likewise.
5042         * lra-int.h: Likewise.
5043         * lra.h: Likewise.
5044         * lto-section-names.h: Likewise.
5045         * read-md.h: Likewise.
5046         * reload.h: Likewise.
5047         * rtl-error.h: Likewise.
5048         * sdbout.h: Likewise.
5049         * targhooks.h: Likewise.
5050         * tree-affine.h: Likewise.
5051         * xcoff.h: Likewise.
5052         * xcoffout.h: Likewise.
5053
5054 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
5055
5056         PR debug/63285
5057         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
5058         if advance != 0.
5059
5060 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
5061
5062         PR target/61360
5063         * lra.c (lra): Call recog_init.
5064
5065 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
5066
5067         PR c++/62017
5068         * asan.c (transform_statements): Don't instrument clobber statements.
5069
5070 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5071
5072         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
5073         to neon_load1_1reg<q>.
5074
5075 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
5076
5077         PR debug/63284
5078         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
5079         if there are only debug stmts after the noreturn call, instead
5080         remove the debug stmts.
5081
5082 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
5083
5084         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
5085         (odr_types_equivalent_p): Use pair hash.
5086         (odr_subtypes_equivalent_p): Likewise, do structural compare
5087         on ODR types that may be mismatched.
5088         (warn_odr): Support warning when only one field is given.
5089         (odr_types_equivalent_p): Strenghten comparsions made;
5090         support VOIDtype.
5091         (add_type_duplicate): Update VISITED hash set.
5092
5093 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5094
5095         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
5096         Enable selection of 'posix' or no thread model.
5097
5098 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
5099
5100         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
5101         when architecture is older than ARMv7.
5102
5103 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
5104
5105         PR target/61853
5106         * config/pa/pa.c (pa_function_value): Directly handle aggregates
5107         that fit exactly in a word or double word.
5108
5109 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
5110
5111         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
5112         zmm/k regs support.
5113
5114 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5115             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5116             Anna Tikhonova  <anna.tikhonova@intel.com>
5117             Ilya Tocar  <ilya.tocar@intel.com>
5118             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5119             Ilya Verbin  <ilya.verbin@intel.com>
5120             Kirill Yukhin  <kirill.yukhin@intel.com>
5121             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5122
5123         * config/i386/i386.c
5124         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
5125         * config/i386/sse.md
5126         (define_mode_iterator VI48F_256): New.
5127         (define_mode_attr extract_type): Ditto.
5128         (define_mode_attr extract_suf): Ditto.
5129         (define_mode_iterator AVX512_VEC): Ditto.
5130         (define_expand
5131         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
5132         AVX512_VEC.
5133         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
5134         (define_insn
5135         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
5136         Ditto.
5137         (define_mode_attr extract_type_2): Ditto.
5138         (define_mode_attr extract_suf_2): Ditto.
5139         (define_mode_iterator AVX512_VEC_2): Ditto.
5140         (define_expand
5141         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
5142         AVX512_VEC_2 mode iterator.
5143         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
5144         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
5145         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5146         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5147         (define_split for V16FI mode): Ditto.
5148         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5149         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5150         (define_split for VI8F_256 mode): Ditto.
5151         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
5152         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5153         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5154         (define_split for VI4F_256 mode): Ditto.
5155         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
5156         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
5157         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
5158         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
5159         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
5160         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
5161         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
5162         Update `type' attribute, remove explicit `memory' attribute calculation.
5163
5164 2014-09-16  Kito Cheng  <kito@0xlab.org>
5165
5166         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
5167         ira_spilled_reg_stack_slots_num if using lra.
5168         (do_reload): Remove release ira_spilled_reg_stack_slots part.
5169         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
5170         make sure not using lra.
5171         (ira_reuse_stack_slot): Likewise.
5172         (ira_mark_new_stack_slot): Likewise.
5173
5174 2014-09-15  Andi Kleen  <ak@linux.intel.com>
5175
5176         * function.c (allocate_struct_function): Force
5177         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
5178         profiling is disabled.
5179
5180 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
5181
5182         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
5183         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
5184         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
5185         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
5186         macro with statically checked member functions.
5187         * rtl.h (rtx_insn::deleted): New method.
5188         (rtx_insn::set_deleted): Likewise.
5189         (rtx_insn::set_undeleted): Likewise.
5190         (INSN_DELETED_P): Remove.
5191
5192 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
5193
5194         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
5195         result of emit_jump_insn_before to a new variable.
5196         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
5197         (mark_jump_label_1): Likewise.
5198         (mark_jump_label_asm): Likewise.
5199         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
5200         * rtl.h (mark_jump_label): Adjust.
5201
5202 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
5203
5204         * Makefile.in (dg_target_exps): Remove.
5205         (check_gcc_parallelize): Change to just an upper bound number.
5206         (check-%-subtargets): Always print the non-parallelized goals.
5207         (check_p_vars, check_p_comma, check_p_subwork): Remove.
5208         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
5209         check_p_numbers3, check_p_numbers4, check_p_numbers5,
5210         check_p_numbers6): New variables.
5211         (check_p_numbers): Set to sequence from 1 to 9999.
5212         (check_p_subdirs): Set to sequence from 1 to minimum of
5213         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
5214         or 128.
5215         (check-%, check-parallel-%): Rewritten so that for parallelized
5216         testing each job runs all the *.exp files, with
5217         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
5218
5219 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
5220
5221         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
5222         rtx to rtx_insn *.
5223         (arc_sets_cc_p): Likewise.
5224         * config/arc/arc.c (arc_print_operand): Use methods of
5225         "final_sequence" for clarity, and to enable strengthening of
5226         locals "jump" and "delay" from rtx to rtx_insn *.
5227         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
5228         rtx_insn *; use method of rtx_sequence for typesafety.
5229         (arc_get_insn_variants): Use insn method of rtx_sequence for
5230         typesafety.
5231         (arc_pad_return): Likewise.
5232         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
5233         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
5234         dyn_cast to rtx_sequence *, using insn method for typesafety.
5235         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
5236         rtx_sequence * and use insn method when invoking get_attr_length.
5237         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
5238         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
5239         rtx_sequence *, introducing a local "seq", using its insn method
5240         from typesafety and clarity.
5241         (add_sched_insns_for_speculation): Strengthen local "next" from
5242         rtx to rtx_insn *.
5243         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
5244         (predicate_insn): Likewise.
5245         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
5246         second param.
5247         * config/cris/cris.c (cris_notice_update_cc): Likewise.
5248         * config/epiphany/epiphany-protos.h
5249         (extern void epiphany_insert_mode_switch_use): Likewise for param
5250         "insn".
5251         (get_attr_sched_use_fpu): Likewise for param.
5252         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
5253         Likewise for param "insn".
5254         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
5255         param "insn" of "target_insert_mode_switch_use" callback.
5256         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
5257         (frv_issues_to_branch_unit_p): Likewise.
5258         (frv_pack_insn_p): Likewise.
5259         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
5260         const rtx * (i.e. mutable rtx_def * const *) to
5261         rtx_insn * const *.
5262         * config/i386/i386-protos.h (standard_sse_constant_opcode):
5263         Strengthen first param from rtx to rtx_insn *.
5264         (output_fix_trunc): Likewise.
5265         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
5266         (output_fix_trunc): Likewise.
5267         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
5268         local "insn".
5269         (min_insn_size): Likewise for param "insn".
5270         (get_mem_group): Likewise.
5271         (is_cmp): Likewise.
5272         (get_insn_path): Likewise.
5273         (get_insn_group): Likewise.
5274         (count_num_restricted): Likewise.
5275         (fits_dispatch_window): Likewise.
5276         (add_insn_window): Likewise.
5277         (add_to_dispatch_window): Likewise.
5278         (debug_insn_dispatch_info_file): Likewise.
5279         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
5280         first param.
5281         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
5282         "cmp" and local "prev".
5283         (m32c_output_compare): Likewise for param "insn".
5284         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
5285         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
5286         (define_predicate "large_insn_p"): Likewise.
5287         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
5288         param from rtx to rtx_insn *.
5289         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
5290         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
5291         (m68k_sched_attr_size): Likewise.
5292         (sched_get_opxy_mem_type): Likewise for param "insn".
5293         (m68k_sched_attr_op_mem): Likewise.
5294         (sched_mem_operand_p): Likewise.
5295         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
5296         * config/mep/mep.c (mep_multi_slot): Likewise.
5297         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
5298         first param.
5299         (mips_sync_loop_insns): Likewise.
5300         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
5301         method of "final_sequence" for typesafety.
5302         (mips_process_sync_loop): Strengthen param "insn" from rtx to
5303         rtx_insn *.
5304         (mips_output_sync_loop): Likewise.
5305         (mips_sync_loop_insns): Likewise.
5306         (mips_74k_agen_init): Likewise.
5307         (mips_sched_init): Use NULL rather than NULL_RTX when working with
5308         insns.
5309         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
5310         Strengthen param "insn" from rtx to rtx_insn *.
5311         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
5312         local "insn".
5313         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
5314         param.
5315         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
5316         "insn".  Use method of rtx_sequence for typesafety.
5317         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
5318         rtx_insn *.
5319         (branch_needs_nop_p): Likewise.
5320         (use_skip_p): Likewise.
5321         (pa_insn_refs_are_delayed): Likewise.
5322         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
5323         for locals "insn", "ninsn".
5324         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
5325         "insn".
5326         (is_cracked_insn): Likewise.
5327         (is_branch_slot_insn): Likewise.
5328         (is_nonpipeline_insn): Likewise.
5329         (insn_terminates_group_p): Likewise.
5330         (insn_must_be_first_in_group): Likewise.
5331         (insn_must_be_last_in_group): Likewise.
5332         (force_new_group): Likewise for param "next_insn".
5333         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
5334         "insn".
5335         (s390_sched_score): Likewise.
5336         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
5337         (rtx sfunc_uses_reg): Likewise for sole param.
5338         * config/sh/sh.c (sh_print_operand): Use insn method of
5339         final_sequence for typesafety.
5340         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
5341         Use insn method of final_sequence for typesafety.
5342         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
5343         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
5344         for param.
5345         (eligible_for_return_delay): Likewise.
5346         (eligible_for_sibcall_delay): Likewise.
5347         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
5348         (eligible_for_return_delay): Likewise.
5349         (eligible_for_sibcall_delay): Likewise.
5350         * config/stormy16/stormy16-protos.h
5351         (xstormy16_output_cbranch_hi): Likewise for final param.
5352         (xstormy16_output_cbranch_si): Likewise.
5353         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
5354         (xstormy16_output_cbranch_si): Likewise.
5355         * config/v850/v850-protos.h (notice_update_cc): Likewise.
5356         * config/v850/v850.c (notice_update_cc): Likewise.
5357
5358         * final.c (get_attr_length_1): Strengthen param "insn" and param
5359         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
5360         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
5361         (get_attr_min_length): Likewise.
5362         (shorten_branches): Likewise for signature of locals "length_fun"
5363         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
5364         from a checked cast and use its methods for clarity and to enable
5365         strengthening local "inner_insn" from rtx to rtx_insn *.
5366         * genattr.c (gen_attr): When writing out the prototypes of the
5367         various generated "get_attr_" functions, strengthen the params of
5368         the non-const functions from rtx to rtx_insn *.
5369         Similarly, strengthen the params of insn_default_length,
5370         insn_min_length, insn_variable_length_p, insn_current_length.
5371         (main): Similarly, strengthen the param of num_delay_slots,
5372         internal_dfa_insn_code, insn_default_latency, bypass_p,
5373         insn_latency, min_issue_delay, print_reservation,
5374         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
5375         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
5376         to hook_int_rtx_insn_unreachable.
5377         * genattrtab.c (write_attr_get): When writing out the generated
5378         "get_attr_" functions, strengthen the param "insn" from rtx to
5379         rtx_insn *, eliminating a checked cast.
5380         (make_automaton_attrs): When writing out prototypes of
5381         "internal_dfa_insn_code_", "insn_default_latency_" functions
5382         and the "internal_dfa_insn_code" and "insn_default_latency"
5383         callbacks, strengthen their params from rtx to rtx_insn *
5384         * genautomata.c (output_internal_insn_code_evaluation): When
5385         writing out code, add a checked cast from rtx to rtx_insn * when
5386         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
5387         (output_dfa_insn_code_func): Strengthen param of generated
5388         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
5389         (output_trans_func): Likewise for generated function
5390         "state_transition".
5391         (output_internal_insn_latency_func): When writing out generated
5392         function "internal_insn_latency", rename params from "insn" and
5393         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
5394         locals "insn" and "insn2" as rtx_insn * with checked casts once
5395         we've proven that we're not dealing with const0_rtx.
5396         (output_insn_latency_func):  Strengthen param of generated
5397         function "insn_latency" from rtx to rtx_insn *.
5398         (output_print_reservation_func): Likewise for generated function
5399         "print_reservation".
5400         (output_insn_has_dfa_reservation_p): Likewise for generated
5401         function "insn_has_dfa_reservation_p".
5402         * hooks.c (hook_int_rtx_unreachable): Rename to...
5403         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
5404         from rtx to rtx_insn *.
5405         * hooks.h (hook_int_rtx_unreachable): Likewise.
5406         (extern int hook_int_rtx_insn_unreachable): Likewise.
5407         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
5408         (get_attr_min_length): Likewise.
5409         * recog.c (get_enabled_alternatives): Likewise.
5410         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
5411         * reorg.c (find_end_label): Introduce local rtx "pat" and
5412         strengthen local "insn" from rtx to rtx_insn *.
5413         (redundant_insn): Use insn method of "seq" rather than element for
5414         typesafety; strengthen local "control" from rtx to rtx_insn *.
5415         * resource.c (mark_referenced_resources): Add checked cast to
5416         rtx_insn * within INSN/JUMP_INSN case.
5417         (mark_set_resources): Likewise.
5418         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
5419         rtx to rtx_insn *.
5420
5421 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
5422
5423         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
5424         param "label" from rtx to rtx_insn *.
5425         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
5426         and local "op".
5427         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
5428         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
5429         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
5430         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
5431         * final.c (default_label_align_after_barrier_max_skip): Strengthen
5432         param from rtx to rtx_insn *.
5433         (default_loop_align_max_skip): Likewise.
5434         (default_label_align_max_skip): Likewise.
5435         (default_jump_align_max_skip): Likewise.
5436         * target.def (label_align_after_barrier_max_skip): Likewise.
5437         (loop_align_max_skip): Likewise.
5438         (label_align_max_skip): Likewise.
5439         (jump_align_max_skip): Likewise.
5440         * targhooks.h (default_label_align_after_barrier_max_skip):
5441         Likewise.
5442         (default_loop_align_max_skip): Likewise.
5443         (default_label_align_max_skip): Likewise.
5444         (default_jump_align_max_skip): Likewise.
5445
5446 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
5447
5448         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
5449         from const_rtx to const rtx_insn *.  Update union members from rtx
5450         to rtx_insn *.
5451         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
5452         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
5453         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
5454         strengthen both params from const_rtx to const rtx_insn *.
5455         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
5456         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
5457         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
5458         rtx_insn *.
5459         * target.def (can_follow_jump): Strengthen both params from
5460         const_rtx to const rtx_insn *, and update default implementation
5461         from hook_bool_const_rtx_const_rtx_true to
5462         hook_bool_const_rtx_insn_const_rtx_insn_true.
5463
5464 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
5465
5466         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
5467         "insn" from rtx to rtx_insn *.
5468         * sched-int.h (deps_start_bb): Likewise for 2nd param.
5469
5470 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5471             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5472             Anna Tikhonova  <anna.tikhonova@intel.com>
5473             Ilya Tocar  <ilya.tocar@intel.com>
5474             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5475             Ilya Verbin  <ilya.verbin@intel.com>
5476             Kirill Yukhin  <kirill.yukhin@intel.com>
5477             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5478
5479         * config/i386/sse.md
5480         (define_insn "vcvtph2ps<mask_name>"): Add masking.
5481         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
5482         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
5483         (define_expand "vcvtps2ph_mask"): New.
5484         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
5485         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
5486         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
5487
5488 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5489             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5490             Anna Tikhonova  <anna.tikhonova@intel.com>
5491             Ilya Tocar  <ilya.tocar@intel.com>
5492             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5493             Ilya Verbin  <ilya.verbin@intel.com>
5494             Kirill Yukhin  <kirill.yukhin@intel.com>
5495             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5496
5497         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
5498         New.
5499         (define_mode_iterator VI24_AVX512BW_1): Ditto.
5500         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
5501         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
5502         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
5503         also for TARGET_AVX512VL.
5504         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
5505
5506 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
5507
5508         * doc/install.texi (Options specification): add
5509         --disable-libsanitizer item.
5510
5511 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
5512             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5513
5514         PR target/61407
5515         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
5516         and above.
5517         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
5518         kernel version check to avoid incrementing it after every major OS X
5519         release.
5520         (darwin_default_min_version): Avoid static memory buffer.
5521
5522 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
5523
5524         * tree.c (need_assembler_name_p): Store C++ type mangling only
5525         for aggregates.
5526
5527 2014-09-13  Marek Polacek  <polacek@redhat.com>
5528
5529         * tree.c (protected_set_expr_location): Don't check whether T is
5530         non-null here.
5531
5532 2014-09-12  DJ Delorie  <dj@redhat.com>
5533
5534         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
5535         (extend_and_shift1_hipsi2): Likewise.
5536         (extend_and_shift2_hipsi2): Likewise.
5537
5538 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
5539
5540         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
5541         with NULL when dealing with an insn.
5542         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
5543         from rtx to rtx_insn *.
5544         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
5545         const_rtx to const rtx_insn *.
5546         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
5547
5548 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
5549
5550         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
5551         assert.
5552
5553 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
5554
5555         * target.def (libgcc_floating_mode_supported_p): New hook.
5556         * targhooks.c (default_libgcc_floating_mode_supported_p): New
5557         function.
5558         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
5559         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
5560         (LIBGCC2_HAS_TF_MODE): Remove.
5561         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
5562         * doc/tm.texi: Regenerate.
5563         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
5564         machine mode.
5565         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
5566         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
5567         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
5568         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
5569         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5570         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
5571         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
5572         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
5573         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
5574         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
5575         function.
5576         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
5577         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5578         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5579         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5580         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5581         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5582         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5583         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
5584         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
5585         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
5586         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5587         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
5588         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
5589         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
5590         Remove.
5591         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
5592         New macro.
5593         (ia64_libgcc_floating_mode_supported_p): New function.
5594         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
5595         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
5596         (IA64_NO_LIBGCC_TFMODE): Define.
5597         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
5598         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
5599         macro.
5600         (pdp11_scalar_mode_supported_p): New function.
5601         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
5602         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
5603
5604 2014-09-12  Richard Biener  <rguenther@suse.de>
5605
5606         PR middle-end/63237
5607         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
5608
5609 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
5610
5611         * tree.c (integer_each_onep): New function.
5612         * tree.h (integer_each_onep): Declare it.
5613         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
5614         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
5615         (X & 1) == 0 for vector and complex.
5616
5617 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5618
5619         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
5620         for A57.
5621         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
5622         cost to spilling from integer to FP registers.
5623
5624 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5625
5626         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
5627         move handling.
5628         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
5629         are now handled correctly.
5630
5631 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5632
5633         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
5634         handling of CALLER_SAVE_REGS and POINTER_REGS.
5635
5636 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5637
5638         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
5639         the number of hard registers.
5640
5641 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5642             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5643             Anna Tikhonova  <anna.tikhonova@intel.com>
5644             Ilya Tocar  <ilya.tocar@intel.com>
5645             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5646             Ilya Verbin  <ilya.verbin@intel.com>
5647             Kirill Yukhin  <kirill.yukhin@intel.com>
5648             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5649
5650         * config/i386/sse.md
5651         (define_mode_iterator VI48_AVX512VL): New.
5652         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
5653         "avx512f_vternlog<mode>_maskz" and update mode iterator.
5654         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
5655         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
5656         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
5657         "avx512f_vternlog<mode>_mask" and update mode iterator.
5658         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
5659         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
5660         iterator.
5661         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
5662         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
5663         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
5664         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
5665         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
5666         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
5667
5668 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5669             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5670             Anna Tikhonova  <anna.tikhonova@intel.com>
5671             Ilya Tocar  <ilya.tocar@intel.com>
5672             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5673             Ilya Verbin  <ilya.verbin@intel.com>
5674             Kirill Yukhin  <kirill.yukhin@intel.com>
5675             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5676
5677         * config/i386/sse.md (VI128_256): Delete.
5678         (define_mode_iterator VI124_256): New.
5679         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
5680         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
5681         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
5682         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
5683         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
5684         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
5685         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
5686         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
5687         iterator.
5688         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
5689         in presence of AVX-512.
5690
5691 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5692             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5693             Anna Tikhonova  <anna.tikhonova@intel.com>
5694             Ilya Tocar  <ilya.tocar@intel.com>
5695             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5696             Ilya Verbin  <ilya.verbin@intel.com>
5697             Kirill Yukhin  <kirill.yukhin@intel.com>
5698             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5699
5700         * config/i386/sse.md
5701         (define_expand "<avx512>_gathersi<mode>"): Rename from
5702         "avx512f_gathersi<mode>".
5703         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
5704         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
5705         (define_expand "<avx512>_gatherdi<mode>"): Rename from
5706         "avx512f_gatherdi<mode>".
5707         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
5708         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
5709         wide versions.
5710         (define_expand "<avx512>_scattersi<mode>"): Rename from
5711         "avx512f_scattersi<mode>".
5712         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
5713         (define_expand "<avx512>_scatterdi<mode>"): Rename from
5714         "avx512f_scatterdi<mode>".
5715         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
5716
5717 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
5718
5719         * ira.h (ira_finish_once): Delete.
5720         * ira-int.h (target_ira_int::~target_ira_int): Declare.
5721         (target_ira_int::free_ira_costs): Likewise.
5722         (target_ira_int::free_register_move_costs): Likewise.
5723         (ira_finish_costs_once): Delete.
5724         * ira.c (free_register_move_costs): Replace with...
5725         (target_ira_int::free_register_move_costs): ...this new function.
5726         (target_ira_int::~target_ira_int): Define.
5727         (ira_init): Call free_register_move_costs as a member function rather
5728         than a global function.
5729         (ira_finish_once): Delete.
5730         * ira-costs.c (free_ira_costs): Replace with...
5731         (target_ira_int::free_ira_costs): ...this new function.
5732         (ira_init_costs): Call free_ira_costs as a member function rather
5733         than a global function.
5734         (ira_finish_costs_once): Delete.
5735         * target-globals.c (target_globals::~target_globals): Call the
5736         target_ira_int destructor.
5737         * toplev.c: Include lra.h.
5738         (finalize): Call lra_finish_once rather than ira_finish_once.
5739
5740 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
5741
5742         * common.opt (flto-odr-type-merging): New flag.
5743         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
5744         (types_same_for_odr): Likewise.
5745         (odr_subtypes_equivalent_p): Likewise.
5746         (add_type_duplicate): Do not walk type variants.
5747         (register_odr_type): New function.
5748         * ipa-utils.h (register_odr_type): Declare.
5749         (odr_type_p): New function.
5750         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
5751         TYPE_DECLs
5752         * doc/invoke.texi (-flto-odr-type-merging): Document.
5753         * tree.c (need_assembler_name_p): Compute ODR names when asked
5754         for it.
5755         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
5756
5757 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
5758
5759         PR target/63228
5760         * config/i386/i386.c (ix86_option_override_internal): Also turn
5761         off OPTION_MASK_ABI_X32 for -m16.
5762
5763 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
5764
5765         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
5766         GPR instead of P.
5767
5768 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
5769
5770         PR target/58757
5771         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
5772         Directly forward to __*_DENORM_MIN__.
5773
5774 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
5775
5776         * rtl.h (LABEL_REF_LABEL): New macro.
5777
5778         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
5779         of XEXP (, 0), where we know that we have a LABEL_REF.
5780         * cfgbuild.c (make_edges): Likewise.
5781         (purge_dead_tablejump_edges): Likewise.
5782         * cfgexpand.c (convert_debug_memory_address): Likewise.
5783         * cfgrtl.c (patch_jump_insn): Likewise.
5784         * combine.c (distribute_notes): Likewise.
5785         * cse.c (hash_rtx_cb): Likewise.
5786         (exp_equiv_p): Likewise.
5787         (fold_rtx): Likewise.
5788         (check_for_label_ref): Likewise.
5789         * cselib.c (rtx_equal_for_cselib_1): Likewise.
5790         (cselib_hash_rtx): Likewise.
5791         * emit-rtl.c (mark_label_nuses): Likewise.
5792         * explow.c (convert_memory_address_addr_space): Likewise.
5793         * final.c (output_asm_label): Likewise.
5794         (output_addr_const): Likewise.
5795         * gcse.c (add_label_notes): Likewise.
5796         * genconfig.c (walk_insn_part): Likewise.
5797         * genrecog.c (validate_pattern): Likewise.
5798         * ifcvt.c (cond_exec_get_condition): Likewise.
5799         (noce_emit_store_flag): Likewise.
5800         (noce_get_alt_condition): Likewise.
5801         (noce_get_condition): Likewise.
5802         * jump.c (maybe_propagate_label_ref): Likewise.
5803         (mark_jump_label_1): Likewise.
5804         (redirect_exp_1): Likewise.
5805         (rtx_renumbered_equal_p): Likewise.
5806         * lra-constraints.c (operands_match_p): Likewise.
5807         * reload.c (operands_match_p): Likewise.
5808         (find_reloads): Likewise.
5809         * reload1.c (set_label_offsets): Likewise.
5810         * reorg.c (get_branch_condition): Likewise.
5811         * rtl.c (rtx_equal_p_cb): Likewise.
5812         (rtx_equal_p): Likewise.
5813         * rtlanal.c (reg_mentioned_p): Likewise.
5814         (rtx_referenced_p): Likewise.
5815         (get_condition): Likewise.
5816         * sched-vis.c (print_value): Likewise.
5817         * varasm.c (const_hash_1): Likewise.
5818         (compare_constant): Likewise.
5819         (const_rtx_hash_1): Likewise.
5820         (output_constant_pool_1): Likewise.
5821
5822 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
5823
5824         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
5825         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
5826         instead of minus.
5827         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
5828         cr6_test_for_lt_reverse): Ditto.
5829
5830 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
5831
5832         PR c++/61489
5833         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
5834
5835 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
5836
5837         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
5838         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
5839         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
5840         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
5841         Delete.
5842
5843         (aarch64_fold_builtin): Remove all reinterpret cases.
5844
5845         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
5846
5847         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
5848
5849         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
5850         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
5851         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
5852         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
5853         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
5854         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
5855         aarch64_reinterpretv2df<mode>): Delete.
5856
5857         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
5858
5859         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
5860         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
5861         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
5862         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
5863         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
5864         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
5865         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
5866         vreinterpret_u32_f64): Use cast.
5867
5868         * config/aarch64/iterators.md (VD_RE): Delete.
5869
5870 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
5871
5872         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
5873         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
5874         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
5875         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
5876         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
5877         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
5878         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
5879         Replace inline assembler with __aarch64_vset_lane_any.
5880
5881 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
5882
5883         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
5884         types.
5885         (vmull_high_lane_s32): Likewise.
5886         (vmull_high_lane_u16): Likewise.
5887         (vmull_high_lane_u32): Likewise.
5888
5889 2014-09-11  Jason Merrill  <jason@redhat.com>
5890
5891         PR c++/58678
5892         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
5893
5894 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
5895
5896         PR target/63223
5897         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
5898         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
5899         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
5900
5901 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5902             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5903             Anna Tikhonova  <anna.tikhonova@intel.com>
5904             Ilya Tocar  <ilya.tocar@intel.com>
5905             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5906             Ilya Verbin  <ilya.verbin@intel.com>
5907             Kirill Yukhin  <kirill.yukhin@intel.com>
5908             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5909
5910         * config/i386/sse.md
5911         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
5912         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
5913         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
5914         New.
5915         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
5916         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
5917         iterator.
5918         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5919         New.
5920         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
5921         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
5922         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
5923         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
5924         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
5925         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
5926         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
5927         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
5928         iterator.
5929         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5930         New.
5931         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
5932         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
5933         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
5934
5935 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5936
5937         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
5938         to access removed nodes.
5939
5940 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5941
5942         PR tree-optimization/63186
5943         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
5944         (mark_nonssa_use): Likewise.
5945         (verify_non_ssa_vars): Verify all header blocks for label
5946         definitions.
5947
5948 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5949             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5950             Anna Tikhonova  <anna.tikhonova@intel.com>
5951             Ilya Tocar  <ilya.tocar@intel.com>
5952             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5953             Ilya Verbin  <ilya.verbin@intel.com>
5954             Kirill Yukhin  <kirill.yukhin@intel.com>
5955             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5956
5957         * config/i386/sse.md
5958         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
5959         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
5960         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
5961         "<avx2_avx512f>_permvar<mode><mask_name>".
5962         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
5963         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
5964         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
5965         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
5966         Ditto.
5967         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
5968         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
5969         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
5970         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
5971
5972 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
5973
5974         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
5975         V2DF, V4SF, DF, and DI modes.
5976         (vsx_fmav2df2): Likewise.
5977         (vsx_float_fix_<mode>2): Likewise.
5978         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
5979
5980 2014-09-10  Xinliang David Li  <davidxl@google.com>
5981
5982         PR target/63209
5983         * config/arm/arm.md (movcond_addsi): Handle case where source
5984         and target operands are the same.
5985
5986 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
5987
5988         * final.c (this_is_asm_operands): Strengthen this variable from
5989         rtx to const rtx_insn *.
5990         * output.h (this_is_asm_operands): Likewise.
5991         * rtl-error.c (location_for_asm): Strengthen param "insn" from
5992         const_rtx to const rtx_insn *.
5993         (diagnostic_for_asm): Likewise.
5994         * rtl-error.h (error_for_asm): Likewise.
5995         (warning_for_asm): Likewise.
5996
5997 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
5998
5999         * genextract.c (print_header): When writing out insn_extract to
6000         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
6001         * recog.h (insn_extract): Strengthen the param from rtx to
6002         rtx_insn *.
6003
6004 2014-09-10  Mike Stump  <mikestump@comcast.net>
6005
6006         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
6007         8.6.1.
6008
6009 2014-09-10  Martin Jambor  <mjambor@suse.cz>
6010
6011         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
6012         (analyze): Do not set analyze flag if expand_thunk returns false;.
6013         (create_wrapper): Likewise.
6014         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
6015
6016 2014-09-10  Martin Jambor  <mjambor@suse.cz>
6017
6018         PR ipa/61654
6019         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
6020         new decl properly.  Analyze the new thunk if it is expanded.
6021
6022 2014-09-10  Andreas Schwab  <schwab@suse.de>
6023
6024         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
6025         [USED_FOR_TARGET]: Define.
6026
6027 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
6028
6029         * config/mips/mips.c (mips_secondary_reload_class): Handle
6030         regno < 0 case.
6031
6032 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
6033
6034         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
6035         assignment.
6036
6037 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
6038
6039         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
6040         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
6041         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
6042         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
6043         flag_delete_null_pointer_checks for them.
6044         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
6045         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
6046         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
6047         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
6048         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
6049         stmt's iterator.
6050         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
6051         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
6052         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
6053         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
6054         * doc/invoke.texi (-fsanitize=nonnull-attribute,
6055         -fsanitize=returns-nonnull-attribute): Document.
6056
6057         * ubsan.h (struct ubsan_mismatch_data): Removed.
6058         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
6059         * ubsan.c (ubsan_source_location): For unknown locations,
6060         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
6061         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
6062         Allow more than one location and arbitrary extra arguments passed
6063         in ... instead of through MISMATCH pointer.
6064         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
6065         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
6066         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
6067         callers.
6068
6069 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6070             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6071             Anna Tikhonova  <anna.tikhonova@intel.com>
6072             Ilya Tocar  <ilya.tocar@intel.com>
6073             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6074             Ilya Verbin  <ilya.verbin@intel.com>
6075             Kirill Yukhin  <kirill.yukhin@intel.com>
6076             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6077
6078         * config/i386/sse.md
6079         (define_mode_iterator VI48F): New.
6080         (define_insn "<avx512>_compress<mode>_mask"): Rename from
6081         "avx512f_compress<mode>_mask" and update mode iterator.
6082         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
6083         "avx512f_compressstore<mode>_mask" and update mode iterator.
6084         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
6085         "avx512f_expand<mode>_maskz" and update mode iterator.
6086         (define_insn "<avx512>_expand<mode>_mask"): Rename from
6087         "avx512f_expand<mode>_mask" and update mode iterator.
6088
6089 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6090             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6091             Anna Tikhonova  <anna.tikhonova@intel.com>
6092             Ilya Tocar  <ilya.tocar@intel.com>
6093             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6094             Ilya Verbin  <ilya.verbin@intel.com>
6095             Kirill Yukhin  <kirill.yukhin@intel.com>
6096             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6097
6098         * config/i386/i386.c
6099         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
6100         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
6101         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
6102         avx512dq_rangepv4sf_mask.
6103         * config/i386/sse.md
6104         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
6105         UNSPEC_RANGE.
6106         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
6107         (define_insn "reduces<mode>"): Ditto.
6108         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
6109         Ditto.
6110         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
6111         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
6112         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
6113
6114 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6115             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6116             Anna Tikhonova  <anna.tikhonova@intel.com>
6117             Ilya Tocar  <ilya.tocar@intel.com>
6118             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6119             Ilya Verbin  <ilya.verbin@intel.com>
6120             Kirill Yukhin  <kirill.yukhin@intel.com>
6121             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6122
6123         * config/i386/i386.c
6124         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
6125         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
6126         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
6127         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
6128         avx512vl_getmantv2df_mask.
6129         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
6130         avx512f_vgetmantv4sf_round.
6131         * config/i386/sse.md
6132         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
6133         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
6134         mode iterator.
6135         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
6136         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
6137         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
6138         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
6139         iterator..
6140         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
6141         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
6142         update mode iterator.
6143         (define_expand
6144         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
6145         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
6146         mode iterator.
6147         (define_insn
6148         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
6149         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
6150         update mode iterator.
6151         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
6152         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
6153         iterator..
6154         (define_insn
6155         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
6156         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
6157         mode iterator..
6158         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
6159         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
6160         update mode iterator.
6161         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
6162         "avx512f_getmant<mode><round_saeonly_name>".
6163
6164 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
6165
6166         PR ipa/63166
6167         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
6168
6169 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6170             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6171             Anna Tikhonova  <anna.tikhonova@intel.com>
6172             Ilya Tocar  <ilya.tocar@intel.com>
6173             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6174             Ilya Verbin  <ilya.verbin@intel.com>
6175             Kirill Yukhin  <kirill.yukhin@intel.com>
6176             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6177
6178         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
6179         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
6180         (define_mode_iterator FMAMODE_AVX512): New.
6181         (define_mode_iterator FMAMODE): Remove conditions.
6182         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
6183         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
6184         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
6185         mode iterator.
6186         (define_mode_iterator FMAMODE_NOVF512): Remove.
6187         (define_insn "*fma_fmadd_<mode>"): Rename from
6188         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
6189         FMAMODE mode iterator.
6190         (define_mode_iterator VF_SF_AVX512VL): New.
6191         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
6192         Use VF_SF_AVX512VL mode iterator.
6193         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
6194         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6195         iterator.
6196         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
6197         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6198         iterator.
6199         (define_insn "*fma_fmsub_<mode>"): Rename from
6200         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
6201         FMAMODE mode iterator.
6202         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
6203         Use VF_SF_AVX512VL mode iterator.
6204         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
6205         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6206         iterator.
6207         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
6208         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6209         iterator.
6210         (define_insn "*fma_fnmadd_<mode>"): Rename from
6211         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
6212         use FMAMODE mode iterator.
6213         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
6214         Use VF_SF_AVX512VL mode iterator.
6215         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
6216         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6217         iterator.
6218         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
6219         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6220         iterator.
6221         (define_insn "*fma_fnmsub_<mode>"): Rename from
6222         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
6223         FMAMODE mode iterator.
6224         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
6225         Use VF_SF_AVX512VL mode iterator.
6226         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
6227         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6228         iterator.
6229         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
6230         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6231         iterator.
6232         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
6233         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
6234         use VF_AVX512VL mode iterator.
6235         (define_insn "*fma_fmaddsub_<mode>"): Rename from
6236         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
6237         remove subst usage.
6238         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
6239         Use VF_SF_AVX512VL mode iterator.
6240         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
6241         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6242         iterator.
6243         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
6244         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6245         iterator.
6246         (define_insn "*fma_fmsubadd_<mode>"): Rename from
6247         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
6248         remove usage of subst.
6249         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
6250         Use VF_SF_AVX512VL mode iterator.
6251         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
6252         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6253         iterator.
6254         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
6255         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6256         iterator.
6257
6258 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
6259
6260         Revert r213751:
6261         * calls.c (precompute_arguments): Check
6262          promoted_for_signed_and_unsigned_p and set the promoted mode.
6263         (promoted_for_signed_and_unsigned_p): New function.
6264         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
6265         and set the promoted mode.
6266         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
6267         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
6268         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
6269
6270 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6271
6272         * opth-gen.awk: Generate mapping from cpp message reasons to the
6273         options that enable them.
6274         * doc/options.texi (CppReason): Document.
6275
6276 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6277
6278         * doc/invoke.texi (Wnormalized=): Update.
6279
6280 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
6281
6282         PR target/63195
6283         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
6284         operands.  Split off the constant operand alternative to ...
6285         (*bool<mode>3_imm): New.
6286
6287 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6288
6289         * rtl.h (single_set_2): Strengthen first param from const_rtx to
6290         const rtx_insn *, and move prototype to above...
6291         (single_set): ...this.  Convert this from a macro to an inline
6292         function, enforcing the requirement that the param is a const
6293         rtx_insn *.
6294         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
6295
6296         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
6297         Strengthen both params from rtx to rtx_insn *.
6298         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
6299         Likewise; introduce locals "producer_set", "consumer_set", using
6300         them in place of "producer" and "consumer" when dealing with SET
6301         rather than insn.
6302         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
6303         when invoking single_set in region guarded by INSN_P.
6304         (avr_out_bitop): Likewise.
6305         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
6306         region guarded by GET_CODE check, using methods to strengthen
6307         local "this_insn" from rtx to rtx_insn *, and for clarity.
6308         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
6309         Strengthen local "insn" from rtx to rtx_insn *.
6310         (define_insn_and_split "xload<mode>_A"): Likewise.
6311         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
6312         "insn".
6313         (find_load): Likewise for return type.
6314         (workaround_speculation): Likewise for both locals named
6315         "load_insn".
6316         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
6317         local "cc0_user".
6318         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
6319         for local "prev".
6320         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
6321         param 2.
6322         * config/h8300/h8300.c (notice_update_cc): Likewise.
6323         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
6324         "insn" and "dep_insn".
6325         (exact_store_load_dependency): Likewise for both params.
6326         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
6327         since this now clashes with inline function.  Instead, delay
6328         calling single_set until the point where its needed, and then
6329         assign the result to "compare_set" and rework the conditional that
6330         follows.
6331         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
6332         local "last" from rtx to rtx_insn *.
6333         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
6334         second param.
6335         (mips_store_data_bypass_p): Likewise for both params.
6336         * config/mips/mips.c (mips_load_store_insns): Likewise for second
6337         param.
6338         (mips_store_data_bypass_p): Likewise for both params.
6339         (mips_orphaned_high_part_p): Likewise for param "insn".
6340         * config/mn10300/mn10300.c (extract_bundle): Likewise.
6341         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
6342         Introduce local rtx "insn2_pat".
6343         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
6344         "ninsn".
6345         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
6346         Introduce local rtx "set", using it in place of "insn" for the
6347         result of single_set.  This appears to fix a bug, since the call
6348         to find_regno_note on a SET does nothing.
6349         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
6350         params from rtx to rtx_insn *.
6351         (set_to_load_agen): Likewise.
6352         * config/s390/s390.c (s390_label_align): Likewise for local
6353         "prev_insn".  Introduce new rtx locals "set" and "src", using
6354         them in place of "prev_insn" for the results of single_set
6355         and SET_SRC respectively.
6356         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
6357         Introduce new rtx local "set" using in place of "jump" for the
6358         result of single_set.  Use SET_SRC (set) rather than plain
6359         XEXP (set, 1).
6360         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
6361         rtx to rtx_insn *.
6362         (noncall_uses_reg): Likewise.
6363         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
6364         guarded by GET_CODE check, using its methods for clarity, and to
6365         enable strengthening local "this_insn" from rtx to rtx_insn *.
6366         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
6367         "insn" from rtx to rtx_insn *.
6368         (define_expand "umulhisi3"): Likewise.
6369         (define_expand "smulsi3_highpart"): Likewise.
6370         (define_expand "umulsi3_highpart"): Likewise.
6371         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
6372         local "after".  Replace GET_CODE check with a dyn_cast,
6373         introducing new local rtx_sequence * "seq", using insn method for
6374         typesafety.
6375
6376         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
6377         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
6378         place of "insn" once we're dealing with patterns rather than the
6379         input insn.
6380         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
6381         (scan_trace): Likewise for local "elt", updating lookups within
6382         sequence to use insn method rather than element method.
6383         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
6384         to rtx_insn *.
6385         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
6386         * ifcvt.c (noce_try_abs): Likewise for local "insn".
6387         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
6388         invoking single_set.
6389         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
6390         "insn" from rtx to rtx_insn *.
6391         (skip_usage_debug_insns): Likewise for return type, adding a
6392         checked cast.
6393         (check_secondary_memory_needed_p): Likewise for local "insn".
6394         (inherit_reload_reg): Likewise.
6395         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
6396         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
6397         checked casts.
6398         (store_data_bypass_p): Likewise for both params.
6399         (if_test_bypass_p): Likewise.
6400         * recog.h (store_data_bypass_p): Likewise for both params.
6401         (if_test_bypass_p): Likewise.
6402         * reload.c (find_equiv_reg): Likewise for local "where".
6403         * reorg.c (delete_jump): Likewise for param "insn".
6404         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
6405         to const rtx_insn *.
6406         * store-motion.c (replace_store_insn): Likewise for param "del".
6407         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
6408         and use its methods for clarity, and to strengthen local "del"
6409         from rtx to rtx_insn *.
6410         (build_store_vectors): Use insn method of "st" when calling
6411         replace_store_insn for typesafety and clarity.
6412
6413 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6414
6415         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
6416         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
6417         on how to make it legal in future.
6418
6419 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6420
6421         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
6422         to rtx_insn *.
6423         (restinsn): Likewise.
6424         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
6425         Likewise for param.
6426         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
6427         Likewise.
6428         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
6429         first param.
6430         (arc_hazard): Likewise for both params.
6431         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
6432         checked casts to rtx_sequence * and uses of the insn method for
6433         type-safety.
6434         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
6435         (arc_adjust_insn_length): Likewise for param "insn".
6436         (struct insn_length_parameters_s): Likewise for first param of
6437         "get_variants" callback field.
6438         (arc_get_insn_variants): Likewise for first param and local
6439         "inner".  Replace a check of GET_CODE with a dyn_cast to
6440         rtx_sequence *, using methods for type-safety and clarity.
6441         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
6442         rtx_sequence * and uses of the insn method for type-safety when
6443         invoking arc_adjust_insn_length.
6444         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
6445         for param.
6446         (arm_address_offset_is_imm): Likewise.
6447         (struct tune_params): Likewise for params 1 and 3 of the
6448         "sched_adjust_cost" callback field.
6449         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
6450         params 1 and 3 ("insn" and "dep").
6451         (xscale_sched_adjust_cost): Likewise.
6452         (fa726te_sched_adjust_cost): Likewise.
6453         (cortexa7_older_only): Likewise for param "insn".
6454         (cortexa7_younger): Likewise.
6455         (arm_attr_length_move_neon): Likewise.
6456         (arm_address_offset_is_imm): Likewise.
6457         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
6458         * config/avr/avr.c (avr_notice_update_cc): Likewise.
6459         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
6460         (workaround_speculation): Likewise for local "last_condjump".
6461         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
6462         (shadow_or_blockage_p): Likewise.
6463         (get_unit_reqs): Likewise.
6464         (get_unit_operand_masks): Likewise.
6465         (c6x_registers_update): Likewise.
6466         (returning_call_p): Likewise.
6467         (can_use_callp): Likewise.
6468         (convert_to_callp): Likewise.
6469         (find_last_same_clock): Likwise for local "t".
6470         (reorg_split_calls): Likewise for local "shadow".
6471         (hwloop_pattern_reg): Likewise for param "insn".
6472         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
6473         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
6474         (frv_extract_membar): Likewise.
6475         (frv_optimize_membar_local): Strengthen param "last_membar" from
6476         rtx * to rtx_insn **.
6477         (frv_optimize_membar_global): Strengthen param "membar" from rtx
6478         to rtx_insn *.
6479         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
6480         to rtx_insn **.
6481         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
6482         both params from rtx to rtx_insn *.
6483         (ia64_ld_address_bypass_p): Likewise.
6484         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
6485         "insn".
6486         (ia64_safe_type): Likewise.
6487         (group_barrier_needed): Likewise.
6488         (safe_group_barrier_needed): Likewise.
6489         (ia64_single_set): Likewise.
6490         (is_load_p): Likewise.
6491         (record_memory_reference): Likewise.
6492         (get_mode_no_for_insn): Likewise.
6493         (important_for_bundling_p): Likewise.
6494         (unknown_for_bundling_p): Likewise.
6495         (ia64_st_address_bypass_p): Likewise for both params.
6496         (ia64_ld_address_bypass_p): Likewise.
6497         (expand_vselect): Introduce new local rtx_insn * "insn", using it
6498         in place of rtx "x" after the emit_insn call.
6499         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
6500         Strengthen param from rtx to rtx_insn *.
6501         (ix86_agi_dependent): Likewise for both params.
6502         (ix86_attr_length_immediate_default): Likewise for param 1.
6503         (ix86_attr_length_address_default): Likewise for param.
6504         (ix86_attr_length_vex_default): Likewise for param 1.
6505         * config/i386/i386.c (ix86_attr_length_immediate_default):
6506         Likewise for param "insn".
6507         (ix86_attr_length_address_default): Likewise.
6508         (ix86_attr_length_vex_default): Likewise.
6509         (ix86_agi_dependent): Likewise for both params.
6510         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
6511         (vselect_insn): Likewise for this variable.
6512         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
6513         for param 1.
6514         (m68k_sched_attr_opy_type): Likewise.
6515         * config/m68k/m68k.c (sched_get_operand): Likewise.
6516         (sched_attr_op_type): Likewise.
6517         (m68k_sched_attr_opx_type): Likewise.
6518         (m68k_sched_attr_opy_type): Likewise.
6519         (sched_get_reg_operand): Likewise.
6520         (sched_get_mem_operand): Likewise.
6521         (m68k_sched_address_bypass_p): Likewise for both params.
6522         (sched_get_indexed_address_scale): Likewise.
6523         (m68k_sched_indexed_address_bypass_p): Likewise.
6524         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
6525         (m68k_sched_indexed_address_bypass_p): Likewise.
6526         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
6527         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
6528         removing another.
6529         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
6530         params from rtx to rtx_insn *.
6531         (mips_fmadd_bypass): Likewise.
6532         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
6533         (mips_linked_madd_p): Likewise.
6534         (mips_macc_chains_last_hilo): Likewise for this variable.
6535         (mips_macc_chains_record): Likewise for param.
6536         (vr4130_last_insn): Likewise for this variable.
6537         (vr4130_swap_insns_p): Likewise for both params.
6538         (mips_ls2_variable_issue): Likewise for param.
6539         (mips_need_noat_wrapper_p): Likewise for param "insn".
6540         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
6541         in place of "x" after the emit_insn.
6542         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
6543         params from rtx to rtx_insn *.
6544         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
6545         (pa_combine_instructions): Introduce local "par" for result of
6546         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
6547         to make_insn_raw.
6548         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
6549         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
6550         (rl78_alloc_physical_registers_op1): Likewise.
6551         (rl78_alloc_physical_registers_op2): Likewise.
6552         (rl78_alloc_physical_registers_ro1): Likewise.
6553         (rl78_alloc_physical_registers_cmp): Likewise.
6554         (rl78_alloc_physical_registers_umul): Likewise.
6555         (rl78_alloc_address_registers_macax): Likewise.
6556         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
6557         * config/s390/predicates.md (execute_operation): Likewise for
6558         local "insn".
6559         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
6560         params.
6561         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
6562         (addr_generation_dependency_p): Likewise for param "insn".
6563         (s390_agen_dep_p): Likewise for both params.
6564         (s390_fpload_toreg): Likewise for param "insn".
6565         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
6566         * config/sh/sh.c (sh_loop_align): Likewise for param and local
6567         "next".
6568         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
6569         * config/sh/sh_treg_combine.cc
6570         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
6571         and local "i".
6572         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
6573         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
6574         "and_insn", "load", "shift".
6575         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
6576         "insn".
6577         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
6578         for XEXP (note, 0) of the REG_CC_SETTER note.
6579         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
6580         rtx_insn *, eliminating a checked cast made redundant by this.
6581         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
6582         to rtx_insn *.
6583         * genattr.c (main): When writing out the prototype to
6584         const_num_delay_slots, strengthen the param from rtx to
6585         rtx_insn *.
6586         * genattrtab.c (write_const_num_delay_slots): Likewise when
6587         writing out the implementation of const_num_delay_slots.
6588         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
6589         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
6590         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
6591         favor of new rtx locals "src" and "set" and new local rtx_insn *
6592         "insn" and "seq".
6593         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
6594         to rtx_insn *.
6595         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
6596         locals "cond", "if_then_else", "set" and new rtx_insn * locals
6597         "insn" and "seq".
6598         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
6599         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
6600         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
6601         the top-level scope, replacing with new more tightly-scoped rtx
6602         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
6603         "new_insn", "copy_of_insn_b", and make local rtx "set" more
6604         tightly-scoped.
6605         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
6606         rtx_insn *.
6607         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
6608         "move_insn".
6609         (ira_setup_alts): Likewise for param "insn".
6610         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
6611         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
6612         and an rtx_insn *.
6613         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
6614         new more-tightly scoped rtx locals "add3_insn", "insn",
6615         "add2_insn" and rtx_insn * "move_insn".
6616         * postreload-gcse.c (eliminate_partially_redundant_load): Add
6617         checked cast on result of gen_move_insn when invoking
6618         extract_insn.
6619         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
6620         rtx_insn *.
6621         (verify_changes): Add a checked cast on "object" when invoking
6622         insn_invalid_p.
6623         (extract_insn_cached): Strengthen param "insn" from rtx to
6624         rtx_insn *.
6625         (extract_constrain_insn_cached): Likewise.
6626         (extract_insn): Likewise.
6627         * recog.h (insn_invalid_p): Likewise for param 1.
6628         (recog_memoized): Likewise for param.
6629         (extract_insn): Likewise.
6630         (extract_constrain_insn_cached): Likewise.
6631         (extract_insn_cached): Likewise.
6632         * reload.c (can_reload_into): Likewise for local "test_insn".
6633         * reload.h (cleanup_subreg_operands): Likewise for param.
6634         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
6635         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
6636         result of emit_insn.  Remove a checked cast made redundant by this
6637         change.
6638         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
6639         rtx to rtx_insn *.
6640         * sel-sched.c (get_reg_class): Likewise.
6641
6642 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6643             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6644
6645         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
6646         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
6647         Define.
6648         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
6649
6650 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6651
6652         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
6653         const rtx_insn *, and from rtx to rtx_insn * for the other
6654         overloaded variant.
6655         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
6656         INSN_LOCATION, since we know INSN_P holds.
6657         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
6658         (insn_file): Likewise.
6659         (insn_scope): Likewise.
6660         (insn_location): Likewise.
6661
6662         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
6663         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
6664         for the result of gen_load_const_gp.
6665         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
6666         param from rtx to rtx_insn *.
6667         * config/rs6000/rs6000.c (output_call): Likewise.
6668         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
6669         introducing a checked cast to rtx_sequence * and use of the insn
6670         method.
6671         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
6672         from rtx to rtx_insn *.
6673         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
6674         (insn_line): Likewise.
6675         (insn_file): Likewise.
6676         (insn_location): Likewise.
6677         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
6678         from rtx to rtx_insn *.
6679         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
6680         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
6681         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
6682         via a checked cast.
6683         * reorg.c (relax_delay_slots): Strengthen locals named "after"
6684         from rtx to rtx_insn *; use methods of "pat" for type-safety.
6685
6686 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6687
6688         * combine.c (try_combine): Eliminate checked cast on result of
6689         gen_rtx_INSN.
6690         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
6691         autogenerated one by strengthening the return type and params 2 and 3
6692         from rtx to rtx_insn *, and by naming the params.
6693         * gengenrtl.c (special_rtx): Add INSN to those that are
6694         special-cased.
6695         * rtl.h (gen_rtx_INSN): New prototype.
6696
6697 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6698
6699         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
6700         than NULL_RTX.
6701         (no_equiv): Likewise.
6702         (update_equiv_regs): Likewise.
6703         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
6704         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
6705         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
6706         clarity.
6707         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
6708         from rtx to rtx_insn_list *.
6709         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
6710         rtx_insn_list * and use methods for clarity and typesafety.
6711         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
6712         "list".
6713         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
6714         redundant check on INSN_P (insns): this cannot hold, as "insns" is
6715         an INSN_LIST, not an insn.
6716         (reverse_equiv_p): Strengthen local "insns" from rtx to
6717         rtx_insn_list * and use methods for clarity and typesafety.
6718         (contains_reloaded_insn_p): Likewise for local "list".
6719
6720 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
6721
6722         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
6723         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
6724         (arm_builtin_vectorized_function): Likewise.
6725         * config/arm/arm_neon_builtins.def: New macro for copysignf.
6726         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
6727
6728 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
6729
6730         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
6731         * builtins.h (default_target_builtins): Likewise.
6732         * gcse.h (default_target_gcse): Likewise.
6733         * target-globals.h (target_globals): Add a destructor.  Convert
6734         void-pointer fields back to their real type and change from
6735         GTY((atomic)) to GTY((skip)).
6736         (restore_target_globals): Remove casts accordingly.
6737         * target-globals.c (save_target_globals): Use XCNEW rather than
6738         ggc_internal_cleared_alloc to allocate non-GC structures.
6739         Use ggc_cleared_alloc to allocate the target_globals structure
6740         itself.
6741         (target_globals::~target_globals): Define.
6742
6743 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6744
6745         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
6746         mnemonic instead of fldmfdd.
6747         * config/arm/arm.c (vfp_output_fstmd): Rename to...
6748         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
6749         Output vpush when address register is SP.
6750         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
6751         (vfp_output_vstmd): ... This.
6752         * config/arm/vfp.md (push_multi_vfp): Update call to
6753         vfp_output_vstmd.
6754
6755 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6756
6757         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
6758
6759 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6760
6761         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
6762         (*sqrtdf2_vfp): Likewise.
6763         (*cmpsf_vfp): Likewise.
6764         (*cmpsf_trap_vfp): Likewise.
6765         (*cmpdf_vfp): Likewise.
6766         (*cmpdf_trap_vfp): Likewise.
6767
6768 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6769
6770         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
6771         (*truncdfsf2_vfp): Likewise.
6772         (*truncsisf2_vfp): Likewise.
6773         (*truncsidf2_vfp): Likewise.
6774         (fixuns_truncsfsi2): Likewise.
6775         (fixuns_truncdfsi2): Likewise.
6776         (*floatsisf2_vfp): Likewise.
6777         (*floatsidf2_vfp): Likewise.
6778         (floatunssisf2): Likewise.
6779         (floatunssidf2): Likewise.
6780
6781 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6782
6783         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
6784         (*muldf3_vfp): Likewise.
6785         (*mulsf3negsf_vfp): Likewise.
6786         (*muldf3negdf_vfp): Likewise.
6787         (*mulsf3addsf_vfp): Likewise.
6788         (*muldf3adddf_vfp): Likewise.
6789         (*mulsf3subsf_vfp): Likewise.
6790         (*muldf3subdf_vfp): Likewise.
6791         (*mulsf3negsfaddsf_vfp): Likewise.
6792         (*fmuldf3negdfadddf_vfp): Likewise.
6793         (*mulsf3negsfsubsf_vfp): Likewise.
6794         (*muldf3negdfsubdf_vfp): Likewise.
6795
6796 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6797
6798         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
6799         (*absdf2_vfp): Likewise.
6800         (*negsf2_vfp): Likewise.
6801         (*negdf2_vfp): Likewise.
6802         (*addsf3_vfp): Likewise.
6803         (*adddf3_vfp): Likewise.
6804         (*subsf3_vfp): Likewise.
6805         (*subdf3_vfp): Likewise.
6806         (*divsf3_vfp): Likewise.
6807         (*divdf3_vfp): Likewise.
6808
6809 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6810
6811         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
6812         multiple.
6813         (arm_print_operand): Don't convert real values to decimal
6814         representation in default case.
6815         (fp_immediate_constant): Delete.
6816         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
6817         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
6818         syntax.
6819         (*thumb2_movsi_vfp): Likewise.
6820         (*movdi_vfp): Likewise.
6821         (*movdi_vfp_cortexa8): Likewise.
6822         (*movhf_vfp_neon): Likewise.
6823         (*movhf_vfp): Likewise.
6824         (*movsf_vfp): Likewise.
6825         (*thumb2_movsf_vfp): Likewise.
6826         (*movdf_vfp): Likewise.
6827         (*thumb2_movdf_vfp): Likewise.
6828         (*movsfcc_vfp): Likewise.
6829         (*thumb2_movsfcc_vfp): Likewise.
6830         (*movdfcc_vfp): Likewise.
6831         (*thumb2_movdfcc_vfp): Likewise.
6832
6833 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
6834
6835         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
6836         (-mtune): Likewise.
6837         (-mcpu): Likewise.
6838
6839 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6840
6841         PR target/61749
6842         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
6843         Use qualifier_immediate for last operand.  Rename to...
6844         (aarch64_types_ternop_lane_qualifiers): ... This.
6845         (TYPES_QUADOP): Rename to...
6846         (TYPES_TERNOP_LANE): ... This.
6847         (aarch64_simd_expand_args): Return const0_rtx when encountering user
6848         error.  Change return of 0 to return of NULL_RTX.
6849         (aarch64_crc32_expand_builtin): Likewise.
6850         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
6851         ICE when expanding unknown builtin.
6852         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
6853         TERNOP_LANE qualifiers.
6854         (sqdmlsl_lane): Likewise.
6855         (sqdmlal_laneq): Likewise.
6856         (sqdmlsl_laneq): Likewise.
6857         (sqdmlal2_lane): Likewise.
6858         (sqdmlsl2_lane): Likewise.
6859         (sqdmlal2_laneq): Likewise.
6860         (sqdmlsl2_laneq): Likewise.
6861
6862 2014-09-09  Nick Clifton  <nickc@redhat.com>
6863
6864         * doc/invoke.texi (Optimization Options): Add missing @gol to the
6865         end of a line.
6866         (S/390 and zSeries Options): Remove superfluous word from the
6867         description of the -mhotpatch option.
6868
6869 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
6870
6871         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
6872         * ira.c: #include "shrink-wrap.h"
6873         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
6874         * ifcvt.c: #include "shrink-wrap.h"
6875         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
6876
6877 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
6878
6879         * common/config/picochip/picochip-common.c: Remove.
6880         * config.gcc: Remove support for picochip.
6881         * config/picochip/constraints.md: Remove.
6882         * config/picochip/dfa_space.md: Remove.
6883         * config/picochip/dfa_speed.md: Remove.
6884         * config/picochip/picochip-protos.h: Remove.
6885         * config/picochip/picochip.c: Remove.
6886         * config/picochip/picochip.h: Remove.
6887         * config/picochip/picochip.md: Remove.
6888         * config/picochip/picochip.opt: Remove.
6889         * config/picochip/predicates.md: Remove.
6890         * config/picochip/t-picochip: Remove.
6891         * doc/md.texi: Don't document picochi.
6892
6893 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
6894
6895         * basic-block.h (control_flow_insn_p): Strengthen param from
6896         const_rtx to const rtx_insn *.
6897         * cfgbuild.c (control_flow_insn_p): Likewise.
6898
6899 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
6900
6901         * gcse.c (modify_mem_list): Strengthen this variable from
6902         vec<rtx> * to vec<rtx_insn *> *.
6903         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
6904         vec<rtx_insn *>.
6905         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
6906         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
6907         (record_last_mem_set_info): Strengthen param "insn" from rtx to
6908         rtx_insn *.
6909         (record_last_set_info): Likewise for local "last_set_insn".
6910
6911 2014-09-08  DJ Delorie  <dj@redhat.com>
6912
6913         * doc/invoke.texi (MSP430 Options): Add -minrt.
6914
6915 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6916
6917         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
6918         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
6919         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
6920         handling SH_SPLAT.
6921         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
6922         of extracted lane.
6923         (adjust_splat): New function.
6924         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
6925         (dump_swap_insn_table): Add case for SH_SPLAT.
6926
6927 2014-09-08  Richard Biener  <rguenther@suse.de>
6928
6929         PR ipa/63196
6930         * tree-inline.c (copy_loops): The source loop header should
6931         always be non-NULL.
6932         (tree_function_versioning): If loops need fixup after removing
6933         unreachable blocks fix them.
6934         * omp-low.c (simd_clone_adjust): Do not add incr block to
6935         loop under construction.
6936
6937 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6938
6939         * config/aarch64/aarch64-builtins.c
6940         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
6941
6942 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
6943
6944         * config/i386/cygming.h (TF_SIZE): Remove.
6945         * config/i386/darwin.h (TF_SIZE): Remove.
6946         * config/i386/dragonfly.h (TF_SIZE): Remove.
6947         * config/i386/freebsd.h (TF_SIZE): Remove.
6948         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
6949         * config/i386/openbsdelf.h (TF_SIZE): Remove.
6950         * config/i386/sol2.h (TF_SIZE): Remove.
6951         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
6952         * config/ia64/linux.h (TF_SIZE): Remove.
6953         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
6954         * doc/tm.texi: Regenerate.
6955         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
6956
6957 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
6958
6959         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
6960         Remove.
6961         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
6962         Remove.
6963         * doc/tm.texi: Regenerate.
6964         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
6965         Poison.
6966         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
6967         * config/cris/cris.h (__make_dp): Remove.
6968
6969 2014-09-08  Richard Biener  <rguenther@suse.de>
6970
6971         PR bootstrap/63204
6972         * cfgloop.c (mark_loop_for_removal): Track former header
6973         unconditionally.
6974         * cfgloop.h (struct loop): Add former_header member unconditionally.
6975         * loop-init.c (fix_loop_structure): Enable bogus loop removal
6976         diagnostic unconditionally.
6977
6978 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
6979
6980         PR target/63190
6981         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
6982         constraint for operand0 and remove write only modifier from operand3.
6983
6984 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
6985
6986         PR rtl-optimization/62208
6987         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
6988         rather than const0_rtx in eq/ne-xor simplifications.
6989
6990 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
6991
6992         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
6993         (arc_output_mi_thunk): Likewise.
6994
6995         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
6996         arguments to silence bogus warning.
6997
6998 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
6999
7000         PR middle-end/63171
7001         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
7002
7003 2014-09-06  Tom de Vries  <tom@codesourcery.com>
7004
7005         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
7006         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
7007         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7008
7009 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
7010
7011         PR target/63188
7012         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
7013         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
7014
7015 2014-09-05  Easwaran Raman  <eraman@google.com>
7016
7017         PR rtl-optimization/62146
7018         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
7019         hoisted instruction unconditional.
7020
7021 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
7022
7023         PR target/63187
7024         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
7025         Do not allow any_mask_operand for operands[2].
7026         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
7027
7028 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7029
7030         * config/arc/arc.c (arc_print_operand): Use insn method of
7031         final_sequence for type-safety.
7032         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
7033         "insn" from rtx to rtx_insn *.
7034         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
7035         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
7036         Likewise for locals "branch", "label".
7037         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
7038         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
7039         (same_cmp_following_p): Likewise for locals "i2", "i3".
7040         * config/sh/sh_optimize_sett_clrt.cc
7041         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
7042         param "cbranch_insn".
7043         * function.c (convert_jumps_to_returns): Likewis for local "jump".
7044         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
7045         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
7046         const rtx_insn *.
7047         (condjump_p): Likewise.
7048         (condjump_in_parallel_p): Likewise.
7049         (pc_set): Likewise.
7050         (any_uncondjump_p): Likewise.
7051         (any_condjump_p): Likewise.
7052         (condjump_label): Likewise.
7053         (returnjump_p): Strengthen param "insn" from rtx to
7054         const rtx_insn *.
7055         (onlyjump_p): Strengthen param "insn" from const_rtx to
7056         const rtx_insn *.
7057         (jump_to_label_p): Likewise.
7058         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
7059         (invert_jump): Likewise.
7060         * reorg.c (simplejump_or_return_p): Add checked cast when calling
7061         simplejump_p.
7062         (get_jump_flags): Strengthen param "insn" from rtx to
7063         const rtx_insn *.
7064         (get_branch_condition): Likewise.
7065         (condition_dominates_p): Likewise.
7066         (make_return_insns): Move declaration of local "pat" earlier, to
7067         after we've handled NONJUMP_INSN_P and non-sequences, using its
7068         methods to simplify the code and for type-safety.
7069         * rtl.h (find_constant_src): Strengthen param from const_rtx to
7070         const rtx_insn *.
7071         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
7072         (condjump_p): Strengthen param from const_rtx to
7073         const rtx_insn *.
7074         (any_condjump_p): Likewise.
7075         (any_uncondjump_p): Likewise.
7076         (pc_set): Likewise.
7077         (condjump_label): Likewise.
7078         (simplejump_p): Likewise.
7079         (returnjump_p): Likewise.
7080         (onlyjump_p): Likewise.
7081         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
7082         (invert_jump): Likewise.
7083         (condjump_in_parallel_p): Strengthen param from const_rtx to
7084         const rtx_insn *.
7085         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
7086         to const rtx_insn *.
7087         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
7088         to const rtx_insn *.
7089         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
7090
7091 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7092
7093         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
7094         above the conditional, and convert the check on GET_CODE to a
7095         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
7096         the conditional.  Simplify the conditional by using methods of
7097         "trial_seq".
7098
7099 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7100
7101         * haifa-sched.c (check_clobbered_conditions): Strengthen local
7102         "link" from rtx to rtx_insn_list *, and use its methods for
7103         clarity and type-safety.
7104         (toggle_cancelled_flags): Likewise.
7105         (restore_last_backtrack_point): Likewise.
7106         (queue_to_ready): Use insn method of "link" in one place.
7107         (schedule_block): Strengthen local "link" from rtx to
7108         rtx_insn_list *, and use its methods for clarity and type-safety.
7109
7110 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7111
7112         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
7113         param "insn" from const_rtx to const rtx_insn *.
7114         (sched_get_reverse_condition_uncached): Likewise.
7115         (sched_get_condition_with_rev): Likewise.
7116         (sched_has_condition_p): Likewise.
7117         (sched_insns_conditions_mutex_p): Likewise for both params.
7118         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
7119         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
7120         (setup_insn_reg_uses): Move local "list" to be more tightly
7121         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
7122         its methods for clarity and type-safety.
7123         (sched_analyze_1): Strengthen local "pending" from rtx to
7124         rtx_insn_list *, and local "pending_mem" from rtx to
7125         rtx_expr_list *.  Use methods of each for clarity and type-safety.
7126         (sched_analyze_2): Likewise.
7127         (sched_analyze_insn): Likewise.
7128
7129         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
7130         param from const_rtx to const rtx_insn *.
7131         (sched_insns_conditions_mutex_p): Likewise for both params.
7132         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
7133         param.
7134
7135         * system.h (CONST_CAST_RTX_INSN): New macro.
7136
7137 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7138
7139         * recog.c (peep2_attempt): Strengthen return type from rtx to
7140         rtx_insn *.
7141         (peep2_update_life): Likewise for params "last", "prev", removing
7142         a checked cast made redundant by this.
7143         (peephole2_optimize): Likewise for local "last".
7144
7145 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7146
7147         * basic-block.h (set_block_for_insn): Eliminate this macro in
7148         favor of...
7149         * rtl.h (set_block_for_insn): New inline function, imposing the
7150         requirement that the "insn" param is an rtx_insn *.
7151
7152 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7153
7154         * caller-save.c (setup_save_areas): Strengthen local "insn" from
7155         rtx to rtx_insn *.
7156         * final.c (get_call_reg_set_usage): Likewise for first param,
7157         eliminating a checked cast.
7158         * regs.h (get_call_reg_set_usage): Likewise for first param.
7159         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
7160         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
7161         cast, replacing references to "x" with "call_insn" where
7162         appropriate.
7163         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
7164         rtx_insn *, adding a checked cast.
7165
7166 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7167
7168         * output.h (final_scan_insn): Strengthen first param from rtx to
7169         rtx_insn *.
7170
7171         * final.c (final_scan_insn): Likewise, renaming it back from
7172         "uncast_insn" to "insn", eliminating the checked cast.
7173
7174         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
7175         "vec" with an rtx_sequence * "seq", taking a copy of
7176         "final_sequence", and using methods of "seq" for clarity, and for
7177         type-safety in the calls to final_scan_insn.
7178         * config/mips/mips.c (mips_output_conditional_branch): Use methods
7179         of "final_sequence" for clarity, and for type-safety in the call to
7180         final_scan_insn.
7181         * config/sh/sh.c (print_slot): Strengthen param from rtx to
7182         rtx_sequence * and rename from "insn" to "seq".
7183
7184 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7185
7186         * jump.c (delete_related_insns): Introduce a new local "table" by
7187         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
7188         get_labels method of "table" to simplify access to the labels in
7189         the jump table.
7190
7191 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7192
7193         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
7194         f_minmaxs, f_minmaxd types.
7195
7196 2014-09-05  Richard Biener  <rguenther@suse.de>
7197
7198         * cfgloop.c (mark_loop_for_removal): Record former header
7199         when ENABLE_CHECKING.
7200         * cfgloop.h (strut loop): Add former_header member when
7201         ENABLE_CHECKING.
7202         * loop-init.c (fix_loop_structure): Sanity check loops
7203         marked for removal if they re-appeared.
7204
7205 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7206
7207         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
7208         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
7209
7210         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
7211         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
7212         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
7213         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
7214         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
7215         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
7216         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
7217         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
7218         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
7219         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
7220         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
7221         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
7222         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
7223         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
7224         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
7225         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
7226         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
7227         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
7228         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
7229         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
7230         with int{32,16,8}_t.
7231
7232 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7233
7234         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
7235         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
7236         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
7237         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
7238         Remove temporary __asm__ and reimplement.
7239
7240 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7241
7242         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
7243         handling cmge, cmgt, cmeq, cmtst.
7244
7245         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
7246         cmlt, cmgeu, cmgtu, cmtst): Remove.
7247
7248         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
7249         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
7250         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
7251         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
7252
7253 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7254
7255         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
7256         TYPES_TST): Define.
7257         (aarch64_fold_builtin): Update pattern for cmtst.
7258
7259         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
7260         Declare.
7261
7262         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
7263
7264         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
7265         Switch operands, separate out more cases, refactor.
7266
7267         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
7268
7269         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
7270         argument; rename old version to...
7271         (aarch64_const_vec_all_same_in_range_p): ...this.
7272         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
7273
7274         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
7275
7276 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7277
7278         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
7279         Remove qualifier_const_pointer, update comment.
7280
7281 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7282
7283         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
7284
7285 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7286
7287         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
7288         varargs with pointer parameter.
7289         (aarch64_simd_expand_builtin): pass pointer into previous.
7290
7291 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7292
7293         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
7294         alus_ext.
7295
7296 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7297
7298         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
7299         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
7300         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
7301         Replace temporary asm with call to builtin.
7302         (vrbit_p8, vrbitq_p8): New functions.
7303
7304 2014-09-05  Richard Biener  <rguenther@suse.de>
7305
7306         * cfgloop.c (mark_loop_for_removal): New function.
7307         * cfgloop.h (mark_loop_for_removal): Declare.
7308         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
7309         (merge_blocks): Likewise.
7310         (duplicate_block): Likewise.
7311         * except.c (sjlj_emit_dispatch_table): Likewise.
7312         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
7313         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
7314         (thread_through_loop_header): Likewise.
7315
7316 2014-09-05  Richard Biener  <rguenther@suse.de>
7317
7318         PR middle-end/63148
7319         * fold-const.c (try_move_mult_to_index): Remove.
7320         (fold_binary_loc): Do not call it.
7321         * tree-data-ref.c (dr_analyze_indices): Strip conversions
7322         from the base object again.
7323
7324 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
7325
7326         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
7327         DImode.
7328
7329 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
7330
7331         PR target/55701
7332         * config/arm/arm.md (setmem): New pattern.
7333         * config/arm/arm-protos.h (struct tune_params): New fields.
7334         (arm_gen_setmem): New prototype.
7335         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
7336         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
7337         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
7338         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
7339         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
7340         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
7341         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
7342         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
7343         (arm_const_inline_cost): New function.
7344         (arm_block_set_max_insns): New function.
7345         (arm_block_set_non_vect_profit_p): New function.
7346         (arm_block_set_vect_profit_p): New function.
7347         (arm_block_set_unaligned_vect): New function.
7348         (arm_block_set_aligned_vect): New function.
7349         (arm_block_set_unaligned_non_vect): New function.
7350         (arm_block_set_aligned_non_vect): New function.
7351         (arm_block_set_vect, arm_gen_setmem): New functions.
7352
7353 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
7354
7355         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
7356
7357 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
7358
7359         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
7360
7361 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
7362
7363         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
7364         an rtx.
7365         * valtrack.h: Adjust.
7366
7367 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
7368
7369         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
7370         an rtx.
7371         (emit_jump_insn_before_noloc): Likewise.
7372         (emit_call_insn_before_noloc): Likewise.
7373         (emit_label_before): Likewise.
7374         (emit_label_after): Likewise.
7375         (emit_insn_before_setloc): Likewise.
7376         (emit_jump_insn_before_setloc): Likewise.
7377         (emit_call_insn_before_setloc): Likewise.
7378         (emit_call_insn_before): Likewise.
7379         * rtl.h: Adjust.
7380
7381 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7382
7383         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
7384         rtx_insn *, eliminating a checked cast.
7385
7386 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7387
7388         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
7389         const_rtx to const rtx_insn *.
7390         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
7391         cast.
7392
7393 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7394
7395         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
7396         fixup_args_size_notes.
7397         * expr.c (fixup_args_size_notes): Strengthen first two params from
7398         rtx to rtx_insn *, eliminating a checked cast.
7399         * rtl.h (fixup_args_size_notes): Strengthen first two params from
7400         rtx to rtx_insn *.
7401
7402 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7403
7404         * haifa-sched.c (get_ready_element): Strengthen return type from
7405         rtx to rtx_insn *.
7406         * sched-int.h (get_ready_element): Likewise.
7407
7408 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
7409
7410         PR target/63165
7411         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
7412         indexed_or_indirect_operand instead of memory_operand.
7413         (floatsi<mode>2_lfiwzx_mem): Ditto.
7414
7415 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
7416
7417         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
7418         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
7419         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
7420
7421 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
7422
7423         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
7424         rtx.
7425         (get_last_nonnote_insn): Likewise.
7426         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
7427         * resource.c (find_basic_block): Likewise.
7428         * rtl.h: Adjust.
7429         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
7430         const_rtx.
7431
7432 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
7433
7434         * genattr.c (main): Within the prototype of insn_latency written
7435         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
7436         * genautomata.c (output_internal_maximal_insn_latency_func):
7437         Within the implementation of insn_latency written out to
7438         insn-automata.c, strengthen both params from rtx to rtx_insn *,
7439         eliminating a pair of checked casts.
7440
7441 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
7442
7443         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
7444         rtx_insn *.
7445
7446         * rtl.h (eh_returnjump_p): Likewise.
7447
7448 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
7449
7450         * Makefile.in (TAGS): Handle constructs in timevar.def.
7451
7452 2014-09-04  Guozhi Wei  <carrot@google.com>
7453
7454         PR target/62040
7455         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
7456         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
7457         it into two patterns.
7458         (move_lo_quad_internal_be_<mode>): Likewise.
7459
7460 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7461
7462         * doc/options.texi: Document that Var and Init are required if CPP
7463         is given.
7464         * optc-gen.awk: Require Var and Init if CPP is given.
7465         * common.opt (Wpedantic): Use Init.
7466
7467 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7468
7469         * config/rs6000/rs6000.c (special_handling_values): Add
7470         SH_EXTRACT.
7471         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
7472         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
7473         as swappable with special handling SH_EXTRACT.  Remove
7474         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
7475         optimization.
7476         (adjust_extract): New function.
7477         (handle_special_swappables): Add default to case statement; add
7478         case for SH_EXTRACT that calls adjust_extract.
7479         (dump_swap_insn_table): Handle SH_EXTRACT.
7480
7481 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7482
7483         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
7484         selection of 0th memory doubleword, regardless of endianness.
7485
7486 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7487
7488         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
7489
7490 2014-09-04  Alan Modra  <amodra@gmail.com>
7491
7492         PR debug/60655
7493         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
7494         can't be output.
7495
7496 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
7497
7498         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
7499         * targhooks.c (default_dwarf_frame_reg_mode): New function.
7500         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
7501         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
7502         * doc/tm.texi: Regenerate.
7503         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
7504         selection logic to default_dwarf_frame_reg_mode.
7505
7506 2014-09-03  Marek Polacek  <polacek@redhat.com>
7507
7508         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
7509         by -Wall.
7510
7511 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
7512
7513         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
7514         the automodified register.
7515
7516 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
7517
7518         * output.h (get_some_local_dynamic_name): Declare.
7519         * final.c (some_local_dynamic_name): New variable.
7520         (get_some_local_dynamic_name): New function.
7521         (final_end_function): Clear some_local_dynamic_name.
7522         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
7523         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7524         (print_operand): Report an error if '%&' is used inappropriately.
7525         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
7526         (get_some_local_dynamic_name_1): Delete.
7527         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
7528         (rs6000_get_some_local_dynamic_name): Delete.
7529         (rs6000_get_some_local_dynamic_name_1): Delete.
7530         (print_operand): Report an error if '%&' is used inappropriately.
7531         * config/s390/s390.c (machine_function): Remove some_ld_name.
7532         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7533         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
7534         * config/sparc/sparc.c: Include rtl-iter.h.
7535         (machine_function): Remove some_ld_name.
7536         (sparc_print_operand): Report an error if '%&' is used inappropriately.
7537         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7538
7539 2014-09-03  Richard Henderson  <rth@redhat.com>
7540
7541         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
7542         (aarch64_popwb_pair_reg): Remove.
7543         (aarch64_set_frame_expr): Remove.
7544         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
7545         the restore ops performed by the insns generated.
7546         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
7547         insn.  Perform the calls_eh_return addition later; do not attempt to
7548         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
7549         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
7550         special markup at all.  Load cfun->machine->frame.hard_fp_offset
7551         into a local variable.
7552         (aarch64_frame_pointer_required): Don't check calls_alloca.
7553
7554 2014-09-03  Richard Biener  <rguenther@suse.de>
7555
7556         * opts.c (default_options_optimization): Adjust
7557         max-combine-insns to 2 for -Og.
7558
7559 2014-09-03  Martin Jambor  <mjambor@suse.cz>
7560
7561         PR ipa/62015
7562         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
7563         pass-trough jump functions correctly.
7564
7565 2014-09-03  Martin Jambor  <mjambor@suse.cz>
7566
7567         PR ipa/61986
7568         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
7569         created replacements in ascending order of offsets.
7570         (known_aggs_to_agg_replacement_list): Likewise.
7571
7572 2014-09-03  Martin Liska  <mliska@suse.cz>
7573
7574         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
7575         is set to set uninitialized value for vnresult.
7576
7577 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7578
7579         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
7580         for TARGET_MUST_PASS_IN_STACK.
7581
7582 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7583
7584         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
7585         for TARGET_ARG_PARTIAL_BYTES.
7586
7587 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7588
7589         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
7590         instructions for varargs implementation.
7591         (nds32_expand_epilogue): Emit stack adjustment instructions for
7592         varargs implementation.
7593
7594 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7595
7596         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
7597         optimization detection.
7598
7599 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7600
7601         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
7602         arguments.
7603         (nds32_function_arg_advance): Deal with nameless arguments.
7604         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
7605         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
7606         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
7607
7608 2014-09-03  Richard Biener  <rguenther@suse.de>
7609
7610         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
7611         (struct bb_bitmap_sets): Remove deferred member.
7612         (BB_DEFERRED): Remove.
7613         (defer_or_phi_translate_block): Remove.
7614         (compute_antic_aux): Remove deferring of blocks, assert
7615         proper iteration order.
7616         (compute_antic): Do not set BB_DEFERRED.
7617         (eliminate): Allocate el_avail of proper size initially.
7618
7619 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7620
7621         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
7622         according to the value of crtl->args.pretend_args_size.
7623
7624 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7625
7626         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
7627         varargs information.
7628
7629 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7630
7631         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
7632         implementation for TARGET_SETUP_INCOMING_VARARGS.
7633         (nds32_strict_argument_naming): Refine comment.
7634         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
7635         Define for future implementation.
7636
7637 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
7638
7639         * config/i386/adxintrin.h (_subborrow_u32): New.
7640         (_addcarry_u32): Ditto.
7641         (_subborrow_u64): Ditto.
7642         (_addcarry_u64): Ditto.
7643         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
7644         IX86_BUILTIN_SBB64.
7645         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
7646         __builtin_ia32_sbb_u64
7647
7648 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7649
7650         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
7651         GPR-specific stuff.
7652         (nds32_function_arg_advance): Likewise.
7653         (nds32_init_cumulative_args): Likewise.
7654         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
7655         (NDS32_FIRST_GPR_REGNUM): Define.
7656         (NDS32_LAST_GPR_REGNUM): Define.
7657         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
7658         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7659         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7660         (machine_function): Use GRP-specific stuff.
7661
7662 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7663
7664         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
7665         (nds32_expand_epilogue): Likewise.
7666         (nds32_expand_prologue_v3push): Likewise.
7667         (nds32_expand_epilogue_v3pop): Likewise.
7668
7669 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7670
7671         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
7672         v3push/v3pop for variadic function.
7673         * config/nds32/nds32.md (prologue, epilogue): Likewise.
7674
7675 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7676
7677         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
7678         Check rtx for varargs implementation.
7679         (nds32_output_stack_pop): Likewise.
7680         * config/nds32/nds32-protos.h: Have a rtx argument for
7681         nds32_output_stack_push and nds32_output_stack_pop.
7682         * config/nds32/nds32.md: Likewise.
7683
7684 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7685
7686         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
7687         to check if FUNC is an interrupt service routine.
7688         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
7689
7690 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7691
7692         * config/nds32/nds32.h (machine_function): Add some fields for variadic
7693         arguments implementation.
7694
7695 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7696
7697         * config/nds32/nds32-predicates.c
7698         (nds32_valid_stack_push_pop): Rename to ...
7699         (nds32_valid_stack_push_pop_p): ... this.
7700         * config/nds32/nds32-protos.h: Likewise.
7701         * config/nds32/predicates.md: Likewise.
7702
7703 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7704
7705         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
7706         (nds32_emit_stack_v3push): ... this.
7707         (nds32_gen_stack_v3pop): Rename to ...
7708         (nds32_emit_stack_v3pop): ... this and consider CFA restore
7709         information.
7710
7711 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7712
7713         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
7714         (nds32_emit_stack_push_multiple): ... this.
7715         (nds32_gen_stack_pop_multiple): Rename to ...
7716         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
7717         information.
7718
7719 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7720
7721         PR target/61078
7722         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
7723         and add a second splitter to handle the remaining cases.
7724
7725 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7726
7727         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
7728
7729 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7730
7731         * cfgexpand.c (label_rtx_for_bb): Change type to
7732         hash_map<basic_block, rtx_code_label *> *.
7733         (expand_gimple_basic_block): Adjust.
7734         (pass_expand::execute): Likewise.
7735
7736 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7737
7738         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
7739         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
7740         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
7741         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
7742         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
7743         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
7744         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
7745         of rtx.
7746
7747 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7748
7749         * alloc-pool.c: Include coretypes.h.
7750         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
7751         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
7752         hash_set instead of htab.
7753         * ggc-page.c (in_gc): New variable.
7754         (ggc_free): Do nothing if a collection is taking place.
7755         (ggc_collect): Set in_gc appropriately.
7756         * ggc.h (gt_ggc_mx(const char *)): New function.
7757         (gt_pch_nx(const char *)): Likewise.
7758         (gt_ggc_mx(int)): Likewise.
7759         (gt_pch_nx(int)): Likewise.
7760         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
7761         (hash_map::hash_entry::pch_nx): Likewise.
7762         (hash_map::hash_entry::pch_nx_helper): Likewise.
7763 (hash_map::hash_map): Adjust.
7764 (hash_map::create_ggc): New function.
7765 (gt_ggc_mx): Likewise.
7766 (gt_pch_nx): Likewise.
7767         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
7768 (default_hashset_traits::pch_nx): Likewise.
7769 (hash_set::hash_entry::ggc_mx): Likewise.
7770 (hash_set::hash_entry::pch_nx): Likewise.
7771 (hash_set::hash_entry::pch_nx_helper): Likewise.
7772 (hash_set::hash_set): Adjust.
7773 (hash_set::create_ggc): New function.
7774 (hash_set::elements): Likewise.
7775 (gt_ggc_mx): Likewise.
7776 (gt_pch_nx): Likewise.
7777         * hash-table.h (hash_table::hash_table): Adjust.
7778 (hash_table::m_ggc): New member.
7779         (hash_table::~hash_table): Adjust.
7780         (hash_table::expand): Likewise.
7781         (hash_table::empty): Likewise.
7782 (gt_ggc_mx): New function.
7783         (hashtab_entry_note_pointers): Likewise.
7784 (gt_pch_nx): Likewise.
7785
7786 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7787
7788         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
7789         built-in definition.
7790         (XVCVUXDDP_SCALE): Likewise.
7791         (XVCVDPSXDS_SCALE): Likewise.
7792         (XVCVDPUXDS_SCALE): Likewise.
7793         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
7794         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
7795         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
7796         VSX_BUILTIN_XVCVDPUXDS_SCALE.
7797         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
7798         prototype.
7799         * config/rs6000/rs6000.c (real.h): New include.
7800         (rs6000_scale_v2df): New function.
7801         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
7802         (UNSPEC_VSX_XVCVUXDDP): Likewise.
7803         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
7804         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
7805         (vsx_xvcvsxddp_scale): New define_expand.
7806         (vsx_xvcvsxddp): New define_insn.
7807         (vsx_xvcvuxddp_scale): New define_expand.
7808         (vsx_xvcvuxddp): New define_insn.
7809         (vsx_xvcvdpsxds_scale): New define_expand.
7810         (vsx_xvcvdpsxds): New define_insn.
7811         (vsx_xvcvdpuxds_scale): New define_expand.
7812         (vsx_xvcvdpuxds): New define_insn.
7813         * doc/extend.texi (vec_ctf): Add new prototypes.
7814         (vec_cts): Likewise.
7815         (vec_ctu): Likewise.
7816         (vec_splat): Likewise.
7817         (vec_div): Likewise.
7818         (vec_mul): Likewise.
7819
7820 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7821
7822         PR target/62275
7823         * config/arm/neon.md
7824         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
7825         <v_cmp_result>): New pattern.
7826         * config/arm/iterators.md (NEON_VCVT): New int iterator.
7827         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
7828         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
7829         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
7830         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
7831         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
7832
7833 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7834
7835         PR target/62275
7836         * config/arm/iterators.md (FIXUORS): New code iterator.
7837         (VCVT): New int iterator.
7838         (su_optab): New code attribute.
7839         (su): Likewise.
7840         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
7841
7842 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7843
7844         * config/aarch64/predicates.md (aarch64_comparison_operation):
7845         New special predicate.
7846         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
7847         aarch64_comparison_operation instead of matching an operator.
7848         Update operand numbers.
7849         (csinc3<mode>_insn): Likewise.
7850         (*csinv3<mode>_insn): Likewise.
7851         (*csneg3<mode>_insn): Likewise.
7852         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
7853         * config/aarch64/aarch64.c (aarch64_get_condition_code):
7854         Return -1 instead of aborting on invalid condition codes.
7855         (aarch64_print_operand): Update aarch64_get_condition_code callsites
7856         to assert that the returned condition code is valid.
7857         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
7858
7859 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
7860
7861         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
7862         tree.def, and gimple.def
7863
7864 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
7865             Balaji V. Iyer  <balaji.v.iyer@intel.com>
7866             Igor Zamyatin  <igor.zamyatin@intel.com>
7867
7868         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
7869         (__cilkrts_cilk_for_64): Likewise.
7870         * cilk-common.c (declare_cilk_for_builtin): New function.
7871         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
7872         __cilkrts_cilk_for_64 bultins.
7873         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
7874         CILK_TI_F_LOOP_64.
7875         (cilk_for_32_fndecl): New define.
7876         (cilk_for_64_fndecl): Likewise.
7877         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
7878         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
7879         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
7880         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
7881         GF_OMP_FOR_COMBINED_INTO.
7882         * gimplify.c (gimplify_scan_omp_clauses): Added
7883         OMP_CLAUSE__CILK_FOR_COUNT_ case.
7884         (gimplify_adjust_omp_clauses): Ditto.
7885         (gimplify_omp_for): Added CILK_FOR case.
7886         (gimplify_expr): Ditto.
7887         * omp-low.c: Include cilk.h.
7888         (extract_omp_for_data): Set appropriate kind for
7889         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
7890         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
7891         (create_omp_child_function_name): Added second argument to handle
7892         cilk_for case.
7893         (cilk_for_check_loop_diff_type): New function.
7894         (expand_cilk_for_call): Likewise.
7895         (expand_cilk_for): Likewise.
7896         (create_omp_child_function): Set cilk_for_count; handle the cases when
7897         it is true; call create_omp_child_function_name with second argument.
7898         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
7899         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
7900         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
7901         * tree-nested.c (convert_nonlocal_omp_clauses): Added
7902         OMP_CLAUSE__CILK_FOR_COUNT_ case.
7903         (convert_local_omp_clauses): Ditto.
7904         * tree-pretty-print.c (dump_omp_clause): Added
7905         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
7906         (dump_generic_node): Added CILK_FOR case.
7907         * tree.c (omp_clause_num_ops): New element
7908         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
7909         (omp_clause_code_name): New element _Cilk_for_count_.
7910         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
7911         * tree.def: Add tree code for CILK_FOR.
7912
7913 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7914
7915         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
7916         (ppc403-compare): Add "exts with dot" case.
7917         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
7918         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
7919         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
7920         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
7921         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
7922         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
7923         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
7924         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
7925         cell-cmp-microcoded): Similarly.
7926         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
7927         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
7928         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
7929         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
7930         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
7931         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
7932         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
7933         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
7934         (power6-compare): Add "exts with dot" case.
7935         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
7936         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
7937         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
7938
7939         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
7940         if avoiding Cell microcode.
7941         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
7942         (is_cracked_insn): Ditto.
7943         (insn_must_be_first_in_group): Ditto.
7944         * config/rs6000/rs6000.md (dot): Adjust comment.
7945         (cell_micro): Handle exts+dot.
7946         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
7947         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
7948         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
7949         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
7950         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
7951         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
7952         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
7953
7954 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7955
7956         * config/rs6000/rs6000.md (QHSI): Delete.
7957         (EXTQI, EXTHI, EXTSI): New mode iterators.
7958         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
7959         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
7960         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
7961         9 anonymous instructions, and 8 splitters): Delete.
7962         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
7963         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
7964         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
7965         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
7966         *zero_extendsi<mode>2_dot2): New.
7967
7968 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7969
7970         * config/rs6000/rs6000.md (any_extend): New code iterator.
7971         (u, su): New code attributes.
7972         (dmode, DMODE): New mode attributes.
7973         (<su>mul<mode>3_highpart): New.
7974         (*<su>mul<mode>3_highpart): New.
7975         (<su>mulsi3_highpart_le): New.
7976         (<su>muldi3_highpart_le): New.
7977         (<su>mulsi3_highpart_64): New.
7978         (<u>mul<mode><dmode>3): New.
7979         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
7980         splitters): Delete.
7981         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
7982         splitters): Delete.
7983
7984 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7985
7986         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
7987         *mulsi3_internal2, and two splitters): Delete.
7988         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
7989         Delete.
7990         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
7991
7992 2014-09-02  Richard Biener  <rguenther@suse.de>
7993
7994         PR tree-optimization/62695
7995         * tree-ssa-structalias.c (find_func_clobbers): Add missing
7996         vector truncate.
7997
7998 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
7999
8000         PR target/62312
8001         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
8002
8003 2014-09-01  Andi Kleen  <ak@linux.intel.com>
8004
8005         * file-find.c (add_prefix_begin): Add.
8006         (do_add_prefix): Rename from add_prefix with first argument.
8007         (add_prefix): Add new wrapper.
8008         * file-find.h (add_prefix_begin): Add.
8009         * gcc-ar.c (main): Support -B option.
8010
8011 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
8012
8013         * genemit.c: Include dumpfile.h.
8014         (gen_split): Print name of splitter function to dump file.
8015
8016 2014-09-01  Richard Biener  <rguenther@suse.de>
8017
8018         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
8019         Use stack auto_vecs for constraint expressions.
8020         (find_func_aliases_for_call): Likewise.
8021         (find_func_aliases): Likewise.
8022         (find_func_clobbers): Likewise.
8023
8024 2014-09-01  Richard Biener  <rguenther@suse.de>
8025
8026         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
8027         operands vector in most cases.  Remove redundant code.
8028
8029 2014-09-01  Olivier Hainque  <hainque@adacore.com>
8030
8031         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
8032         $WIND_BASE instead of designating a harcoded arbitrary home dir.
8033         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
8034
8035 2014-09-01  Richard Biener  <rguenther@suse.de>
8036
8037         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
8038         copy_reference_ops_from_call, vn_nary_op_compute_hash,
8039         vn_reference_compute_hash, vn_reference_insert): Remove.
8040         (vn_reference_lookup_call): New function.
8041         * tree-ssa-sccvn.c (vn_reference_compute_hash,
8042         copy_reference_ops_from_ref, copy_reference_ops_from_call,
8043         vn_reference_insert, vn_nary_op_compute_hash): Make static.
8044         (create_reference_ops_from_call): Remove.
8045         (vn_reference_lookup_3): Properly update shared_lookup_references.
8046         (vn_reference_lookup_pieces): Assert that we updated
8047         shared_lookup_references properly.
8048         (vn_reference_lookup): Likewise.
8049         (vn_reference_lookup_call): New function.
8050         (visit_reference_op_call): Use it.  Avoid re-building the
8051         reference ops.
8052         (visit_reference_op_load): Remove redundant lookup.
8053         (visit_reference_op_store): Perform special tail-merging work
8054         only when possibly doing tail-merging.
8055         (visit_use): Likewise.
8056         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
8057
8058 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
8059
8060         PR target/62025
8061         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
8062         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
8063         (find_inc): Revert 2014-08-13 change.
8064
8065 2014-09-01  Marek Polacek  <polacek@redhat.com>
8066
8067         PR middle-end/61903
8068         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
8069         Change the type of V to unsigned HOST_WIDE_INT.
8070
8071 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8072
8073         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
8074         the size of byte markers.
8075         (do_shift_rotate): Fix confusion between host, target and marker byte
8076         size.
8077         (verify_symbolic_number_p): Likewise.
8078         (find_bswap_or_nop_1): Likewise.
8079         (find_bswap_or_nop): Likewise.
8080
8081 2014-09-01  Olivier Hainque  <hainque@adacore.com>
8082
8083         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
8084         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
8085
8086 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
8087
8088         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
8089         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
8090         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
8091
8092 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
8093
8094         PR sanitizer/61897
8095         PR sanitizer/62140
8096         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
8097         (build_check_stmt): Likewise.
8098         (instrument_strlen_call): Likewise.
8099         (asan_expand_check_ifn): Likewise and fix types.
8100         (maybe_cast_to_ptrmode): New function.
8101
8102 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8103
8104         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
8105
8106 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
8107
8108         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
8109
8110 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
8111
8112         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
8113         prefix to function labels when generating fast indirect calls.
8114
8115 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
8116
8117         PR bootstrap/62304
8118
8119         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
8120         param back from rtx_insn * to rtx.  Rename param from "label" to
8121         "label_or_return", reintroducing "label" as an rtx_insn * after
8122         we've ensured it's not a RETURN.
8123         (first_active_target_insn): Likewise for return type and param;
8124         add a checked cast to rtx_insn * once we've ensured "insn" is not
8125         a RETURN.
8126         (steal_delay_list_from_target): Convert param "pnew_thread" back
8127         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
8128         with JUMP_LABEL.
8129         (own_thread_p): Convert param "thread" back from an rtx_insn * to
8130         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
8131         cast once we've established we're not dealing with a RETURN,
8132         renaming subsequent uses of "thread" to "thread_insn".
8133         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
8134         to JUMP_LABEL.
8135         (follow_jumps): Convert return type and param "label" from
8136         rtx_insn * back to rtx.  Move initialization of "value" to after
8137         the handling for ANY_RETURN_P, adding a checked cast there to
8138         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
8139         rename to "this_label_or_return", reintroducing "this_label" as
8140         an rtx_insn * once we've handled the case where it could be an
8141         ANY_RETURN_P.
8142         (fill_slots_from_thread): Rename param "thread" to
8143         "thread_or_return", converting from an rtx_insn * back to an rtx.
8144         Reintroduce name "thread" as an rtx_insn * local with a checked
8145         cast once we've handled the case of it being an ANY_RETURN_P.
8146         Convert local "new_thread" from an rtx_insn * back to an rtx.
8147         Add a checked cast when assigning to "trial" from "new_thread".
8148         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
8149         checked cast to rtx_insn * from "new_thread" when invoking
8150         get_label_before.
8151         (fill_eager_delay_slots): Convert locals "target_label",
8152         "insn_at_target" from rtx_insn * back to rtx.
8153         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
8154         (relax_delay_slots): Convert locals "trial", "target_label" from
8155         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
8156         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
8157         invoking update_block.
8158         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
8159         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
8160
8161         * resource.h (mark_target_live_regs): Undo erroneous conversion
8162         of second param of r214693, converting it back from rtx_insn * to
8163         rtx, since it could be a RETURN.
8164
8165         * resource.c (find_dead_or_set_registers): Similarly, convert
8166         param "jump_target" back from an rtx_insn ** to an rtx *, as we
8167         could be writing back a RETURN.  Rename local rtx_insn * "next" to
8168         "next_insn", and introduce "lab_or_return" as a local rtx,
8169         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
8170         (mark_target_live_regs): Undo erroneous conversion
8171         of second param of r214693, converting it back from rtx_insn * to
8172         rtx, since it could be a RETURN.  Rename it from "target" to
8173         "target_maybe_return", reintroducing the name "target" as a local
8174         rtx_insn * with a checked cast, after we've handled the case of
8175         ANY_RETURN_P.
8176
8177 2014-08-29  DJ Delorie  <dj@redhat.com>
8178
8179         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
8180         pointer size up to a power of two.
8181         * defaults.h (DWARF2_ADDR_SIZE): Round up.
8182         (POINTER_SIZE_UNITS): New, rounded up value.
8183         * dwarf2asm.c (size_of_encoded_value): Use it.
8184         (dw2_output_indirect_constant_1): Likewise.
8185         * expmed.c (init_expmed_one_conv): We now know the sizes of
8186         partial int modes.
8187         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
8188         * optabs.c (expand_float): Use precision, not size.
8189         (expand_fix): Likewise.
8190         * simplify-rtx (simplify_unary_operation_1): Likewise.
8191         * tree-dfa.c (get_ref_base_and_extent): Likewise.
8192         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
8193         (default_assemble_integer) Likewise.
8194         (dump_tm_clone_pairs): Likewise.
8195         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
8196         * var-tracking.c (adjust_mems): Allow partial-int modes also.
8197         (prepare_call_arguments): Likewise.
8198         * stor-layout.c (finalize_type_size): Preserve precision.
8199         (layout_type): Use precision, not size.
8200
8201         * expr.c (convert_move): If the target has an explicit converter,
8202         use it.
8203
8204 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
8205
8206         * gdbinit.in: Skip various inline functions in rtl.h when
8207         stepping.
8208
8209 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
8210
8211         PR bootstrap/62301
8212         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
8213
8214 2014-08-29  Richard Biener  <rguenther@suse.de>
8215
8216         PR tree-optimization/62291
8217         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
8218         exactly the vector size needed and use quick_push.
8219         (phi_translate_1): Adjust comment.
8220         (valid_in_sets): Remove block argument and remove pointless
8221         checking of NAMEs.
8222         (dependent_clean): Adjust for removal of block argument.
8223         (clean): Likewise.
8224         (compute_antic_aux): Likewise.
8225         (compute_partial_antic_aux): Likewise.
8226
8227 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8228             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8229             Anna Tikhonova  <anna.tikhonova@intel.com>
8230             Ilya Tocar  <ilya.tocar@intel.com>
8231             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8232             Ilya Verbin  <ilya.verbin@intel.com>
8233             Kirill Yukhin  <kirill.yukhin@intel.com>
8234             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8235
8236         * config/i386/sse.md
8237         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
8238         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
8239         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
8240         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
8241
8242 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8243             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8244             Anna Tikhonova  <anna.tikhonova@intel.com>
8245             Ilya Tocar  <ilya.tocar@intel.com>
8246             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8247             Ilya Verbin  <ilya.verbin@intel.com>
8248             Kirill Yukhin  <kirill.yukhin@intel.com>
8249             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8250
8251         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
8252         * config/i386/sse.md
8253         (define_mode_iterator VI4_128_8_256): New.
8254         (define_mode_iterator VI2_128_4_256): Ditto.
8255         (define_mode_iterator PMOV_DST_MODE): Rename into
8256         (define_mode_iterator PMOV_DST_MODE_1): this.
8257         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
8258         Use PMOV_DST_MODE_1 mode iterator.
8259         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
8260         Ditto.
8261         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
8262         Ditto.
8263         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
8264         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
8265         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
8266         (define_mode_iterator PMOV_DST_MODE_2): New.
8267         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
8268         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
8269         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
8270         Ditto.
8271         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
8272         (define_mode_attr pmov_dst_3): Ditto.
8273         (define_mode_attr pmov_dst_zeroed_3): Ditto.
8274         (define_mode_attr pmov_suff_3): Ditto.
8275         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
8276         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
8277         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
8278         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
8279         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
8280         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
8281         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
8282         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
8283         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
8284         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
8285         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
8286         (define_mode_attr pmov_dst_4): Ditto.
8287         (define_mode_attr pmov_dst_zeroed_4): Ditto.
8288         (define_mode_attr pmov_suff_4): Ditto.
8289         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
8290         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
8291         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
8292         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
8293         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
8294         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
8295         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
8296         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
8297         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
8298         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
8299         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
8300
8301 2014-08-29  Richard Biener  <rguenther@suse.de>
8302
8303         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
8304         NON_LVALUE_EXPR in gimple.
8305
8306 2014-08-29  Richard Biener  <rguenther@suse.de>
8307
8308         PR middle-end/62292
8309         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
8310         from previous refactoring.
8311         (gimple_fold_builtin_strncpy): Likewise.
8312
8313 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
8314
8315         PR bootstrap/62300
8316         * function.c (assign_parm_setup_reg): Remove erroneous checked
8317         cast to rtx_insn * on result of gen_extend_insn in favor of
8318         introducing a new local rtx "pat".
8319
8320 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8321
8322         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
8323         to silence warning.
8324         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
8325
8326 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8327
8328         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
8329         (next_insn): Likewise.
8330         * emit-rtl.c (next_insn): Likewise.
8331         (previous_insn): Likewise.
8332         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
8333         "insn" and "next" from rtx to rtx_insn *.
8334         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
8335         "insn", "insn1", "vliw_start",  "prologue_end_note",
8336         "last_insn_in_packet".
8337
8338 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8339
8340         * shrink-wrap.h (active_insn_between): Strengthen both params from
8341         rtx to rtx_insn *.
8342         * function.c (active_insn_between): Likewise.
8343
8344 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8345
8346         * genattr.c (main): When writing out insn-attr.h, strengthen param
8347         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
8348         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
8349         writing out the definition of dfa_clear_single_insn_cache to the
8350         generated insn-automata.c
8351
8352 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8353
8354         * resource.h (clear_hashed_info_for_insn): Strengthen param from
8355         rtx to rtx_insn *.
8356         (incr_ticks_for_insn): Likewise.
8357         (init_resource_info): Likewise.
8358
8359         * resource.c (init_resource_info): Likewise.
8360         (clear_hashed_info_for_insn): Likewise.
8361         (incr_ticks_for_insn): Likewise.
8362
8363         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
8364         rtx to rtx_insn *.
8365         (steal_delay_list_from_target): Use methods of "seq".
8366         (try_merge_delay_insns): Use methods of "merged_insns".
8367         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
8368         (reorg_redirect_jump): Likewise for param "jump".
8369
8370 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8371
8372         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
8373         rtx to rtx_insn *.
8374         * config/s390/s390.c (s390_split_branches): Eliminate top-level
8375         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
8376         "set_insn".
8377         (s390_mainpool_finish): In three places, split out a local rtx
8378         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
8379         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
8380         and split another local rtx "insn" out into rtx "pat" and
8381         rtx_insn * "insn".
8382         * config/sh/sh.c (output_branchy_insn): Rather than working
8383         directly on operands[9], introduce local rtx_code_label *
8384         variables named "lab" in two places, working on them, and then
8385         assigning them to operands[9], so that the intervening operations
8386         are known by the type system to be on insns.
8387
8388 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8389
8390         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
8391         const rtx_insn *.
8392
8393         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
8394         in invocation of INSN_HAS_LOCATION.
8395
8396 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8397
8398         * config/rs6000/altivec.h (vec_xl): New #define.
8399         (vec_xst): Likewise.
8400         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
8401         (XXSPLTD_V2DI): Likewise.
8402         (DIV_V2DI): Likewise.
8403         (UDIV_V2DI): Likewise.
8404         (MUL_V2DI): Likewise.
8405         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8406         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
8407         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
8408         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
8409         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
8410         (UNSPEC_VSX_DIVSD): Likewise.
8411         (UNSPEC_VSX_DIVUD): Likewise.
8412         (UNSPEC_VSX_MULSD): Likewise.
8413         (vsx_mul_v2di): New insn-and-split.
8414         (vsx_div_v2di): Likewise.
8415         (vsx_udiv_v2di): Likewise.
8416         (vsx_xxspltd_<mode>): New insn.
8417
8418 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8419
8420         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
8421         NEXT_INSN.
8422         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
8423         (NEXT_INSN): Likewise.
8424         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
8425         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
8426         const rtx_insn *.
8427         (no_labels_between_p): Likewise for both params.
8428
8429         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
8430         cast when using NEXT_INSN on operands[2].
8431         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
8432         "insn" from rtx to rtx_insn *, adding a checked cast.
8433         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
8434         rtx_insn *.
8435         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
8436         for third param.
8437         (arc_text_label): Likewise for param "insn".
8438         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
8439         "insn".
8440         (arc_ccfsm_record_condition): Likewise for param "jump".
8441         (arc_text_label): Likewise for local "label".
8442         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
8443         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
8444         a method for typesafety.  Add a checked cast.
8445         * config/arc/constraints.md (Clb): Add a checked cast when getting
8446         the CODE_LABEL from a LABEL_REF.
8447         * config/arm/arm.c (require_pic_register): Strengthen locals
8448         "seq", "insn" from rtx to rtx_insn *.
8449         (create_fix_barrier): Likewise for locals "selected", "next".
8450         (thumb1_reorg): Likewise for locals "prev", "insn".
8451         (arm_expand_prologue): Likewise for local "last".
8452         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
8453         operands[0].
8454         (thumb2_output_casesi): Likewise for operands[2].
8455         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
8456         strengthen local "insn" from rtx to rtx_insn *.
8457         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
8458         type and param "insn".
8459         (find_prev_insn_start): Likewise.
8460         (hwloop_optimize): Likewise for locals "insn", "last_insn",
8461         "prev".
8462         (gen_one_bundle): Likewise for loal "t".
8463         (find_load): Likewise for param "insn".
8464         (workaround_speculation): Likewise for locals "insn", "next",
8465         "target", "next_tgt".
8466         * config/c6x/c6x.c (assign_reservations): Likewise for both params
8467         and for locals "insn", "within", "last".
8468         (count_unit_reqs): Likewise for params "head", "tail" and local
8469         "insn".
8470         (try_rename_operands): Likewise for params "head", "tail".
8471         (reshuffle_units): Likewise for locals "head", "tail", "insn".
8472         (struct c6x_sched_context): Likewise for fields
8473         "last_scheduled_insn", "last_scheduled_iter0".
8474         (init_sched_state): Replace NULL_RTX with NULL.
8475         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
8476         to rtx_insn *.
8477         (undo_split_delayed_nonbranch): Likewise for param and for local
8478         "prev".
8479         (conditionalize_after_sched): Likewise for local "insn".
8480         (bb_earliest_end_cycle): Likewise.
8481         (filter_insns_above): Likewise for locals "insn", "next".
8482         (hwloop_optimize): Remove redundant checked cast.
8483         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
8484         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
8485         NULL_RTX with NULL.
8486         (cris_simple_epilogue): Likewise.
8487         (cris_expand_prologue): Likewise.
8488         (cris_expand_epilogue): Likewise.
8489         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
8490         local "insn" from rtx to rtx_insn *.
8491         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
8492         (struct frv_packet_group): Likewise for the elements within array
8493         fields "insns", "sorted", and for field "nop".
8494         (frv_packet): Likewise for the elements within array field
8495         "insns".
8496         (frv_add_insn_to_packet): Likewise for param "insn".
8497         (frv_insert_nop_in_packet): Likewise for param "insn" and local
8498         "last".
8499         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
8500         (frv_sort_insn_group_1): Likewise for local "insn".
8501         (frv_optimize_membar_local): Likewise.
8502         (frv_align_label): Likewise for locals "x", "last", "barrier",
8503         "label".
8504         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
8505         local.
8506         (ia64_sched_init): Likewise for local "insn".
8507         (scheduled_good_insn): Likewise for param "last".
8508         (struct _ia64_sched_context): Likewise for field
8509         "last_scheduled_insn".
8510         (ia64_init_sched_context): Replace NULL_RTX with NULL.
8511         (struct bundle_state): Likewise for field "insn".
8512         (issue_nops_and_insn): Likewise for param "insn".
8513         (get_next_important_insn): Likewise for return type and both
8514         params.
8515         (ia64_add_bundle_selector_before): Likewise for param "insn".
8516         (bundling): Likewise for params "prev_head_insn", "tail" and
8517         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
8518         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
8519         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
8520         Strengthen final param from rtx to rtx_insn *.
8521         (iq2000_move_1word): Likewise for second param.
8522         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
8523         param "cur_insn" and local "next_insn".
8524         (iq2000_move_1word): Likewise for param "insn".
8525         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
8526         casts when using NEXT_INSN on operands[1].
8527         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
8528         "insn" from rtx to rtx_insn *.
8529         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
8530         "x", introducing local rtx_insn * "insn" for when working with the
8531         CODE_LABEL of the LABEL_REF.
8532         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
8533         rtx_insn *.
8534         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
8535         param.
8536         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
8537         type.
8538         (conditionalize_block): Likewise for return type and param.
8539         (mcore_is_dead): Likewise for param "first" and local "insn".
8540         (emit_new_cond_insn): Likewise for return type.
8541         (conditionalize_block): Likewise for return type, param, and
8542         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
8543         "newinsn".
8544         (conditionalize_optimization): Likewise for local "insn".
8545         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
8546         using NEXT_INSN.
8547         * config/microblaze/microblaze.md: Add checked casts when using
8548         NEXT_INSN.
8549         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
8550         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
8551         and rtx_insn * "insn".
8552         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
8553         checked cast when using NEXT_INSN on operands[2].
8554         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
8555         local "insn" from rtx to rtx_insn *.
8556         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
8557         Likewise.
8558         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
8559         Add a checked cast when using NEXT_INSN on operands[1].
8560         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
8561         rtx to rtx_insn *.
8562         (pa_output_cbranch): Likewise for final param.
8563         (pa_output_lbranch): Likewise for second param.
8564         (pa_output_bb): Likewise for third param.
8565         (pa_output_bvb): Likewise.
8566         (pa_output_dbra): Likewise for second param.
8567         (pa_output_movb): Likewise.
8568         (pa_output_parallel_movb): Likewise.
8569         (pa_output_parallel_addb): Likewise.
8570         (pa_output_millicode_call): Likewise for first param.
8571         (pa_output_mul_insn): Likewise for second param.
8572         (pa_output_div_insn): Likewise for third param.
8573         (pa_output_mod_insn): Likewise for second param.
8574         (pa_jump_in_call_delay): Likewise for param.
8575         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
8576         (pa_output_div_insn): Likewise.
8577         (pa_output_mod_insn): Likewise.
8578         (pa_output_cbranch): Likewise.
8579         (pa_output_lbranch): Likewise.
8580         (pa_output_bb): Likewise.
8581         (pa_output_bvb): Likewise.
8582         (pa_output_dbra): Likewise.
8583         (pa_output_movb): Likewise.
8584         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
8585         to simplify and for typesafety.
8586         (pa_output_call): Use method of rtx_sequence *.
8587         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
8588         (pa_jump_in_call_delay): Likewise.
8589         (pa_output_parallel_movb): Likewise.
8590         (pa_output_parallel_addb): Likewise.
8591         (pa_following_call): Likewise.
8592         (pa_combine_instructions): Likewise for locals "anchor",
8593         "floater".
8594         (pa_can_combine_p): Likewise for params "anchor", "floater" and
8595         locals "start", "end".
8596         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
8597         param "insn" and local "local_insn".
8598         (picochip_final_prescan_insn): Likewise for local "local_insn".
8599         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
8600         local "insn".
8601         (uses_TOC): Likewise.
8602         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
8603         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
8604         splitting out to more tightly-scoped locals, 3 as rtx and one as
8605         rtx_insn *.
8606         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
8607         to rtx_insn *.
8608         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
8609         where needed.
8610         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
8611         to rtx_insn *.
8612         (fixup_addr_diff_vecs): Likewise.
8613         (reg_unused_after): Likewise for param 2.
8614         (sh_can_redirect_branch): Likewise for both params.
8615         (check_use_sfunc_addr): Likewise for param 1.
8616         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
8617         (find_barrier): Likewise for local "last_got".
8618         (gen_block_redirect): Likewise for return type, param "jump" and
8619         locals "prev", "scan", "next", "insn".
8620         (struct far_branch): Likewise for fields "near_label",
8621         "insert_place", "far_label".
8622         (gen_far_branch): Likewise for local "jump".
8623         (fixup_addr_diff_vecs): Likewise for param "first" and locals
8624         "insn", "prev".
8625         (barrier_align): Likewise for param and for locals "prev", "x".
8626         Introduce local rtx_sequence * "prev_seq" and use insn method for
8627         typesafety and clarity.
8628         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
8629         (get_dest_uid): Likewise for local "dest".
8630         (split_branches): Likewise for locals "next", "beyond", "label",
8631         "block", "far_label".  Add checked casts when assigning to
8632         bp->far_label and "far_label".
8633         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
8634         (sequence_insn_p): Likewise.
8635         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
8636         more loop-scoped rtx "insn" when walking LABEL_REFS.
8637         (sh_can_redirect_branch): Strengthen both params from rtx to
8638         rtx_insn *.
8639         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
8640         new local rtx_sequence * "seq" via a dyn_cast, and use a method
8641         for clarity and typesafety.
8642         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
8643         "insn" from rtx to rtx_insn *.
8644         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
8645         when using NEXT_INSN on the CODE_LABEL in operands[2].
8646         (define_insn "casesi_worker_2"): Likewise.
8647         (define_insn "casesi_shift_media"): Likewise.
8648         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
8649         operands[3].
8650         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
8651         Strengthen field "insn" from rtx to rtx_insn *.
8652         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
8653         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
8654         param "start_insn" and local "start_insn".
8655         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
8656         field "insn".
8657         (find_set_of_reg_bb): Likewise for param "insn".
8658         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
8659         (trace_reg_uses): Likewise for param "start_insn".
8660         (sh_treg_combine::cbranch_trace): Likewise for field
8661         "cbranch_insn".
8662         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
8663         param "insn".
8664         (sh_treg_combine::record_set_of_reg): Likewise for param
8665         "start_insn" and local "i".
8666         (sh_treg_combine::can_remove_cstore): Likewise for local
8667         "prev_insn".
8668         (sh_treg_combine::try_optimize_cbranch): Likewise for param
8669         "insn".
8670         (sh_treg_combine::execute): Likewise for local "i".
8671         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
8672         param.
8673         (sparc_check_64): Likewise for second param.
8674         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
8675         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
8676         dyn_cast, using its insn method for typesafety and clarity.
8677         (empty_delay_slot): Strengthen param "insn" from rtx to
8678         rtx_insn *.
8679         (set_extends): Likewise.
8680         (sparc_check_64): Likewise.
8681         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
8682         for locals "seq", "last_insn".
8683         (combine_bnp): Likewise for param "insn".
8684         (xstormy16_reorg): Likewise for local "insn".
8685         * config/v850/v850.c (substitute_ep_register): Likewise for params
8686         "first_insn", "last_insn" and local "insn".
8687         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
8688         elements of "regs" array, and local "insn".
8689         * except.c (emit_note_eh_region_end): Likewise for param "insn".
8690         * final.c (final_sequence): Strengthen this global from rtx to
8691         rtx_sequence *.
8692         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
8693         rtx_insn *.
8694         (final_scan_insn): Update assignment to "final_sequence" to be
8695         from "seq", the cast version of "body", for type-safety.
8696         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
8697         "insns" from rtx to rtx_insn *.
8698         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
8699         * genattr.c (main): When writing out generated insn-attr.h,
8700         strengthen params 1 and 3 of eligible_for_delay,
8701         eligible_for_annul_true, eligible_for_annul_false from rtx to
8702         rtx_insn *.
8703         * genattrtab.c (write_eligible_delay): Likewise when writing out
8704         generated insn-attrtab.c; also local "insn" the generated
8705         functions.
8706         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
8707         to rtx_insn *.
8708         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
8709         "start_label" from rtx to rtx_insn *.
8710         * ira.c (decrease_live_ranges_number): Likewise for local "p".
8711         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
8712         "insns" and local "insn".
8713         (validate_equiv_mem): Likewise for param "start" and local "insn".
8714         (memref_used_between_p): Likewise for params "start", "end" and
8715         local "insn".
8716         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
8717         final param.
8718         * loop-doloop.c (doloop_optimize): Within region guarded by
8719         INSN_P (doloop_pat), introduce a new local rtx_insn *
8720         "doloop_insn" via a checked cast, and use it for typesafety,
8721         eventually writing the value back into doloop_pat.
8722         * output.h (final_sequence): Strengthen this global from rtx to
8723         rtx_sequence *.
8724         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
8725         reintroducing "insn" as an rtx_insn * via a checked cast.
8726         Strengthen param "attempt" and local "new_insn"from rtx to
8727         rtx_insn *.
8728         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
8729         to rtx_insn *.
8730         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
8731         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
8732         "p" in favor of more tightly-scoped replacements, sometimes rtx
8733         and sometimes rtx_insn *, as appropriate.
8734         (delete_output_reload): Eliminate top-level rtx "i1", splitting
8735         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
8736         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
8737         local "trial" from rtx to rtx_insn *.
8738         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
8739         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
8740         rtx_sequence * and use methods for clarity and typesafety.
8741         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
8742         rtx to rtx_insn *.  Strenghten local "li" from rtx to
8743         rtx_insn_list * and use its methods for clarity and typesafety.
8744         (steal_delay_list_from_target): Strengthen param "insn" from rtx
8745         to rtx_insn *.
8746         (steal_delay_list_from_fallthrough): Likewise.
8747         (try_merge_delay_insns): Likewise for param "thread" and locals
8748         "trial", "next_trial", "delay_insn".
8749         (redundant_insn): Likewise for param "target" and local "trial".
8750         (own_thread_p): Likewise for param "thread" and locals
8751         "active_insn", "insn".
8752         (get_label_before): Likewise for param "insn".
8753         (fill_simple_delay_slots): Likewise for local "new_label"; use
8754         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
8755         (label_before_next_insn): Strengthen return type and local "insn"
8756         from rtx to rtx_insn *.
8757         (relax_delay_slots): Likewise for locals "other", "tmp".
8758         (make_return_insns): Likewise for param "first" and locals "insn",
8759         "jump_insn", "prev".  Move declaration of "pat" to its assignment
8760         and strengthen from rtx to rtx_sequence *.  Use its methods for
8761         clarity and typesafety.
8762         * rtlanal.c (no_labels_between_p): Strengthen params from
8763         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
8764         rtx_insn *.
8765         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
8766         from const_rtx to const rtx_insn *.
8767         (reg_set_between_p): Rename param "from_insn" to
8768         "uncast_from_insn", and reintroduce "from_insn" as a
8769         const rtx_insn * via a checked cast.
8770         (modified_between_p): Likewise for param "start" as "uncast_start".
8771         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
8772         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
8773         "tmp", head" from rtx to rtx_insn *.
8774         (recompute_rev_top_order): Likewise for local "insn".
8775         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
8776         * store-motion.c (build_store_vectors): Likewise for local "insn".
8777         Strengthen local "st" from rtx to rtx_insn_list * and use methods
8778         for clarity and typesafety.
8779         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
8780         rtx to rtx_insn *.
8781         (computation_cost): Likewise for local "seq".
8782         (get_address_cost): Likewise.
8783
8784 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8785
8786         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
8787         const rtx_insn *.
8788         (label_is_jump_target_p): Likewise for second param.
8789
8790         * rtlanal.c (tablejump_p): Likewise for param "insn".
8791         (label_is_jump_target_p): Likewise for param "jump_insn".
8792
8793 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8794
8795         * rtl.h (find_first_parameter_load): Strengthen return type and
8796         both params from rtx to rtx_insn *.
8797         * rtlanal.c (find_first_parameter_load): Strengthen return type,
8798         both params and locals "before", "first_set" from rtx to
8799         rtx_insn *.  Remove now-redundant cast.
8800         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
8801
8802 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8803
8804         * rtl.h (find_last_value): Delete.
8805         * rtlanal.c (find_last_value): Delete.
8806
8807 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8808
8809         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
8810         from rtx to rtx_insn *.
8811         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
8812         rtx "note" with new local rtx_insn * "new_head" when calculating
8813         head insn of new basic block.
8814         * combine.c (combine_split_insns): Strengthen return type and local
8815         "ret" from rtx to rtx_insn *.
8816         (likely_spilled_retval_p): Likewise for locals "use" and "p".
8817         (try_combine): Eliminate local "m_split", splitting into new
8818         locals "m_split_insn" and "m_split_pat".
8819         (find_split_point): Strengthen local "seq" from rtx into
8820         rtx_insn *.
8821         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
8822         locals "label", "branch".
8823         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
8824         for local "insn".
8825         (define_expand "umulsi3_highpart"): Likewise for local "insn".
8826         * dse.c (note_add_store_info): Likewise for fields "first",
8827         "current".
8828         (note_add_store): Likewise for local "insn".
8829         (emit_inc_dec_insn_before): Likewise for locals "insn",
8830         "new_insn", "cur".
8831         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
8832         (replace_read): Likewise for locals "insns", "this_insn".
8833         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
8834         (notice_eh_throw): Likewise for param "insn".
8835         (before_next_cfi_note): Likewise for return type, param, and local
8836         "prev".
8837         (connect_traces): Likewise for local "note".
8838         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
8839         (verify_rtl_sharing): Likewise.
8840         (unshare_all_rtl_in_chain): Likewise for param "insn".
8841         (get_first_nonnote_insn): Likewise for local "insn".
8842         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
8843         "seq" and use its methods to clarify things.
8844         (next_insn): Strengthen return type from rtx to rtx_insn *.
8845         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
8846         local rtx_insn * using a checked cast, dropping a checked cast
8847         made redundant by this change.  Use a cast to and method of
8848         rtx_sequence to clarify the code.
8849         (previous_insn): Rename param "insn" to "uncast_insn" and
8850         reintroduce "insn" as a local rtx_insn * using a checked cast,
8851         dropping a checked cast made redundant by this change.  Use a cast
8852         to and method of rtx_sequence to clarify the code.
8853         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
8854         reintroduce "insn" as a local rtx_insn * using a checked cast,
8855         dropping a checked cast made redundant by this change.
8856         (next_nonnote_insn_bb): Likewise.
8857         (prev_nonnote_insn): Likewise.
8858         (prev_nonnote_insn_bb): Likewise.
8859         (next_nondebug_insn): Likewise.
8860         (prev_nondebug_insn): Likewise.
8861         (next_nonnote_nondebug_insn): Likewise.
8862         (prev_nonnote_nondebug_insn): Likewise.
8863         (next_real_insn): Likewise.
8864         (prev_real_insn): Likewise.
8865         (next_active_insn): Likewise.
8866         (prev_active_insn): Likewise.
8867         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
8868         clarity.
8869         (prev_cc0_setter): Likewise.
8870         (try_split): Rename param "trial" to "uncast_trial" and
8871         reintroduce "insn" as a local rtx_insn * using a checked cast,
8872         dropping checked casts made redundant by this change.
8873         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
8874         rtx to rtx_insn *.
8875         (remove_insn): Rename param "insn" to "uncast_insn" and
8876         reintroduce "insn" as a local rtx_insn * using a checked cast.
8877         (emit_pattern_after_setloc): Likewise for param "after", as
8878         "uncast_after".
8879         (emit_pattern_after): Likewise.  Strengthen local "prev" from
8880         rtx to rtx_insn *.
8881         (emit_pattern_before_setloc): Rename param "before" to
8882         "uncast_before" and reintroduce "before" as a local rtx_insn *
8883         using a checked cast.  Strengthen locals "first", "last" from
8884         rtx to rtx_insn *.
8885         (emit_pattern_before): Likewise rename/cast param "before" to
8886         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
8887         * except.c (copy_reg_eh_region_note_forward): Strengthen param
8888         "first" and local "insn" from rtx to rtx_insn *.
8889         (copy_reg_eh_region_note_backward): Likewise for param "last"
8890         and local "insn".
8891         * expr.c (fixup_args_size_notes): Rename param "last" to
8892         "uncast_last" and reintroduce "last" as a local rtx_insn *
8893         using a checked cast.  Strengthen local "insn" from rtx to
8894         rtx_insn *.
8895         * function.c (set_insn_locations): Strengthen param "insn" from
8896         rtx to rtx_insn *.
8897         (record_insns): Likewise for param "insns" and local "tmp".
8898         (active_insn_between): Rename param "tail" to
8899         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
8900         using a checked cast.
8901         (thread_prologue_and_epilogue_insns): Split out top-level local
8902         rtx "seq" into three different rtx_insn * locals.  Strengthen
8903         local "prologue_seq" from rtx to rtx_insn *.
8904         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
8905         from rtx to rtx_insn *.
8906         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
8907         (priority): Likewise for locals "prev_first", "twin".
8908         (setup_insn_max_reg_pressure): Likewise for param "after".
8909         (sched_setup_bb_reg_pressure_info): Likewise.
8910         (no_real_insns_p): Strengthen params from const_rtx to
8911         const rtx_insn *.
8912         (schedule_block): Strengthen local "next_tail" from rtx to
8913         rtx_insn *.
8914         * ifcvt.c (find_active_insn_before): Strengthen return type and
8915         param "insn" from rtx to rtx_insn *.
8916         (find_active_insn_after): Likewise.
8917         (cond_exec_process_insns): Likewise for param "start" and local "insn".
8918         (cond_exec_process_if_block): Likewise for locals "then_start",
8919         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
8920         (noce_process_if_block): Likewise for local "jump".
8921         (merge_if_block): Likewise for two locals named "end".
8922         (cond_exec_find_if_block): Likewise for local "last_insn".
8923         * jump.c (delete_related_insns): Rename param "insn" to
8924         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
8925         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
8926         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
8927         NULL.
8928         (split_reg): Likewise.
8929         * lra.c (lra_process_new_insns): Likewise.
8930         * modulo-sched.c (permute_partial_schedule): Strengthen param
8931         "last" from rtx to rtx_insn *.
8932         * optabs.c (add_equal_note): Likewise for param "insns" and local
8933         "last_insn".
8934         (expand_binop_directly): Add checked casts to rtx_insn * within
8935         NEXT_INSN (pat) uses.
8936         (expand_unop_direct): Likewise.
8937         (maybe_emit_unop_insn): Likewise.
8938         * recog.c (peep2_attempt): Strengthen locals "last",
8939         "before_try", "x" from rtx to rtx_insn *.
8940         * reorg.c (optimize_skip): Strengthen return type and local
8941         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
8942         and locals "trial", "next_trial" from rtx to rtx_insn *.
8943         * resource.c (next_insn_no_annul): Strengthen return type and
8944         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
8945         rtx_sequence to clarify the code.
8946         (mark_referenced_resources): Add a checked cast to rtx_insn *
8947         within PREV_INSN (x).
8948         (find_dead_or_set_registers): Strengthen return type, param
8949         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
8950         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
8951         to rtx_insn **.
8952         (mark_target_live_regs): Strengthen params "insns" and "target",
8953         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
8954         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
8955         the code.
8956         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
8957         from rtx to rtx_insn *.
8958         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
8959         from rtx to rtx_insn *.
8960         (copy_reg_eh_region_note_backward): Likewise.
8961         (unshare_all_rtl_in_chain): Likewise for sole param.
8962         (dump_rtl_slim): Strengthen second and third params from const_rtx
8963         to const rtx_insn *.
8964         * sched-deps.c (sched_free_deps): Strengthen params "head" and
8965         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
8966         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
8967         "next_tail" from rtx to rtx_insn *.
8968         (begin_move_insn): Likewise for local "next".
8969         * sched-int.h (sched_free_deps): Likewise for first and second
8970         params.
8971         (no_real_insns_p): Strengthen both params from const_rtx to
8972         const rtx_insn *.
8973         (sched_setup_bb_reg_pressure_info): Strengthen second params from
8974         rtx to rtx_insn *.
8975         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
8976         "next_tail".
8977         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
8978         and locals "insn", "tail" from const_rtx to const rtx_insn *.
8979         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
8980         rtx_insn *.
8981         (debug_rtl_slim): Strengthen params "first" and "last" from
8982         const_rtx to const rtx_insn *.
8983         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
8984         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
8985         (convert_to_simple_return): Likewise for param "returnjump".
8986         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
8987         "prologue_seq".
8988         (convert_to_simple_return): Likewise for param "returnjump".
8989         * valtrack.c (propagate_for_debug): Likewise for params
8990         "insn", "last".
8991         * valtrack.h (propagate_for_debug): Likewise for second param.
8992
8993 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8994
8995         * output.h (insn_current_reference_address): Strengthen param
8996         from rtx to rtx_insn *.
8997         * final.c (insn_current_reference_address): Likewise.
8998
8999 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9000
9001         * basic-block.h (inside_basic_block_p): Strengthen param from
9002         const_rtx to const rtx_insn *.
9003         * cfgbuild.c (inside_basic_block_p): Likewise.
9004
9005 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9006
9007         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
9008         rtx_insn *.
9009         (get_trace_info): Likewise for param "insn".
9010         (save_point_p): Likewise.
9011         (maybe_record_trace_start): Likewise for both params.
9012         (maybe_record_trace_start_abnormal): Likewise.
9013         (create_trace_edges): Likewise for sole param and for three of the
9014         locals named "lab".
9015         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
9016         to rtx_insn *, and update a call to pat->element to pat->insn.
9017
9018 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9019
9020         * function.h (struct expr_status): Convert field "x_forced_labels"
9021         from rtx_expr_list * to rtx_insn_list *.
9022
9023         * cfgbuild.c (make_edges): Convert local "x" from an
9024         rtx_expr_list * to an rtx_insn_list *, replacing use of
9025         "element" method with "insn" method.
9026         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9027         * except.c (sjlj_emit_dispatch_table): Replace use of
9028         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
9029         forced_labels.
9030         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
9031         rtx_expr_list * to an rtx_insn_list *, replacing use of
9032         "element" method with "insn" method.
9033         * reload1.c (set_initial_label_offsets): Likewise for local "x".
9034         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
9035         rtx_insn *, adding a checked cast.  Replace use of
9036         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
9037         forced_labels.
9038         (expand_label): Likewise for local "label_r".
9039
9040 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9041
9042         * function.h (struct rtl_data): Convert field
9043         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
9044         rtx_insn_list *.
9045         * rtl.h (remove_node_from_insn_list): New prototype.
9046
9047         * builtins.c (expand_builtin): When prepending to
9048         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
9049         gen_rtx_EXPR_LIST.
9050         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
9051         to rtx_insn_list *, and use its "insn" method rather than
9052         "element" method.
9053         * cfgrtl.c (delete_insn): Use new function
9054         remove_node_from_insn_list rather than
9055         remove_node_from_expr_list.
9056         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
9057         to rtx_insn_list *, and use its "insn" method rather than
9058         "element" method.
9059         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9060         * reload1.c (set_initial_label_offsets): Likewise for local "x".
9061         * rtlanal.c (remove_node_from_insn_list): New function, adapted
9062         from remove_node_from_expr_list.
9063         * stmt.c (expand_label): When prepending to
9064         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
9065         gen_rtx_EXPR_LIST.
9066
9067 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9068
9069         * function.h (struct rtl_data): Strengthen fields "x_return_label"
9070         and "x_naked_return_label" from rtx to rtx_code_label *.
9071
9072 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9073
9074         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
9075         (SET_NEXT_INSN): Likewise.
9076         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
9077
9078         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
9079         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
9080         to split out the SEQUENCE from local "bundle", strengthening the
9081         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
9082         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
9083         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
9084         and the type of the elements of the "slot" array from rtx to
9085         rtx_insn *.
9086         (reorg_split_calls): Likewise for locals "insn" and "next", and
9087         the type of the elements of the "slot" array.
9088
9089         * config/frv/frv.c (frv_nops): Likewise for the elements of this
9090         array.
9091         (frv_function_prologue): Likewise for locals "insn", "next",
9092         "last_call".
9093         (frv_register_nop): Introduce a local "nop_insn" to be the
9094         rtx_insn * containing rtx "nop".
9095
9096         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
9097         used as an insn and sometimes as a pattern, so rename it to
9098         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
9099         using it where dealing with the core insn.
9100
9101         * config/picochip/picochip.c (reorder_var_tracking_notes):
9102         Strengthen locals "insn", "next", "last_insn", "queue",
9103         "next_queue", "prev" from rtx to rtx_insn *.
9104
9105         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
9106         the second param is an rtx_insn ** rather than an rtx **.
9107         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
9108         from rtx to rtx_sequence *, and introduce local named "sequence",
9109         using methods of rtx_sequence to clarify the code.
9110         (remove_insn): Introduce local rtx_sequence * named "sequence" and
9111         use its methods.
9112         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
9113         Rename param "after" to "uncast_after", reintroducing "after" as a
9114         local rtx_insn * with a checked cast.
9115         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
9116         reintroducing "after" as a local rtx_insn * with a checked cast.
9117         Strengthen local "last" from rtx to rtx_insn * and remove the
9118         now-redundant checked casts.
9119         (copy_delay_slot_insn): Strengthen return type and param from rtx
9120         to rtx_insn *.
9121
9122         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
9123         "last" from rtx to rtx_insn *.
9124
9125 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9126
9127         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
9128         param from rtx to rtx_insn *.
9129
9130         * emit-rtl.c (copy_delay_slot_insn): Likewise.
9131
9132         * reorg.c (skip_consecutive_labels): Strengthen return type, param
9133         and local "insn" from rtx to rtx_insn *.
9134         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
9135         (unfilled_slots_next): Likewise.
9136         (function_return_label): Strengthen from rtx to rtx_code_label *.
9137         (function_simple_return_label): Likewise.
9138         (first_active_target_insn): Strengthen return type and param from
9139         rtx to rtx_insn *.
9140         (find_end_label): Strengthen return type from rtx to
9141         rtx_code_label *; strengthen locals as appropriate.
9142         (emit_delay_sequence): Strengthen return type, param "insn" and
9143         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
9144         and local "li" from rtx to rtx_insn_list *, using methods of
9145         rtx_insn_list for clarity and typesafety.
9146         (add_to_delay_list): Strengthen return type and param "insn" from
9147         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
9148         rtx_insn_list * and use methods of rtx_insn_list.
9149         (delete_from_delay_slot): Strengthen return type, param "insn",
9150         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
9151         Strengthen local "seq" from rtx to rtx_sequence *, and local
9152         "delay_list" from rtx to rtx_insn_list *, using methods of
9153         rtx_sequence for clarity and type-safety.
9154         (delete_scheduled_jump): Add checked cast when invoking
9155         delete_from_delay_slot.  Strengthen local "trial" from rtx to
9156         rtx_insn *.
9157         (optimize_skip): Strengthen return type and local "delay_list"
9158         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
9159         rtx_insn *.
9160         (steal_delay_list_from_target): Strengthen return type, param
9161         "delay_list" and local "new_delay_list" from rtx to
9162         rtx_insn_list *.  Strengthen param "seq" from rtx to
9163         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
9164         rtx_insn **.
9165         Split out local "temp" into multiple more-tightly scoped locals:
9166         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
9167         of rtx_insn_list and rtx_sequence for clarity and typesafety.
9168         Strengthen locals named "trial" from rtx to rtx_insn *.
9169         (steal_delay_list_from_fallthrough): Strengthen return type and
9170         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
9171         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
9172         Strengthen local "trial" from rtx to rtx_insn *.
9173         (try_merge_delay_insns): Strength local "merged_insns" from rtx
9174         to rtx_insn_list * and use its methods.  Strengthen local "pat"
9175         from rtx to rtx_sequence * and use its methods.  Strengthen locals
9176         "dtrial" and "new_rtx" from rtx to rtx_insn *.
9177         (get_label_before): Strengthen return type and local "label" from
9178         rtx to rtx_insn *.
9179         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
9180         "next_trial", "next", prev".  Strengthen local "delay_list" from
9181         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
9182         rtx_insn **.
9183         (follow_jumps): Strengthen return type, param "label" and locals
9184         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
9185         (fill_slots_from_thread): Strengthen return type, param
9186         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
9187         "insn", "thread", "opposite_thread" and locals "new_thread",
9188         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
9189         "sequence" from a checked cast to rtx_sequence so that we can call
9190         steal_delay_list_from_target and steal_delay_list_from_fallthrough
9191         with an rtx_sequence *.
9192         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
9193         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
9194         Strengthen local "delay_list" from rtx to rtx_insn_list *.
9195         (relax_delay_slots): Strengthen param "first" and locals "insn",
9196         "next", "trial", "delay_insn", "target_label" from rtx to
9197         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
9198         Introduce a local "trial_seq" for PATTERN (trial) of type
9199         rtx_sequence *, in both cases using methods of rtx_sequence.
9200         (dbr_schedule): Strengthen param "first" and locals "insn",
9201         "next", "epilogue_insn" from rtx to rtx_insn *.
9202
9203 2014-08-28  Richard Biener  <rguenther@suse.de>
9204
9205         PR tree-optimization/62283
9206         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9207         Do not peel loops for alignment where the vector loop likely
9208         doesn't run at least VF times.
9209
9210 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
9211
9212         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
9213         important_candidates.  Consider all important candidates if
9214         IVS doesn't give any result.  Remove check on ivs->upto.
9215         (try_add_cand_for): Call iv_ca_add_use only once.
9216
9217 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9218             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9219             Anna Tikhonova  <anna.tikhonova@intel.com>
9220             Ilya Tocar  <ilya.tocar@intel.com>
9221             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9222             Ilya Verbin  <ilya.verbin@intel.com>
9223             Kirill Yukhin  <kirill.yukhin@intel.com>
9224             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9225
9226         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
9227         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
9228         masking.
9229         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
9230         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
9231         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
9232         (define_insn "*mul<mode>3"): Add EVEX version.
9233
9234 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9235             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9236             Anna Tikhonova  <anna.tikhonova@intel.com>
9237             Ilya Tocar  <ilya.tocar@intel.com>
9238             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9239             Ilya Verbin  <ilya.verbin@intel.com>
9240             Kirill Yukhin  <kirill.yukhin@intel.com>
9241             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9242
9243         * config/i386/sse.md
9244         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
9245         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
9246         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
9247         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
9248         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
9249         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
9250         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
9251         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
9252         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
9253         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
9254         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
9255         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
9256         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
9257         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
9258         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
9259         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
9260
9261 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9262             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9263             Anna Tikhonova  <anna.tikhonova@intel.com>
9264             Ilya Tocar  <ilya.tocar@intel.com>
9265             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9266             Ilya Verbin  <ilya.verbin@intel.com>
9267             Kirill Yukhin  <kirill.yukhin@intel.com>
9268             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9269
9270         * config/i386/sse.md
9271         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
9272         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
9273         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
9274
9275 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9276             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9277             Anna Tikhonova  <anna.tikhonova@intel.com>
9278             Ilya Tocar  <ilya.tocar@intel.com>
9279             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9280             Ilya Verbin  <ilya.verbin@intel.com>
9281             Kirill Yukhin  <kirill.yukhin@intel.com>
9282             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9283
9284         * config/i386/sse.md
9285         (define_mode_iterator VI128_256): New.
9286         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
9287
9288 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9289             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9290             Anna Tikhonova  <anna.tikhonova@intel.com>
9291             Ilya Tocar  <ilya.tocar@intel.com>
9292             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9293             Ilya Verbin  <ilya.verbin@intel.com>
9294             Kirill Yukhin  <kirill.yukhin@intel.com>
9295             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9296
9297         * config/i386/sse.md
9298         (define_mode_iterator VI8_256_512): New.
9299         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
9300         Ditto.
9301         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
9302         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
9303         Ditto.
9304         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
9305
9306 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9307
9308         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
9309         pointer to the cumulative reloc value and return the value for
9310         this reloc instead.
9311         (compute_reloc_for_rtx): Take a const_rtx.  Call
9312         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
9313         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
9314         for_each_rtx for the CONST case.
9315
9316 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9317
9318         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
9319         (mark_constants_in_pattern): ...this new function to iterate over
9320         all the subrtxes.
9321         (mark_constants): Update accordingly.
9322
9323 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9324
9325         * varasm.c: Include rtl-iter.h.
9326         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
9327         Remove the pointer to the cumulative hashval_t and just return
9328         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
9329         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9330         Accumulate the hashval_ts here instead of const_rtx_hash_1.
9331
9332 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9333
9334         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
9335         Give real type of data parameter.  Remove return value.
9336         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
9337         to iterate over subrtxes.
9338
9339 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9340
9341         * var-tracking.c (use_narrower_mode_test): Turn from being a
9342         for_each_rtx callback to being a function that examines each
9343         subrtx itself.
9344         (adjust_mems): Update accordingly.
9345
9346 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9347
9348         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
9349         callback to being a function that examines each subrtx itself.
9350         Remove handling of null rtxes.
9351         (add_uses): Update accordingly.
9352
9353 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9354
9355         * var-tracking.c: Include rtl-iter.h.
9356         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
9357         to being a function that examines each subrtx itself.
9358         (use_type): Update accordingly.
9359
9360 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9361
9362         * store-motion.c: Include rtl-iter.h.
9363         (extract_mentioned_regs_1): Delete.
9364         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
9365         for_each_rtx to iterate over subrtxes.
9366
9367 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9368
9369         * sel-sched.c: Include rtl-iter.h
9370         (count_occurrences_1): Delete.
9371         (count_occurrences_equiv): Turn rtxes into const_rtxes.
9372         Use FOR_EACH_SUBRTX rather than for_each_rtx.
9373
9374 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9375
9376         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
9377         * rtlanal.c (tls_referenced_p_1): Delete.
9378         (tls_referenced_p): Take a const_rtx rather than an rtx.
9379         Use FOR_EACH_SUBRTX rather than for_each_rtx.
9380
9381 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9382
9383         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
9384         (for_each_inc_dec): Take an rtx rather than an rtx *.
9385         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
9386         (cselib_record_sets): Likewise.
9387         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
9388         (check_for_inc_dec): Likewise.
9389         * rtlanal.c (for_each_inc_dec_ops): Delete.
9390         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
9391         rather than a pointer to the memory address.  Replace
9392         for_each_inc_dec_ops argument with separate function and data
9393         arguments.  Abort on non-autoinc addresses.
9394         (for_each_inc_dec_find_mem): Delete.
9395         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
9396         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
9397
9398 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9399
9400         * rtl.h (find_all_hard_regs): Declare.
9401         * rtlanal.c (find_all_hard_regs): New function.
9402         (record_hard_reg_uses_1): Delete.
9403         (record_hard_reg_uses): Use find_all_hard_regs.
9404
9405 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9406
9407         * rtl.h (replace_label_data): Delete.
9408         (replace_label): Take the old label, new label and update-nuses flag
9409         as direct arguments.  Return void.
9410         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
9411         * rtlanal.c (replace_label): Update interface as above.  Handle
9412         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
9413         iterator.  Use FOR_EACH_SUBRTX_PTR.
9414
9415 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9416
9417         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
9418         with const_rtx parameters.
9419         * varasm.c (get_pool_constant): Likewise.
9420         * rtlanal.c (rtx_referenced_p_1): Delete.
9421         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9422         Assert that the rtx we're looking for is nonnull.  Allow searches
9423         for constant pool SYMBOL_REFs.
9424
9425 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9426
9427         * reload1.c: Include rtl-iter.h.
9428         (note_reg_elim_costly): Turn from being a for_each_rtx callback
9429         to being a function that examines each subrtx itself.
9430         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
9431
9432 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9433
9434         * regcprop.c (cprop_find_used_regs_1): Delete.
9435         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9436
9437 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9438
9439         * regcprop.c: Include rtl-iter.h.
9440         (kill_value): Take a const_rtx.
9441         (kill_autoinc_value): Turn from being a for_each_rtx callback
9442         to being a function that examines each subrtx itself.
9443         (copyprop_hardreg_forward_1): Update accordingly.
9444
9445 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9446
9447         * reg-stack.c: Include rtl-iter.h.
9448         (subst_stack_regs_in_debug_insn): Delete.
9449         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
9450         instead of for_each_rtx.
9451
9452 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9453
9454         * lower-subreg.c (find_decomposable_subregs): Turn from being
9455         a for_each_rtx callback to being a function that examines each
9456         subrtx itself.  Remove handling of null rtxes.
9457         (decompose_multiword_subregs): Update accordingly.
9458
9459 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9460
9461         * lower-subreg.c (adjust_decomposed_uses): Delete.
9462         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
9463         Remove handling of null rtxes.
9464
9465 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9466
9467         * lower-subreg.c: Include rtl-iter.h.
9468         (resolve_subreg_use): Turn from being a for_each_rtx callback
9469         to being a function that examines each subrtx itself.  Remove
9470         handling of null rtxes.
9471         (resolve_reg_notes, resolve_simple_move): Update accordingly.
9472         (decompose_multiword_subregs): Likewise.
9473
9474 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9475
9476         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
9477         to being a function that examines each subrtx itself.
9478         (simplify_using_condition, simplify_using_initial_values): Update
9479         accordingly.
9480
9481 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9482
9483         * loop-iv.c: Include rtl-iter.h.
9484         (find_single_def_src): New function.
9485         (replace_single_def_regs): Turn from being a for_each_rtx callback
9486         to being a function that examines each subrtx itself.
9487         (replace_in_expr, simplify_using_initial_values): Update accordingly.
9488
9489 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9490
9491         * jump.c (eh_returnjump_p_1): Delete.
9492         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9493         Remove handling of null rtxes.
9494
9495 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9496
9497         * jump.c: Include rtl-iter.h.
9498         (returnjump_p_1): Delete.
9499         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9500         Remove handling of null rtxes.
9501
9502 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9503
9504         * ira.c: Include rtl-iter.h.
9505         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
9506         to being a function that examines each subrtx itself.  Remove
9507         handling of null rtxes.
9508         (update_equiv_regs): Update call accordingly.
9509
9510 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9511
9512         * fwprop.c: Include rtl-iter.h.
9513         (varying_mem_p): Turn from being a for_each_rtx callback to being
9514         a function that examines each subrtx itself.
9515         (propagate_rtx): Update accordingly.
9516
9517 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9518
9519         * function.c: Include rtl-iter.h
9520         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
9521         callback to being a function that examines each subrtx itself.
9522         Return the changed flag.
9523         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
9524         (instantiate_virtual_regs): Update calls accordingly.
9525
9526 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9527
9528         * final.c: Include rtl-iter.h.
9529         (mark_symbol_ref_as_used): Delete.
9530         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
9531         for_each_rtx.
9532
9533 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9534
9535         * emit-rtl.c: Include rtl-iter.h.
9536         (find_auto_inc): Turn from being a for_each_rtx callback to being
9537         a function that examines each subrtx itself.  Assume the first operand
9538         to an RTX_AUTOINC is the automodified register.
9539         (try_split): Update call accordingly.
9540
9541 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9542
9543         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
9544         Return a bool, inverting the result so that 0/false means "not ok".
9545         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
9546         subrtxes of a CONST.
9547         (mem_loc_descriptor, add_const_value_attribute)
9548         (resolve_addr_in_expr): Update calls accordingly.
9549
9550 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9551
9552         * dwarf2out.c: Include rtl-iter.h.
9553         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
9554         Remove unused data parameter.  Return a bool, inverting the result
9555         so that 0/false means "not ok".
9556         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
9557         instead of for_each_rtx.
9558
9559 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9560
9561         * dse.c: Include rtl-iter.h.
9562         (check_mem_read_rtx): Change void * parameter to real type.
9563         Remove return value.
9564         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
9565         for_each_rtx.  Don't handle null rtxes.
9566
9567 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9568
9569         * df-problems.c: Include rtl-iter.h.
9570         (find_memory): Turn from being a for_each_rtx callback to being
9571         a function that examines each subrtx itself.  Continue to look for
9572         volatile references even after a nonvolatile one has been found.
9573         (can_move_insns_across): Update calls accordingly.
9574
9575 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9576
9577         * ddg.c (walk_mems_2, walk_mems_1): Delete.
9578         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
9579         to iterate over subrtxes.  Return a bool rather than an int.
9580
9581 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9582
9583         * ddg.c: Include rtl-iter.h.
9584         (mark_mem_use_1): Rename to...
9585         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
9586         instead of for_each_rtx.
9587         (mem_read_insn_p): Update accordingly.
9588
9589 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9590
9591         * cse.c (change_cc_mode_args): Delete.
9592         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
9593         a function that examines each subrtx itself.  Take the fields of
9594         change_cc_mode_args as argument and return void.
9595         (cse_change_cc_mode_insn): Update calls accordingly.
9596
9597 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9598
9599         * cse.c (is_dead_reg): Change argument to const_rtx.
9600         (dead_debug_insn_data): Delete.
9601         (is_dead_debug_insn): Expand commentary.  Turn from being a
9602         for_each_rtx callback to being a function that examines
9603         each subrtx itself.  Take the fields of dead_debug_insn_data
9604         as argument.
9605         (delete_trivially_dead_insns): Update call accordingly.
9606
9607 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9608
9609         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
9610         being a for_each_rtx callback to being a function that examines
9611         each subrtx itself.
9612         (cse_extended_basic_block): Update call accordingly.
9613
9614 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9615
9616         * cse.c (check_dependence_data): Delete.
9617         (check_dependence): Change from being a for_each_rtx callback to being
9618         a function that examines all subrtxes itself.  Don't handle null rtxes.
9619         (invalidate): Update call accordingly.
9620
9621 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9622
9623         * cse.c: Include rtl-iter.h.
9624         (approx_reg_cost_1): Delete.
9625         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9626         Don't handle null rtxes.
9627
9628 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9629
9630         * cfgcleanup.c: Include rtl-iter.h.
9631         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
9632         to being a function that examines each subrtx itself.
9633         (thread_jump): Update accordingly.
9634
9635 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9636
9637         * combine-stack-adj.c: Include rtl-iter.h.
9638         (record_stack_refs_data): Delete.
9639         (record_stack_refs): Turn from being a for_each_rtx callback
9640         to being a function that examines each subrtx itself.
9641         Take a pointer to the reflist.  Invert sense of return value
9642         so that true means success and false means failure.  Don't
9643         handle null rtxes.
9644         (combine_stack_adjustments_for_block): Update accordingly.
9645
9646 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9647
9648         * combine.c (record_truncated_value): Turn from being a for_each_rtx
9649         callback to a function that takes an rtx and returns a bool
9650         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
9651         for_each_rtx.
9652
9653 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9654
9655         * combine.c: Include rtl-iter.h.
9656         (unmentioned_reg_p_1): Delete.
9657         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9658         Don't handle null rtxes.
9659
9660 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9661
9662         * calls.c: Include rtl-iter.h.
9663         (internal_arg_pointer_based_exp_1): Delete.
9664         (internal_arg_pointer_based_exp): Take a const_rtx.
9665         Use FOR_EACH_SUBRTX to iterate over subrtxes.
9666
9667 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9668
9669         * caller-save.c: Include rtl-iter.h.
9670         (add_used_regs_1): Delete.
9671         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
9672         to iterate over subrtxes.  Assert that any remaining pseudos
9673         have been spilled.
9674
9675 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9676
9677         * bt-load.c: Include rtl-iter.h.
9678         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
9679         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
9680         to iterate over subrtxes.
9681         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
9682         find_btr_use rather than btr_referenced_p.
9683
9684 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9685
9686         * alias.c: Include rtl-iter.h.
9687         (refs_newer_value_cb): Delete.
9688         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9689
9690 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9691
9692         * rtl-iter.h: New file.
9693         * rtlanal.c: Include it.
9694         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
9695         (generic_subrtx_iterator <T>::add_single_to_queue)
9696         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
9697         (generic_subrtx_iterator <T>::free_array): New functions.
9698         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
9699         (generic_subrtx_iterator <const_rtx_accessor>)
9700         (generic_subrtx_iterator <rtx_var_accessor>
9701         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
9702         (setup_reg_subrtx_bounds): New function.
9703         (init_rtlanal): Call it.
9704
9705 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
9706
9707         PR target/62261
9708         * config/sh/sh.md (ashlsi3): Handle negative shift count for
9709         TARGET_SHMEDIA.
9710         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
9711
9712 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
9713
9714         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
9715
9716 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9717
9718         * rtl.h (JUMP_LABEL_AS_INSN): New.
9719
9720 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9721
9722         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
9723         rtx_expr_list **.
9724         (alloc_EXPR_LIST): Strengthen return type from rtx to
9725         rtx_expr_list *.
9726         (remove_free_EXPR_LIST_node): Likewise for param.
9727         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
9728         from rtx to rtx_expr_list *.
9729         * sched-int.h (struct deps_desc): Strengthen fields
9730         "pending_read_mems" and "pending_write_mems" from rtx to
9731         rtx_expr_list *.
9732
9733         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
9734         rtx to rtx_expr_list *.
9735         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
9736         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
9737         rtx_expr_list **.
9738         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
9739         from rtx to rtx_expr_list *.
9740         * loop-iv.c (simplify_using_initial_values): Strengthen local
9741         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
9742         "pnote_next" from rtx * to rtx_expr_list **.
9743         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
9744         param "exprp" from rtx * to rtx_expr_list **.
9745         (add_insn_mem_dependence): Strengthen local "mem_list" from
9746         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
9747         to rtx_expr_list *.
9748         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
9749         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
9750         param "old_mems_p" from rtx * to rtx_expr_list **.
9751         * var-tracking.c (struct adjust_mem_data): Strengthen field
9752         "side_effects" from rtx to rtx_expr_list *.
9753         (adjust_insn): Replace NULL_RTX with NULL when assigning to
9754         rtx_expr_list *.
9755         (prepare_call_arguments): Likewise.
9756
9757 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9758
9759         * function.h (struct rtl_data): Strengthen field
9760         "x_stack_slot_list" from rtx to rtx_expr_list *.
9761
9762         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
9763         when assigning to stack_slot_list.
9764
9765 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9766
9767         * function.h (struct rtl_data): Strengthen field
9768         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
9769         * rtl.h (remove_node_from_expr_list): Strengthen second param from
9770         rtx * to rtx_expr_list **.
9771
9772         * cfgbuild.c (make_edges): In loop over
9773         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
9774         rtx_expr_list *, and use methods of the latter class to clarify
9775         the code.
9776         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
9777         rtx_expr_list *, and use methods of the latter class to clarify
9778         the code.
9779         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9780         * reload1.c (set_initial_label_offsets): Likewise for local "x".
9781         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
9782         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
9783         to rtx_expr_list *.  Use methods of the latter class to clarify
9784         the code.
9785
9786 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9787
9788         * function.h (struct expr_status): Strengthen field
9789         "x_forced_labels" from rtx to rtx_expr_list *.
9790
9791         * cfgbuild.c (make_edges): Split local "x" into two locals,
9792         strengthening one from rtx to rtx_expr_list *, and using methods
9793         of said class.
9794         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
9795         loop over forced_labels, introduce strengthen it from rtx to
9796         rtx_expr_list *, using methods to clarify the code.
9797         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
9798         to rtx_expr_list *, using methods of said class to clarify the
9799         code.
9800         * reload1.c (set_initial_label_offsets): Split local "x" into two
9801         per-loop variables, strengthening the first from rtx to
9802         rtx_expr_list * and using methods.
9803
9804 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9805
9806         * coretypes.h (class rtx_expr_list): Add forward declaration.
9807         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
9808         * gengenrtl.c (special_rtx): Add EXPR_LIST.
9809         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
9810         invariant: GET_CODE (X) == EXPR_LIST.
9811         (is_a_helper <rtx_expr_list *>::test): New.
9812         (rtx_expr_list::next): New.
9813         (rtx_expr_list::element): New.
9814         (gen_rtx_EXPR_LIST): New.
9815
9816 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9817
9818         * varasm.c (mark_constants): Convert a GET_CODE check into a
9819         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9820         Use methods of rtx_sequence to clarify the code.
9821
9822 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9823
9824         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
9825         local "seq" via a checked cast, and use methods of rtx_sequence
9826         to simplify the code.
9827
9828 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9829
9830         * resource.c (mark_referenced_resources): Strengthen local
9831         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
9832         using methods of rtx_sequence to clarify the code.
9833         (find_dead_or_set_registers): Within the switch statement, convert
9834         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
9835         the JUMP_P handling, introduce another local "seq", adding a
9836         checked cast to rtx_sequence *.  In both cases, use methods of
9837         rtx_sequence to clarify the code.
9838         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
9839         via a checked cast, and use methods of rtx_sequence to simplify
9840         the code.
9841
9842 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9843
9844         * reorg.c (redundant_insn): In two places in the function, replace
9845         a check of GET_CODE with a dyn_cast, introducing local "seq", and
9846         usings methods of rtx_sequence to clarify the code.
9847
9848 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9849
9850         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
9851         local "seq" with a checked cast, and use methods of rtx_sequence
9852         to clarify the code.
9853
9854 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9855
9856         * function.c (contains): Introduce local "seq" for PATTERN (insn),
9857         with a checked cast, in the region for where we know it's a
9858         SEQUENCE.  Use methods of rtx_sequence.
9859
9860 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9861
9862         * final.c (get_attr_length_1): Replace GET_CODE check with a
9863         dyn_cast, introducing local "seq" and the use of methods of
9864         rtx_sequence.
9865         (shorten_branches): Likewise, introducing local "body_seq".
9866         Strengthen local "inner_insn" from rtx to rtx_insn *.
9867         (reemit_insn_block_notes): Replace GET_CODE check with a
9868         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
9869         Use methods of rtx_sequence.
9870         (final_scan_insn): Likewise, introducing local "seq" for when
9871         "body" is known to be a SEQUENCE, using its methods.
9872
9873 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9874
9875         * except.c (can_throw_external): Strengthen local "seq" from rtx
9876         to rtx_sequence *.  Use methods of rtx_sequence.
9877         (insn_nothrow_p): Likewise.
9878
9879 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9880
9881         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
9882         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9883         Use methods of rtx_sequence.
9884         (scan_trace): Likewise for local "pat".
9885
9886 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9887
9888         * coretypes.h (class rtx_sequence): Add forward declaration.
9889         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
9890         invariant: GET_CODE (X) == SEQUENCE.
9891         (is_a_helper <rtx_sequence *>::test): New.
9892         (is_a_helper <const rtx_sequence *>::test): New.
9893         (rtx_sequence::len): New.
9894         (rtx_sequence::element): New.
9895         (rtx_sequence::insn): New.
9896
9897 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9898
9899         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
9900         rtx_insn_list **.
9901         (alloc_INSN_LIST): Strengthen return type from rtx to
9902         rtx_insn_list *.
9903         (copy_INSN_LIST): Likewise for return type and param.
9904         (concat_INSN_LIST): Likewise for both params and return type.
9905         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
9906         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
9907         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
9908         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
9909
9910         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
9911         "implicit_sets", "control_uses", "clobbers" from rtx to
9912         rtx_insn_list *.
9913         (struct deps_desc): Likewise for fields "pending_read_insns",
9914         "pending_write_insns", "pending_jump_insns",
9915         "last_pending_memory_flush", "last_function_call",
9916         "last_function_call_may_noreturn", "sched_before_next_call",
9917         "sched_before_next_jump".
9918         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
9919         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
9920
9921         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
9922         from rtx to rtx_insn_list *.
9923         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
9924         rtx_insn_list *.
9925
9926         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
9927         to rtx_insn_list **.
9928         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
9929         rtx_insn_list *.
9930         (queue_insn): Likewise for local "link".
9931         (struct haifa_saved_data): Strengthen field "insn_queue" from
9932         rtx * to rtx_insn_list **.
9933         (save_backtrack_point): Update allocation of save->insn_queue to
9934         reflect the strengthening of elements from rtx to rtx_insn_list *.
9935         (queue_to_ready): Strengthen local "link" from rtx to
9936         rtx_insn_list *; use methods "next" and "insn" when traversing the
9937         list.
9938         (early_queue_to_ready): Likewise for locals "link", "next_link",
9939         "prev_link".
9940         (schedule_block): Update allocation of insn_queue to reflect the
9941         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
9942         local "link" from rtx to rtx_insn_list *, and use methods when
9943         working it.
9944         (add_to_speculative_block): Strengthen locals "twins" and
9945         "next_node" from rtx to rtx_insn_list *, and use methods when
9946         working with them.  Strengthen local "twin" from rtx to
9947         rtx_insn *, eliminating a checked cast.
9948         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
9949         from rtx to rtx_insn_list *, and use methods when working with
9950         them.
9951
9952         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
9953         from rtx to rtx_insn_list *, adding a checked cast.
9954         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
9955         rtx_insn_list **.
9956         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
9957         "newlink" from rtx to rtx_insn_list *.  Strengthen local
9958         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
9959         from rtx to rtx_insn *.
9960         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
9961         from rtx to rtx_insn_list *.  Use methods of the latter class.
9962         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
9963         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
9964         (remove_free_INSN_LIST_node): Strengthen return type and local
9965         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
9966         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
9967         rtx_insn_list *, using "insn" method.
9968
9969         * sched-deps.c (add_dependence_list):  Strengthen param "list"
9970         from rtx to rtx_insn_list *, and use methods when working with it.
9971         (add_dependence_list_and_free):  Strengthen param "listp" from
9972         rtx * to rtx_insn_list **.
9973         (remove_from_dependence_list): Strenghten param "listp" from rtx *
9974         to rtx_insn_list **, and use methods when working with *listp.
9975         (remove_from_both_dependence_lists): Strengthen param "listp" from
9976         rtx * to rtx_insn_list **
9977         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
9978         to rtx_insn_list **.  Eliminate local "link", in favor of two new
9979         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
9980         respectively.
9981         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
9982         by introducing local "cond_deps".
9983         (remove_from_deps): Strengthen param "insn" from rtx to
9984         rtx_insn *.
9985
9986         * sched-rgn.c (concat_insn_mem_list): Strengthen param
9987         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
9988         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
9989         Use methods of rtx_insn_list.
9990
9991         * store-motion.c (struct st_expr): Strengthen fields
9992         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
9993         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
9994         rtx_insn_list *.
9995         (find_moveable_store): Split out "tmp" into multiple more-tightly
9996         scoped locals.  Use methods of rtx_insn_list *.
9997         (compute_store_table): Strengthen local "tmp" from rtx to
9998         rtx_insn *.  Use methods of rtx_insn_list *.
9999
10000 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10001
10002         * coretypes.h (class rtx_insn_list): Add forward declaration.
10003         * rtl.h (class rtx_insn_list): New subclass of rtx_def
10004         (is_a_helper <rtx_insn_list *>::test): New.
10005         (rtx_insn_list::next): New.
10006         (rtx_insn_list::insn): New.
10007         (gen_rtx_INSN_LIST): Add prototype.
10008         * emit-rtl.c (gen_rtx_INSN_LIST): New.
10009         * gengenrtl.c (special_rtx): Add INSN_LIST.
10010
10011 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10012
10013         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
10014         "prev" from rtx to rtx_insn *.
10015
10016 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10017
10018         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
10019         functions.  Require merely an rtx for now, not an rtx_insn *.
10020         (BLOCK_FOR_INSN): Likewise.
10021         (INSN_LOCATION): Likewise.
10022         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
10023
10024 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10025
10026         * rtl.h (PATTERN): Convert this macro into a pair of inline
10027         functions, for now, requiring const_rtx and rtx.
10028
10029 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10030
10031         * target.def (unwind_emit): Strengthen param "insn" from rtx to
10032         rtx_insn *.
10033         (final_postscan_insn): Likewise.
10034         (adjust_cost): Likewise.
10035         (adjust_priority): Likewise.
10036         (variable_issue): Likewise.
10037         (macro_fusion_pair_p): Likewise.
10038         (dfa_post_cycle_insn): Likewise.
10039         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
10040         (first_cycle_multipass_issue): Likewise.
10041         (dfa_new_cycle): Likewise.
10042         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
10043         (speculate_insn): Likewise for param "insn".
10044         (gen_spec_check): Likewise for params "insn" and "label".
10045         (get_insn_spec_ds): Likewise for param "insn".
10046         (get_insn_checked_ds): Likewise.
10047         (dispatch_do): Likewise.
10048         (dispatch): Likewise.
10049         (cannot_copy_insn_p): Likewise.
10050         (invalid_within_doloop): Likewise.
10051         (legitimate_combined_insn): Likewise.
10052         (needed): Likewise.
10053         (after): Likewise.
10054
10055         * doc/tm.texi: Automatically updated to reflect changes to
10056         target.def.
10057
10058         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
10059         working with insn.
10060         (schedule_block): Likewise.
10061         (sched_init): Likewise.
10062         (sched_speculate_insn): Strengthen param "insn" from rtx to
10063         rtx_insn *.
10064         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
10065         working with insn.
10066         * hooks.c (hook_bool_rtx_true): Rename to...
10067         hook_bool_rtx_insn_true): ...this, and strengthen first param from
10068         rtx to rtx_insn *.
10069         (hook_constcharptr_const_rtx_null): Rename to...
10070         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
10071         first param from const_rtx to const rtx_insn *.
10072         (hook_bool_rtx_int_false): Rename to...
10073         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
10074         param from rtx to rtx_insn *.
10075         (hook_void_rtx_int): Rename to...
10076         (hook_void_rtx_insn_int): ...this, and strengthen first param from
10077         rtx to rtx_insn *.
10078
10079         * hooks.h (hook_bool_rtx_true): Rename to...
10080         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
10081         rtx to rtx_insn *.
10082         (hook_bool_rtx_int_false): Rename to...
10083         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
10084         param from rtx to rtx_insn *.
10085         (hook_void_rtx_int): Rename to...
10086         (hook_void_rtx_insn_int): ...this, and strengthen first param from
10087         rtx to rtx_insn *.
10088         (hook_constcharptr_const_rtx_null): Rename to...
10089         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
10090         first param from const_rtx to const rtx_insn *.
10091
10092         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
10093         and local "prev" from rtx to rtx_insn *.
10094
10095         * sched-int.h (sched_speculate_insn): Strengthen first param from
10096         rtx to rtx_insn *.
10097
10098         * sel-sched.c (create_speculation_check): Likewise for local "label".
10099         * targhooks.c (default_invalid_within_doloop): Strengthen param
10100         "insn" from const_rtx to const rtx_insn *.
10101         * targhooks.h (default_invalid_within_doloop): Strengthen param
10102         from const_rtx to const rtx_insn *.
10103
10104         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
10105         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
10106
10107         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
10108         "insn".
10109         (arc_invalid_within_doloop): Likewise, with const.
10110
10111         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
10112         (arm_cannot_copy_insn_p): Likewise for param "insn".
10113         (arm_unwind_emit): Likewise.
10114
10115         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
10116         "dep_insn".
10117
10118         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
10119         (c6x_variable_issue): Likewise.  Removed now-redundant checked
10120         cast.
10121         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
10122
10123         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
10124         Likewise for param "insn".
10125         (epiphany_mode_after): Likewise.
10126         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
10127         params "insn", "dep_insn".
10128         (epiphany_mode_needed): Likewise for param "insn".
10129         (epiphany_mode_after): Likewise.
10130
10131         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
10132         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
10133         (ix86_avx_u128_mode_needed): Likewise.
10134         (ix86_i387_mode_needed): Likewise.
10135         (ix86_mode_needed): Likewise.
10136         (ix86_avx_u128_mode_after): Likewise.
10137         (ix86_mode_after): Likewise.
10138         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
10139         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
10140         (ix86_adjust_priority): Likewise for param "insn".
10141         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
10142         (do_dispatch): Likewise.
10143         (has_dispatch): Likewise.
10144         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
10145
10146         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
10147         reflect renaming of default hook implementation from
10148         hook_constcharptr_const_rtx_null to
10149         hook_constcharptr_const_rtx_insn_null.
10150         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
10151         rtx to rtx_insn *.
10152         (ia64_variable_issue): Likewise for param "insn".
10153         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
10154         (ia64_dfa_new_cycle): Likewise.
10155         (ia64_get_insn_spec_ds): Likewise.
10156         (ia64_get_insn_checked_ds): Likewise.
10157         (ia64_speculate_insn): Likewise.
10158         (ia64_gen_spec_check): Likewise for params "insn", "label".
10159         (ia64_asm_unwind_emit): Likewise for param "insn".
10160
10161         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
10162
10163         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
10164         "insn", "def_insn".
10165         (m68k_sched_variable_issue): Likewise for param "insn".
10166
10167         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
10168         "def_insn".
10169
10170         * config/microblaze/microblaze.c (microblaze_adjust_cost):
10171         Likewise for params "insn", "dep".
10172
10173         * config/mips/mips.c (mips_adjust_cost): Likewise.
10174         (mips_variable_issue): Likewise for param "insn".
10175         (mips_final_postscan_insn): Likewise.
10176
10177         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
10178         for params "insn", "dep".
10179
10180         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
10181         "dep_insn".
10182         (pa_adjust_priority): Likewise for param "insn".
10183
10184         * config/picochip/picochip.c (picochip_sched_adjust_cost):
10185         Likewise for params "insn", "dep_insn".
10186
10187         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
10188         param "insn".
10189         (rs6000_variable_issue): Likewise.
10190         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
10191         (rs6000_debug_adjust_cost): Likewise.
10192         (rs6000_adjust_priority): Likewise for param "insn".
10193         (rs6000_use_sched_lookahead_guard): Likewise.
10194         (get_next_active_insn): Likewise for return type and both params.
10195         (redefine_groups): Likewise for params "prev_head_insn", "tail"
10196         and locals "insn", "next_insn".
10197         (pad_groups): Likewise.
10198
10199         * config/s390/s390.c (s390_adjust_priority): Likewise for param
10200         "insn".
10201         (s390_cannot_copy_insn_p): Likewise.
10202         (s390_sched_variable_issue): Likewise for third param, eliminating
10203         checked cast.
10204         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
10205         default hook implementation from hook_constcharptr_const_rtx_null
10206         to hook_constcharptr_const_rtx_insn_null.
10207
10208         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
10209         from rtx to rtx_insn *.
10210         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
10211         (sh_variable_issue): Likewise for param "insn".
10212         (sh_dfa_new_cycle): Likewise.
10213         (sh_mode_needed): Likewise.
10214         (sh_mode_after): Likewise.
10215
10216         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
10217         params "insn", "dep_insn".
10218         (hypersparc_adjust_cost): Likewise.
10219         (sparc_adjust_cost): Likewise.
10220
10221         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
10222         param, eliminated checked cast.
10223         (spu_sched_adjust_cost): Likewise for first and third params.
10224
10225         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
10226         params "insn" and "dep_insn" from rtx to rtx_insn *.
10227
10228         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
10229
10230 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10231
10232         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
10233         (set_is_load_p): ...this, updating to work on a SET pattern rather
10234         than an insn.
10235         (is_store_insn): Rename to...
10236         (set_is_store_p): ...this, updating to work on a SET pattern
10237         rather than an insn.
10238         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
10239         top of function to where it is needed.  Rewrite the bogus
10240         condition that checks for "insn" and "dep" being PARALLEL to
10241         instead use single_set, introducing locals "insn_set" and
10242         "dep_set".  Given that we only ever returned "cost" for a non-pair
10243         of SETs, bail out early if we don't have a pair of SET.
10244         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
10245         use the new locals "insn_set" and "dep_set", and update calls to
10246         is_load_insn and is_store_insn to be calls to set_is_load_p and
10247         set_is_store_p.
10248
10249 2014-08-27  Guozhi Wei  <carrot@google.com>
10250
10251         PR target/62262
10252         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
10253         amount before using it.
10254
10255 2014-08-27  Richard Biener  <rguenther@suse.de>
10256
10257         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
10258         get_maxval_strlen inside a more useful API.
10259         (gimple_fold_builtin_with_strlen): Remove and fold into ...
10260         (gimple_fold_builtin): ... caller.
10261         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
10262         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
10263         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
10264         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
10265         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
10266         gimple_fold_builtin_sprintf): Adjust to compute maxval
10267         themselves.
10268
10269 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
10270
10271         PR other/62248
10272         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
10273
10274 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10275             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10276             Anna Tikhonova  <anna.tikhonova@intel.com>
10277             Ilya Tocar  <ilya.tocar@intel.com>
10278             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10279             Ilya Verbin  <ilya.verbin@intel.com>
10280             Kirill Yukhin  <kirill.yukhin@intel.com>
10281             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10282
10283         * config/i386/sse.md
10284         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
10285         Use `concat_tg_mode' attribute to determine asm register size.
10286
10287 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10288             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10289             Anna Tikhonova  <anna.tikhonova@intel.com>
10290             Ilya Tocar  <ilya.tocar@intel.com>
10291             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10292             Ilya Verbin  <ilya.verbin@intel.com>
10293             Kirill Yukhin  <kirill.yukhin@intel.com>
10294             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10295
10296         * config/i386/sse.md
10297         (define_mode_iterator VI48_AVX512VL): New.
10298         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
10299         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
10300         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
10301         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10302         with VI1): Change mode iterator.
10303         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10304         with VI_ULOADSTORE_BW_AVX512VL): New.
10305         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10306         with VI_ULOADSTORE_F_AVX512VL): Ditto.
10307         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10308         with VI1): Change mode iterator.
10309         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10310         with VI_ULOADSTORE_BW_AVX512VL): New.
10311         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10312         with VI_ULOADSTORE_F_AVX512VL): Ditto.
10313         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10314         with VI1): Change mode iterator.
10315         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10316         with VI_ULOADSTORE_BW_AVX512VL): New.
10317         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10318         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
10319         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
10320         (define_insn "<avx512>_storedqu<mode>_mask" with
10321         VI48_AVX512VL): New.
10322         (define_insn "<avx512>_storedqu<mode>_mask" with
10323         VI12_AVX512VL): Ditto.
10324
10325 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10326             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10327             Anna Tikhonova  <anna.tikhonova@intel.com>
10328             Ilya Tocar  <ilya.tocar@intel.com>
10329             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10330             Ilya Verbin  <ilya.verbin@intel.com>
10331             Kirill Yukhin  <kirill.yukhin@intel.com>
10332             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10333
10334         * config/i386/sse.md
10335         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
10336         (define_mode_iterator VI48_AVX512BW): New.
10337         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
10338         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
10339         with VI48_AVX2_48_AVX512F): New.
10340         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
10341         with VI2_AVX512VL): Ditto.
10342
10343 2014-08-27  Richard Biener  <rguenther@suse.de>
10344
10345         PR middle-end/62239
10346         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
10347         (fold_builtin_3): Do not fold strcat_chk here.
10348         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
10349         from builtins.c.
10350         (gimple_fold_builtin): Fold strcat_chk here.
10351
10352 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
10353
10354         * dwarf2out.h (dwarf2out_decl): Remove prototype.
10355         * dwarf2out.c (dwarf2out_decl): Make static.
10356
10357 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
10358
10359         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
10360
10361 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10362
10363         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
10364         from rtx to rtx_insn *.
10365         (cselib_lookup_from_insn): Likewise for final param.
10366         (cselib_subst_to_values_from_insn): Likewise.
10367         (cselib_add_permanent_equiv): Likewise.
10368
10369         * cselib.c (cselib_current_insn): Likewise for this variable.
10370         (cselib_subst_to_values_from_insn): Likewise for param "insn".
10371         (cselib_lookup_from_insn): Likewise.
10372         (cselib_add_permanent_equiv): Likewise for param "insn" and local
10373         "save_cselib_current_insn".
10374         (cselib_process_insn): Replace use of NULL_RTX with NULL.
10375
10376         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
10377         from rtx to rtx_insn *.
10378
10379 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10380
10381         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
10382         rtx_insn *.
10383
10384 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10385
10386         * df.h (df_dump_insn_problem_function): Strengthen first param of
10387         this callback from const_rtx to const rtx_insn *.
10388         (struct df_insn_info): Strengthen field "insn" from rtx to
10389         rtx_insn *.
10390         (DF_REF_INSN): Eliminate this function, reinstating the older
10391         macro definition.
10392         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
10393         (df_reg_defined): Likewise.
10394         (df_find_use): Likewise.
10395         (df_reg_used): Likewise.
10396         (df_dump_insn_top): Strengthen param 1 from const_rtx to
10397         const rtx_insn *.
10398         (df_dump_insn_bottom): Likewise.
10399         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
10400         (df_insn_debug_regno): Likewise.
10401         (debug_df_insn): Likewise.
10402         (df_rd_simulate_one_insn): Likewise for param 2.
10403         (df_word_lr_simulate_defs): Likewise for param 1.
10404         (df_word_lr_simulate_uses): Likewise.
10405         (df_md_simulate_one_insn): Likewise for param 2.
10406         (df_simulate_find_noclobber_defs): Likewise for param 1.
10407         (df_simulate_find_defs): Likewise.
10408         (df_simulate_defs): Likewise.
10409         (df_simulate_uses): Likewise.
10410         (df_simulate_one_insn_backwards): Likewise for param 2.
10411         (df_simulate_one_insn_forwards): Likewise.
10412         (df_uses_create): Likewise for param 2.
10413         (df_insn_create_insn_record): Likewise for param 1.
10414         (df_insn_delete): Likewise.
10415         (df_insn_rescan): Likewise.
10416         (df_insn_rescan_debug_internal): Likewise.
10417         (df_insn_change_bb): Likewise.
10418         (df_notes_rescan): Likewise.
10419         * rtl.h (remove_death): Likewise for param 2.
10420         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
10421         const rtx_insn *.
10422         * sched-int.h (reemit_notes): Strengthen param from rtx to
10423         rtx_insn *.
10424         * valtrack.h (propagate_for_debug): Likewise for param 1.
10425
10426         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
10427         local "tmp_rtx" from const_rtx to const rtx_insn *.
10428         * combine.c (remove_death): Strengthen param "insn" from rtx to
10429         rtx_insn *.
10430         (move_deaths): Likewise for local "where_dead".
10431         * cse.c (delete_trivially_dead_insns): Introduce local
10432         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
10433         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
10434         rtx_insn *.
10435         (df_reg_defined): Likewise.
10436         (df_find_use): Likewise.
10437         (df_reg_used): Likewise.
10438         (df_dump_insn_problem_data): Strengthen param "insn" from
10439         const_rtx to const rtx_insn *.
10440         (df_dump_insn_top): Likewise.
10441         (df_dump_insn_bottom): Likewise.
10442         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
10443         (df_insn_debug_regno): Likewise.
10444         (debug_df_insn): Likewise.
10445         (DF_REF_INSN): Delete.
10446         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
10447         from rtx to rtx_insn *.
10448         (df_chain_insn_top_dump): Strengthen param "insn" from
10449         const_rtx to const rtx_insn *.
10450         (df_chain_insn_bottom_dump): Likewise.
10451         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
10452         rtx_insn *.
10453         (df_word_lr_simulate_uses): Likewise.
10454         (df_print_note): Likewise.
10455         (df_remove_dead_and_unused_notes): Likewise.
10456         (df_set_unused_notes_for_mw): Likewise.
10457         (df_set_dead_notes_for_mw): Likewise.
10458         (df_create_unused_note): Likewise.
10459         (df_simulate_find_defs): Likewise.
10460         (df_simulate_find_uses): Likewise.
10461         (df_simulate_find_noclobber_defs): Likewise.
10462         (df_simulate_defs): Likewise.
10463         (df_simulate_uses): Likewise.
10464         (df_simulate_one_insn_backwards): Likewise.
10465         (df_simulate_one_insn_forwards): Likewise.
10466         (df_md_simulate_one_insn): Likewise.
10467         * df-scan.c (df_uses_create): Likewise.
10468         (df_insn_create_insn_record): Likewise.
10469         (df_insn_delete): Likewise.
10470         (df_insn_rescan): Likewise.
10471         (df_insn_rescan_debug_internal): Likewise.
10472         (df_insn_change_bb): Likewise.
10473         (df_notes_rescan): Likewise.
10474         (df_refs_add_to_chains): Likewise.
10475         (df_insn_refs_verify): Likewise.
10476         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
10477         when invoking df_insn_delete.
10478         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
10479         (set_unique_reg_note): Add checked cast.
10480         * final.c (cleanup_subreg_operands): Likewise.
10481         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
10482         "insn" from rtx to rtx_insn *.
10483         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
10484         "last" from rtx to rtx_insn *.
10485         * ira-emit.c (change_regs_in_insn): New function.
10486         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
10487         Invoke change_regs_in_insn rather than change_regs.
10488         * ira.c (update_equiv_regs): Strengthen locals "insn",
10489         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
10490         for_each_rtx_in_insn rather than for_each_rtx.
10491         * recog.c (confirm_change_group): Add checked casts.
10492         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
10493         Add checked cast.
10494         (peep2_fill_buffer): Add checked cast.
10495         * rtlanal.c (remove_note): Likewise.
10496         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
10497         locals "next" "end" from rtx to rtx_insn *.
10498
10499 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10500
10501         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
10502         to rtx_insn *.
10503         (struct reg_use_data): Likewise for field "insn".
10504         (insn_cost): Likewise for param.
10505         (real_insn_for_shadow): Likewise for return type and param.
10506         (increase_insn_priority): Likewise for param 1.
10507         (debug_dependencies): Likewise for both params.
10508
10509         * haifa-sched.c (insn_delay): Likewise for param "insn".
10510         (real_insn_for_shadow): Likewise for return type and param "insn".
10511         (update_insn_after_change): Likewise for param "insn".
10512         (recompute_todo_spec): Likewise for param "next" and locals "pro",
10513         "other".
10514         (insn_cost): Likewise for param "insn".
10515         (increase_insn_priority): Likewise.
10516         (calculate_reg_deaths): Likewise.
10517         (setup_insn_reg_pressure_info): Likewise.
10518         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
10519         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
10520         (model_recompute): Likewise.
10521         (must_restore_pattern_p): Likewise for param "next".
10522         (model_excess_cost): Likewise for param "insn".
10523         (queue_remove): Likewise.
10524         (adjust_priority): Likewise for param "prev".
10525         (update_register_pressure): Likewise for param "insn".
10526         (setup_insn_max_reg_pressure): Likewise for local "insn".
10527         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
10528         (model_add_to_schedule): Likewise.
10529         (model_reset_queue_indices): Likewise for local "insn".
10530         (unschedule_insns_until): Strengthen local "recompute_vec" from
10531         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
10532         "con" from rtx to rtx_insn *.
10533         (restore_last_backtrack_point): Likewise for both locals "x". Add
10534         checked casts.
10535         (estimate_insn_tick): Likewise for param "insn".
10536         (commit_schedule): Likewise for params "prev_head", "tail" and
10537         local "x".
10538         (verify_shadows): Likewise for locals "i1", "i2".
10539         (dump_insn_stream): Likewise for params "head", "tail" and locals
10540         "next_tail", "insn".
10541         (schedule_block): Likewise for locals "insn", "x".  Add a checked
10542         cast.
10543         (fix_inter_tick): Likewise for params "head", "tail".
10544         (create_check_block_twin): Likewise for local "jump".
10545         (haifa_change_pattern): Likewise for param "insn".
10546         (haifa_speculate_insn): Likewise.
10547         (dump_new_block_header): Likewise for params "head", "tail".
10548         (fix_jump_move): Likewise for param "jump".
10549         (move_block_after_check): Likewise.
10550         (sched_init_insn_luid): Likewise for param "insn".
10551         (sched_init_luids): Likewise for local "insn".
10552         (insn_luid): Likewise for param "insn".
10553         (init_h_i_d): Likewise.
10554         (haifa_init_h_i_d): Likewise for local "insn".
10555         (haifa_init_insn): Likewise for param "insn".
10556         * sched-deps.c (add_dependence): Likewise for local "real_pro",
10557         "other".
10558         (create_insn_reg_use): Likewise for param "insn".
10559         (setup_insn_reg_uses): Likewise.  Add a checked cast.
10560         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
10561         "tail" from rtx to rtx_insn *.
10562         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
10563         "insn", "next_tail".
10564
10565 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10566
10567         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
10568         from rtx to rtx_insn *.
10569         (model_add_to_schedule): Likewise for locals "start", "end",
10570         "iter".
10571
10572 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10573
10574         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
10575         rtx_insn *.
10576         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
10577         "to" and locals "insn", "next", "copy".  Remove now-redundant
10578         checked cast.
10579
10580 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10581
10582         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
10583         rtx_insn * and param 4 from rtx * to rtx_insn **.
10584         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
10585         param 2 from rtx * to rtx_insn **.
10586
10587         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
10588         rtx_insn * and final param from rtx * to rtx_insn **.
10589
10590         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
10591         from rtx to rtx_insn *.
10592         (try_head_merge_bb): Likewise for both locals named "move_upto".
10593         * df-problems.c (can_move_insns_across): Likewise for params
10594         "from", "to", "across_from", "across_to" and locals "insn",
10595         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
10596         rtx_insn **.
10597         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
10598         from rtx to rtx_insn *.
10599         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
10600         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
10601         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
10602         rtx_insn *.
10603         (noce_try_abs): Likewise.
10604         (noce_get_condition): Likewise for param "jump".  Strengthen param
10605         "earliest" from rtx * to rtx_insn **.
10606         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
10607         rtx_insn *.
10608         (find_cond_trap): Likewise.
10609         (dead_or_predicable): Likewise for local "earliest".
10610         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
10611         checked cast.
10612         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
10613         and local "prev".  Strengthen param "earliest" from rtx * to
10614         rtx_insn **.
10615         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
10616         Strengthen param "earliest" from rtx * to rtx_insn **.
10617
10618 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10619
10620         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
10621         "to" and local "insn" from rtx to rtx_insn *.
10622
10623 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10624
10625         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
10626         from rtx to rtx_insn *.
10627         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
10628         (code_motion_path_driver): Likewise for local "last_insn".
10629         (simplify_changed_insns): Likewise for local "insn".
10630
10631 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10632
10633         * rtl.h (push_to_sequence): Strengthen param from rtx to
10634         rtx_insn *.
10635         (push_to_sequence2): Likewise for both params.
10636         (delete_insns_since): Likewise for param.
10637         (reorder_insns_nobb): Likewise for all three params.
10638         (set_new_first_and_last_insn): Likewise for both params.
10639
10640         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
10641         rtx_insn *.  Remove now-redundant cast.
10642         (set_last_insn): Likewise.
10643
10644         * builtins.c (expand_builtin_return): Strengthen local
10645         "call_fusage" from rtx to rtx_insn *.
10646         * cfgrtl.c (create_basic_block_structure): Likewise for local
10647         "after".
10648         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
10649         "first", "last" and local "insn".
10650         (delete_insns_since): Likewise for param "from".
10651         (reorder_insns_nobb): Likewise for params "from", "to", "after"
10652         and local "x".
10653         (push_to_sequence): Likewise for param "first" and local "last".
10654         (push_to_sequence2): Likewise for params "first" and "last".
10655         * lra.c (emit_add3_insn): Likewise for local "last".
10656         (lra_emit_add): Likewise.
10657         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
10658         "last_insn".
10659         (process_address_1): Likewise for locals "insn", last".
10660         * modulo-sched.c (ps_first_note): Likewise for return type.
10661         * optabs.c (expand_binop_directly): Likewise for param "last".
10662
10663 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10664
10665         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
10666         to rtx_insn*.
10667         * emit-rtl.c (get_last_insn_anywhere): Likewise.
10668
10669 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10670
10671         * function.h (struct sequence_stack): Strengthen fields "first"
10672         and "last" from rtx to rtx_insn *.
10673         (struct emit_status): Likewise for fields "x_first_insn" and
10674         "x_last_insn".
10675
10676         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
10677         (set_first_insn): Add checked cast.
10678         (get_last_insn): Remove now-redundant checked cast.
10679         (set_last_insn): Add checked cast.
10680
10681         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
10682         "saved_first" and "saved_last" from rtx to rtx_insn *.
10683
10684 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10685
10686         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
10687         (unlink_insn_chain): Strengthen both params from rtx to
10688         rtx_insn *.
10689
10690         * cfgrtl.c (cfg_layout_function_header): Likewise for this
10691         variable.
10692         (unlink_insn_chain): Likewise for params "first" and "last".
10693         Remove now-redundant checked cast.
10694         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
10695         (fixup_reorder_chain): Strengthen local "insn" from rtx to
10696         rtx_insn *.
10697         * emit-rtl.c (link_insn_into_chain): Likewise for all three
10698         params.
10699         (add_insn): Likewise for param "insn" and local "prev".
10700         (add_insn_after_nobb): Likewise for both params and local "next".
10701         (add_insn_before_nobb): Likewise for both params and local "prev".
10702         (add_insn_after): Rename param "after" to "uncast_after",
10703         introducing local "after" with another checked cast.
10704         (add_insn_before): Rename params "insn" and "before", giving them
10705         "uncast_" prefixes, adding the old names back using checked casts.
10706         (emit_note_after): Likewise for param "after".
10707         (emit_note_before): Likewise for param "before".
10708         (emit_label): Add a checked cast.
10709
10710 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10711
10712         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
10713         "insn" from rtx to rtx_insn *.
10714
10715         * cselib.c (cselib_record_sets_hook): Likewise.
10716
10717         * var-tracking.c (add_with_sets): Likewise, renaming back from
10718         "uncast_insn" to "insn" and eliminating the checked cast from rtx
10719         to rtx_insn *.
10720
10721 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10722
10723         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
10724         and "header_" from rtx to rtx_insn *.
10725         (struct basic_block_d): Likewise for field "head_" within "x"
10726         field of union basic_block_il_dependent.
10727         (BB_HEAD): Drop function...
10728         (SET_BB_HEAD): ...and this function in favor of...
10729         (BB_HEAD): ...reinstate macro.
10730         (BB_END): Drop function...
10731         (SET_BB_END): ...and this function in favor of...
10732         (BB_END): ...reinstate macro.
10733         (BB_HEADER): Drop function...
10734         (SET_BB_HEADER): ...and this function in favor of...
10735         (BB_HEADER): ...reinstate macro.
10736
10737         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
10738         (fix_crossing_unconditional_branches): Likewise.
10739         * caller-save.c (save_call_clobbered_regs): Likewise.
10740         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
10741         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
10742         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10743         (merge_blocks_move_successor_nojumps): Likewise.
10744         (outgoing_edges_match): Update use of for_each_rtx to
10745         for_each_rtx_in_insn.
10746         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
10747         (expand_gimple_cond): Likewise.
10748         (expand_gimple_tailcall): Likewise.
10749         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
10750         SET_BB_END.
10751         (construct_exit_block): Drop use of SET_BB_END.
10752         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
10753         rtx_insn *.
10754         (delete_insn): Rename param "insn" to "uncast_insn", introducing
10755         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
10756         SET_BB_HEAD and SET_BB_END.
10757         (create_basic_block_structure): Drop use of SET_BB_HEAD and
10758         SET_BB_END.
10759         (rtl_delete_block): Drop use of SET_BB_HEAD.
10760         (rtl_split_block): Drop use of SET_BB_END.
10761         (emit_nop_for_unique_locus_between): Likewise.
10762         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
10763         (block_label): Drop use of SET_BB_HEAD.
10764         (fixup_abnormal_edges): Drop use of SET_BB_END.
10765         (record_effective_endpoints): Drop use of SET_BB_HEADER.
10766         (relink_block_chain): Likewise.
10767         (fixup_reorder_chain): Drop use of SET_BB_END.
10768         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
10769         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
10770         rtx_insn **.  Drop use of SET_BB_HEADER.
10771         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
10772         SET_BB_HEAD.
10773         (BB_HEAD): Delete this function.
10774         (SET_BB_HEAD): Likewise.
10775         (BB_END): Likewise.
10776         (SET_BB_END): Likewise.
10777         (BB_HEADER): Likewise.
10778         (SET_BB_HEADER): Likewise.
10779         * emit-rtl.c (add_insn_after):  Rename param "insn" to
10780         "uncast_insn", adding a new local "insn" and a checked cast to
10781         rtx_insn *.  Drop use of SET_BB_END.
10782         (remove_insn): Strengthen locals "next" and "prev" from rtx to
10783         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
10784         (reorder_insns): Drop use of SET_BB_END.
10785         (emit_insn_after_1): Strengthen param "first" and locals "last",
10786         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
10787         (emit_pattern_after_noloc): Add checked cast.
10788         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
10789         (restore_other_notes): Likewise.
10790         (move_insn): Likewise.
10791         (sched_extend_bb): Likewise.
10792         (fix_jump_move): Likewise.
10793         * ifcvt.c (noce_process_if_block): Likewise.
10794         (dead_or_predicable): Likewise.
10795         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
10796         * reg-stack.c (change_stack): Drop use of SET_BB_END.
10797         * sel-sched-ir.c (sel_move_insn): Likewise.
10798         * sel-sched.c (move_nop_to_previous_block): Likewise.
10799
10800         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
10801         SET_BB_END.
10802         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10803
10804 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10805
10806         * basic-block.h (create_basic_block_structure): Strengthen params
10807         1 "head" and 2 "end" from rtx to rtx_insn *.
10808         * cfgrtl.c (create_basic_block_structure): Likewise.
10809         (rtl_create_basic_block): Update casts from void * to rtx to
10810         rtx_insn *, so that we can pass them as rtx_insn * to
10811         create_basic_block_structure.
10812         * sel-sched-ir.c (sel_create_basic_block): Likewise.
10813
10814 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10815
10816         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
10817         rtx_insn **.
10818         (check_for_inc_dec): Strengthen param "insn" from rtx to
10819         rtx_insn *.
10820
10821         * cselib.h (cselib_process_insn): Likewise.
10822
10823         * cselib.c (cselib_record_sets): Likewise.
10824         (cselib_process_insn): Likewise.
10825
10826         * dse.c (struct insn_info): Likewise for field "insn".
10827         (check_for_inc_dec_1): Likewise for local "insn".
10828         (check_for_inc_dec): Likewise for param "insn".
10829         (scan_insn): Likewise.
10830         (dse_step1): Likewise for local "insn".
10831
10832         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
10833         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
10834
10835 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10836
10837         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
10838         from rtx to rtx_insn *.
10839         (DEP_PRO): Delete this function and...
10840         (SET_DEP_PRO): ...this function in favor of...
10841         (DEP_PRO): ...reinstate this macro.
10842         (DEP_CON): Delete this function and...
10843         (SET_DEP_CON): ...this function in favor of...
10844         (DEP_CON): ...reinstate this old macro.
10845         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
10846         (init_dep): Likewise.
10847         (set_priorities): Likewise for both params.
10848         (sd_copy_back_deps): Likewise for params 1 and 2.
10849
10850         * haifa-sched.c (priority): Likewise for param "insn" and local
10851         "next".
10852         (set_priorities): Likewise for params "head" and "tail" and local
10853         "insn".
10854         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
10855         local "consumer".
10856         (add_to_speculative_block): Add a checked cast.
10857         (create_check_block_twin): Drop use of SET_DEP_CON.
10858         (add_jump_dependencies): Strengthen params "insn" and "jump" from
10859         rtx to rtx_insn *.
10860
10861         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
10862         Drop use of SET_DEP_PRO
10863         (init_dep): Strengthen params "pro" and "con" from rtx to
10864         rtx_insn *.
10865         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
10866         use of SET_DEP_CON.
10867         (DEP_PRO): Delete.
10868         (DEP_CON): Delete.
10869         (SET_DEP_PRO): Delete.
10870         (SET_DEP_CON): Delete.
10871
10872 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10873
10874         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
10875         from rtx to rtx_insn *.
10876         (VINSN_INSN_RTX): Eliminate rvalue function and...
10877         (SET_VINSN_INSN): ...lvalue function in favor of...
10878         (VINSN_INSN_RTX): reinstate this old macro.
10879
10880         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
10881         in favor of VINSN_INSN_RTX.
10882         (VINSN_INSN_RTX): Delete this function.
10883         (SET_VINSN_INSN_RTX): Likewise.
10884
10885 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10886
10887         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
10888         (BND_TO): Delete this function and...
10889         (SET_BND_TO): ...this functions in favor of...
10890         (BND_TO): ...reinstating this macro.
10891         (struct _fence): Strengthen field "executing_insns" from
10892         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
10893         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
10894         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
10895         and param "insn" from rtx to insn_t.
10896         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
10897         rtx_insn *.
10898
10899         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
10900         vec<rtx_insn *> .
10901         (rtx_vec_t): Likewise.
10902         (struct sched_deps_info_def): Strengthen param of "start_insn"
10903         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
10904         "note_mem_dep" callback and first param of "note_dep" callback.
10905
10906         * haifa-sched.c (add_to_speculative_block): Strengthen param
10907         "insn" from rtx to rtx_insn *.
10908         (clear_priorities): Likewise.
10909         (calc_priorities): Likewise for local "insn".
10910
10911         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
10912         Remove redundant checked cast.
10913         (haifa_note_mem_dep): Likewise for param "pending_insn".
10914         (haifa_note_dep): Likewise for param "elem".
10915         (note_mem_dep): Likewise for param "e".
10916         (sched_analyze_1): Add checked casts.
10917         (sched_analyze_2): Likewise.
10918
10919         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
10920         from rtx to rtx_insn *.
10921         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
10922         from vec<rtx> * to vec<rtx_insn *> *.
10923
10924         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
10925         scaffolding.
10926         (flist_add): Strengthen param "executing_insns" from
10927         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10928         (advance_deps_context): Remove now-redundant checked cast.
10929         (init_fences): Replace uses of NULL_RTX with NULL.
10930         (merge_fences): Strengthen params "last_scheduled_insn" and
10931         "sched_next" from rtx to rtx_insn * and "executing_insns" from
10932         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10933         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
10934         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
10935         an instruction, rather than doing double-duty as a pattern.
10936         (return_nop_to_pool): Update for change of insn_t.
10937         (deps_init_id): Remove now-redundant checked cast.
10938         (struct sched_scan_info_def): Strengthen param of "init_insn"
10939         callback from rtx to insn_t.
10940         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
10941         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
10942         NULL.
10943         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
10944         "end" from rtx to rtx_insn *.
10945         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
10946         (rtx insn_rtx, bool force_unique_p)
10947         (BND_TO): Delete function.
10948         (SET_BND_TO): Delete function.
10949
10950         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
10951         rtx to rtx_insn *.
10952         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
10953         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
10954         rtx to rtx_insn *.
10955         (undo_transformations): Likewise for param "insn".
10956         (update_liveness_on_insn): Likewise.
10957         (compute_live_below_insn): Likewise for param "insn" and local
10958         "succ".
10959         (update_data_sets): Likewise for param "insn".
10960         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
10961         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
10962         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
10963         rtx_insn *.
10964         (move_cond_jump): Likewise for param "insn".
10965         (move_cond_jump): Drop use of SET_BND_TO.
10966         (compute_av_set_on_boundaries): Likewise.
10967         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
10968         (update_and_record_unavailable_insns): Strengthen local "bb_end"
10969         from rtx to rtx_insn *.
10970         (maybe_emit_renaming_copy): Likewise for param "insn".
10971         (maybe_emit_speculative_check): Likewise.
10972         (handle_emitting_transformations): Likewise.
10973         (remove_insn_from_stream): Likewise.
10974         (code_motion_process_successors): Strengthen local "succ" from rtx
10975         to insn_t.
10976
10977 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10978
10979         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
10980         ilist_t, not _xlist_t;
10981         (ILIST_INSN): Define in terms of new union field "insn".
10982         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
10983         _XLIST_NEXT.
10984         (struct _list_node): Add new field "insn" to the union, of type
10985         insn_t.
10986         (ilist_add): Replace macro with an inline function, requiring an
10987         insn_t.
10988         (ilist_remove): Define this macro directly in terms of
10989         _list_remove, rather than indirectly via _xlist_remove.
10990         (ilist_clear): Likewise, in terms of _list_clear rather than
10991         _xlist_clear.
10992         (ilist_is_in_p): Replace macro with an inline function, requiring
10993         an insn_t.
10994         (_list_iter_cond_insn): New function.
10995         (ilist_iter_remove): Define this macro directly in terms of
10996         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
10997         (ilist_iterator): Define directly in terms of _list_iterator
10998         rather than indirectly through _xlist_iterator.
10999         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
11000         than in terms of _FOR_EACH_X.
11001         (FOR_EACH_INSN_1): Likewise.
11002
11003 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
11004
11005         PR target/60606
11006         PR target/61330
11007         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
11008         DECL_HARD_REGISTER and return for invalid register specifications.
11009         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
11010         DECL_HARD_REGISTER, call expand_one_error_var.
11011         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
11012         CC_REGNUM with non-MODE_CC modes.
11013         (arm_regno_class): Return NO_REGS for PC_REGNUM.
11014
11015 2014-08-26  Marek Polacek  <polacek@redhat.com>
11016
11017         PR c/61271
11018         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
11019
11020 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
11021
11022         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
11023         qi cost; add di cost.
11024         (cortexa57_addrcost_table): Likewise.
11025
11026 2014-08-26  Marek Polacek  <polacek@redhat.com>
11027
11028         PR c/61271
11029         * expr.c (is_aligning_offset): Remove logical not.
11030
11031 2014-08-26  Marek Polacek  <polacek@redhat.com>
11032
11033         PR c/61271
11034         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
11035         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
11036
11037 2014-08-26  Richard Biener  <rguenther@suse.de>
11038
11039         PR tree-optimization/62175
11040         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
11041         expand possibly trapping operations.
11042
11043 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
11044
11045         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
11046         "insn" from rtx to rtx_insn *.
11047         (permute_load): Likewise for param "insn".
11048         (permute_store): Likewise.
11049         (handle_special_swappables): Likewise for local "insn".
11050         (replace_swap_with_copy): Likewise for locals "insn" and
11051         "new_insn".
11052         (rs6000_analyze_swaps): Likewise for local "insn".
11053
11054 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11055
11056         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
11057         to rtx_insn *.
11058
11059 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11060
11061         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
11062         "note_list" from rtx to rtx_insn *.
11063         (BB_NOTE_LIST): Replace this function and...
11064         (SET_BB_NOTE_LIST): ...this function with...
11065         (BB_NOTE_LIST): ...the former macro implementation.
11066
11067         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
11068         local "from_start" from rtx to rtx_insn *.  Strengthen param
11069         "to_endp" from rtx * to rtx_insn **.
11070
11071         * haifa-sched.c (concat_note_lists): Likewise.
11072         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
11073         BB_NOTE_LIST.
11074         (sel_restore_notes): Likewise.
11075         (move_bb_info): Likewise.
11076         (BB_NOTE_LIST): Delete this function.
11077         (SET_BB_NOTE_LIST): Delete this function.
11078         * sel-sched.c (create_block_for_bookkeeping): Eliminate
11079         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
11080
11081 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11082
11083         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
11084         from rtx * to rtx_insn **.
11085         (reorder2): Likewise.
11086         (dependencies_evaluation_hook): Strengthen params "head", "tail"
11087         from rtx to rtx_insn *.
11088
11089         * doc/tm.texi: Update mechanically for above change to target.def.
11090
11091         * sched-int.h (note_list): Strengthen this variable from rtx to
11092         rtx_insn *.
11093         (remove_notes): Likewise for both params.
11094         (restore_other_notes): Likewise for return type and first param.
11095         (struct ready_list): Strengthen field "vec" from rtx * to
11096         rtx_insn **.
11097         (struct dep_replacement): Strenghten field "insn" from rtx to
11098         rtx_insn *.
11099         (struct deps_desc): Likewise for fields "last_debug_insn",
11100         "last_args_size".
11101         (struct haifa_sched_info): Likewise for callback field
11102         "can_schedule_ready_p"'s param, for first param of "new_ready"
11103         callback field, for both params of "rank" callback field, for
11104         first field of "print_insn" callback field (with a const), for
11105         both params of "contributes_to_priority" callback, for param
11106         of "insn_finishes_block_p" callback, for fields "prev_head",
11107         "next_tail", "head", "tail", for first param of "add_remove_insn"
11108         callback, for first param of "begin_schedule_ready" callback, for
11109         both params of "begin_move_insn" callback, and for second param
11110         of "advance_target_bb" callback.
11111         (add_dependence): Likewise for params 1 and 2.
11112         (sched_analyze): Likewise for params 2 and 3.
11113         (deps_analyze_insn): Likewise for param 2.
11114         (ready_element): Likewise for return type.
11115         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
11116         (try_ready): Strenghten param from rtx to rtx_insn *.
11117         (sched_emit_insn): Likewise for return type.
11118         (record_delay_slot_pair): Likewise for params 1 and 2.
11119         (add_delay_dependencies): Likewise for param.
11120         (contributes_to_priority): Likewise for both params.
11121         (find_modifiable_mems): Likewise.
11122
11123         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
11124         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
11125         "first_older_only_insn" from rtx to rtx_insn *.
11126         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
11127         rtx_insn **.
11128
11129         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
11130         "last_scheduled_iter0" from rtx to rtx_insn *.
11131         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
11132         (c6x_sched_reorder_1): Strengthen param "ready" and locals
11133         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
11134         "insn" from rtx to rtx_insn *.
11135         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
11136         rtx_insn **.
11137         (c6x_sched_reorder2): Strengthen param "ready" and locals
11138         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
11139         "insn" from rtx to rtx_insn *.
11140         (c6x_variable_issue):  Add a checked cast when assigning from insn
11141         to ss.last_scheduled_iter0.
11142         (split_delayed_branch): Strengthen param "insn" and local "i1"
11143         from rtx to rtx_insn *.
11144         (split_delayed_nonbranch): Likewise.
11145         (undo_split_delayed_nonbranch): Likewise for local "insn".
11146         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
11147         "entry_after", "end_packet", "head_insn", "tail_insn",
11148         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
11149         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
11150         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
11151         but add a checked cast on loop->start_label.  Consolidate calls to
11152         avoid assigning result of gen_spkernel to "insn", now an
11153         rtx_insn *.
11154
11155         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
11156         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
11157         rtx to rtx_insn *.
11158         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
11159         rtx_insn **.  Strengthen locals "top", "next" from rtx to
11160         rtx_insn *.
11161         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
11162         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
11163         (add_parameter_dependencies): Strengthen params "call", "head" and
11164         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
11165         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
11166         (add_dependee_for_func_arg): Likewise for param "arg" and local
11167         "insn".
11168         (ix86_dependencies_evaluation_hook): Likewise for params "head",
11169         "tail" and locals "insn", "first_arg".
11170
11171         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
11172         for params "head", "tail" and locals "insn", "next", "next_tail".
11173         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
11174         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
11175         "insn", "lowest", "highest" from rtx to rtx_insn *.
11176         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
11177         rtx_insn **.
11178         (ia64_sched_reorder2): Likewise.
11179
11180         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
11181         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
11182         from rtx * to rtx_insn **.
11183         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
11184         rtx_insn **.
11185         (mep_print_sched_insn): Strengthen param "insn" from rtx to
11186         rtx_insn *.
11187         (mep_sched_reorder): Strengthen param "ready" from rtx * to
11188         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
11189         to rtx_insn *.
11190
11191         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
11192         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
11193         to rtx_insn *.
11194         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
11195         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
11196         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
11197         rtx_insn **.
11198         (vr4130_reorder): Likewise.
11199         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
11200         rtx to rtx_insn *.
11201         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
11202         rtx_insn **.
11203         (mips_sched_reorder): Likewise.
11204         (mips_sched_reorder2): Likewise.
11205
11206         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
11207
11208         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
11209         Strengthen local "tmp" from rtx to rtx_insn *.
11210         (rs6000_sched_reorder2): Likewise.
11211
11212         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
11213         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
11214         (s390_sched_reorder): Strengthen param "ready" from rtx * to
11215         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
11216
11217         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
11218         "tmp2" from rtx to rtx_insn *.
11219         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
11220         Strengthen local "insn" from rtx to rtx_insn *.
11221         (ready_reorder): Strengthen param "ready" from rtx * to
11222         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
11223         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
11224         (sh_reorder2): Likewise.
11225
11226         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
11227         local "insn" from rtx to rtx_insn *.
11228
11229         * haifa-sched.c (note_list): Strengthen this variable from rtx to
11230         rtx_insn *.
11231         (scheduled_insns): Strengthen this variable from vec<rtx> to
11232         vec<rtx_insn *>.
11233         (set_modulo_params): Likewise for locals "i1", "i2".
11234         (record_delay_slot_pair): Likewise for params "i1", "i2".
11235         (add_delay_dependencies): Likewise for param "insn".
11236         (cond_clobbered_p): Likewise.
11237         (recompute_todo_spec): Likewise for local "prev".
11238         (last_scheduled_insn): Likewise for this variable.
11239         (nonscheduled_insns_begin): Likewise.
11240         (model_set_excess_costs): Strengthen param "insns" from rtx * to
11241         rtx_insn **.
11242         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
11243         rtx_insn *.
11244         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
11245         Strengthen local "insn" from rtx to rtx_insn *.
11246         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
11247         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
11248         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
11249         (ready_remove_first): Likewise for return type and local "t".
11250         (ready_element): Likewise for return type.
11251         (ready_remove): Likewise for return type and local "t".
11252         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
11253         (check_clobbered_conditions): Strengthen local "x" from rtx to
11254         rtx_insn *, adding a checked cast.
11255         (schedule_insn): Likewise for param "insn".
11256         (remove_notes): Likewise for params "head", "tail" and locals
11257         "next_tail", "insn", "next".
11258         (struct haifa_saved_data): Likewise for fields
11259         "last_scheduled_insn", "nonscheduled_insns_begin".
11260         (save_backtrack_point): Update for change to field "vec" of
11261         struct ready_list.
11262         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
11263         rtx_insn **.
11264         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
11265         from rtx to rtx_insn *
11266         (resolve_dependencies): Strengthen param "insn" from rtx to
11267         rtx_insn *
11268         (restore_other_notes): Likewise for return type, for param "head"
11269         and local "note_head".
11270         (undo_all_replacements): Likewise for local "insn".
11271         (first_nonscheduled_insn): Likewise for return type and local "insn".
11272         (queue_to_ready): Likewise for local "insn", adding checked casts.
11273         (early_queue_to_ready): Likewise for local "insn".
11274         (debug_ready_list_1): Strengthen local "p" from rtx * to
11275         rtx_insn **.
11276         (move_insn): Strengthen param "insn" and local "note" from rtx to
11277         rtx_insn *
11278         (insn_finishes_cycle_p): Likewise for param "insn".
11279         (max_issue): Likewise for local "insn".
11280         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
11281         to rtx_insn **.
11282         (commit_schedule): Strengthen param "prev_head" and local "insn"
11283         from rtx to rtx_insn *
11284         (prune_ready_list): Likewise for local "insn".
11285         (schedule_block): Likewise for locals "prev_head", "head", "tail",
11286         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
11287         (set_priorities): Likewise for local "prev_head".
11288         (try_ready): Likewise for param "next".
11289         (fix_tick_ready): Likewise.
11290         (change_queue_index): Likewise.
11291         (sched_extend_ready_list): Update for change to field "vec" of
11292         struct ready_list.
11293         (generate_recovery_code): Strengthen param "insn" from rtx to
11294         rtx_insn *.
11295         (begin_speculative_block): Likewise.
11296         (create_check_block_twin): Likewise for param "insn" and locals
11297         "label", "check", "twin".  Introduce local "check_pat" to avoid
11298         "check" being used as a plain rtx before being used as an insn.
11299         (fix_recovery_deps): Add a checked cast to rtx_insn * when
11300         extracting elements from ready_list.
11301         (sched_remove_insn): Strengthen param "insn" from rtx to
11302         rtx_insn *.
11303         (sched_emit_insn): Likewise for return type.
11304         (ready_remove_first_dispatch): Likewise for return type and local
11305         "insn".
11306
11307         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
11308
11309         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
11310         const rtx_insn *.
11311
11312         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
11313         from rtx to rtx_insn *.
11314         (add_dependence_list): Likewise for param "insn".  Add a checked
11315         cast.
11316         (add_dependence_list_and_free): Strengthen param "insn" from rtx
11317         to rtx_insn *.  Strengthen param "list_p" from rtx * to
11318         rtx_insn **.
11319         (chain_to_prev_insn): Strengthen param "insn" and locals
11320         "prec_nonnote", "i" from rtx to rtx_insn *.
11321         (flush_pending_lists): Likewise for param "insn".
11322         (cur_insn): Likewise for this variable.
11323         (haifa_start_insn): Add a checked cast.
11324         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
11325         (sched_analyze_reg): Likewise for param "insn".
11326         (sched_analyze_1): Likewise.
11327         (sched_analyze_2): Likewise.  Add checked casts.
11328         (sched_analyze_insn): Likewise.  Also for local "prev".
11329         (deps_analyze_insn): Likewise for param "insn".
11330         (sched_analyze): Likewise for params "head", "tail" and local "insn".
11331         (add_dependence_1): Likewise for params "insn", "elem".
11332         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
11333         (parse_add_or_inc): Likewise for param "insn".
11334         (find_inc): Likewise for local "inc_cand".
11335         (find_modifiable_mems): Likewise for params "head", "tail" and
11336         locals "insn", "next_tail".
11337
11338         * sched-ebb.c (init_ready_list): Likewise for local "insn".
11339         (begin_schedule_ready): Likewise for param "insn".
11340         (begin_move_insn): Likewise for params "insn" and "last".
11341         (ebb_print_insn): Strengthen param "insn" from const_rtx to
11342         const rtx_insn *.
11343         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
11344         (ebb_contributes_to_priority): Likewise for params "next", "insn".
11345         (ebb_add_remove_insn): Likewise for param "insn".
11346         (advance_target_bb): Likewise.
11347
11348         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
11349         "insn".
11350         (check_live): Likewise for param "insn".
11351         (init_ready_list): Likewise for local "insn".
11352         (can_schedule_ready_p): Likewise for param "insn".
11353         (begin_schedule_ready): Likewise.
11354         (new_ready): Likewise for param "next".
11355         (rgn_print_insn): Likewise for param "insn".
11356         (rgn_rank): Likewise for params "insn1", "insn2".
11357         (contributes_to_priority): Likewise for params "next", "insn".
11358         (rgn_insn_finishes_block_p): Likewise for param "insn".
11359         (add_branch_dependences): Likewise for params "head", "tail" and
11360         locals "insn", "last".
11361         (rgn_add_remove_insn): Likewise for param "insn".
11362         (advance_target_bb): Likewise.
11363
11364         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
11365         const_rtx to const rtx_insn *.
11366
11367         * sel-sched-dump.h (sel_print_insn): Likewise.
11368
11369         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
11370         (deps_init_id): Likewise.
11371
11372         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
11373         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
11374         rtx_insn **.
11375
11376 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11377
11378         * output.h (final_start_function): Strengthen param 1 from rtx to
11379         rtx_insn *.
11380
11381         * final.c (final_start_function): Likewise, renaming back from
11382         "uncast_first" to "first", and dropping the checked cast from rtx
11383         to rtx_insn *.
11384
11385 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11386
11387         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
11388         * final.c (final): Likewise.  Rename param back from
11389         "uncast_first" to "first" and eliminate the checked cast from rtx
11390         to rtx_insn *.
11391
11392 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11393
11394         * output.h (shorten_branches): Strengthen param from rtx to
11395         rtx_insn *.
11396
11397         * final.c (shorten_branches): Likewise, renaming param back from
11398         "uncast_first" to "first", and dropping the checked cast from rtx
11399         to rtx_insn *.
11400
11401         * genattr.c (gen_attr): Likewise when writing out the prototype of
11402         shorten_branches.
11403
11404 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11405
11406         * sched-int.h (struct haifa_sched_info): Strengthen fields
11407         "prev_head" and "next_tail" from rtx to rtx_insn *.
11408
11409 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11410
11411         * rtl.h (rtx_jump_table_data::get_labels): New method.
11412         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
11413         with use of the new rtx_jump_table_data::get_labels method.
11414         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
11415         to rtx_jump_table_data *.  Simplify by using get_labels method.
11416         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
11417         a dyn_cast, introducing local "table", using it to replace
11418         label-lookup logic with a get_labels method call.
11419         (patch_jump_insn): Simplify using get_labels method.
11420         * dwarf2cfi.c (create_trace_edges): Likewise.
11421         * rtlanal.c (label_is_jump_target_p): Likewise.
11422
11423 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11424
11425         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
11426         to rtx_insn *.
11427
11428         * emit-rtl.c (unshare_all_rtl_1): Likewise.
11429         (unshare_all_rtl_again): Likewise, also for local "p".
11430
11431 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11432
11433         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
11434         to rtx_insn *.
11435         * cfgrtl.c (delete_insn_and_edges): Likewise.
11436
11437 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11438
11439         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
11440         from rtx to rtx_insn *.
11441
11442         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
11443
11444 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11445
11446         * function.c (thread_prologue_and_epilogue_insns): Likewise for
11447         locals "returnjump", "epilogue_end", "insn", "next".
11448
11449         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
11450         "returnjump" from rtx * to rtx_insn **.
11451         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
11452
11453 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11454
11455         * basic-block.h (struct edge_def). Strengthen "r" within
11456         union edge_def_insns from rtx to rtx_insn *.
11457
11458         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
11459         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
11460         rtx_insn *.
11461         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
11462         from rtx to rtx_insn *.
11463         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
11464         rtx_insn *.
11465         * postreload-gcse.c (reg_killed_on_edge): Likewise.
11466         (reg_used_on_edge): Likewise.
11467         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
11468         (gt_pch_nx): New overload for rtx_insn *&.
11469         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
11470         from rtx to rtx_insn *.
11471
11472 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11473
11474         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
11475         from rtx to rtx_insn *.
11476         (BB_FOOTER): Replace function with access macro.
11477         (SET_BB_FOOTER): Delete.
11478
11479         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
11480         with BB_FOOTER.
11481         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
11482         (emit_barrier_after_bb): Likewise.
11483         (record_effective_endpoints): Likewise.
11484         (relink_block_chain): Likewise.
11485         (fixup_fallthru_exit_predecessor): Likewise.
11486         (cfg_layout_duplicate_bb): Likewise.
11487         (cfg_layout_split_block): Likewise.
11488         (cfg_layout_delete_block): Likewise.
11489         (cfg_layout_merge_blocks): Likewise.
11490         (BB_FOOTER): Delete function.
11491         (SET_BB_FOOTER): Delete function.
11492         * combine.c (update_cfg_for_uncondjump): Replace uses of
11493         SET_BB_FOOTER with BB_FOOTER.
11494
11495 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11496
11497         * except.h (struct eh_landing_pad_d): Strengthen field
11498         "landing_pad" from rtx to rtx_code_label *.
11499
11500         * except.c (sjlj_emit_dispatch_table): Likewise for param
11501         "dispatch_label"
11502         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
11503
11504 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11505
11506         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
11507         first param from rtx to rtx_insn *.
11508         * config/xtensa/xtensa.c (struct machine_function): Likewise for
11509         field "set_frame_ptr_insn".
11510         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
11511         "csend" from rtx to rtx_code_label *.
11512         (xtensa_expand_atomic): Likewise for local "csloop".
11513         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
11514         rtx_insn *.
11515         (xtensa_call_tls_desc): Likewise for return type and locals
11516         "call_insn", "insns".
11517         (xtensa_legitimize_tls_address): Likewise for local "insns".
11518         (xtensa_expand_prologue): Likewise for locals "insn", "first".
11519
11520 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11521
11522         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
11523         first param from rtx to rtx_insn *.
11524         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
11525         "insn".
11526
11527 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11528
11529         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
11530         Strengthen param 1 from rtx to rtx_insn *.
11531         (tilepro_output_cbranch): Likewise.
11532         (tilepro_adjust_insn_length): Likewise.
11533         (tilepro_final_prescan_insn): Likewise for sole param.
11534
11535         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
11536         Likewise for local "last".
11537         (cbranch_predicted_p): Likewise for param "insn".
11538         (tilepro_output_simple_cbranch_with_opcode): Likewise.
11539         (tilepro_output_cbranch_with_opcode): Likewise.
11540         (tilepro_output_cbranch): Likewise.
11541         (frame_emit_load): Likewise for return type and locals "seq",
11542         "insn".
11543         (emit_sp_adjust): Likewise for return type and local "insn".
11544         (tilepro_expand_epilogue): Likewise for locals "last_insn",
11545         "insn".
11546         (tilepro_adjust_insn_length): Likewise for param "insn".
11547         (next_insn_to_bundle): Likewise for return type and params
11548         "r", "end".
11549         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
11550         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
11551         local "new_insns".
11552         (match_addli_pcrel): Likewise for param "insn".
11553         (replace_addli_pcrel): Likewise.
11554         (match_auli_pcrel): Likewise.
11555         (replace_auli_pcrel): Likewise.
11556         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
11557         "next_insn".
11558         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11559         "queue", "next_queue", "prev".
11560         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
11561         (tilepro_final_prescan_insn): Likewise for param "insn".
11562
11563 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11564
11565         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
11566         Strengthen param 1 from rtx to rtx_insn *.
11567         (tilegx_output_cbranch): Likewise.
11568         (tilegx_adjust_insn_length): Likewise.
11569         (tilegx_final_prescan_insn): Likewise for sole param.
11570
11571         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
11572         or local "last".
11573         (cbranch_predicted_p): Likewise for param "insn".
11574         (tilegx_output_simple_cbranch_with_opcode): Likewise.
11575         (tilegx_output_cbranch_with_opcode): Likewise.
11576         (tilegx_output_cbranch): Likewise.
11577         (frame_emit_load): Likewise for return type.
11578         (set_frame_related_p): Likewise for locals "seq", "insn".
11579         (emit_sp_adjust): Likewise for return type, and for local "insn".
11580         Introduce local "pat" for use in place of "insn" where the latter
11581         isn't an instruction.
11582         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
11583         from rtx to rtx_insn *.
11584         (tilegx_adjust_insn_length): Likewise for param "insn".
11585         (next_insn_to_bundle): Likewise for return type and params "r" and
11586         "end".
11587         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
11588         "end".
11589         (replace_insns): Likewise for params "old_insn", "new_insns".
11590         (replace_mov_pcrel_step1): Likewise for param "insn" and local
11591         "new_insns".
11592         (replace_mov_pcrel_step2): Likewise.
11593         (replace_mov_pcrel_step3): Likewise.
11594         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
11595         "next_insn".
11596         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11597         "queue", "next_queue", "prev".
11598         (tilegx_output_mi_thunk): Likewise for local "insn".
11599         (tilegx_final_prescan_insn): Likewise for param "insn".
11600
11601 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11602
11603         * config/spu/spu.c (frame_emit_store): Strengthen return type from
11604         rtx to rtx_insn *.
11605         (frame_emit_load): Likewise.
11606         (frame_emit_add_imm): Likewise, also for local "insn".
11607         (spu_expand_prologue): Likewise for local "insn".
11608         (struct spu_bb_info): Likewise for field "prop_jump".
11609         (emit_nop_for_insn): Likewise for param "insn" and local
11610         "new_insn".
11611         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
11612         "hbr_insn".
11613         (spu_emit_branch_hint): Likewise for params "before", "branch" and
11614         locals "hint", "insn".
11615         (get_branch_target): Likewise for param "branch".
11616         (insn_clobbers_hbr): Likewise for param "insn".
11617         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
11618         locals "insn", "before_4", "before_16".
11619         (insert_hbrp): Likewise for local "insn".
11620         (spu_machine_dependent_reorg): Likewise for locals "branch",
11621         "insn", "next", "bbend".
11622         (uses_ls_unit): Likewise for param "insn".
11623         (get_pipe): Likewise.
11624         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
11625         introducing a checked cast.
11626         (spu_sched_adjust_cost): Likewise for params "insn" and
11627         "dep_insn".
11628         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
11629         (spu_sms_res_mii): Likewise.
11630
11631 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11632
11633         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
11634         from rtx to rtx_insn *.
11635         (output_cbranch): Likewise for param 6.
11636         (output_return): Likewise for param 1.
11637         (output_sibcall): Likewise.
11638         (output_v8plus_shift): Likewise.
11639         (output_v8plus_mult): Likewise.
11640         (output_v9branch): Likewise for param 7.
11641         (output_cbcond):  Likewise for param 3.
11642
11643         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
11644         for local "insn".
11645         (sparc_legitimize_pic_address): Likewise.
11646         (sparc_emit_call_insn): Likewise.
11647         (emit_save_or_restore_regs): Likewise.
11648         (emit_window_save): Likewise for return type and local "insn".
11649         (sparc_expand_prologue): Likewise for local "insn".
11650         (sparc_flat_expand_prologue): Likewise.
11651         (output_return): Likewise for param "insn".
11652         (output_sibcall): Likewise for param "insn" and local "delay".
11653         (output_ubranch): Likewise for param "insn".
11654         (output_cbranch): Likewise.
11655         (output_cbcond): Likewise.
11656         (output_v9branch): Likewise.
11657         (output_v8plus_shift): Likewise.
11658         (sparc_output_mi_thunk): Likewise for local "insn".
11659         (get_some_local_dynamic_name): Likewise.
11660         (output_v8plus_mult): Likewise for param "insn".
11661
11662 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11663
11664         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
11665         from rtx to rtx_insn *.
11666         (output_branchy_insn): Likewise for param 3.
11667         (output_far_jump): Likewise for param 1.
11668         (final_prescan_insn): Likewise.
11669         (sh_insn_length_adjustment): Likewise for sole param.
11670
11671         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
11672         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
11673         rtx_code_label *.
11674         (sh_emit_compare_and_set): Likewise for local "lab".
11675         (output_far_jump): Strengthen param "insn" and local "prev" from
11676         rtx to rtx_insn *.
11677         (output_branchy_insn): Likewise for param "insn" and local
11678         "next_insn".
11679         (output_ieee_ccmpeq): Likewise for param "insn".
11680         (struct label_ref_list_d): Strengthen field "label" from rtx to
11681         rtx_code_label *.
11682         (pool_node): Likewise.
11683         (pool_window_label): Likewise for this global.
11684         (add_constant): Likewise for return type and locals "lab", "new_rtx".
11685         (dump_table): Strengthen params "start", "barrier" and local
11686         "scan" from rtx to rtx_insn *.
11687         (broken_move): Likewise for param "insn".
11688         (untangle_mova): Likewise for params "first_mova" and "new_mova".
11689         Strengthen param "first_mova" from rtx * to rtx_insn **.
11690         (mova_p): Likewise for param "insn".
11691         (fixup_mova): Likewise for param "mova".
11692         (find_barrier): Likewise for return type, params "mova" and
11693         "from", and locals "barrier_before_mova", "found_barrier",
11694         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
11695         "label" from rtx to rtx_code_label *.
11696         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
11697         rtx to rtx_insn *.
11698         (sh_reorg): Likewise for locals "link", "scan", "barrier".
11699         (split_branches): Likewise for param "first" and local "insn".
11700         (final_prescan_insn): Likewise for param "insn".
11701         (sequence_insn_p): Likewise for locals "prev", "next".
11702         (sh_insn_length_adjustment): Likewise for param "insn".
11703         (sh_can_redirect_branch): Likewise for local "insn".
11704         (find_r0_life_regions): Likewise for locals "end", "insn".
11705         (sh_output_mi_thunk): Likewise for local "insns".
11706
11707 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11708
11709         * config/score/score.c (score_output_mi_thunk): Strengthen local
11710         "insn" from rtx to rtx_insn *.
11711         (score_prologue): Likewise.
11712
11713 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11714
11715         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
11716         1 from rtx to rtx_insn *.
11717         (s390_emit_jump): Likewise for return type.
11718         (s390_emit_call): Likewise.
11719         (s390_load_got): Likewise.
11720
11721         * config/s390/s390.c (last_scheduled_insn): Likewise for this
11722         variable.
11723         (s390_match_ccmode): Likewise for param "insn".
11724         (s390_emit_jump): Likewise for return type.
11725         (s390_split_branches): Likewise for local "label".
11726         (struct constant): Strengthen field "label" from rtx to
11727         rtx_code_label *.
11728         (struct constant_pool): Likewise for field "label".  Strengthen
11729         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
11730         rtx_insn *.
11731         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
11732         insns.
11733         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
11734         (s390_end_pool): Likewise.
11735         (s390_dump_pool): Likewise for local "insn".
11736         (s390_mainpool_start): Likewise.
11737         (s390_chunkify_start): Likewise.
11738         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
11739         with insns.  Strengthen locals "label", "jump", "barrier", "next",
11740         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
11741         (s390_chunkify_finish): Strengthen local "insn" from rtx to
11742         rtx_insn *.
11743         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
11744         "jump", "label", "next_insn".
11745         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
11746         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
11747         "tbegin_insn".
11748         (s390_load_got): Likewise for return type and local "insns".
11749         (s390_save_gprs_to_fprs): Likewise for local "insn".
11750         (s390_restore_gprs_from_fprs): Likewise.
11751         (pass_s390_early_mach::execute): Likewise.
11752         (s390_emit_prologue): Likewise for local "insns".
11753         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
11754         rtx_code_label *.
11755         (s390_emit_call): Strengthen return type and local "insn" from
11756         rtx to rtx_insn *.
11757         (s390_emit_tpf_eh_return): Likewise for local "insn".
11758         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
11759         "next_insn", introducing locals "s_pat", "rpat" to allow this.
11760         (s390_fix_long_loop_prediction): Likewise for param "insn" and
11761         local "cur_insn".
11762         (s390_non_addr_reg_read_p): Likewise for param "insn".
11763         (find_cond_jump): Likewise for return type and param "insn".
11764         (s390_swap_cmp): Likewise for param "insn".
11765         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
11766         "prev_insn", "next_insn".
11767         (s390_reorg): Likewise for locals "insn", "target".
11768         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
11769         (s390_sched_variable_issue): For now, rename param "insn" to
11770         "uncast_insn", introducing a checked cast.
11771         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
11772         insn.
11773         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
11774         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
11775
11776 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11777
11778         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
11779         param from rtx to rtx_insn *.
11780         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
11781
11782 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11783
11784         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
11785         4 from rtx to rtx_insn *.
11786         (rs6000_final_prescan_insn): Likewise for first param.
11787         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
11788         local "insn".
11789         (rs6000_get_some_local_dynamic_name): Likewise.
11790         (output_cbranch): Likewise for param "insn".
11791         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
11792         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
11793         (rs6000_emit_allocate_stack): Likewise for local "insn".
11794         (load_cr_save): Likewise.
11795         (restore_saved_cr): Likewise.
11796         (restore_saved_lr): Likewise.
11797         (emit_cfa_restores): Likewise.
11798         (rs6000_output_function_epilogue): Likewise for locals "insn" and
11799         "deleted_debug_label".
11800         (rs6000_output_mi_thunk): Likewise for local "insn".
11801         (rs6000_final_prescan_insn): Likewise for param "insn".
11802
11803 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11804
11805         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
11806         Strengthen param "insn" from rtx to rtx_insn *.
11807         * config/picochip/picochip.c (picochip_current_prescan_insn):
11808         Likewise for this variable.
11809         (picochip_final_prescan_insn): Likewise for param "insn".
11810
11811 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11812
11813         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
11814         from rtx to rtx_insn *.
11815         (pa_output_indirect_call): Likewise.
11816         (pa_adjust_insn_length): Likewise.
11817         (pa_attr_length_millicode_call): Likewise.
11818         (pa_attr_length_call): Likewise.
11819         (pa_attr_length_indirect_call): Likewise.
11820
11821         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
11822         "insn".
11823         (pa_attr_length_millicode_call): Likewise.
11824         (pa_attr_length_call): Likewise.
11825         (pa_output_call): Likewise.
11826         (pa_attr_length_indirect_call): Likewise.
11827         (pa_output_indirect_call): Likewise.
11828
11829 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11830
11831         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
11832         Strengthen first param from rtx to rtx_insn *.
11833         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
11834         param "insn".
11835
11836 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11837
11838         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
11839         type from rtx to rtx_insn *.
11840         (mips_expand_call): Likewise.
11841         (mips_adjust_insn_length): Likewise for first param.
11842         (mips_output_conditional_branch): Likewise.
11843         (mips_output_order_conditional_branch): Likewise.
11844         (mips_final_prescan_insn): Likewise.
11845
11846         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
11847         rtx_insn * for the SEQUENCE case.
11848         (SEQ_END): Likewise.
11849         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
11850         (mips_emit_call_insn): Likewise, also for local "insn".
11851         (mips16_gp_pseudo_reg): Likewise for local "scan".
11852         (mips16_build_call_stub): Likewise for return type and for local
11853         "insn".  Introduce a new local "pattern" so that "insn" can indeed
11854         be an insn.
11855         (mips_expand_call): Strengthen return type and local "insn" from
11856         rtx to rtx_insn *.
11857         (mips_block_move_loop): Strengthen local "label" from rtx to
11858         rtx_code_label *.
11859         (mips_expand_synci_loop): Likewise for locals "label",
11860         "end_label".
11861         (mips_set_frame_expr): Strengthen local "insn" from rtx to
11862         rtx_insn *.
11863         (mips16e_collect_argument_saves): Likewise for locals "insn",
11864         "next".
11865         (mips_find_gp_ref): Likewise for param of callback for "pred"
11866         param, and for local "insn".
11867         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
11868         (mips_insn_has_flexible_gp_ref_p): Likewise.
11869         (mips_epilogue_emit_cfa_restores): Likewise for return type and
11870         local "insn".
11871         (mips_epilogue_set_cfa): Likewise for local "insn".
11872         (mips_expand_epilogue): Likewise.
11873         (mips_adjust_insn_length): Likewise for param "insn".
11874         (mips_output_conditional_branch): Likewise.
11875         (mips_output_order_conditional_branch): Likewise.
11876         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
11877         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
11878         "falu2_turn_enabled_insn".
11879         (mips_builtin_branch_and_move): Strengthen locals "true_label",
11880         "done_label" from rtx to rtx_code_label *.
11881         (struct mips16_constant): Likewise for field "label".
11882         (mips16_add_constant): Likewise for return type.
11883         (mips16_emit_constants_1): Strengthen return type and param "insn"
11884         from rtx to rtx_insn *.
11885         (mips16_emit_constants): Likewise for param "insn".
11886         (mips16_insn_length): Likewise.
11887         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
11888         to rtx_code_label *.
11889         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
11890         from rtx to rtx_insn *.
11891         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
11892         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
11893         (r10k_simplify_address): Strengthen param "insn" and local
11894         "def_insn" from rtx to rtx_insn *.
11895         (r10k_safe_address_p): Strengthen param "insn" from rtx to
11896         rtx_insn *.
11897         (r10k_needs_protection_p_1): Update target type of cast of data
11898         from to rtx to rtx_insn *.
11899         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
11900         rtx * to rtx_insn **.
11901         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
11902         rtx_insn *.
11903         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
11904         (mips_call_expr_from_insn): Likewise for param "insn".
11905         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
11906         (mips_find_pic_call_symbol): Likewise for param "insn".
11907         (mips_annotate_pic_calls): Likewise for local "insn".
11908         (mips_sim_insn): Likewise for this variable.
11909         (struct mips_sim): Likewise for field "insn" within elements of
11910         last_set array.
11911         (mips_sim_wait_reg): Likewise for param "insn".
11912         (mips_sim_wait_regs): Likewise.
11913         (mips_sim_wait_units): Likewise.
11914         (mips_sim_wait_insn): Likewise.
11915         (mips_sim_issue_insn): Likewise.
11916         (mips_sim_finish_insn): Likewise.
11917         (mips_seq_time): Likewise for param "seq" and local "insn".
11918         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
11919         locals "first", "second".
11920         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
11921         "last", "last2", "next".
11922         (mips_avoid_hazard): Likewise for params "after", "insn".
11923         (mips_reorg_process_insns): Likewise for locals "insn",
11924         "last_insn", "subinsn", "next_insn".
11925         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
11926         (mips16_split_long_branches): Likewise for locals "insn" "jump",
11927         "jump_sequence".
11928         (mips_output_mi_thunk): Likewise for local "insn".
11929         (mips_final_prescan_insn): Likewise for param "insn".
11930
11931 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11932
11933         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
11934         Strengthen return type and local "insns" from rtx to rtx_insn *.
11935         (microblaze_legitimize_tls_address): Likewise for local "insns".
11936         (microblaze_block_move_loop): Strengthen local "label" from rtx
11937         to rtx_code_label *.
11938         (microblaze_expand_prologue): Strengthen two locals named "insn"
11939         from rtx to rtx_insn *.
11940         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
11941         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
11942         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
11943         to rtx_code_label *.
11944
11945 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11946
11947         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
11948         param from rtx to rtx_insn *.
11949         (mep_reuse_lo): Likewise for third param.
11950         (mep_use_post_modify_p): Likewise for first param.
11951         (mep_core_address_length): Likewise.
11952         (mep_cop_address_length): Likewise.
11953         (mep_final_prescan_insn): Likewise.
11954         (mep_store_data_bypass_p): Likewise for both params.
11955         (mep_mul_hilo_bypass_p): Likewise.
11956         (mep_ipipe_ldc_p): Likewise for param.
11957
11958         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
11959         (mep_rewrite_mult): Likewise.
11960         (mep_rewrite_mulsi3): Likewise.
11961         (mep_rewrite_maddsi3): Likewise.
11962         (mep_reuse_lo_p_1): Likewise.
11963         (mep_reuse_lo_p): Likewise.
11964         (mep_frame_expr): Likewise.
11965         (mep_make_parallel): Likewise for both params.
11966         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
11967         local "insn".
11968         (mep_use_post_modify_p): Likewise for param "insn".
11969         (mep_core_address_length): Likewise.
11970         (mep_cop_address_length): Likewise.
11971         (mep_reg_set_in_function): Likewise for local "insn".
11972         (mep_asm_without_operands_p): Likewise.
11973         (F): Likewise for return type and param "x".
11974         (add_constant): Likewise for local "insn".
11975         (maybe_dead_move): Likewise for return type and local "insn".
11976         (mep_expand_prologue): Likewise for local "insn".
11977         (mep_final_prescan_insn): Likewise for param "insn".
11978         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
11979         "next", "follow", "x".
11980         (mep_insert_repeat_label_last): Likewise for return type, param
11981         "last_insn", and locals "next", "prev".  Strengthen param "label"
11982         from rtx to rtx_code_label *.
11983         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
11984         rtx_insn *.
11985         (struct mep_doloop_end): Likewise for fields "insn" and
11986         "fallthrough".
11987         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
11988         Strengthen local "repeat_label" from rtx to rtx_code_label *.
11989         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
11990         rtx_insn *.
11991         (mep_invert_branch): Likewise for params "insn" and "after".
11992         (mep_reorg_erepeat): Likewise for param "insns" and locals
11993         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
11994         "l" from rtx to rtx_code_label *.
11995         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
11996         from rtx to rtx_insn *.
11997         (mep_reorg_addcombine): Likewise for param "insns" and locals
11998         "i", "n".
11999         (add_sp_insn_p): Likewise for param "insn".
12000         (mep_reorg_noframe): Likewise for param "insns" and locals
12001         "start_frame_insn", "end_frame_insn", "next".
12002         (mep_reorg): Likewise for local "insns".
12003         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
12004         cast.
12005         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
12006         (mep_mul_hilo_bypass_p): Likewise.
12007         (mep_ipipe_ldc_p): Likewise for param "insn".
12008         (mep_make_bundle): Likewise for return type, param "cop" and local
12009         "insn", splitting out the latter into a new local "seq" for when it
12010         is a SEQUENCE rather than an insn.
12011         (core_insn_p): Likewise for param "insn".
12012         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
12013         "last", "first", "note", "prev", "core_insn".
12014
12015 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12016
12017         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
12018         rtx to rtx_insn *.
12019         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
12020         (m68k_final_prescan_insn): Likewise for first param.
12021
12022         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
12023         (m68k_set_frame_related): Likewise for param "insn".
12024         (output_btst): Likewise for param "insn".
12025         (m68k_final_prescan_insn): Likewise.
12026         (m68k_move_to_reg): Likewise for local "insn".
12027         (m68k_call_tls_get_addr): Likewise for local "insns".
12028         (m68k_call_m68k_read_tp): Likewise.
12029         (strict_low_part_peephole_ok): Likewise for param "first_insn".
12030         (m68k_output_mi_thunk): Likewise for local "insn".
12031
12032 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12033
12034         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
12035         first param from rtx to rtx_insn *.
12036         (iq2000_adjust_insn_length): Likewise.
12037         (iq2000_output_conditional_branch): Likewise.
12038         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
12039         "insn" and local "nop_insn".
12040         (iq2000_annotate_frame_insn): Likewise for param "insn".
12041         (iq2000_expand_prologue): Likewise for both locals "insn".
12042         (iq2000_adjust_insn_length): Likewise for param "insn".
12043         (iq2000_output_conditional_branch): Likewise.
12044
12045 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12046
12047         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
12048         "insns" from rtx to rtx_insn *.
12049         (ia64_emit_cond_move): Likewise for locals "insn", "first".
12050         (struct spill_fill_data): Likewise for field "init_after" and for
12051         elements of array field "prev_insn".
12052         (spill_restore_mem): Likewise for locals "insn", "first".
12053         (do_spill): Likewise for local "insn".
12054         (do_restore): Likewise.
12055         (ia64_expand_prologue): Likewise.
12056         (ia64_expand_epilogue): Likewise.
12057         (emit_insn_group_barriers): Likewise for locals "insn",
12058         "last_label".
12059         (emit_all_insn_group_barriers): Likewise for locals "insn",
12060         "last".
12061         (dfa_stop_insn): Likewise for this global.
12062         (dfa_pre_cycle_insn): Likewise.
12063         (ia64_nop): Likewise.
12064         (final_emit_insn_group_barriers): Likewise for locals "insn",
12065         "last".
12066         (emit_predicate_relation_info): Likewise for locals "head", "n",
12067         "insn", "b", "a".
12068         (ia64_reorg): Likewise for local "insn".
12069         (ia64_output_mi_thunk): Likewise.
12070         (expand_vec_perm_interleave_2): Likewise for local "seq".
12071
12072 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12073
12074         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
12075         param 1 "insn" from rtx to rtx_insn *.
12076         (ix86_use_lea_for_mov): Likewise.
12077         (ix86_avoid_lea_for_addr): Likewise.
12078         (ix86_split_lea_for_addr): Likewise.
12079         (ix86_lea_for_add_ok): Likewise.
12080         (ix86_output_call_insn): Likewise.
12081
12082         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
12083         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
12084         (ix86_output_function_epilogue): Likewise for locals "insn",
12085         "deleted_debug_label".
12086         (legitimize_tls_address): Likewise for local "insn".
12087         (get_some_local_dynamic_name): Likewise.
12088         (increase_distance): Likewise for params "prev", "next".
12089         (distance_non_agu_define_in_bb): Likewise for params "insn",
12090         "start" and locals "prev", "next".
12091         (distance_non_agu_define): Likewise for param "insn".
12092         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
12093         locals "next", "prev".
12094         (distance_agu_use): Likewise for param "insn".
12095         (ix86_lea_outperforms): Likewise.
12096         (ix86_ok_to_clobber_flags): Likewise.
12097         (ix86_avoid_lea_for_add): Likewise.
12098         (ix86_use_lea_for_mov): Likewise.
12099         (ix86_avoid_lea_for_addr): Likewise.
12100         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
12101         (ix86_split_lea_for_addr): Likewise for param "insn".
12102         (ix86_lea_for_add_ok): Likewise for param "insn".
12103         (ix86_expand_carry_flag_compare): Likewise for local
12104         "compare_seq".
12105         (ix86_expand_int_movcc): Likewise.
12106         (ix86_output_call_insn): Likewise for param "insn".
12107         (ix86_output_call_insn): Likewise for local "i".
12108         (x86_output_mi_thunk): Introduce local "insn", using it in place
12109         of "tmp" when dealing with insns.
12110         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
12111         "start".
12112         (ix86_pad_returns): Likewise for locals "ret", "prev".
12113         (ix86_count_insn_bb): Likewise for local "insn".
12114         (ix86_pad_short_function): Likewise for locals "ret", "insn".
12115         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
12116         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
12117         (expand_vec_perm_interleave2): Likewise for local "seq".
12118         (expand_vec_perm_vperm2f128_vblend): Likewise.
12119         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
12120         call to for_each_rtx with for_each_rtx_in_insn.
12121
12122 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12123
12124         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
12125         "label" from rtx to rtx_code_label *.
12126         (ix86_expand_prologue): Likewise.
12127         (ix86_expand_split_stack_prologue): Likewise for locals "label",
12128         "varargs_label".
12129         (ix86_split_idivmod): Likewise for locals "end_label" and
12130         "qimode_label".
12131         (ix86_expand_branch): Likewise for local "label2".
12132         (ix86_expand_aligntest): Likewise for return type and local "label".
12133         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
12134         "top_label".
12135         (expand_movmem_epilogue): Likewise for the various locals named
12136         "label".
12137         (expand_setmem_epilogue): Likewise.
12138         (expand_small_movmem_or_setmem): Likewise for local "label".
12139         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
12140         Strengthen param "done_label" from rtx * to rtx_code_label **.
12141         Strengthen locals "loop_label" and "label" from rtx to
12142         rtx_code_label *.
12143         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
12144         Likewise for locals "loop_label", "label".
12145         (ix86_expand_set_or_movmem): Likewise for locals "label",
12146         "jump_around_label", "hot_label".
12147         (ix86_expand_strlensi_unroll_1): Likewise for locals
12148         "align_2_label", align_3_label", "align_4_label", "end_0_label",
12149         "end_2_label".
12150         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
12151         (void ix86_emit_i387_log1p): Likewise for locals "label1",
12152         "label2", "jump_label".
12153         (ix86_expand_sse_compare_and_jump): Likewise for return type and
12154         local "label".
12155         (ix86_expand_lfloorceil): Likewise for local "label".
12156         (ix86_expand_rint): Likewise.
12157         (ix86_expand_floorceildf_32): Likewise.
12158         (ix86_expand_floorceil): Likewise.
12159         (ix86_expand_rounddf_32): Likewise.
12160         (ix86_expand_trunc): Likewise.
12161         (ix86_expand_truncdf_32): Likewise.
12162         (ix86_expand_round): Likewise.
12163
12164 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12165
12166         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
12167         first param from rtx to rtx_insn *.
12168         (h8300_insn_length_from_table): Likewise.
12169         * config/h8300/h8300.c (F): Likewise for return type and param
12170         "x".
12171         (Fpa): Add a checked cast to rtx_insn *.
12172         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
12173         rtx_insn *.
12174         (final_prescan_insn): Likewise for param "insn".
12175         (h8300_binary_length): Likewise.
12176         (h8300_insn_length_from_table): Likewise.
12177
12178 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12179
12180         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
12181         Strengthen first param "insn" from rtx to rtx_insn *.
12182
12183         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
12184         Likewise.
12185         (frame_insn): Likewise for return type.  Introduce local "insn"
12186         for use in place of local "x" for use as an rtx_insn *.
12187         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
12188         (epiphany_expand_prologue): Likewise for local "insn".
12189         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
12190         * config/epiphany/resolve-sw-modes.c
12191         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
12192         "seq".
12193
12194 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12195
12196         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
12197         param from rtx to rtx_insn *.
12198         (c6x_final_prescan_insn): Likewise for first param.
12199
12200         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
12201         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
12202         (c6x_expand_compare): Strengthen local "insns" from rtx to
12203         rtx_insn *.
12204         (c6x_get_unit_specifier): Likewise for param "insn".
12205         (c6x_print_unit_specifier_field): Likewise.
12206         (c6x_final_prescan_insn): Likewise.
12207         (emit_add_sp_const): Likewise for local "insn".
12208         (c6x_expand_prologue): Likewise.
12209
12210 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12211
12212         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
12213         param 1 from rtx to rtx_insn *.
12214         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
12215         the various locals named "insn".
12216         (expand_epilogue_reg_restore): Likewise.
12217         (frame_related_constant_load): Likewise.
12218         (add_to_reg): Likewise.
12219         (emit_link_insn): Likewise.
12220         (do_link): Likewise.
12221         (expand_interrupt_handler_prologue): Likewise.
12222         (branch_dest): Likewise for param "branch".
12223         (asm_conditional_branch): Likewise for param "insn".
12224         (gen_one_bundle): Likewise for elements of param "slot" and local
12225         "t".
12226         (bfin_gen_bundles): Likewise for locals "insn", "next" and
12227         elements of local "slot".
12228         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
12229         "queue", "next_queue", "prev".
12230         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
12231         (add_sched_insns_for_speculation): Likewise for local "insn".
12232
12233 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12234
12235         * config/avr/avr-protos.h (output_movqi): Strengthen first param
12236         from rtx to rtx_insn *.
12237         (output_movhi): Likewise.
12238         (output_movsisf): Likewise.
12239         (avr_out_tstsi): Likewise.
12240         (avr_out_tsthi): Likewise.
12241         (avr_out_tstpsi): Likewise.
12242         (avr_out_compare): Likewise.
12243         (avr_out_compare64): Likewise.
12244         (avr_out_movpsi): Likewise.
12245         (ashlqi3_out): Likewise.
12246         (ashlhi3_out): Likewise.
12247         (ashlsi3_out): Likewise.
12248         (ashrqi3_out): Likewise.
12249         (ashrhi3_out): Likewise.
12250         (ashrsi3_out): Likewise.
12251         (lshrqi3_out): Likewise.
12252         (lshrhi3_out): Likewise.
12253         (lshrsi3_out): Likewise.
12254         (avr_out_ashlpsi3): Likewise.
12255         (avr_out_ashrpsi3): Likewise.
12256         (avr_out_lshrpsi3): Likewise.
12257         (avr_out_fract): Likewise.
12258         (avr_out_sbxx_branch): Likewise.
12259         (avr_out_round): Likewise.
12260         (avr_out_xload): Likewise.
12261         (avr_out_movmem): Likewise.
12262         (adjust_insn_length): Likewise.
12263         (avr_out_lpm): Likewise.
12264         (reg_unused_after): Likewise.
12265         (_reg_unused_after): Likewise.
12266         (avr_jump_mode): Likewise for second param.
12267         (jump_over_one_insn): Likewise for first param.
12268         (avr_final_prescan_insn): Likewise.
12269         (out_shift_with_cnt): Likewise for second param.
12270
12271         * config/avr/avr.c (get_sequence_length): Likewise for param
12272         "insns" and local "insn".
12273         (emit_push_byte): Likewise for local "insn".
12274         (emit_push_sfr): Likewise.
12275         (avr_prologue_setup_frame): Likewise for locals "insn",
12276         "fp_plus_insns", "sp_plus_insns".
12277         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
12278         "sp_plus_insns".
12279         (avr_jump_mode): Likewise for param "insn".
12280         (avr_final_prescan_insn): Likewise.
12281         (avr_find_unused_d_reg): Likewise.
12282         (avr_out_lpm_no_lpmx): Likewise.
12283         (avr_out_lpm): Likewise.
12284         (avr_out_xload): Likewise.
12285         (output_movqi): Likewise.
12286         (output_movhi): Likewise.
12287         (out_movqi_r_mr): Likewise.
12288         (out_movhi_r_mr): Likewise.
12289         (out_movsi_r_mr): Likewise.
12290         (out_movsi_mr_r): Likewise.
12291         (output_movsisf): Likewise.
12292         (avr_out_load_psi): Likewise.
12293         (avr_out_store_psi): Likewise.
12294         (avr_out_movpsi): Likewise.
12295         (out_movqi_mr_r): Likewise.
12296         (avr_out_movhi_mr_r_xmega): Likewise.
12297         (out_movhi_mr_r): Likewise.
12298         (compare_condition): Likewise for param "insn" and local "next".
12299         (compare_sign_p): Likewise for param "insn".
12300         (compare_diff_p): Likewise.
12301         (compare_eq_p): Likewise.
12302         (avr_out_compare): Likewise.
12303         (avr_out_compare64): Likewise.
12304         (avr_out_tsthi): Likewise.
12305         (avr_out_tstpsi): Likewise.
12306         (avr_out_tstsi): Likewise.
12307         (out_shift_with_cnt): Likewise.
12308         (ashlqi3_out): Likewise.
12309         (ashlhi3_out): Likewise.
12310         (avr_out_ashlpsi3): Likewise.
12311         (ashlsi3_out): Likewise.
12312         (ashrqi3_out): Likewise.
12313         (ashrhi3_out): Likewise.
12314         (avr_out_ashrpsi3): Likewise.
12315         (ashrsi3_out): Likewise.
12316         (lshrqi3_out): Likewise.
12317         (lshrhi3_out): Likewise.
12318         (avr_out_lshrpsi3): Likewise.
12319         (lshrsi3_out): Likewise.
12320         (avr_out_fract): Likewise.
12321         (avr_out_round): Likewise.
12322         (avr_adjust_insn_length): Likewise.
12323         (reg_unused_after): Likewise.
12324         (_reg_unused_after): Likewise.
12325         (avr_compare_pattern): Likewise.
12326         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
12327         and locals "branch1", "branch2", "insn2", "jump".
12328         (avr_reorg): Likewise for local "insn".
12329         (avr_2word_insn_p): Likewise for param "insn".
12330         (jump_over_one_insn_p): Likewise.
12331         (avr_out_sbxx_branch): Likewise.
12332         (avr_out_movmem): Likewise.
12333
12334 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12335
12336         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
12337         param from rtx to rtx_insn *.
12338         (thumb1_final_prescan_insn): Likewise.
12339         (thumb2_final_prescan_insn): Likewise.
12340
12341         * config/arm/arm.c (emit_set_insn): Strengthen return type from
12342         rtx to rtx_insn *.
12343         (struct minipool_node): Likewise for field "insn".
12344         (dump_minipool): Likewise for param "scan".
12345         (create_fix_barrier): Likewise for local "from".  Strengthen local
12346         "label" from rtx to rtx_code_label *.
12347         (push_minipool_barrier): Strengthen param "insn" from rtx to
12348         rtx_insn *.
12349         (push_minipool_fix): Likewise.
12350         (note_invalid_constants): Likewise.
12351         (thumb2_reorg): Likewise for local "insn".
12352         (arm_reorg): Likewise.
12353         (thumb2_final_prescan_insn): Likewise for param
12354         "insn" and local "first_insn".
12355         (arm_final_prescan_insn): Likewise for param "insn" and locals
12356         "start_insn", "this_insn".
12357         (arm_debugger_arg_offset): Likewise for param "insn".
12358         (thumb1_emit_multi_reg_push): Likewise for return type and local
12359         "insn".
12360         (thumb1_final_prescan_insn): Likewise for param "insn".
12361         (thumb_far_jump_used_p): Likewise for local "insn".
12362         (thumb1_expand_prologue): Likewise.
12363         (arm_expand_epilogue_apcs_frame): Likewise.
12364         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
12365         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
12366         from rtx to rtx_code_label *.
12367         (arm_split_atomic_op): Likewise for local "label".
12368         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
12369
12370 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12371
12372         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
12373         first param from rtx to rtx_insn *.
12374         (arc_verify_short): Likewise.
12375         (arc_short_long): Likewise.
12376         (arc_need_delay): Likewise.
12377
12378         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
12379         "target_insn".
12380         (arc_ccfsm_advance): Likewise for param "insn" and locals
12381         "start_insn", "this_insn".
12382         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
12383         (arc_ccfsm_post_advance): Likewise for param "insn".
12384         (arc_next_active_insn): Likewise for return type and param "insn".
12385         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
12386         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
12387         (output_short_suffix): Likewise for local "insn".
12388         (arc_final_prescan_insn): Likewise for param "insn".  Remove
12389         now-redundant checked cast.
12390         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
12391         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
12392         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
12393         for use where lc_set became an insn.
12394         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
12395         rtx to rtx_insn *.
12396         (arc_get_insn_variants): Likewise for local "prev".
12397         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
12398         "next".
12399         (arc_predicate_delay_insns): Likewise for local "insn".
12400         (arc_pad_return): Likewise for local "prev".  For now, add a
12401         checked cast when extracting the insn from "final_sequence".
12402         (arc_short_long): Likewise for param "insn".
12403         (arc_need_delay): Likewise for param "insn" and local "next".
12404         (arc_label_align): Likewise for locals "prev", "next".
12405
12406 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12407
12408         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
12409         "insn" from rtx to rtx_insn *.
12410         (alpha_gp_save_rtx): Likewise for local "seq".
12411         (alpha_instantiate_decls): Likewise for local "top".
12412         (get_some_local_dynamic_name): Likewise for local "insn".
12413         (alpha_does_function_need_gp): Likewise.
12414         (set_frame_related_p): Likewise for return type and for locals
12415         "seq" and "insn".
12416         (emit_frame_store_1): Likewise for local "insn".
12417         (alpha_expand_prologue): Likewise for locals "insn", "seq".
12418         (alpha_end_function): Likewise for local "insn".
12419         (alpha_output_mi_thunk_osf): Likewise.
12420         (alphaev4_insn_pipe): Likewise for param "insn".
12421         (alphaev5_insn_pipe): Likewise.
12422         (alphaev4_next_group): Likewise for return type and param 1
12423         "insn".
12424         (alphaev5_next_group): Likewise.
12425         (alpha_align_insns_1): Likewise for return type and param 1 of
12426         callback param "next_group", and for locals "i", "next", "prev",
12427         "where", "where2", "insn".
12428
12429 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12430
12431         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
12432         rather than modifying the stmt.
12433
12434 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
12435
12436         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
12437         cgraph_state conversion.
12438
12439 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12440
12441         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
12442         Strengthen local "insns" from rtx to rtx_insn *.
12443         (aarch64_set_frame_expr): Likewise for local "insn".
12444         (aarch64_save_or_restore_fprs): Likewise.
12445         (aarch64_save_or_restore_callee_save_registers): Likewise.
12446         (aarch64_expand_prologue): Likewise.
12447         (aarch64_expand_epilogue): Likewise.
12448         (aarch64_output_mi_thunk): Likewise.
12449         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
12450         "label2" from rtx to rtx_code_label *.
12451         (aarch64_split_atomic_op): Likewise for local "label".
12452
12453 2014-08-25  Martin Liska  <mliska@suse.cz>
12454
12455         * cgraph.h (symtab_node):
12456         (bool needed_p (void)): created from decide_is_symbol_needed
12457         (bool referred_to_p (void)): created from referred_to_p
12458         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
12459         * cgraph.h (cgraph_node):
12460         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
12461         (void expand (void)): created from expand_function
12462         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
12463         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
12464         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
12465         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
12466         * cgraph.h (varpool_node):
12467         (static void add (tree decl): created from varpool_add_new_variable
12468         * cgraph.h (cgraph_edge):
12469         void remove (void);
12470         (void remove_caller (void)): created from cgraph_edge_remove_caller
12471         (void remove_callee (void)): created from cgraph_edge_remove_callee
12472         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
12473           created from cgraph_set_call_stmt
12474         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
12475         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
12476         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
12477           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
12478         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
12479           created from cgraph_speculative_call_info
12480         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
12481           int freq_scale, bool update_original)): created from cgraph_clone_edge
12482         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
12483         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
12484         (bool recursive_p (void)): created from cgraph_edge_recursive_p
12485         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
12486         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
12487         (static void rebuild_references (void)): created from cgraph_rebuild_references
12488         * cgraph.h (symbol_table):
12489         (create_reference): renamed from add_reference
12490         (maybe_create_reference): renamed from maybe_add_reference
12491         (void register_symbol (symtab_node *node)): new function
12492         (void clear_asm_symbols (void)): new function
12493         (void unregister (symtab_node *node)): new function
12494         (void release_symbol (cgraph_node *node, int uid)): new function
12495         (cgraph_node * allocate_cgraph_symbol (void)): new function
12496         (void initialize (void)): created from cgraph_init
12497         (symtab_node *first_symbol (void)):new function
12498         (asm_node *first_asm_symbol (void)):new function
12499         (symtab_node *first_defined_symbol (void)):new function
12500         (varpool_node *first_variable (void)):new function
12501         (varpool_node *next_variable (varpool_node *node)):new function
12502         (varpool_node *first_static_initializer (void)):new function
12503         (varpool_node *next_static_initializer (varpool_node *node)):new function
12504         (varpool_node *first_defined_variable (void)):new function
12505         (varpool_node *next_defined_variable (varpool_node *node)):new function
12506         (cgraph_node *first_defined_function (void)):new function
12507         (cgraph_node *next_defined_function (cgraph_node *node)):new function
12508         (cgraph_node *first_function (void)):new function
12509         (cgraph_node *next_function (cgraph_node *node)):new function
12510         (cgraph_node *first_function_with_gimple_body (void)):new function
12511         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
12512         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
12513           created from symtab_remove_unreachable_nodes
12514         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
12515         (void process_new_functions (void)): created from cgraph_process_new_functions
12516         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
12517         (bool output_variables (void)): created from varpool_node::output_variables
12518         (void output_asm_statements (void)): created from output_asm_statements
12519         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
12520         (void compile (void)): created from compile
12521         (void output_weakrefs (void)): created from output_weakrefs
12522         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
12523         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
12524           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
12525         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
12526         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
12527           created from cgraph_next_function_with_gimple_body
12528         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
12529           created from cgraph_remove_edge_removal_hook
12530         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
12531           created from cgraph_add_node_removal_hook
12532         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
12533           created from cgraph_remove_node_removal_hook
12534         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
12535           created from varpool_add_node_removal_hook
12536         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
12537           created from varpool_remove_node_removal_hook
12538         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
12539           created from cgraph_add_function_insertion_hook
12540         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
12541           created from cgraph_remove_function_insertion_hook
12542         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
12543           created from varpool_add_variable_insertion_hook
12544         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
12545           created from varpool_remove_variable_insertion_hook
12546         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
12547           created from cgraph_add_edge_duplication_hook
12548         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
12549           created from cgraph_remove_edge_duplication_hook
12550         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
12551           created from cgraph_add_node_duplication_hook
12552         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
12553           created from cgraph_remove_node_duplication_hook
12554         (void call_edge_removal_hooks (cgraph_edge *e)):
12555           created from cgraph_call_edge_removal_hooks
12556         (void call_cgraph_insertion_hooks (cgraph_node *node)):
12557           created from call_function_insertion_hooks
12558         (void call_cgraph_removal_hooks (cgraph_node *node)):
12559           created from cgraph_call_node_removal_hooks
12560         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
12561           created from cgraph_node::call_duplication_hooks
12562         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
12563           created from cgraph_call_edge_duplication_hooks
12564         (void call_varpool_removal_hooks (varpool_node *node)):
12565           created from varpool_call_node_removal_hooks
12566         (void call_varpool_insertion_hooks (varpool_node *node)):
12567           created from varpool_call_variable_insertion_hooks
12568         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
12569           created from insert_to_assembler_name_hash
12570         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
12571           created from unlink_from_assembler_name_hash
12572         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
12573           created from symtab_prevail_in_asm_name_hash
12574         (void symtab_initialize_asm_name_hash (void)):
12575           created from symtab_initialize_asm_name_hash
12576         (void change_decl_assembler_name (tree decl, tree name)):
12577           created from change_decl_assembler_name
12578         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
12579         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
12580           created from decl_assembler_name_hash
12581         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
12582           created from decl_assembler_name_equal
12583         (static hashval_t hash_node_by_assembler_name (const void *p)):
12584           created from hash_node_by_assembler_name
12585         (static int eq_assembler_name (const void *p1, const void *p2)):
12586           created from eq_assembler_name
12587
12588 2014-08-25  Marek Polacek  <polacek@redhat.com>
12589
12590         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
12591
12592 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
12593
12594         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
12595         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
12596         SWI1248_AVX512BW mode iterator.
12597
12598 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
12599
12600         PR target/62111
12601         * config/sh/predicates.md (general_extend_operand): Disable
12602         TRUNCATE before reload completes.
12603
12604 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
12605
12606         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
12607
12608 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
12609
12610         PR target/61996
12611         * config/sh/sh.opt (musermode): Allow negative form.
12612         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
12613         targets that don't support it.
12614         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
12615         Document -mno-usermode option.
12616
12617 2014-08-24  Kito Cheng  <kito@0xlab.org>
12618
12619         * system.h (CALLER_SAVE_PROFITABLE): Poison.
12620         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
12621         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
12622         * doc/tm.texi: Regenerate.
12623
12624 2014-08-24  Kito Cheng  <kito@0xlab.org>
12625
12626         * ira.c: Fix typo in comment.
12627
12628 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
12629
12630         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
12631         Deprecate c++1y. Change language to reflect greater confidence in C++14.
12632
12633 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
12634
12635         PR target/62038
12636         * config/pa/pa.c (pa_output_function_epilogue): Don't set
12637         last_address when the current function is a thunk.
12638         (pa_asm_output_mi_thunk): When we don't have named sections or they
12639         are not being used, check that thunk can reach the stub table with a
12640         short branch.
12641
12642 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12643
12644         * web.c (union_match_dups): Strengthen param "insn" from rtx to
12645         rtx_insn *.
12646         (pass_web::execute): Likewise for local "insn".
12647
12648 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12649
12650         * var-tracking.c (struct micro_operation_def): Strengthen field
12651         "insn" from rtx to rtx_insn *.
12652         (struct emit_note_data_def): Likewise.
12653         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
12654         (vt_stack_adjustments): Likewise for local "insn".
12655         (adjust_insn): Likewise for param "insn".
12656         (val_store): Likewise.
12657         (val_resolve): Likewise.
12658         (struct count_use_info): Likewise for field "insn".
12659         (log_op_type): Likewise for param "insn".
12660         (reverse_op): Likewise.
12661         (prepare_call_arguments): Likewise.
12662         (add_with_sets):  The initial param takes an insn, but we can't
12663         yet strengthen it from rtx to rtx_insn * since it's used as a
12664         cselib_record_sets_hook callback.  For now rename initial param
12665         from "insn" to "uncast_insn", and introduce a local "insn" of
12666         the stronger rtx_insn * type, with a checked cast.
12667         (compute_bb_dataflow): Strengthen local "insn" from rtx to
12668         rtx_insn *.
12669         (emit_note_insn_var_location): Likewise.
12670         (emit_notes_for_changes): Likewise.
12671         (emit_notes_for_differences): Likewise.
12672         (next_non_note_insn_var_location): Likewise for return type and
12673         for param "insn".
12674         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
12675         (vt_initialize): Likewise for local "insn".
12676         (delete_debug_insns): Likewise for locals "insn" and "next".
12677
12678 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12679
12680         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
12681         rtx_insn *.
12682         (mark_constant_pool): Likewise for local "insn".
12683
12684 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12685
12686         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
12687         rtx to rtx_insn *.
12688         (dead_debug_promote_uses): Likewise.
12689         (dead_debug_insert_temp): Likewise.
12690
12691 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12692
12693         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
12694         from const_rtx to const rtx_insn *.
12695         (store_killed_after): Likewise.  Strengthen locals "last", "act"
12696         from rtx to rtx_insn *.
12697         (store_killed_before): Strengthen param "insn" from const_rtx to
12698         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
12699         (find_moveable_store): Strengthen param "insn" from rtx to
12700         rtx_insn *.
12701         (compute_store_table): Likewise for local "insn".
12702         (insert_insn_start_basic_block): Likewise for param "insn" and
12703         locals "prev", "before", "insn".
12704         (insert_store): For now, add a checked cast to rtx_insn * on the
12705         result of gen_move_insn.
12706         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
12707         to rtx_insn *.
12708         (replace_store_insn): Likewise.  For now, add a checked cast to
12709         rtx_insn * on the result of gen_move_insn.
12710
12711 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12712
12713         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
12714         rtx_insn *.
12715         (expand_sjlj_dispatch_table): Likewise.
12716
12717 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12718
12719         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
12720         "insn" from rtx to rtx_insn *.
12721
12722 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12723
12724         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
12725         "insn" from rtx to rtx_insn *.
12726         (dup_block_and_redirect): Likewise for param 3 "before".
12727
12728         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
12729         from rtx to rtx_insn *.
12730         (move_insn_for_shrink_wrap): Likewise.
12731         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
12732         (dup_block_and_redirect): Likewise for param "before" and local
12733         "insn".
12734         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
12735         "end".
12736         (convert_to_simple_return): Likewise for local "start".
12737
12738         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
12739         Strengthen local "insn" from rtx to rtx_insn *, for use when
12740         invoking requires_stack_frame_p.
12741
12742 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12743
12744         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
12745         rtx_insn *.
12746         (speculate_expr): Likewise for locals "orig_insn_rtx",
12747         "spec_insn_rtx".
12748         (eq_transformed_insns): Likewise for locals "i1", "i2".
12749         (check_for_new_jump): Likewise for return type and local "end".
12750         (find_new_jump): Likewise for return type and local "jump".
12751         (sel_split_edge): Likewise for local "jump".
12752         (sel_create_recovery_block): Likewise.
12753         (sel_redirect_edge_and_branch_force): Likewise.
12754         (sel_redirect_edge_and_branch): Likewise.
12755
12756 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12757
12758         * sel-sched.c (substitute_reg_in_expr): Strengthen local
12759         "new_insn" from rtx to rtx_insn *.
12760         (create_insn_rtx_with_rhs): Likewise for return type and for local
12761         "insn_rtx".
12762         (create_insn_rtx_with_lhs): Likewise.
12763         (create_speculation_check): Likewise for local "insn_rtx".
12764         (implicit_clobber_conflict_p): Likewise for local "insn".
12765         (get_expr_cost): Likewise.
12766         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
12767         (move_cond_jump): Likewise for locals "next", "prev", "link",
12768         "head", "from", "to".
12769
12770 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12771
12772         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
12773         "next" from rtx to rtx_insn *.
12774         (find_conditional_protection): Likewise for local "next".
12775         (is_conditionally_protected): Likewise for local "insn1".
12776         (is_pfree): Likewise for locals "insn1", "insn2".
12777
12778 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12779
12780         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
12781         from rtx to rtx_insn *.
12782
12783         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
12784         locals "insn1", "insn2" from rtx to rtx_insn *.
12785         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
12786         locals "insn", "prev", "last_jump", "next_tail".
12787         (schedule_ebb): Likewise for params "head", "tail".
12788         (schedule_ebbs): Likewise for locals "tail", "head".
12789
12790         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
12791         to rtx_insn on "last_insn" in one of the invocations of
12792         schedule_ebb.
12793
12794 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12795
12796         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
12797         "elem", "insn" from rtx to rtx_insn *.
12798         (change_spec_dep_to_hard): Likewise.
12799         (get_back_and_forw_lists): Likewise for local "con".
12800         (sd_add_dep): Likewise for locals "elem", "insn".
12801         (sd_resolve_dep): Likewise for locals "pro", "con".
12802         (sd_unresolve_dep): Likewise.
12803         (sd_delete_dep): Likewise.
12804         (chain_to_prev_insn): Likewise for local "pro".
12805         (find_inc): Likewise for locals "pro", "con".
12806
12807 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12808
12809         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
12810         to rtx_insn *.
12811         (reg_set_between_p): Strengthen local "insn" from const_rtx to
12812         const rtx_insn *.
12813         (modified_between_p): Strengthen local "insn" from rtx to
12814         rtx_insn *.
12815         (remove_reg_equal_equiv_notes_for_regno): Likewise.
12816         (keep_with_call_p): Strengthen local "i2" from const_rtx to
12817         const rtx_insn *.
12818
12819 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12820
12821         * resource.c (next_insn_no_annul): Strengthen local "next" from
12822         rtx to rtx_insn *.
12823         (mark_referenced_resources): Likewise for local "insn".
12824
12825 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12826
12827         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
12828         to rtx_insn *.
12829         (find_reloads): Likewise for param 1.
12830         (subst_reloads): Likewise for sole param.
12831         (find_equiv_reg): Likwise for param 2.
12832         (regno_clobbered_p): Likwise for param 2.
12833         (reload): Likewise for param 1.
12834
12835         * caller-save.c (save_call_clobbered_regs): Strengthen local
12836         "insn" from rtx to rtx_insn *.
12837         (insert_one_insn): Likewise for local "insn".
12838
12839         * reload.c (this_insn): Likewise for this global.
12840         (find_reloads): Likewise for param "insn".
12841         (find_reloads_toplev): Likewise.
12842         (find_reloads_address): Likewise.
12843         (subst_reg_equivs): Likewise.
12844         (update_auto_inc_notes): Likewise.
12845         (find_reloads_address_1): Likewise.
12846         (find_reloads_subreg_address): Likewise.
12847         (subst_reloads): Likewise.
12848         (find_equiv_reg): Likewise, also for local "p".
12849         (regno_clobbered_p): Likewise for param "insn".
12850
12851         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
12852         array.
12853         (spill_reg_store): Likewise for the elements of this array.
12854         (remove_init_insns): Likewise for local "equiv_insn".
12855         (will_delete_init_insn_p): Likewise for param "insn".
12856         (reload): Likewise for param ""first" and local "insn".
12857         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
12858         rtx_insn *.
12859         (calculate_elim_costs_all_insns): Likewise.
12860         (delete_caller_save_insns): Likewise.
12861         (spill_failure): Likewise for param "insn".
12862         (delete_dead_insn): Likewise.
12863         (set_label_offsets): Likewise.
12864         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
12865         "prev_insn".
12866         (elimination_costs_in_insn): Likewise for param "insn".
12867         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
12868         when referring to an insn.
12869         (set_initial_label_offsets): Likewise.
12870         (set_offsets_for_label): Strengthen param "insn" from rtx to
12871         rtx_insn *.
12872         (init_eliminable_invariants): Likewise for param "first" and local
12873         "insn".
12874         (fixup_eh_region_note): Likewise for param "insn".
12875         (reload_as_needed): Likewise for locals "prev", "insn",
12876         "old_next", "old_prev", "next".
12877         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
12878         "last".
12879         (reload_inheritance_insn): Strengthen elements of this array from
12880         rtx to rtx_insn *.
12881         (failed_reload): Likewise for param "insn".
12882         (choose_reload_regs): Likewise for local "insn".  Replace use of
12883         NULL_RTX with NULL when referring to an insn.
12884         (input_reload_insns): Strengthen elements of this array from rtx
12885         to rtx_insn *.
12886         (other_input_address_reload_insns): Likewise for this global.
12887         (other_input_reload_insns): Likewise for this global.
12888         (input_address_reload_insns): Likwise for the elements of this
12889         array.
12890         (inpaddr_address_reload_insns): Likwise for the elements of this
12891         array.
12892         (output_reload_insns): Likewise for the elements of this array.
12893         (output_address_reload_insns): Likewise for the elements of this
12894         array.
12895         (outaddr_address_reload_insns): Likewise for the elements of this
12896         array.
12897         (operand_reload_insns): Likewise for this global.
12898         (other_operand_reload_insns): Likewise for this global.
12899         (other_output_reload_insns): Likewise for the elements of this
12900         array.
12901         (new_spill_reg_store): Likewise for the elements of this
12902         array.
12903         (emit_input_reload_insns): Likewise for locals "insn", "temp".
12904         Strengthen local "where" from rtx * to rtx_insn **.
12905         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
12906         from rtx to rtx_insn *.
12907         (do_input_reload): Likewise for local "insn".
12908         (do_output_reload): Likewise for local "insn".
12909         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
12910         (emit_insn_if_valid_for_reload): Likewise for return type and local
12911         "last".  Add checked cast to rtx_insn when returning "insn" since
12912         this has been through emit_insn.
12913         (gen_reload): Strengthen return type and locals "last", "insn", "set"
12914         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
12915         returning "insn" since it's been through
12916         emit_insn_if_valid_for_reload at this point.
12917         (delete_output_reload): Strengthen param "insn" and locals
12918         "output_reload_insn", "i2" from rtx to rtx_insn *.
12919         (delete_address_reloads): Likewise for params "dead_insn",
12920         "current_insn" and locals "prev", "next".
12921         (delete_address_reloads_1): Likewise for params "dead_insn",
12922         "current_insn" and locals "prev", "i2".
12923         (inc_for_reload): Likewise for locals "last", "add_insn".
12924         (add_auto_inc_notes): Strengthen param "insn" from rtx to
12925         rtx_insn *.
12926
12927         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
12928         param of this duplicate of the prototype from reload.h
12929
12930 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12931
12932         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
12933         rtx to rtx_insn *.
12934         (regstat_bb_compute_calls_crossed): Likewise.
12935
12936 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12937
12938         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
12939         to rtx_insn *.
12940         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
12941         with an insn.
12942         (regrename_analyze): Strengthen local "insn" from rtx to
12943         rtx_insn *.
12944         (scan_rtx_reg): Likewise for param "insn".
12945         (scan_rtx_address): Likewise.
12946         (scan_rtx): Likewise.
12947         (restore_operands): Likewise.
12948         (record_out_operands): Likewise.
12949         (build_def_use): Likewise for local "insn".  Replace use of
12950         NULL_RTX with NULL when dealing with an insn.
12951
12952 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12953
12954         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
12955         * reginfo.c (reg_scan): Likewise, also for local "insn".
12956         (reg_scan_mark_refs): Likewise for param "insn".
12957         (init_subregs_of_mode): Likewise for local "insn".
12958
12959 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12960
12961         * regcprop.c (struct queued_debug_insn_change): Strengthen field
12962         "insn" from rtx to rtx_insn *.
12963         (replace_oldest_value_reg): Likewise for param "insn".
12964         (replace_oldest_value_addr): Likewise.
12965         (replace_oldest_value_mem): Likewise.
12966         (apply_debug_insn_changes): Likewise for local "last_insn".
12967         (copyprop_hardreg_forward_1): Likewise for local "insn".
12968
12969 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12970
12971         * reg-stack.c (next_flags_user): Strengthen return type and param
12972         "insn" from rtx to rtx_insn *.
12973         (straighten_stack): Likewise for param "insn".
12974         (check_asm_stack_operands): Likewise.
12975         (remove_regno_note): Likewise.
12976         (emit_pop_insn): Likewise for return type, param "insn", local
12977         "pop_insn".
12978         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
12979         "limit" from rtx to rtx_insn *.
12980         (swap_to_top): Likewise for param "insn".
12981         (move_for_stack_reg): Likewise.
12982         (move_nan_for_stack_reg): Likewise.
12983         (swap_rtx_condition): Likewise.
12984         (compare_for_stack_reg): Likewise.
12985         (subst_all_stack_regs_in_debug_insn): Likewise.
12986         (subst_stack_regs_pat): Likewise, and local "insn2".
12987         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
12988         rtx_insn *.
12989         (subst_stack_regs): Likewise.
12990         (change_stack): Likewise.
12991         (convert_regs_1): Likewise for locals "insn", "next".
12992
12993 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12994
12995         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
12996         rtx_insn *.
12997         (combine_set_extension): Likewise for param "curr_insn".
12998         (transform_ifelse): Likewise for param "def_insn".
12999         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
13000         from vec<rtx> * to vec<rtx_insn *> *.
13001         (is_cond_copy_insn): Likewise for param "insn".
13002         (struct ext_state): Strengthen the four vec fields from vec<rtx>
13003         to vec<rtx_insn *>.
13004         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
13005         local "def_insn" from rtx to rtx_insn *.
13006         (get_sub_rtx): Likewise for param "def_insn".
13007         (merge_def_and_ext): Likewise.
13008         (combine_reaching_defs): Likewise.
13009         (add_removable_extension): Likewise for param "insn".
13010         (find_removable_extensions): Likewise for local "insn".
13011         (find_and_remove_re): Likewise for locals "curr_insn" and
13012         "def_insn".  Strengthen locals "reinsn_del_list" and
13013         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
13014
13015 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13016
13017         * recog.c (split_insn): Strengthen param "insn" and locals
13018         "first", "last" from rtx to rtx_insn *.
13019         (split_all_insns): Likewise for locals "insn", "next".
13020         (split_all_insns_noflow): Likewise.
13021
13022 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13023
13024         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
13025         const rtx_insn *.
13026         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
13027         (debug_rtx_find): Likewise for param 1 "x".
13028
13029         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
13030         const_rtx to const rtx_insn *.  Likewise for local "insn".
13031         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
13032         (debug_rtx_find): Likewise for param 1 "x".
13033         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
13034         from const_rtx to const rtx_insn * within the appropriate cases of
13035         the switch statement.
13036
13037         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
13038         Strengthen local "insns" from rtx to rtx_insn * since this is
13039         passed to a call to debug_rtx_list.
13040
13041 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13042
13043         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
13044         to rtx_insn *.
13045
13046         * function.c (stack_protect_epilogue): Add checked cast to
13047         rtx_insn for now when invoking predict_insn_def.
13048
13049         * predict.c (predict_insn): Strengthen param "insn" from rtx to
13050         rtx_insn *.
13051         (predict_insn_def): Likewise.
13052         (rtl_predict_edge): Likewise for local "last_insn".
13053         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
13054         const rtx_insn *.
13055         (combine_predictions_for_insn): Strengthen param "insn" from rtx
13056         to rtx_insn *.
13057         (bb_estimate_probability_locally): Likewise for local "last_insn".
13058         (expensive_function_p): Likewise for local "insn".
13059
13060         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
13061         local "jmp", since this is used when invoking predict_insn_def.
13062
13063 2014-08-22  Marek Polacek  <polacek@redhat.com>
13064
13065         PR c++/62199
13066         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
13067
13068 2014-08-22  Marek Polacek  <polacek@redhat.com>
13069
13070         PR c/61271
13071         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
13072         a comparison in parens.
13073         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
13074         in parens.
13075
13076 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13077
13078         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
13079         rtx_insn *.
13080
13081         * cprop.c (fis_get_condition): Likewise.
13082
13083         * postreload.c (reload_cse_regs): Likewise for param "first".
13084         (reload_cse_simplify): Likewise for param "insn".
13085         (reload_cse_regs_1): Likewise for local "insn".
13086         (reload_cse_simplify_set): Likewise for param "insn".
13087         (reload_cse_simplify_operands): Likewise.
13088         (struct reg_use): Likewise for field "insn".
13089         (reload_combine_purge_insn_uses): Likewise for param "insn".
13090         (fixup_debug_insns): Likewise for params "from", "to" and local
13091         "insn".
13092         (try_replace_in_use): Likewise for local "use_insn".
13093         (reload_combine_recognize_const_pattern): Likewise for param
13094         "insn" and locals "add_moved_after_insn", "use_insn".
13095         (reload_combine_recognize_pattern): Likewise for param "insn" and
13096         local "prev".
13097         (reload_combine): Likewise for locals "insn", "prev".
13098         (reload_combine_note_use): Likewise for param "insn".
13099         (move2add_use_add2_insn): Likewise.
13100         (move2add_use_add3_insn): Likewise.
13101         (reload_cse_move2add): Likewise, also for local "next".
13102         (move2add_note_store): Likewise for local "insn".
13103
13104 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13105
13106         * postreload-gcse.c (struct occr): Strengthen field "insn" from
13107         rtx to rtx_insn *.
13108         (struct unoccr): Likewise.
13109         (struct modifies_mem): Likewise.
13110         (alloc_mem): Likewise for local "insn".
13111         (insert_expr_in_table): Likewise for param "insn".
13112         (dump_expr_hash_table_entry): Likewise for local "insn".
13113         (oprs_unchanged_p): Likewise for param "insn".
13114         (load_killed_in_block_p): Likewise for local "setter".
13115         (record_last_reg_set_info): Likewise for param "insn".
13116         (record_last_reg_set_info_regno): Likewise.
13117         (record_last_mem_set_info): Likewise.
13118         (record_last_set_info): Likewise for local "last_set_insn".
13119         (record_opr_changes): Likewise for param "insn".
13120         (hash_scan_set): Likewise.
13121         (compute_hash_table): Likewise for local "insn".
13122         (get_avail_load_store_reg): Likewise for param "insn".
13123         (eliminate_partially_redundant_load): Likewise, also for locals
13124         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
13125         RTX for insns.
13126         (eliminate_partially_redundant_loads): Likewise for local "insn".
13127
13128 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13129
13130         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
13131         rtx to rtx_insn *.
13132         (expand_binop): Likewise for locals "entry_last", "last", "insns"
13133         (expand_twoval_unop): Likewise for locals entry_last", "last".
13134         (expand_twoval_binop): Likewise.
13135         (expand_twoval_binop_libfunc): Likewise for local "insns".
13136         (widen_leading): Likewise for local "last".
13137         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
13138         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
13139         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
13140         (expand_parity): Likewise for locals "last" and "seq".
13141         (expand_ffs): Likewise for local "seq".  Strengthen local
13142         "nonzero_label" from rtx to rtx_code_label *.
13143         (expand_absneg_bit): Strengthen local "insns" from rtx to
13144         rtx_insn *.
13145         (expand_unop_direct): Likewise for local "last".
13146         (expand_unop): Likewise for locals "last", "insns".
13147         (expand_abs_nojump): Likewise for local "last".
13148         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
13149         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
13150         rtx_insn *.
13151         (expand_copysign_absneg): Strengthen local "label" from rtx to
13152         rtx_code_label *.
13153         (expand_copysign_bit): Strengthen local "insns" from rtx to
13154         rtx_insn *.
13155         (struct no_conflict_data): Likewise for fields "first", "insn".
13156         (emit_libcall_block_1): Likewise for param "insns" and locals
13157         "next", "last", "insn".
13158         (emit_libcall_block): For now, add a checked cast to rtx_insn *
13159         on "insns" when invoking emit_libcall_block_1.  Ultimately we
13160         want to strengthen insns itself.
13161         (prepare_cmp_insn): Strengthen local "last" from rtx to
13162         rtx_insn *.
13163         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
13164         (prepare_float_lib_cmp): Likewise for local "insns".
13165         (emit_conditional_move): Likewise for local "last".
13166         (emit_conditional_add): Likewise.
13167         (have_sub2_insn): Likewise for local "seq".
13168         (expand_float): Likewise for local "insns".  Strengthen locals
13169         "label", "neglabel" from rtx to rtx_code_label *.
13170         (expand_fix): Likewise for locals "last", "insn", "insns" (to
13171         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
13172         (expand_fixed_convert): Likewise for local "insns" (to
13173         rtx_insn *).
13174         (expand_sfix_optab): Likewise for local "last".
13175         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
13176         to rtx_code_label *.
13177         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
13178         from rtx to rtx_insn *.
13179         (expand_atomic_fetch_op): Likewise for local "insn".
13180         (maybe_legitimize_operand_same_code): Likewise for local "last".
13181         (maybe_legitimize_operands): Likewise.
13182
13183 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13184
13185         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
13186         "insn" from rtx to rtx_insn *.
13187         (ps_rtl_insn): Likewise for return type.
13188         (doloop_register_get): Likewise for params "head", "tail" and
13189         locals "insn", "first_insn_not_to_check".
13190         (schedule_reg_move): Likewise for local "this_insn".
13191         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
13192         of gen_move_insn for now.
13193         (reset_sched_times): Strengthen local "insn" from rtx to
13194         rtx_insn *.
13195         (permute_partial_schedule): Likewise.
13196         (duplicate_insns_of_cycles): Likewise for local "u_insn".
13197         (dump_insn_location): Likewise for param "insn".
13198         (loop_canon_p): Likewise for local "insn".
13199         (sms_schedule): Likewise.
13200         (print_partial_schedule): Likewise.
13201         (ps_has_conflicts): Likewise.
13202
13203 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13204
13205         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
13206         "tailp" from rtx * to rtx_insn **.
13207
13208         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
13209         from rtx to rtx_insn *.
13210         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
13211         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
13212         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
13213         rtx to rtx_insn *.
13214         * modulo-sched.c (const_iteration_count): Strengthen return type
13215         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
13216         use of NULL_RTX with NULL when working with insns.
13217         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
13218         to rtx_insn *.
13219         (sms_schedule): Likewise.
13220         * sched-rgn.c (init_ready_list): Likewise, also for locals
13221         "src_head" and "src_next_tail".
13222         (compute_block_dependences): Likewise.
13223         (free_block_dependencies): Likewise.
13224         (debug_rgn_dependencies): Likewise.
13225         (free_rgn_deps): Likewise.
13226         (compute_priorities): Likewise.
13227         (schedule_region): Likewise.
13228         * sel-sched.c (find_ebb_boundaries): Likewise.
13229
13230         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
13231         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
13232
13233 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13234
13235         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
13236         from rtx to rtx_insn *.
13237         (new_seginfo): Likewise for param "insn".
13238         (create_pre_exit): Likewise for locals "last_insn",
13239         "before_return_copy", "return_copy".
13240         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
13241         "mode_set".
13242
13243 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13244
13245         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
13246         from rtx to rtx_insn *.
13247         (lra_push_insn): Likewise for 1st param.
13248         (lra_push_insn_and_update_insn_regno_info): Likewise.
13249         (lra_pop_insn): Likewise for return type.
13250         (lra_invalidate_insn_data): Likewise for 1st param.
13251         (lra_set_insn_deleted): Likewise.
13252         (lra_delete_dead_insn): Likewise.
13253         (lra_process_new_insns): Likewise for first 3 params.
13254         (lra_set_insn_recog_data): Likewise for 1st param.
13255         (lra_update_insn_recog_data): Likewise.
13256         (lra_set_used_insn_alternative): Likewise.
13257         (lra_invalidate_insn_regno_info): Likewise.
13258         (lra_update_insn_regno_info): Likewise.
13259         (lra_former_scratch_operand_p): Likewise.
13260         (lra_eliminate_regs_1): Likewise.
13261         (lra_get_insn_recog_data): Likewise.
13262
13263         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
13264         rtx to rtx_insn *.
13265
13266         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
13267         "mv1" and "mv2".
13268         (substitute_within_insn): New.
13269         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
13270         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
13271         Replace call to "substitute" with call to substitute_within_insn.
13272
13273         * lra-constraints.c (curr_insn): Strengthen from rtx to
13274         rtx_insn *.
13275         (get_equiv_with_elimination): Likewise for param "insn".
13276         (match_reload): Strengthen params "before" and "after" from rtx *
13277         to rtx_insn **.
13278         (emit_spill_move): Likewise for return type.  Add a checked cast
13279         to rtx_insn * on result of gen_move_insn for now.
13280         (check_and_process_move): Likewise for local "before".  Replace
13281         NULL_RTX with NULL when referring to insns.
13282         (process_addr_reg): Strengthen params "before" and "after" from
13283         rtx * to rtx_insn **.
13284         (insert_move_for_subreg): Likewise.
13285         (simplify_operand_subreg): Strengthen locals "before" and "after"
13286         from rtx to rtx_insn *.
13287         (process_address_1): Strengthen params "before" and "after" from
13288         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
13289         rtx to rtx_insn *.
13290         (process_address): Strengthen params "before" and "after" from
13291         rtx * to rtx_insn **.
13292         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
13293         (curr_insn_transform): Strengthen locals "before" and "after"
13294         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
13295         to insns.
13296         (loc_equivalence_callback): Update cast of "data", changing
13297         resulting type from rtx to rtx_insn *.
13298         (substitute_pseudo_within_insn): New.
13299         (inherit_reload_reg): Strengthen param "insn" from rtx to
13300         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
13301         NULL when referring to insns.  Add a checked cast to rtx_insn *
13302         when using usage_insn to invoke lra_update_insn_regno_info.
13303         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
13304         likewise for locals "restore", "save".  Add checked casts to
13305         rtx_insn * when using usage_insn to invoke
13306         lra_update_insn_regno_info and lra_process_new_insns.  Replace
13307         NULL_RTX with NULL when referring to insns.
13308         (split_if_necessary): Strengthen param "insn" from rtx to
13309         rtx_insn *.
13310         (update_ebb_live_info): Likewise for params "head", "tail" and local
13311         "prev_insn".
13312         (get_last_insertion_point): Likewise for return type and local "insn".
13313         (get_live_on_other_edges): Likewise for local "last".
13314         (inherit_in_ebb): Likewise for params "head", "tail" and locals
13315         "prev_insn", "next_insn", "restore".
13316         (remove_inheritance_pseudos): Likewise for local "prev_insn".
13317         (undo_optional_reloads): Likewise for local "insn".
13318
13319         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
13320         "insn".
13321         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
13322         insns.
13323         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
13324         rtx_insn *.
13325         (spill_pseudos): Likewise for local "insn".
13326         (init_elimination): Likewise.
13327         (process_insn_for_elimination): Likewise for param "insn".
13328
13329         * lra-lives.c (curr_insn): Likewise.;
13330
13331         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
13332         (remove_pseudos): Likewise for param "insn".
13333         (spill_pseudos): Likewise for local "insn".
13334         (lra_final_code_change): Likewise for locals "insn", "curr".
13335
13336         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
13337         (lra_set_insn_deleted): Likewise.
13338         (lra_delete_dead_insn): Likewise, and for local "prev".
13339         (new_insn_reg): Likewise for param "insn".
13340         (lra_set_insn_recog_data): Likewise.
13341         (lra_update_insn_recog_data): Likewise.
13342         (lra_set_used_insn_alternative): Likewise.
13343         (get_insn_freq): Likewise.
13344         (invalidate_insn_data_regno_info): Likewise.
13345         (lra_invalidate_insn_regno_info): Likewise.
13346         (lra_update_insn_regno_info): Likewise.
13347         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
13348         vec<rtx_insn *>.
13349         (lra_push_insn_1): Strengthen param "insn" from rtx to
13350         rtx_insn *.
13351         (lra_push_insn): Likewise.
13352         (lra_push_insn_and_update_insn_regno_info): Likewise.
13353         (lra_pop_insn): Likewise for return type and local "insn".
13354         (push_insns): Likewise for params "from", "to", and local "insn".
13355         (setup_sp_offset): Likewise for params "from", "last" and locals
13356         "before", "insn".
13357         (lra_process_new_insns): Likewise for params "insn", "before",
13358         "after" and local "last".
13359         (struct sloc): Likewise for field "insn".
13360         (lra_former_scratch_operand_p): Likewise for param "insn".
13361         (remove_scratches): Likewise for locals "insn", "last".
13362         (check_rtl): Likewise for local "insn".
13363         (add_auto_inc_notes): Likewise for param "insn".
13364         (update_inc_notes): Likewise for local "insn".
13365         (lra): Replace NULL_RTX with NULL when referring to insn.
13366
13367 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13368
13369         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
13370         to rtx_insn *.
13371         (resolve_reg_notes): Likewise.
13372         (resolve_simple_move): Likewise for return type, param "insn", and
13373         locals "insns", "minsn".
13374         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
13375         (resolve_use): Likewise.
13376         (resolve_debug): Likewise.
13377         (find_decomposable_shift_zext): Likewise.
13378         (resolve_shift_zext): Likewise for return type, param "insn", and
13379         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
13380         (decompose_multiword_subregs): Likewise for local "insn",
13381         "orig_insn", "decomposed_shift", "end".
13382
13383 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13384
13385         * basic-block.h (basic_block split_edge_and_insert): Strengthen
13386         param "insns" from rtx to rtx_insn *.
13387
13388         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
13389         rtx to rtx_insn *.
13390         (struct iv_to_split): Likewise.
13391         (loop_exit_at_end_p): Likewise for local "insn".
13392         (split_edge_and_insert): Likewise for param "insns".
13393         (compare_and_jump_seq): Likewise for return type, param "cinsn",
13394         and locals "seq", "jump".
13395         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
13396         "branch_code"; update invocations of compare_and_jump_seq to
13397         eliminate NULL_RTX in favor of NULL.
13398         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
13399         rtx to rtx_insn *.
13400         (reset_debug_uses_in_loop): Likewise.
13401         (analyze_insn_to_expand_var): Likewise for param "insn".
13402         (analyze_iv_to_split_insn): Likewise.
13403         (analyze_insns_in_loop): Likewise for local "insn".
13404         (insert_base_initialization): Likewise for param
13405         "insn" and local "seq".
13406         (split_iv): Likewise for param "insn" and local "seq".
13407         (expand_var_during_unrolling): Likewise for param "insn".
13408         (insert_var_expansion_initialization): Likewise for local "seq".
13409         (combine_var_copies_in_loop_exit): Likewise.
13410         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
13411         "insn".
13412         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
13413         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
13414         "next".
13415
13416 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13417
13418         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
13419         rtx_insn *.
13420         (iv_analyze_result): Likewise.
13421         (iv_analyze_expr): Likewise.
13422         (biv_p): Likewise.
13423
13424         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
13425         local "def_insn" from rtx to rtx_insn *.
13426         (get_biv_step_1): Likewise for local "insn".
13427         (iv_analyze_expr): Likewise for param "insn".
13428         (iv_analyze_def): Likewise for local "insn".
13429         (iv_analyze_op): Likewise for param "insn".
13430         (iv_analyze): Likewise.
13431         (iv_analyze_result): Likewise.
13432         (biv_p): Likewise.
13433         (suitable_set_for_replacement): Likewise.
13434         (simplify_using_initial_values): Likewise for local "insn".
13435         (iv_number_of_iterations): Likewise for param "insn".
13436         (check_simple_exit): Add checked cast to rtx_insn when invoking
13437         iv_number_of_iterations for now (until get_condition is
13438         strengthened).
13439
13440         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
13441         "insn" from rtx to rtx_insn *.
13442         (analyze_insns_in_loop): Likewise for local "insn".
13443
13444 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13445
13446         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
13447         to rtx_insn *.
13448         (struct invariant): Likewise.
13449         (hash_invariant_expr_1): Likewise for param "insn".
13450         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
13451         (find_exits): Likewise for local "insn".
13452         (create_new_invariant): Likewise for param "insn".
13453         (check_dependencies): Likewise.
13454         (find_invariant_insn): Likewise.
13455         (record_uses): Likewise.
13456         (find_invariants_insn): Likewise.
13457         (find_invariants_bb): Likewise for local "insn".
13458         (get_pressure_class_and_nregs): Likewise for param "insn".
13459         (calculate_loop_reg_pressure): Likewise for local "insn".
13460
13461 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13462
13463         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
13464         to rtx_insn *.
13465         (add_test): Likewise for locals "seq", "jump".
13466         (doloop_modify): Likewise for locals "sequence", "jump_insn".
13467
13468 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13469
13470         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
13471         rtx_insn *.
13472         (rebuild_jump_labels_chain): Likewise for param "chain".
13473
13474         * cfgexpand.c (pass_expand::execute): Add checked cast to
13475         rtx_insn * when calling rebuild_jump_labels_chain in region where
13476         we know e->insns.r is non-NULL.
13477
13478         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
13479         rtx_insn *.
13480         (rebuild_jump_labels): Likewise.
13481         (rebuild_jump_labels_chain): Likewise for param "chain".
13482         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
13483         (init_label_info): Likewise for param "f".
13484         (maybe_propagate_label_ref): Likewise for params "jump_insn",
13485         "prev_nonjump_insn".
13486         (mark_all_labels): Likewise for param "f" and locals "insn",
13487         "prev_nonjump_insn".
13488
13489 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13490
13491         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
13492         from rtx to rtx_insn *insn.
13493         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
13494         (ira_add_allocno_copy): Likewise.
13495         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
13496         rtx to rtx_insn *.
13497         (ira_create_copy): Likewise.
13498         (ira_add_allocno_copy): Likewise.
13499         (create_bb_allocnos): Likewise for local "insn".
13500         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
13501         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
13502         process_regs_for_copy for rtx_insn * param.
13503         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
13504         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
13505         process_regs_for_copy for rtx_insn * param.
13506         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
13507         * ira-costs.c (record_reg_classes): Likewise for param "insn".
13508         (record_operand_costs): Likewise.
13509         (scan_one_insn): Likewise for return type, and for param "insn".
13510         (process_bb_for_costs): Likewise for local "insn".
13511         (process_bb_node_for_hard_reg_moves): Likewise.
13512         * ira-emit.c (struct move): Likewise for field "insn".
13513         (create_move): Eliminate use of NULL_RTX when dealing with an
13514         rtx_insn *.
13515         (emit_move_list): Strengthen return type and locals "result",
13516         "insn" from rtx to rtx_insn *insn.
13517         (emit_moves): Likewise for locals "insns", "tmp".
13518         (ira_emit): Likewise for local "insn".
13519         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
13520         "insn".
13521         (find_call_crossed_cheap_reg): Likewise.
13522         (process_bb_node_lives): Likewise for local "insn".
13523         * ira.c (decrease_live_ranges_number): Likewise.
13524         (compute_regs_asm_clobbered): Likewise.
13525         (build_insn_chain): Likewise.
13526         (find_moveable_pseudos): Likewise, also locals "def_insn",
13527         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
13528         to rtx_insn **.  Add a checked cast when assigning from
13529         "closest_use" into closest_uses array in a region where we know
13530         it's a non-NULL insn.
13531         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
13532         to rtx_insn *.
13533         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
13534         "last_interesting_insn", "uin".
13535         (move_unallocated_pseudos): Likewise for locals "def_insn",
13536         "move_insn", "newinsn".
13537
13538 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13539
13540         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
13541         Strengthen locals "done_label", "do_error" from rtx to
13542         rtx_code_label *.
13543         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
13544         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
13545         rtx_code_label *.
13546         (ubsan_expand_si_overflow_neg_check): Likewise for locals
13547         "done_label", "do_error" to rtx_code_label * and local  "last" to
13548         rtx_insn *.
13549         (ubsan_expand_si_overflow_mul_check): Likewise for locals
13550         "done_label", "do_error", "large_op0", "small_op0_large_op1",
13551         "one_small_one_large", "both_ops_large", "after_hipart_neg",
13552         "after_lopart_neg", "do_overflow", "hipart_different"  to
13553         rtx_code_label * and local  "last" to rtx_insn *.
13554
13555 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13556
13557         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
13558         "insn" and "move_insn" from rtx to rtx_insn *.
13559
13560 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13561
13562         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
13563         rtx_insn *.
13564         (cheap_bb_rtx_cost_p): Likewise.
13565         (first_active_insn): Likewise for return type and local "insn".
13566         (last_active_insn):  Likewise for return type and locals "insn",
13567         "head".
13568         (struct noce_if_info): Likewise for fields "jump", "insn_a",
13569         "insn_b".
13570         (end_ifcvt_sequence): Likewise for return type and locals "insn",
13571         "seq".
13572         (noce_try_move): Likewise for local "seq".
13573         (noce_try_store_flag): Likewise.
13574         (noce_try_store_flag_constants): Likewise.
13575         (noce_try_addcc): Likewise.
13576         (noce_try_store_flag_mask): Likewise.
13577         (noce_try_cmove): Likewise.
13578         (noce_try_minmax): Likewise.
13579         (noce_try_abs): Likewise.
13580         (noce_try_sign_mask): Likewise.
13581         (noce_try_bitop): Likewise.
13582         (noce_can_store_speculate_p): Likewise for local "insn".
13583         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
13584         seq".
13585         (check_cond_move_block): Likewise for local "insn".
13586         (cond_move_convert_if_block): Likewise.
13587         (cond_move_process_if_block): Likewise for locals "seq",
13588         "loc_insn".
13589         (noce_find_if_block): Likewise for local "jump".
13590         (merge_if_block): Likewise for local "last".
13591         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
13592         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
13593         (block_has_only_trap): Likewise for return type and local "trap".
13594         (find_if_case_1): Likewise for local "jump".
13595         (dead_or_predicable): Likewise for locals "head", "end", "jump",
13596         "insn".
13597
13598 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13599
13600         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
13601         "last_insn", "loop_end" from rtx to rtx_insn *.
13602
13603         * hw-doloop.c (scan_loop): Likewise for local "insn".
13604         (discover_loop): Likewise for param "tail_insn".
13605         (discover_loops): Likewise for local "tail".
13606
13607         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
13608         cast to rtx_insn * when assigning from an rtx local to a
13609         hwloop_info's "last_insn" field.
13610
13611 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13612
13613         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
13614         (add_delay_dependencies): Strengthen local "pro" from rtx to
13615         rtx_insn *.
13616         (recompute_todo_spec): Likewise.
13617         (dep_cost_1): Likewise for locals "insn", "used".
13618         (schedule_insn): Likewise for local "dbg".
13619         (schedule_insn): Likewise for locals "pro", "next".
13620         (unschedule_insns_until): Likewise for local "con".
13621         (restore_pattern): Likewise for local "next".
13622         (estimate_insn_tick): Likewise for local "pro".
13623         (resolve_dependencies): Likewise for local "next".
13624         (fix_inter_tick): Likewise.
13625         (fix_tick_ready): Likewise for local "pro".
13626         (add_to_speculative_block): Likewise for locals "check", "twin",
13627         "pro".
13628         (sched_extend_bb): Likewise for locals "end", "insn".
13629         (init_before_recovery): Likewise for local "x".
13630         (sched_create_recovery_block): Likewise for local "barrier".
13631         (create_check_block_twin): Likewise for local "pro".
13632         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
13633         "consumer".
13634         (unlink_bb_notes): Update for change to type of bb_header.
13635         Strengthen locals "prev", "label", "note", "next" from rtx to
13636         rtx_insn *.
13637         (clear_priorities): Likewise for local "pro".
13638
13639 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13640
13641         * gcse.c (struct occr): Strengthen field "insn" from rtx to
13642         rtx_insn *.
13643         (test_insn): Likewise for this global.
13644         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
13645         const rtx_insn *.
13646         (oprs_anticipatable_p): Likewise.
13647         (oprs_available_p): Likewise.
13648         (insert_expr_in_table): Strengthen param "insn" from  rtx to
13649         rtx_insn *.
13650         (hash_scan_set): Likewise.
13651         (hash_scan_clobber): Likewise.
13652         (hash_scan_call): Likewise.
13653         (hash_scan_insn): Likewise.
13654         (compute_hash_table_work): Likewise for local "insn".
13655         (process_insert_insn): Likewise for return type and local "pat".
13656         (insert_insn_end_basic_block): Likewise for locals "new_insn",
13657         "pat", "pat_end", "maybe_cc0_setter".
13658         (pre_edge_insert): Likewise for local "insn".
13659         (pre_insert_copy_insn): Likewise for param "insn".
13660         (pre_insert_copies): Likewise for local "insn".
13661         (struct set_data): Likewise for field "insn".
13662         (single_set_gcse): Likewise for param "insn".
13663         (gcse_emit_move_after): Likewise.
13664         (pre_delete): Likewise for local "insn".
13665         (update_bb_reg_pressure): Likewise for param "from" and local
13666         "insn".
13667         (should_hoist_expr_to_dom): Likewise for param "from".
13668         (hoist_code): Likewise for local "insn".
13669         (get_pressure_class_and_nregs): Likewise for param "insn".
13670         (calculate_bb_reg_pressure): Likewise for local "insn".
13671         (compute_ld_motion_mems): Likewise.
13672
13673 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13674
13675         * genpeep.c (main): Rename param back from "uncast_ins1" to
13676         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
13677         checked cast.
13678
13679         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
13680
13681 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
13682
13683         PR target/62195
13684         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
13685         documentation to state it is only for VSX operations.
13686
13687         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
13688         constraint only active if VSX.
13689
13690         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
13691         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
13692         (lfiwzx): Likewise.
13693
13694 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13695
13696         * fwprop.c (single_def_use_dom_walker::before_dom_children):
13697         Strengthen local "insn" from rtx to rtx_insn *.
13698         (use_killed_between): Likewise for param "target_insn".
13699         (all_uses_available_at): Likewise for param "target_insn" and
13700         local "next".
13701         (update_df_init): Likewise for params "def_insn", "insn".
13702         (update_df): Likewise for param "insn".
13703         (try_fwprop_subst): Likewise for param "def_insn" and local
13704         "insn".
13705         (free_load_extend): Likewise for param "insn".
13706         (forward_propagate_subreg): Likewise for param "def_insn" and
13707         local "use_insn".
13708         (forward_propagate_asm): Likewise for param "def_insn" and local
13709         "use_insn".
13710         (forward_propagate_and_simplify): Likewise for param "def_insn"
13711         and local "use_insn".
13712         (forward_propagate_into): Likewise for locals "def_insn" and
13713         "use_insn".
13714
13715 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13716
13717         * function.c (emit_initial_value_sets): Strengthen local "seq"
13718         from rtx to rtx_insn *.
13719         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
13720         local "seq".
13721         (instantiate_virtual_regs): Likewise for local "insn".
13722         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
13723         (reorder_blocks_1): Likewise for param "insns" and local "insn".
13724         (expand_function_end): Likewise for locals "insn" and "seq".
13725         (epilogue_done): Likewise for local "insn".
13726         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
13727         "last", "trial".
13728         (reposition_prologue_and_epilogue_notes): Likewise for locals
13729         "insn", "last", "note", "first".
13730         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
13731         (pass_match_asm_constraints::execute): Likewise for local "insn".
13732
13733 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13734
13735         * output.h (final_scan_insn): Strengthen return type from rtx to
13736         rtx_insn *.
13737         (final_forward_branch_p): Likewise for param.
13738         (current_output_insn): Likewise for this global.
13739
13740         * final.c (rtx debug_insn): Likewise for this variable.
13741         (current_output_insn): Likewise.
13742         (get_attr_length_1): Rename param "insn" to "uncast_insn",
13743         adding "insn" back in as an rtx_insn * with a checked cast, so
13744         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
13745         first param.
13746         (compute_alignments): Strengthen local "label" from rtx to
13747         rtx_insn *.
13748         (shorten_branches): Rename param from "first" to "uncast_first",
13749         introducing a new local rtx_insn * "first" using a checked cast to
13750         effectively strengthen "first" from rtx to rtx_insn * without
13751         affecting the type signature.  Strengthen locals "insn", "seq",
13752         "next", "label" from rtx to rtx_insn *.
13753         (change_scope): Strengthen param "orig_insn" and local "insn" from
13754         rtx to rtx_insn *.
13755         (final_start_function): Rename param from "first" to "uncast_first",
13756         introducing a new local rtx_insn * "first" using a checked cast to
13757         effectively strengthen "first" from rtx to rtx_insn * without
13758         affecting the type signature.  Strengthen local "insn" from rtx to
13759         rtx_insn *.
13760         (dump_basic_block_info): Strengthen param "insn" from rtx to
13761         rtx_insn *.
13762         (final): Rename param from "first" to "uncast_first",
13763         introducing a new local rtx_insn * "first" using a checked cast to
13764         effectively strengthen "first" from rtx to rtx_insn * without
13765         affecting the type signature.  Strengthen locals "insn", "next"
13766         from rtx to rtx_insn *.
13767         (output_alternate_entry_point): Strengthen param "insn" from rtx to
13768         rtx_insn *.
13769         (call_from_call_insn): Strengthen param "insn" from rtx to
13770         rtx_call_insn *.
13771         (final_scan_insn): Rename param from "insn" to "uncast_insn",
13772         introducing a new local rtx_insn * "insn" using a checked cast to
13773         effectively strengthen "insn" from rtx to rtx_insn * without
13774         affecting the type signature.  Strengthen return type and locals
13775         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
13776         now-redundant checked cast to rtx_insn * from both invocations of
13777         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
13778         introducing a local "call_insn" for use when invoking
13779         call_from_call_insn.
13780         (notice_source_line): Strengthen param "insn" from rtx to
13781         rtx_insn *.
13782         (leaf_function_p): Likewise for local "insn".
13783         (final_forward_branch_p): Likewise.
13784         (leaf_renumber_regs): Likewise for param "first".
13785         (rest_of_clean_state): Likewise for locals "insn" and "next".
13786         (self_recursive_call_p): Likewise for param "insn".
13787         (collect_fn_hard_reg_usage): Likewise for local "insn".
13788         (get_call_fndecl): Likewise for param "insn".
13789         (get_call_cgraph_rtl_info): Likewise.
13790         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
13791         introducing a new local rtx_insn * "insn" using a checked cast to
13792         effectively strengthen "insn" from rtx to rtx_insn * without
13793         affecting the type signature.
13794
13795         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
13796         cast when assigning from param "insn" to current_output_insn.
13797         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
13798         so that we can assign it back to current_output_insn.
13799
13800 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13801
13802         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
13803         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
13804         atmxt540s and atmxt540sreva devices.
13805         * config/avr/avr-tables.opt: Regenerate.
13806         * config/avr/t-multilib: Regenerate.
13807         * doc/avr-mmcu.texi: Regenerate.
13808
13809 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13810
13811         * expr.c (convert_move): Strengthen local "insns" from rtx to
13812         rtx_insn *.
13813         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
13814         "top_label" from rtx to rtx_code_label *.
13815         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
13816         rtx_insn *.
13817         (emit_single_push_insn): Likewise for locals "prev", "last".
13818         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
13819         to rtx_code_label *.
13820         (store_constructor): Likewise for locals "loop_start", "loop_end".
13821         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
13822         rtx_insn *.
13823         (expand_expr_real_2): Likewise.
13824         (expand_expr_real_1): Strengthen local "label" from rtx to
13825         rtx_code_label *.
13826
13827 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13828
13829         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
13830         from rtx to rtx_insn *.
13831         (store_bit_field_1): Likewise.
13832         (extract_bit_field_1): Likewise.
13833         (expand_mult_const): Likewise for local "insns".
13834         (expmed_mult_highpart): Strengthen local "label" from rtx to
13835         rtx_code_label *.
13836         (expand_smod_pow2): Likewise.
13837         (expand_sdiv_pow2): Likewise.
13838         (expand_divmod): Strengthen locals "last", "insn" from rtx to
13839         rtx_insn *.  Strengthen locals "label", "label1", "label2",
13840         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
13841         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
13842         (emit_store_flag): Likewise.
13843         (emit_store_flag_force): Strengthen local "label" from rtx to
13844         rtx_code_label *.
13845         (do_cmp_and_jump): Likewise for param "label".
13846
13847 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13848
13849         * explow.c (force_reg): Strengthen local "insn" from rtx to
13850         rtx_insn *.
13851         (adjust_stack_1): Likewise.
13852         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
13853         "final_label", "available_label", "space_available" from rtx to
13854         rtx_code_label *.
13855         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
13856         (anti_adjust_stack_and_probe): Likewise.
13857
13858 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13859
13860         * except.h (sjlj_emit_function_exit_after): Strengthen param
13861         "after" from rtx to rtx_insn *.  This is only called with
13862         result of get_last_insn (in function.c) so type-change should be
13863         self-contained.
13864
13865         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
13866         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
13867         to rtx_insn *.  These fields are only used from except.c so this
13868         type-change should be self-contained to this patch.
13869
13870         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
13871         local "last" from rtx to rtx_insn *.
13872         (dw2_build_landing_pads): Likewise for local "seq".
13873         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
13874         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
13875         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
13876         rtx to rtx_insn *.
13877         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
13878         to rtx_insn *.
13879         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
13880         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
13881         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
13882         referring to an insn.  Strengthen local "dispatch_label" from
13883         rtx to rtx_code_label *.
13884         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
13885         rtx_insn *.
13886         (expand_eh_return): Strengthen local "around_label" from
13887         rtx to rtx_code_label *.
13888         (convert_to_eh_region_ranges): Strengthen locals "iter",
13889         "last_action_insn", "first_no_action_insn",
13890         "first_no_action_insn_before_switch",
13891         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
13892
13893 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13894
13895         * dwarf2out.c (last_var_location_insn): Strengthen this variable
13896         from rtx to rtx_insn *.
13897         (cached_next_real_insn): Likewise.
13898         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
13899         working with insns.
13900         (dwarf2out_var_location): Strengthen locals "next_real",
13901         "next_note", "expected_next_loc_note", "last_start", "insn" from
13902         rtx to rtx_insn *.
13903
13904 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13905
13906         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
13907         from rtx to rtx_insn *.
13908         (create_pseudo_cfg): Likewise for local "insn".
13909
13910 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13911
13912         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
13913         from rtx to rtx_insn *.
13914         (df_bb_regno_last_def_find): Likewise.
13915
13916         * df-problems.c (df_rd_bb_local_compute): Likewise.
13917         (df_lr_bb_local_compute): Likewise.
13918         (df_live_bb_local_compute): Likewise.
13919         (df_chain_remove_problem): Likewise.
13920         (df_chain_create_bb): Likewise.
13921         (df_word_lr_bb_local_compute): Likewise.
13922         (df_remove_dead_eq_notes): Likewise for param "insn".
13923         (df_note_bb_compute): Likewise for local "insn".
13924         (simulate_backwards_to_point): Likewise.
13925         (df_md_bb_local_compute): Likewise.
13926
13927         * df-scan.c (df_scan_free_bb_info): Likewise.
13928         (df_scan_start_dump): Likewise.
13929         (df_scan_start_block): Likewise.
13930         (df_install_ref_incremental): Likewise for local "insn".
13931         (df_insn_rescan_all): Likewise.
13932         (df_reorganize_refs_by_reg_by_insn): Likewise.
13933         (df_reorganize_refs_by_insn_bb): Likewise.
13934         (df_recompute_luids): Likewise.
13935         (df_bb_refs_record): Likewise.
13936         (df_update_entry_exit_and_calls): Likewise.
13937         (df_bb_verify): Likewise.
13938
13939 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13940
13941         * ddg.h (struct ddg_node): Strengthen fields "insn" and
13942         "first_note" from rtx to rtx_insn *.
13943         (get_node_of_insn): Likewise for param 2 "insn".
13944         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13945
13946         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
13947         rtx_insn *.
13948         (mem_write_insn_p): Likewise.
13949         (mem_access_insn_p): Likewise.
13950         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13951         (def_has_ccmode_p): Likewise for param "insn".
13952         (add_cross_iteration_register_deps): Likewise for locals
13953         "def_insn" and "use_insn".
13954         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
13955         (build_intra_loop_deps): Likewise for local "src_insn".
13956         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
13957         to rtx_insn *.
13958         (get_node_of_insn): Likewise for param "insn".
13959
13960 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13961
13962         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
13963         (deletable_insn_p): Strengthen param "insn" from rtx to
13964         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
13965         find_call_stack_args, since this is guarded by CALL_P (insn).
13966         (marked_insn_p): Strengthen param "insn" from rtx to
13967         rtx_insn *.
13968         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
13969         invoking find_call_stack_args, since this is guarded by
13970         CALL_P (insn).
13971         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
13972         rtx_insn *; we know this is an insn since this was called by
13973         mark_nonreg_stores.
13974         (mark_nonreg_stores_2): Likewise.
13975         (mark_nonreg_stores): Strengthen param "insn" from rtx to
13976         rtx_insn *.
13977         (find_call_stack_args): Strengthen param "call_insn" from rtx to
13978         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
13979         to rtx_insn *.
13980         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
13981         from rtx to rtx_insn *.
13982         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
13983         "next", "ref_insn".
13984         (delete_unmarked_insns): Likewise for locals "insn", "next".
13985         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
13986         (mark_reg_dependencies): Likewise for param "insn".
13987         (rest_of_handle_ud_dce): Likewise for local "insn".
13988         (word_dce_process_block): Likewise.
13989         (dce_process_block): Likewise.
13990
13991 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13992
13993         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
13994         from rtx to rtx_insn *.
13995         (struct change_cc_mode_args): Likewise for field "insn".
13996         (this_insn): Strengthen from rtx to rtx_insn *.
13997         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
13998         with insn.
13999         (validate_canon_reg): Strengthen param "insn" from rtx to
14000         rtx_insn *.
14001         (canon_reg): Likewise.
14002         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
14003         dealing with insn.
14004         (record_jump_equiv): Strengthen param "insn" from rtx to
14005         rtx_insn *.
14006         (try_back_substitute_reg): Likewise, also for locals "prev",
14007         "bb_head".
14008         (find_sets_in_insn): Likewise for param "insn".
14009         (canonicalize_insn): Likewise.
14010         (cse_insn): Likewise.  Add a checked cast.
14011         (invalidate_from_clobbers): Likewise for param "insn".
14012         (invalidate_from_sets_and_clobbers): Likewise.
14013         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
14014         dealing with insn.
14015         (cse_prescan_path): Strengthen local "insn" from rtx to
14016         rtx_insn *.
14017         (cse_extended_basic_block): Likewise for locals "insn" and
14018         "prev_insn".
14019         (cse_main): Likewise for param "f".
14020         (check_for_label_ref): Likewise for local "insn".
14021         (set_live_p): Likewise for second param ("insn").
14022         (insn_live_p): Likewise for first param ("insn") and for local
14023         "next".
14024         (cse_change_cc_mode_insn): Likewise for first param "insn".
14025         (cse_change_cc_mode_insns): Likewise for first and second params
14026         "start" and "end".
14027         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
14028         and "end".
14029         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
14030         "cc_src_insn".
14031
14032 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14033             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14034             Anna Tikhonova  <anna.tikhonova@intel.com>
14035             Ilya Tocar  <ilya.tocar@intel.com>
14036             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14037             Ilya Verbin  <ilya.verbin@intel.com>
14038             Kirill Yukhin  <kirill.yukhin@intel.com>
14039             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14040
14041         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
14042         New.
14043         * config/i386/sse.md
14044         (define_mode_iterator VI248_AVX2): Delete.
14045         (define_mode_iterator VI2_AVX2_AVX512BW): New.
14046         (define_mode_iterator VI48_AVX2): Ditto.
14047         (define_insn <shift_insn><mode>3): Delete.
14048         (define_insn "<shift_insn><mode>3<mask_name>" with
14049         VI2_AVX2_AVX512BW): New.
14050         (define_insn "<shift_insn><mode>3<mask_name>" with
14051         VI48_AVX2): Ditto.
14052
14053 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14054             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14055             Anna Tikhonova  <anna.tikhonova@intel.com>
14056             Ilya Tocar  <ilya.tocar@intel.com>
14057             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14058             Ilya Verbin  <ilya.verbin@intel.com>
14059             Kirill Yukhin  <kirill.yukhin@intel.com>
14060             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14061
14062         * config/i386/sse.md
14063         (define_mode_iterator VI4F_BRCST32x2): New.
14064         (define_mode_attr 64x2_mode): Ditto.
14065         (define_mode_attr 32x2mode): Ditto.
14066         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
14067         with VI4F_BRCST32x2): Ditto.
14068         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
14069         with V16FI mode iterator): Ditto.
14070         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
14071         with V16FI): Ditto.
14072         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
14073         with VI8F_BRCST64x2): Ditto.
14074
14075 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14076             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14077             Anna Tikhonova  <anna.tikhonova@intel.com>
14078             Ilya Tocar  <ilya.tocar@intel.com>
14079             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14080             Ilya Verbin  <ilya.verbin@intel.com>
14081             Kirill Yukhin  <kirill.yukhin@intel.com>
14082             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14083
14084         * config/i386/sse.md
14085         (define_mode_iterator VI8_AVX512VL): New.
14086         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
14087
14088 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
14089
14090         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
14091         (define_mode_iterator V48_AVX512VL): New.
14092         (define_mode_iterator V12_AVX512VL): Ditto.
14093         (define_insn <avx512>_load<mode>_mask): Split into two similar
14094         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
14095         Refactor output template.
14096         (define_insn "<avx512>_store<mode>_mask"): Ditto.
14097
14098 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
14099
14100         * cprop.c (struct occr): Strengthen field "insn" from rtx to
14101         rtx_insn *.
14102         (reg_available_p): Likewise for param "insn".
14103         (insert_set_in_table): Likewise.
14104         (hash_scan_set): Likewise.
14105         (hash_scan_insn): Likewise.
14106         (make_set_regs_unavailable): Likewise.
14107         (compute_hash_table_work): Likewise for local "insn".
14108         (reg_not_set_p): Strengthen param "insn" from const_rtx to
14109         const rtx_insn *.
14110         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
14111         (try_replace_reg): Likewise.
14112         (find_avail_set): Likewise.
14113         (cprop_jump): Likewise for params "setcc", "jump".
14114         (constprop_register): Likewise for param "insn".
14115         (cprop_insn): Likewise.
14116         (do_local_cprop): Likewise.
14117         (local_cprop_pass): Likewise for local "insn".
14118         (bypass_block): Likewise for params "setcc" and "jump".
14119         (bypass_conditional_jumps): Likewise for locals "setcc" and
14120         "insn".
14121         (one_cprop_pass): Likewise for local "insn".
14122
14123 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
14124
14125         * compare-elim.c (struct comparison_use): Strengthen field "insn"
14126         from rtx to rtx_insn *.
14127         (struct comparison): Likewise, also for field "prev_clobber".
14128         (conforming_compare): Likewise for param "insn".
14129         (arithmetic_flags_clobber_p): Likewise.
14130         (find_flags_uses_in_insn): Likewise.
14131         (find_comparison_dom_walker::before_dom_children): Likewise for
14132         locals "insn", "next", "last_clobber".
14133         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
14134
14135 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
14136
14137         * combine-stack-adj.c (struct csa_reflist): Strengthen field
14138         "insn" from rtx to rtx_insn *.
14139         (single_set_for_csa): Likewise for param "insn".
14140         (record_one_stack_ref): Likewise.
14141         (try_apply_stack_adjustment): Likewise.
14142         (struct record_stack_refs_data): Likewise for field "insn".
14143         (maybe_move_args_size_note): Likewise for params "last" and "insn".
14144         (prev_active_insn_bb): Likewise for return type and param "insn".
14145         (next_active_insn_bb): Likewise.
14146         (force_move_args_size_note): Likewise for params "prev" and "last"
14147         and locals "test", "next_candidate", "prev_candidate".
14148         (combine_stack_adjustments_for_block): Strengthen locals
14149         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
14150         rtx_insn *.
14151
14152 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14153
14154         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
14155         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
14156         (subst_insn): Likewise for this variable.
14157         (added_links_insn): Likewise.
14158         (struct insn_link): Likewise for field "insn".
14159         (alloc_insn_link): Likewise for param "insn".
14160         (struct undobuf): Likewise for field "other_insn".
14161         (find_single_use): Likewise for param "insn" and local "next".
14162         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
14163         (delete_noop_moves): Likewise for locals "insn", "next".
14164         (create_log_links): Likewise for locals "insn", "use_insn".
14165         Strengthen local "next_use" from rtx * to rtx_insn **.
14166         (insn_a_feeds_b): Likewise for params "a", "b".
14167         (combine_instructions): Likewise for param "f" and locals "insn",
14168         "next", "prev", "first", "last_combined_insn", "link", "link1",
14169         "temp".  Replace use of NULL_RTX with NULL when referring to
14170         insns.
14171         (setup_incoming_promotions): Likewise for param "first"
14172         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
14173         (can_combine_p): Likewise for params "insn", "i3", "pred",
14174         "pred2", "succ", "succ2" and for local "p".
14175         (combinable_i3pat): Likewise for param "i3".
14176         (cant_combine_insn_p): Likewise for param "insn".
14177         (likely_spilled_retval_p): Likewise.
14178         (adjust_for_new_dest): Likewise.
14179         (update_cfg_for_uncondjump): Likewise, also for local "insn".
14180         (try_combine): Likewise for return type and for params "i3", "i2",
14181         "i1", "i0", "last_combined_insn", and for locals "insn",
14182         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
14183         "i0_insn".  Eliminate local "tem" in favor of new locals
14184         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
14185         checked cast for now to rtx_insn * on the return type of
14186         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
14187         insns.
14188         (find_split_point): Strengthen param "insn" from rtx to
14189         rtx_insn *.
14190         (simplify_set): Likewise for local "other_insn".
14191         (recog_for_combine): Likewise for param "insn".
14192         (record_value_for_reg): Likewise.
14193         (record_dead_and_set_regs_1): Likewise for local
14194         "record_dead_insn".
14195         (record_dead_and_set_regs): Likewise for param "insn".
14196         (record_promoted_value): Likewise.
14197         (check_promoted_subreg): Likewise.
14198         (get_last_value_validate): Likewise.
14199         (reg_dead_at_p): Likewise.
14200         (move_deaths): Likewise for param "to_insn".
14201         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
14202         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
14203         in favor of new locals "tem_note" and "tem_insn", the latter being
14204         an rtx_insn *.
14205         (distribute_links): Strengthen locals "place", "insn" from rtx to
14206         rtx_insn *.
14207
14208 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14209
14210         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
14211         than a const_rtx.
14212         (can_delete_label_p): Require a const rtx_code_label * rather than
14213         a const_rtx.
14214         (delete_insn): Add checked cast to rtx_code_label * when we know
14215         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
14216         rtx to rtx_insn *.
14217         (delete_insn_chain): Strengthen locals "prev" and "current" from
14218         rtx to rtx_insn *.  Add a checked cast when assigning from
14219         "finish" (strengthening the params will come later).  Add a
14220         checked cast to rtx_note * in region where we know
14221         NOTE_P (current).
14222         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
14223         rtx_insn *.
14224         (compute_bb_for_insn): Likewise.
14225         (free_bb_for_insn): Likewise for local "insn".
14226         (compute_bb_for_insn): Likewise.
14227         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
14228         local "insn" from rtx to rtx_insn *
14229         (flow_active_insn_p): Require a const rtx_insn * rather than a
14230         const_rtx.
14231         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
14232         rtx_insn *.
14233         (can_fallthru): Likewise for locals "insn" and "insn2".
14234         (bb_note): Likewise for local "note".
14235         (first_insn_after_basic_block_note): Likewise for local "note" and
14236         for return type.
14237         (rtl_split_block): Likewise for locals "insn" and "next".
14238         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
14239         "end".
14240         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
14241         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
14242         "prev", "tmp".
14243         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
14244         them), "kill_from", "barrier", "new_insn".
14245         (patch_jump_insn): Likewise for params "insn", "old_label".
14246         (redirect_branch_edge): Likewise for locals "old_label", "insn".
14247         (force_nonfallthru_and_redirect): Likewise for locals "insn",
14248         "old_label", "new_label".
14249         (rtl_tidy_fallthru_edge): Likewise for local "q".
14250         (rtl_split_edge): Likewise for locals "before", "last".
14251         (commit_one_edge_insertion): Likewise for locals "before",
14252         "after", "insns", "tmp", "last", adding a checked cast where
14253         currently necessary.
14254         (commit_edge_insertions): Likewise.
14255         (rtl_dump_bb): Likewise for locals "insn", "last".
14256         (print_rtl_with_bb): Likewise for local "x".
14257         (rtl_verify_bb_insns): Likewise for local "x".
14258         (rtl_verify_bb_pointers): Likewise for local "insn".
14259         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
14260         "head", "end".
14261         (rtl_verify_fallthru): Likewise for local "insn".
14262         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
14263         (purge_dead_edges): Likewise for local "insn".
14264         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
14265         (skip_insns_after_block): Likewise for return type and for locals
14266         "insn", "last_insn", "next_head", "prev".
14267         (record_effective_endpoints): Likewise for locals "next_insn",
14268         "insn", "end".
14269         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
14270         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
14271         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
14272         (duplicate_insn_chain): For now, add checked cast from rtx to
14273         rtx_insn * when returning insn.
14274         (cfg_layout_duplicate_bb): Likewise for local "insn".
14275         (cfg_layout_delete_block): Likewise for locals "insn", "next",
14276         "prev", "remaints".
14277         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
14278         (rtl_block_empty_p): Likewise.
14279         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
14280         "split_point", "last".
14281         (rtl_block_ends_with_call_p): Likewise for local "insn".
14282         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
14283         const rtx_insn *.
14284         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
14285         "split_at_insn" from rtx to rtx_insn *.
14286         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
14287         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
14288         to const rtx_insn *.
14289         (rtl_account_profile_record): Likewise.
14290
14291 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14292
14293         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
14294         rtx to rtx_insn *.
14295         (average_num_loop_insns): Likewise.
14296         (init_set_costs): Likewise for local "seq".
14297         (seq_cost): Likewise for param "seq", from const_rtx to const
14298         rtx_insn *.
14299
14300 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14301
14302         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
14303         rtx to rtx_insn *.
14304
14305 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14306
14307         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
14308         "f1" and "f2" from rtx * to rtx_insn **.
14309         (flow_find_head_matching_sequence): Likewise.
14310
14311         * cfgcleanup.c (try_simplify_condjump): Strengthen local
14312         "cbranch_insn" from rtx to rtx_insn *.
14313         (thread_jump): Likewise for local "insn".
14314         (try_forward_edges): Likewise for local "last".
14315         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
14316         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
14317         "real_b_end".
14318         (can_replace_by): Likewise for params "i1", "i2".
14319         (old_insns_match_p): Likewise.
14320         (merge_notes): Likewise.
14321         (walk_to_nondebug_insn): Likewise for param "i1".
14322         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
14323         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
14324         "afterlast1", "afterlast2" from rtx to rtx_insn *.
14325         (flow_find_head_matching_sequence): Strengthen params "f1" and
14326         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
14327         "last1", "last2", "beforelast1", "beforelast2" from rtx to
14328         rtx_insn *.
14329         (outgoing_edges_match): Likewise for locals "last1", "last2".
14330         (try_crossjump_to_edge): Likewise for local "insn".
14331         Replace call to for_each_rtx with for_each_rtx_in_insn.
14332
14333         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
14334         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
14335         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
14336         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
14337         (try_optimize_cfg): Strengthen local "last" from rtx to
14338         rtx_insn *.
14339         (delete_dead_jumptables): Likewise for locals "insn", "next",
14340         "label".
14341
14342         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
14343         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
14344         "rtx else_first_tail", to reflect the basic-block.h changes above.
14345
14346 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14347
14348         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
14349         rtx_insn *.
14350         (purge_dead_tablejump_edges): Likewise.
14351         (find_bb_boundaries): Likewise for locals "insn", "end",
14352         "flow_transfer_insn".
14353
14354 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14355
14356         * caller-save.c (save_call_clobbered_regs): Strengthen locals
14357         "ins" and "prev" from rtx to rtx_insn *.
14358
14359 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14360
14361         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
14362         rtx_insn *.
14363         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
14364         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
14365         "scan_start".
14366         (load_register_parameters): Likewise for local "before_arg".
14367         (check_sibcall_argument_overlap): Likewise for param "insn".
14368         (expand_call): Likewise for locals "normal_call_insns",
14369         "tail_call_insns", "insns", "before_call", "after_args",
14370         "before_arg", "last", "prev".  Strengthen one of the "last" from
14371         rtx to rtx_call_insn *.
14372         (fixup_tail_calls): Strengthen local "insn" from rtx to
14373         rtx_insn *.
14374         (emit_library_call_value_1): Likewise for locals "before_call" and
14375         "last".
14376
14377 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14378
14379         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
14380         and "last" from rtx to rtx_insn *.
14381         (expand_builtin_nonlocal_goto): Likewise for local "insn".
14382         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
14383         rtx_call_insn *.
14384         (expand_errno_check): Strengthen local "lab" from rtx to
14385         rtx_code_label *.
14386         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
14387         rtx_insn *.
14388         (expand_builtin_mathfn_2): Likewise.
14389         (expand_builtin_mathfn_ternary): Likewise.
14390         (expand_builtin_mathfn_3): Likewise.
14391         (expand_builtin_interclass_mathfn): Likewise for local "last".
14392         (expand_builtin_int_roundingfn): Likewise for local "insns".
14393         (expand_builtin_int_roundingfn_2): Likewise.
14394         (expand_builtin_strlen): Likewise for local "before_strlen".
14395         (expand_builtin_strncmp): Likewise for local "seq".
14396         (expand_builtin_signbit): Likewise for local "last".
14397         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
14398         from rtx to rtx_code_label *.
14399         (expand_stack_restore):  Strengthen local "prev" from rtx to
14400         rtx_insn *.
14401
14402 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14403
14404         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
14405         to rtx_insn *.
14406         (struct btr_def_s): Likewise.
14407         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
14408         const rtx_insn *.
14409         (add_btr_def): Likewise.
14410         (new_btr_user): Likewise.
14411         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
14412         rtx to rtx_insn *.
14413         (link_btr_uses): Likewise.
14414         (move_btr_def): Likewise for locals "insp", "old_insn",
14415         "new_insn".  Add checked cast to rtx_insn * for now on result of
14416         gen_move_insn.
14417         (can_move_up): Strengthen param "insn" from const_rtx to
14418         const rtx_insn *.
14419
14420 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14421
14422         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
14423         rtx_insn *.
14424         (get_uncond_jump_length): Likewise for locals "label", "jump".
14425         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
14426         "jump", "insn".
14427         (add_labels_and_missing_jumps): Likewise for local "new_jump".
14428         (fix_up_fall_thru_edges): Likewise for local "old_jump".
14429         (find_jump_block): Likewise for local "insn".
14430         (fix_crossing_conditional_branches): Likewise for locals
14431         "old_jump", "new_jump".
14432         (fix_crossing_unconditional_branches): Likewise for locals
14433         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
14434         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
14435
14436 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14437
14438         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
14439         rtx to rtx_insn *.
14440         (struct mem_insn): Likewise for field "insn".
14441         (reg_next_use): Strengthen from rtx * to rtx_insn **.
14442         (reg_next_inc_use): Likewise.
14443         (reg_next_def): Likewise.
14444         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
14445         from rtx to rtx_insn *.
14446         (move_insn_before): Likewise for param "next_insn" and local "insns".
14447         (attempt_change): Likewise for local "mov_insn".
14448         (try_merge): Likewise for param "last_insn".
14449         (get_next_ref): Likewise for return type and local "insn".
14450         Strengthen param "next_array" from rtx * to rtx_insn **.
14451         (parse_add_or_inc): Strengthen param "insn" from rtx to
14452         rtx_insn *.
14453         (find_inc): Likewise for locals "insn" and "other_insn" (three of
14454         the latter).
14455         (merge_in_block): Likewise for locals "insn", "curr",
14456         "other_insn".
14457         (pass_inc_dec::execute): Update allocations of the arrays to
14458         reflect the stronger types.
14459
14460 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14461
14462         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
14463         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
14464         from rtx to rtx_code_label *.
14465
14466 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14467
14468         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
14469         to rtx_insn *.
14470
14471 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
14472
14473         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
14474         generated a warning and prevented bootstrapping the compiler.
14475
14476 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14477
14478         * rtl.h (delete_related_insns): Strengthen return type from rtx to
14479         rtx_insn *.
14480
14481         * jump.c (delete_related_insns): Likewise, also for locals "next"
14482         and "prev".
14483
14484 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14485
14486         * genautomata.c (output_internal_insn_latency_func): When writing
14487         the function "internal_insn_latency" to insn-automata.c,
14488         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
14489         allowing the optional guard function of (define_bypass) clauses to
14490         expect a pair of rtx_insn *, rather than a pair of rtx.
14491         (output_insn_latency_func): When writing the function
14492         "insn_latency", add an "uncast_" prefix to params "insn" and
14493         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
14494         using checked casts from the params, thus enabling the above
14495         change to the generated "internal_insn_latency" function.
14496
14497 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
14498
14499         PR tree-optimization/62091
14500         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
14501         handle correctly arrays.
14502         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
14503         inheritance binfos.
14504         (record_known_type): Walk into inner type.
14505         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
14506         condition on no type changes.
14507
14508 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14509
14510         * genattrtab.c (write_attr_get): Within the generated get_attr_
14511         functions, rename param "insn" to "uncast_insn" and reintroduce
14512         "insn" as an local rtx_insn * using a checked cast, so that "insn"
14513         is an rtx_insn * within insn-attrtab.c
14514
14515 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14516
14517         * output.h (peephole): Strengthen return type from rtx to
14518         rtx_insn *.
14519         * rtl.h (delete_for_peephole): Likewise for both params.
14520         * genpeep.c (main): In generated "peephole" function, strengthen
14521         return type and local "insn" from rtx to rtx_insn *.  For now,
14522         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
14523         rtx_insn *, with a checked cast.
14524         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
14525         locals "insn", "next", "prev" from rtx to rtx_insn *.
14526
14527 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
14528
14529         PR tree-optimization/62112
14530         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
14531         * gimple-iterator.h (gsi_replace): Return bool.
14532         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
14533         moved from ref_may_alias_global_p.
14534         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
14535         New overloads.
14536         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
14537         (stmt_kills_ref_p_1): Rename...
14538         (stmt_kills_ref_p): ... to this.
14539         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
14540         stmt_kills_ref_p): Declare.
14541         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
14542         Move the self-assignment case...
14543         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
14544
14545 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14546
14547         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
14548
14549         * emit-rtl.c (try_split): Likewise, also for locals "before" and
14550         "after".  For now, don't strengthen param "trial", which requires
14551         adding checked casts when returning it.
14552
14553 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14554
14555         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
14556         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
14557         "var_location" hook from rtx to rtx_insn *.
14558         (debug_nothing_rtx): Delete in favor of...
14559         (debug_nothing_rtx_code_label): New prototype.
14560         (debug_nothing_rtx_rtx): Delete unused prototype.
14561         (debug_nothing_rtx_insn): New prototype.
14562
14563         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
14564         invoking debug_hooks->var_location (in two places, one in a NOTE
14565         case of a switch statement, the other guarded by a CALL_P
14566         conditional.  Add checked cast to rtx_code_label * when invoking
14567         debug_hooks->label (within CODE_LABEL case of switch statement).
14568
14569         * dbxout.c (dbx_debug_hooks): Update "label" hook from
14570         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
14571         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
14572         (xcoff_debug_hooks): Likewise.
14573         * debug.c (do_nothing_debug_hooks): Likewise.
14574         (debug_nothing_rtx): Delete in favor of...
14575         (debug_nothing_rtx_insn): New function.
14576         (debug_nothing_rtx_rtx): Delete unused function.
14577         (debug_nothing_rtx_code_label): New function.
14578         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
14579         debug_nothing_rtx to debug_nothing_rtx_code_label.
14580         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
14581         to rtx_insn *.
14582         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
14583         debug_nothing_rtx to debug_nothing_rtx_insn.
14584         (sdbout_label): Strengthen param "insn" from rtx to
14585         rtx_code_label *.
14586         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
14587         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
14588         "var_location" hook from debug_nothing_rtx to
14589         debug_nothing_rtx_insn.
14590
14591 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14592
14593         * recog.h (insn_output_fn): Update this function typedef to match
14594         the changes below to the generated output functions, strengthening
14595         the 2nd param from rtx to rtx_insn *.
14596
14597         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
14598         insn when invoking an output function, to match the new signature
14599         of insn_output_fn with a stronger second param.
14600
14601         * genconditions.c (write_header): In the generated code for
14602         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
14603         to match the other changes in this patch.
14604
14605         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
14606         the generated "gen_" functions from rtx to rtx_insn * within their
14607         implementations.
14608
14609         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
14610         the subfunctions within the generated "recog_", "split", "peephole2"
14611         function trees from rtx to rtx_insn *.  For now, the top-level
14612         generated functions ("recog", "split", "peephole2") continue to
14613         take a plain rtx for "insn", to avoid introducing dependencies on
14614         other patches.  Rename this 2nd param from "insn" to
14615         "uncast_insn", and reintroduce "insn" as a local variable of type
14616         rtx_insn *, initialized at the top of the generated function with
14617         a checked cast on "uncast_insn".
14618         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
14619         the generated "gen_" functions from rtx to rtx_insn * within their
14620         prototypes.
14621
14622         * genoutput.c (process_template): Strengthen the 2nd param within
14623         the generated "output_" functions "insn" from rtx to rtx_insn *.
14624
14625 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14626
14627         * tree-profile.c (tree_profiling): Skip external functions
14628         when doing coverage instrumentation.
14629         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
14630
14631 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14632
14633         * config/rs6000/altivec.h (vec_cpsgn): New #define.
14634         (vec_mergee): Likewise.
14635         (vec_mergeo): Likewise.
14636         (vec_cntlz): Likewise.
14637         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
14638         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
14639         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
14640         VMRGEW, and VMRGOW.
14641         * doc/extend.texi: Document various forms of vec_cpsgn,
14642         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
14643         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
14644         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
14645         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
14646         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
14647
14648 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14649
14650         * config/rs6000/rs6000.c (context.h): New include.
14651         (tree-pass.h): Likewise.
14652         (make_pass_analyze_swaps): New decl.
14653         (rs6000_option_override): Register pass_analyze_swaps.
14654         (swap_web_entry): New subsclass of web_entry_base (df.h).
14655         (special_handling_values): New enum.
14656         (union_defs): New function.
14657         (union_uses): Likewise.
14658         (insn_is_load_p): Likewise.
14659         (insn_is_store_p): Likewise.
14660         (insn_is_swap_p): Likewise.
14661         (rtx_is_swappable_p): Likewise.
14662         (insn_is_swappable_p): Likewise.
14663         (chain_purpose): New enum.
14664         (chain_contains_only_swaps): New function.
14665         (mark_swaps_for_removal): Likewise.
14666         (swap_const_vector_halves): Likewise.
14667         (adjust_subreg_index): Likewise.
14668         (permute_load): Likewise.
14669         (permute_store): Likewise.
14670         (handle_special_swappables): Likewise.
14671         (replace_swap_with_copy): Likewise.
14672         (dump_swap_insn_table): Likewise.
14673         (rs6000_analyze_swaps): Likewise.
14674         (pass_data_analyze_swaps): New pass_data.
14675         (pass_analyze_swaps): New rtl_opt_pass.
14676         (make_pass_analyze_swaps): New function.
14677         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
14678
14679 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14680
14681         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
14682         type from rtx to rtx_insn *.
14683         (create_copy_of_insn_rtx): Likewise.
14684         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
14685         (create_copy_of_insn_rtx): Likewise, also for local "res".
14686
14687 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14688
14689         * rtl.h (find_first_parameter_load): Strengthen return type from
14690         rtx to rtx_insn *.
14691         * rtlanal.c (find_first_parameter_load): Strengthen return type
14692         from rtx to rtx_insn *.  Add checked cast for now, to postpone
14693         strengthening the params.
14694
14695 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14696
14697         PR fortran/44054
14698         * diagnostic.c: Set default caret.
14699         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
14700         line is needed.
14701         * diagnostic.h (struct diagnostic_context):
14702
14703 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14704
14705         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
14706         (sel_bb_head): Strengthen return type insn_t (currently just an
14707         rtx) to rtx_insn *.
14708         (sel_bb_end): Likewise.
14709
14710         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
14711         (sel_bb_head): Strengthen return type and local "head" from
14712         insn_t (currently just an rtx) to rtx_insn *.
14713         (sel_bb_end): Likewise for return type.
14714         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
14715         working with insn.
14716
14717 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14718
14719         * basic-block.h (get_last_bb_insn): Strengthen return type from
14720         rtx to rtx_insn *.
14721         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
14722         end".
14723
14724 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14725
14726         PR fortran/44054
14727         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
14728         to here ...
14729         (diagnostic_report_diagnostic): ... from here.
14730         * toplev.c (general_init): Move code to c-family.
14731
14732 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14733
14734         * df.h (web_entry_base): Replace existing struct web_entry with a
14735         new class web_entry_base with only the predecessor member.
14736         (unionfind_root): Remove declaration and move to class member.
14737         (unionfind_union): Remove declaration and move to friend
14738         function.
14739         (union_defs): Remove declaration.
14740         * web.c (web_entry_base::unionfind_root): Modify to be member
14741         function and adjust accessors.
14742         (unionfind_union): Modify to be friend function and adjust
14743         accessors.
14744         (web_entry): New subclass of web_entry_base containing the reg
14745         member.
14746         (union_match_dups): Modify for struct -> class changes.
14747         (union_defs): Likewise.
14748         (entry_register): Likewise.
14749         (pass_web::execute): Likewise.
14750
14751 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
14752
14753         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
14754         builtin define __VEC_ELEMENT_REG_ORDER__.
14755
14756 2014-08-20  Martin Jambor  <mjambor@suse.cz>
14757             Wei Mi  <wmi@google.com>
14758
14759         PR ipa/60449
14760         PR middle-end/61776
14761         * tree-ssa-operands.c (update_stmt_operands): Remove
14762         MODIFIED_NORETURN_CALLS.
14763         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
14764         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
14765         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
14766         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
14767         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
14768         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
14769         (gimple_call_set_ctrl_altering): New func.
14770         (gimple_call_ctrl_altering_p): Ditto.
14771         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
14772         (make_blocks): Use gimple_call_initialize_ctrl_altering.
14773         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
14774         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
14775         remove MODIFIED_NORETURN_CALLS.
14776
14777 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14778
14779         * coverage.c (coverage_compute_profile_id): Return non-0;
14780         also handle symbols with unique name.
14781         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
14782
14783 2014-08-20  Steve Ellcey  <sellcey@mips.com>
14784
14785         PR middle-end/49191
14786         * doc/sourcebuild.texi (non_strict_align): New.
14787
14788 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14789
14790         * cgraphunit.c (ipa_passes, compile): Reshedule
14791         symtab_remove_unreachable_nodes passes; update comments.
14792         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
14793         TODO_remove_functions before the pass; the functions ought to be
14794         already removed.
14795         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
14796         TODO_remove_functions.
14797         * passes.c (pass_data_early_local_passes): Do not schedule function
14798         removal.
14799         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
14800
14801 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14802
14803         PR c/59304
14804         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
14805         before setting the option.
14806         * diagnostic.c (diagnostic_classify_diagnostic): Record
14807         command-line status.
14808
14809 2014-08-20  Richard Biener  <rguenther@suse.de>
14810
14811         PR lto/62190
14812         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
14813         to build uint{16,32,64}_type_node.
14814
14815 2014-08-20  Terry Guo  <terry.guo@arm.com>
14816
14817         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
14818         with immediate_operand.
14819
14820 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
14821
14822         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
14823         "insn" from an as_a to a safe_as_a, for the case when "insn" is
14824         NULL.
14825
14826 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14827
14828         PR preprocessor/51303
14829         * incpath.c (remove_duplicates): Use cpp_warning.
14830
14831 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14832
14833         PR c/60975
14834         PR c/53063
14835         * doc/options.texi (CPP): Document it.
14836         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
14837         * optc-gen.awk: Handle CPP.
14838         * opth-gen.awk: Likewise.
14839
14840 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14841
14842         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
14843         rtx_insn *.
14844         (duplicate_insn_chain): Likewise.
14845         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
14846         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
14847         checked cast for now (until we can strengthen the params in the
14848         same way).
14849         (duplicate_insn_chain): Likewise.
14850
14851 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14852
14853         * rtl.h (next_cc0_user): Strengthen return type from rtx to
14854         rtx_insn *.
14855         (prev_cc0_setter): Likewise.
14856
14857         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
14858         rtx_insn *, adding checked casts for now as necessary.
14859         (prev_cc0_setter): Likewise.
14860
14861 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14862
14863         * expr.h (emit_move_insn): Strengthen return type from rtx to
14864         rtx_insn *.
14865         (emit_move_insn_1): Likewise.
14866         (emit_move_complex_push): Likewise.
14867         (emit_move_complex_parts): Likewise.
14868
14869         * expr.c (emit_move_via_integer): Strengthen return type from rtx
14870         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
14871         with insns.
14872         (emit_move_complex_push): Strengthen return type from rtx to
14873         rtx_insn *.
14874         (emit_move_complex): Likewise, also for local "ret".
14875         (emit_move_ccmode): Likewise.
14876         (emit_move_multi_word): Likewise for return type and locals
14877         "last_insn", "seq".
14878         (emit_move_insn_1): Likewise for return type and locals "result",
14879         "ret".
14880         (emit_move_insn): Likewise for return type and local "last_insn".
14881         (compress_float_constant): Likewise.
14882
14883 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14884
14885         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
14886         from rtx to rtx_insn *.
14887
14888         * rtl.h (emit_insn_before): Likewise.
14889         (emit_insn_before_noloc): Likewise.
14890         (emit_insn_before_setloc): Likewise.
14891         (emit_jump_insn_before): Likewise.
14892         (emit_jump_insn_before_noloc): Likewise.
14893         (emit_jump_insn_before_setloc): Likewise.
14894         (emit_call_insn_before): Likewise.
14895         (emit_call_insn_before_noloc): Likewise.
14896         (emit_call_insn_before_setloc): Likewise.
14897         (emit_debug_insn_before): Likewise.
14898         (emit_debug_insn_before_noloc): Likewise.
14899         (emit_debug_insn_before_setloc): Likewise.
14900         (emit_label_before): Likewise.
14901         (emit_insn_after): Likewise.
14902         (emit_insn_after_noloc): Likewise.
14903         (emit_insn_after_setloc): Likewise.
14904         (emit_jump_insn_after): Likewise.
14905         (emit_jump_insn_after_noloc): Likewise.
14906         (emit_jump_insn_after_setloc): Likewise.
14907         (emit_call_insn_after): Likewise.
14908         (emit_call_insn_after_noloc): Likewise.
14909         (emit_call_insn_after_setloc): Likewise.
14910         (emit_debug_insn_after): Likewise.
14911         (emit_debug_insn_after_noloc): Likewise.
14912         (emit_debug_insn_after_setloc): Likewise.
14913         (emit_label_after): Likewise.
14914         (emit_insn): Likewise.
14915         (emit_debug_insn): Likewise.
14916         (emit_jump_insn): Likewise.
14917         (emit_call_insn): Likewise.
14918         (emit_label): Likewise.
14919         (gen_clobber): Likewise.
14920         (emit_clobber): Likewise.
14921         (gen_use): Likewise.
14922         (emit_use): Likewise.
14923         (emit): Likewise.
14924
14925         (emit_barrier_before): Strengthen return type from rtx to
14926         rtx_barrier *.
14927         (emit_barrier_after): Likewise.
14928         (emit_barrier): Likewise.
14929
14930         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
14931         from rtx to rtx_insn *.  Add checked casts for now when converting
14932         "last" from rtx to rtx_insn *.
14933         (emit_insn_before_noloc): Likewise for return type.
14934         (emit_jump_insn_before_noloc): Likewise.
14935         (emit_call_insn_before_noloc): Likewise.
14936         (emit_debug_insn_before_noloc): Likewise.
14937         (emit_barrier_before): Strengthen return type and local "insn"
14938         from rtx to rtx_barrier *.
14939         (emit_label_before): Strengthen return type from rtx to
14940         rtx_insn *.  Add checked cast for now when returning param
14941         (emit_pattern_after_noloc): Strengthen return type from rtx to
14942         rtx_insn *.  Add checked casts for now when converting "last" from
14943         rtx to rtx_insn *.
14944         (emit_insn_after_noloc): Strengthen return type from rtx to
14945         rtx_insn *.
14946         (emit_jump_insn_after_noloc): Likewise.
14947         (emit_call_insn_after_noloc): Likewise.
14948         (emit_debug_insn_after_noloc): Likewise.
14949         (emit_barrier_after): Strengthen return type from rtx to
14950         rtx_barrier *.
14951         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
14952         Add checked cast for now when converting "label" from rtx to
14953         rtx_insn *.
14954         (emit_pattern_after_setloc): Strengthen return type from rtx to
14955         rtx_insn *.  Add checked casts for now when converting "last" from
14956         rtx to rtx_insn *.
14957         (emit_pattern_after): Strengthen return type from rtx to
14958         rtx_insn *.
14959         (emit_insn_after_setloc): Likewise.
14960         (emit_insn_after): Likewise.
14961         (emit_jump_insn_after_setloc): Likewise.
14962         (emit_jump_insn_after): Likewise.
14963         (emit_call_insn_after_setloc): Likewise.
14964         (emit_call_insn_after): Likewise.
14965         (emit_debug_insn_after_setloc): Likewise.
14966         (emit_debug_insn_after): Likewise.
14967         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
14968         when converting "last" from rtx to rtx_insn *.
14969         (emit_pattern_before): Strengthen return type from rtx to
14970         rtx_insn *.
14971         (emit_insn_before_setloc): Likewise.
14972         (emit_insn_before): Likewise.
14973         (emit_jump_insn_before_setloc): Likewise.
14974         (emit_jump_insn_before): Likewise.
14975         (emit_call_insn_before_setloc): Likewise.
14976         (emit_call_insn_before): Likewise.
14977         (emit_debug_insn_before_setloc): Likewise.
14978         (emit_debug_insn_before): Likewise.
14979         (emit_insn): Strengthen return type and locals "last", "insn",
14980         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
14981         within cases where we know we have an insn.
14982         (emit_debug_insn): Likewise.
14983         (emit_jump_insn): Likewise.
14984         (emit_call_insn): Strengthen return type and local "insn" from rtx
14985         to rtx_insn *.
14986         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
14987         a checked cast to rtx_insn * for now on "label".
14988         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
14989         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
14990         (emit_use): Likewise.
14991         (gen_use): Likewise, also for local "seq".
14992         (emit): Likewise for return type and local "insn".
14993         (rtx_insn): Likewise for return type and local "new_rtx".
14994
14995         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
14996         from rtx to rtx_barrier *.
14997
14998         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
14999         changed return type from rtx to rtx_insn *, we must update
15000         "emit_fn" type, and this in turn means updating...
15001         (frame_insn): ...this.  Strengthen return type from rtx to
15002         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
15003
15004 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15005
15006         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
15007         rtx to rtx_jump_table_data *.  Also for local.
15008         * rtl.h (emit_jump_table_data): Likewise.
15009
15010 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15011
15012         * basic-block.h (create_basic_block_structure): Strengthen third
15013         param "bb_note" from rtx to rtx_note *.
15014         * rtl.h (emit_note_before): Strengthen return type from rtx to
15015         rtx_note *.
15016         (emit_note_after): Likewise.
15017         (emit_note): Likewise.
15018         (emit_note_copy): Likewise.  Also, strengthen param similarly.
15019         * function.h (struct rtl_data): Strengthen field
15020         "x_stack_check_probe_note" from rtx to rtx_note *.
15021
15022         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
15023         from rtx to rtx_note *.
15024         * cfgrtl.c (create_basic_block_structure): Strengthen third param
15025         "bb_note" from rtx to rtx_note *.
15026         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
15027         when calling emit_note_copy.
15028         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
15029         rtx_note *.
15030         (emit_note_after): Likewise.
15031         (emit_note_before): Likewise.
15032         (emit_note_copy): Likewise.  Also, strengthen param similarly.
15033         (emit_note): Likewise.
15034         * except.c (emit_note_eh_region_end): Likewise for return type.
15035         Strengthen local "next" from rtx to rtx_insn *.
15036         (convert_to_eh_region_ranges): Strengthen local "note"
15037         from rtx to rtx_note *.
15038         * final.c (change_scope): Likewise.
15039         (reemit_insn_block_notes): Likewise, for both locals named "note".
15040         Also, strengthen local "insn" from rtx to rtx_insn *.
15041         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
15042         rtx to rtx_note *.
15043         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
15044         strengthen local "seq" from rtx to rtx_insn *.
15045         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
15046         to rtx_note *.
15047         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
15048         vec<rtx_note *>.
15049         (get_bb_note_from_pool): Strengthen return type from rtx to
15050         rtx_note *.
15051         (sel_create_basic_block): Strengthen local "new_bb_note" from
15052         insn_t to rtx_note *.
15053         * var-tracking.c (emit_note_insn_var_location): Strengthen local
15054         "note" from rtx to rtx_note *.
15055         (emit_notes_in_bb): Likewise.
15056
15057 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15058
15059         * function.h (struct rtl_data): Strengthen field
15060         "x_parm_birth_insn" from rtx to rtx_insn *.
15061         * function.c (struct assign_parm_data_all): Strengthen fields
15062         "first_conversion_insn" and "last_conversion_insn" from rtx to
15063         rtx_insn *.
15064
15065 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15066
15067         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
15068         to rtx_insn *; also for local "var_end_seq".
15069         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
15070         (maybe_cleanup_end_of_block): Likewise for param "last" and local
15071         "insn".
15072         (expand_gimple_cond): Likewise for locals "last2" and "last".
15073         (mark_transaction_restart_calls): Likewise for local "insn".
15074         (expand_gimple_stmt): Likewise for return type and locals "last"
15075         and "insn".
15076         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
15077         (avoid_complex_debug_insns): Likewise for param "insn".
15078         (expand_debug_locations): Likewise for locals "insn", "last",
15079         "prev_insn" and "insn2".
15080         (expand_gimple_basic_block): Likewise for local "last".
15081         (construct_exit_block): Likewise for locals "head", "end",
15082         "orig_end".
15083         (pass_expand::execute): Likewise for locals "var_seq",
15084         "var_ret_seq", "next".
15085
15086 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15087
15088         * asan.h (asan_emit_stack_protection): Strengthen return type from
15089         rtx to rtx_insn *.
15090         * asan.c (asan_emit_stack_protection): Likewise.  Add local
15091         "insns" to hold the return value.
15092
15093 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15094
15095         * basic-block.h (bb_note): Strengthen return type from rtx to
15096         rtx_note *.
15097         * sched-int.h (bb_note): Likewise.
15098         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
15099
15100 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15101
15102         * rtl.h (make_insn_raw): Strengthen return type from rtx to
15103         rtx_insn *.
15104
15105         * emit-rtl.c (make_insn_raw): Strengthen return type and local
15106         "insn" from rtx to rtx_insn *.
15107         (make_debug_insn_raw): Strengthen return type from rtx to
15108         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
15109         (make_jump_insn_raw):  Strengthen return type from rtx to
15110         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
15111         (make_call_insn_raw):  Strengthen return type from rtx to
15112         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
15113         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
15114         callback from rtx to rtx_insn *; likewise for local "insn" and
15115         "next", adding a checked cast to rtx_insn in the relevant cases of
15116         the switch statement.
15117         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
15118         callback from rtx to rtx_insn *.
15119         (emit_pattern_after_setloc): Likewise.
15120         (emit_pattern_after): Likewise.
15121         (emit_pattern_before_setloc): Likewise.
15122         (emit_pattern_before): Likewise.
15123
15124 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15125
15126         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
15127         rtx_call_insn *.
15128         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
15129         accepting an rtx_insn *.
15130         (last_call_insn): Strengthen return type from rtx to
15131         rtx_call_insn *.
15132
15133 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15134
15135         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
15136         "insns" from rtx to rtx_insn *.
15137         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
15138         locals "insn" and "prev".
15139
15140 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15141
15142         * rtl.h (tablejump_p): Strengthen third param from rtx * to
15143         rtx_jump_table_data **.
15144
15145         * cfgbuild.c (make_edges): Introduce local "table", using it in
15146         place of "tmp" for jump table data.
15147         (find_bb_boundaries): Strengthen local "table" from rtx to
15148         rtx_jump_table_data *.
15149         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
15150         (outgoing_edges_match): Likewise for locals "table1" and "table2".
15151         (try_crossjump_to_edge): Likewise.
15152         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
15153         "table".
15154         (patch_jump_insn): Introduce local "table", using it in place of
15155         "tmp" for jump table data.
15156         (force_nonfallthru_and_redirect): Introduce local "table", so that
15157         call to tablejump_p can receive an rtx_jump_table_data **.  Update
15158         logic around the call to overwrite "note" appropriately if
15159         tablejump_p returns non-zero.
15160         (get_last_bb_insn): Introduce local "table", using it in place of
15161         "tmp" for jump table data.
15162         * dwarf2cfi.c (create_trace_edges): Likewise.
15163
15164         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
15165         from rtx to rtx_jump_table_data *.
15166         (create_fix_barrier): Strengthen local "tmp" from rtx to
15167         rtx_jump_table_data *.
15168         (arm_reorg): Likewise for local "table".
15169
15170         * config/s390/s390.c (s390_chunkify_start): Likewise.
15171
15172         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
15173
15174         * jump.c (delete_related_insns): Strengthen local "lab_next" from
15175         rtx to rtx_jump_table_data *.
15176
15177         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
15178         rtx_jump_table_data **.  Add a checked cast when writing through
15179         the pointer: we know there that local "table" is non-NULL and that
15180         JUMP_TABLE_DATA_P (table) holds.
15181         (label_is_jump_target_p): Introduce local "table", using it in
15182         place of "tmp" for jump table data.
15183
15184 2014-08-19  Marek Polacek  <polacek@redhat.com>
15185
15186         PR c++/62153
15187         * doc/invoke.texi: Document -Wbool-compare.
15188
15189 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15190
15191         * rtl.h (entry_of_function): Strengthen return type from rtx to
15192         rtx_insn *.
15193         * cfgrtl.c (entry_of_function): Likewise.
15194
15195 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15196
15197         * emit-rtl.h (get_insns): Strengthen return type from rtx to
15198         rtx_insn *, adding a checked cast for now.
15199         (get_last_insn): Likewise.
15200
15201 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15202
15203         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
15204         rtx_code_label *.
15205
15206         * emit-rtl.c (gen_label_rtx): Likewise.
15207
15208 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15209
15210         * rtl.h (previous_insn): Strengthen return type from rtx to
15211         rtx_insn *.
15212         (next_insn): Likewise.
15213         (prev_nonnote_insn): Likewise.
15214         (prev_nonnote_insn_bb): Likewise.
15215         (next_nonnote_insn): Likewise.
15216         (next_nonnote_insn_bb): Likewise.
15217         (prev_nondebug_insn): Likewise.
15218         (next_nondebug_insn): Likewise.
15219         (prev_nonnote_nondebug_insn): Likewise.
15220         (next_nonnote_nondebug_insn): Likewise.
15221         (prev_real_insn): Likewise.
15222         (next_real_insn): Likewise.
15223         (prev_active_insn): Likewise.
15224         (next_active_insn): Likewise.
15225
15226         * emit-rtl.c (next_insn): Strengthen return type from rtx to
15227         rtx_insn *, adding a checked cast.
15228         (previous_insn): Likewise.
15229         (next_nonnote_insn): Likewise.
15230         (next_nonnote_insn_bb): Likewise.
15231         (prev_nonnote_insn): Likewise.
15232         (prev_nonnote_insn_bb): Likewise.
15233         (next_nondebug_insn): Likewise.
15234         (prev_nondebug_insn): Likewise.
15235         (next_nonnote_nondebug_insn): Likewise.
15236         (prev_nonnote_nondebug_insn): Likewise.
15237         (next_real_insn): Likewise.
15238         (prev_real_insn): Likewise.
15239         (next_active_insn): Likewise.
15240         (prev_active_insn): Likewise.
15241
15242         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
15243         param "stepfunc" so that it returns an rtx_insn * rather than an
15244         rtx, to track the change to prev_nonnote_insn_bb, which is the
15245         only function this is called with.
15246         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
15247
15248 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
15249
15250         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
15251         assert.
15252
15253 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15254
15255         * coretypes.h (class rtx_debug_insn): Add forward declaration.
15256         (class rtx_nonjump_insn): Likewise.
15257         (class rtx_jump_insn): Likewise.
15258         (class rtx_call_insn): Likewise.
15259         (class rtx_jump_table_data): Likewise.
15260         (class rtx_barrier): Likewise.
15261         (class rtx_code_label): Likewise.
15262         (class rtx_note): Likewise.
15263
15264         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
15265         adding the invariant DEBUG_INSN_P (X).
15266         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
15267         the invariant NONJUMP_INSN_P (X).
15268         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
15269         the invariant JUMP_P (X).
15270         (class rtx_call_insn): New, a subclass of rtx_insn, adding
15271         the invariant CALL_P (X).
15272         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
15273         invariant JUMP_TABLE_DATA_P (X).
15274         (class rtx_barrier): New, a subclass of rtx_insn, adding the
15275         invariant BARRIER_P (X).
15276         (class rtx_code_label): New, a subclass of rtx_insn, adding
15277         the invariant LABEL_P (X).
15278         (class rtx_note): New, a subclass of rtx_insn, adding
15279         the invariant NOTE_P(X).
15280         (is_a_helper <rtx_debug_insn *>::test): New.
15281         (is_a_helper <rtx_nonjump_insn *>::test): New.
15282         (is_a_helper <rtx_jump_insn *>::test): New.
15283         (is_a_helper <rtx_call_insn *>::test): New.
15284         (is_a_helper <rtx_jump_table_data *>::test): New functions,
15285         overloaded for both rtx and rtx_insn *.
15286         (is_a_helper <rtx_barrier *>::test): New.
15287         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
15288         for both rtx and rtx_insn *.
15289         (is_a_helper <rtx_note *>::test): New.
15290
15291 2014-08-19  Marek Polacek  <polacek@redhat.com>
15292
15293         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
15294         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
15295         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
15296         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
15297
15298 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15299
15300         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
15301         rtx_insn *.  To help with transition, for now, convert from an
15302         access macro into a pair of functions: BND_TO, returning an
15303         rtx_insn *, and...
15304         (SET_BND_TO): New function, for use where BND_TO is used as an
15305         lvalue.
15306
15307         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
15308         SET_BND_TO.
15309         (BND_TO): New function, adding a checked cast.
15310         (SET_BND_TO): New function.
15311
15312         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
15313         SET_BND_TO.
15314         (compute_av_set_on_boundaries): Likewise.
15315
15316 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
15317
15318         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
15319         destination if it is used in source.
15320         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
15321         (*popcount<mode>2_falsedep_1): Likewise.
15322
15323 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
15324
15325         PR other/62168
15326         * configure.ac: Set install_gold_as_default to no first.
15327         * configure: Regenerated.
15328
15329 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15330
15331         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
15332         "note_list" field will eventually be an rtx_insn *.  To help with
15333         transition, for now, convert from an access macro into a pair of
15334         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
15335         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
15336         used as an lvalue.
15337
15338         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
15339         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
15340
15341         * sel-sched-ir.c (init_bb): Likewise.
15342         (sel_restore_notes): Likewise.
15343         (move_bb_info): Likewise.
15344         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
15345         (SET_BB_NOTE_LIST): New function.
15346
15347 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15348
15349         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
15350         field will eventually be an rtx_insn *.  To help with transition,
15351         for now, convert from an access macro into a pair of functions:
15352         VINSN_INSN_RTX, returning an rtx_insn *, and...
15353         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
15354         is used as an lvalue.
15355
15356         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
15357         SET_VINSN_INSN_RTX where it's used as an lvalue.
15358         (VINSN_INSN_RTX): New function.
15359         (SET_VINSN_INSN_RTX): New function.
15360
15361 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15362
15363         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
15364         eventually be rtx_insn *, but to help with transition, for now,
15365         convert from an access macro into a pair of functions: DEP_PRO
15366         returning an rtx_insn * and...
15367         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
15368         lvalue, returning an rtx&.
15369         (DEP_CON): Analogous changes to DEP_PRO above.
15370         (SET_DEP_CON): Likewise.
15371
15372         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
15373         an lvalue to SET_DEP_CON.
15374         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
15375         (sd_copy_back_deps): Likewise for DEP_CON.
15376         (DEP_PRO): New function, adding a checked cast for now.
15377         (DEP_CON): Likewise.
15378         (SET_DEP_PRO): New function.
15379         (SET_DEP_CON): Likewise.
15380
15381 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
15382
15383         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
15384         (extra_options): Add i386/cygwin.opt.
15385         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
15386         (CPP_SPEC): Accept -pthread.
15387         (LINK_SPEC): Ditto.
15388         (GOMP_SELF_SPECS): Update comment.
15389         * config/i386/cygwin.opt: New file for -pthread flag.
15390
15391 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15392
15393         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
15394         * df.h (DF_REF_INSN): Convert from a macro to a function, so
15395         that we can return an rtx_insn *.
15396
15397 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
15398
15399         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
15400         when building executables, not DLLs.  Add --large-address-aware
15401         under the same conditions.
15402         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
15403         when building executables, not DLLs.  Add --large-address-aware
15404         under the same conditions when using -m32.
15405
15406         * config/i386/cygwin-stdint.h: Throughout, make type
15407         definitions dependent on target architecture, not host.
15408
15409 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15410
15411         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
15412         the return type from rtx to rtx_insn *,  which will enable various
15413         conversions in followup patches.  For now this is is done by a
15414         checked cast.
15415         (NEXT_INSN): Likewise.
15416         (SET_PREV_INSN): Convert to an inline function.  This is intended
15417         for use as an lvalue, and so returns an rtx& to allow in-place
15418         modification.
15419         (SET_NEXT_INSN): Likewise.
15420
15421 2014-07-08  Mark Wielaard  <mjw@redhat.com>
15422
15423         PR debug/59051
15424         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
15425
15426 2014-08-19  Marek Polacek  <polacek@redhat.com>
15427
15428         PR c/61271
15429         * cgraphunit.c (handle_alias_pairs): Fix condition.
15430
15431 2014-08-19  Richard Biener  <rguenther@suse.de>
15432
15433         * gimple-fold.c (fold_gimple_assign): Properly build a
15434         null-pointer constant when devirtualizing addresses.
15435
15436 2014-07-07  Mark Wielaard  <mjw@redhat.com>
15437
15438         * dwarf2out.c (decl_quals): New function.
15439         (modified_type_die): Take one cv_quals argument instead of two,
15440         one for const and one for volatile.
15441         (add_type_attribute): Likewise.
15442         (generic_parameter_die): Call add_type_attribute with one modifier
15443         argument.
15444         (base_type_for_mode): Likewise.
15445         (add_bounds_info): Likewise.
15446         (add_subscript_info): Likewise.
15447         (gen_array_type_die): Likewise.
15448         (gen_descr_array_type_die): Likewise.
15449         (gen_entry_point_die): Likewise.
15450         (gen_enumeration_type_die): Likewise.
15451         (gen_formal_parameter_die): Likewise.
15452         (gen_subprogram_die): Likewise.
15453         (gen_variable_die): Likewise.
15454         (gen_const_die): Likewise.
15455         (gen_field_die): Likewise.
15456         (gen_pointer_type_die): Likewise.
15457         (gen_reference_type_die): Likewise.
15458         (gen_ptr_to_mbr_type_die): Likewise.
15459         (gen_inheritance_die): Likewise.
15460         (gen_subroutine_type_die): Likewise.
15461         (gen_typedef_die): Likewise.
15462         (force_type_die): Likewise.
15463
15464 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15465
15466         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
15467         if unset.
15468         * configure: Regenerate.
15469
15470 2014-08-19  Richard Biener  <rguenther@suse.de>
15471
15472         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
15473         DECL_EXTERNALs in BLOCKs as non-references.
15474         * tree-streamer-out.c (streamer_write_chain): Likewise.
15475
15476 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15477             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15478             Anna Tikhonova  <anna.tikhonova@intel.com>
15479             Ilya Tocar  <ilya.tocar@intel.com>
15480             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15481             Ilya Verbin  <ilya.verbin@intel.com>
15482             Kirill Yukhin  <kirill.yukhin@intel.com>
15483             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15484
15485         * config/i386/sse.md
15486         (define_mode_iterator VI48_AVX512F): Delete.
15487         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
15488         (define_mode_iterator VI2_AVX512VL): Ditto.
15489         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
15490         Delete.
15491         (define_insn
15492         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
15493         New.
15494         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
15495         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
15496         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
15497         with VI48_AVX512F_AVX512VL): New.
15498         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
15499         with VI2_AVX512VL): Ditto.
15500
15501 2014-08-19  Marek Polacek  <polacek@redhat.com>
15502
15503         * doc/invoke.texi: Document -Wc99-c11-compat.
15504
15505 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15506
15507         * rtl.h (PREV_INSN): Split macro in two: the existing one,
15508         for rvalues, and...
15509         (SET_PREV_INSN): New macro, for use as an lvalue.
15510         (NEXT_INSN, SET_NEXT_INSN): Likewise.
15511
15512         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
15513         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
15514         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
15515         (fixup_abnormal_edges): Likewise.
15516         (unlink_insn_chain): Likewise.
15517         (fixup_reorder_chain): Likewise.
15518         (cfg_layout_delete_block): Likewise.
15519         (cfg_layout_merge_blocks): Likewise.
15520         * combine.c (update_cfg_for_uncondjump): Likewise.
15521         * emit-rtl.c (link_insn_into_chain): Likewise.
15522         (remove_insn): Likewise.
15523         (delete_insns_since): Likewise.
15524         (reorder_insns_nobb): Likewise.
15525         (emit_insn_after_1): Likewise.
15526         * final.c (rest_of_clean_state): Likewise.
15527         (final_scan_insn): Likewise.
15528         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
15529         * haifa-sched.c (concat_note_lists): Likewise.
15530         (remove_notes): Likewise.
15531         (restore_other_notes): Likewise.
15532         (move_insn): Likewise.
15533         (unlink_bb_notes): Likewise.
15534         (restore_bb_notes): Likewise.
15535         * jump.c (delete_for_peephole): Likewise.
15536         * optabs.c (emit_libcall_block_1): Likewise.
15537         * reorg.c (emit_delay_sequence): Likewise.
15538         (fill_simple_delay_slots): Likewise.
15539         * sel-sched-ir.c (sel_move_insn): Likewise.
15540         (sel_remove_insn): Likewise.
15541         (get_bb_note_from_pool): Likewise.
15542         * sel-sched.c (move_nop_to_previous_block): Likewise.
15543
15544         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
15545         * config/c6x/c6x.c (gen_one_bundle): Likewise.
15546         (c6x_gen_bundles): Likewise.
15547         (hwloop_optimize): Likewise.
15548         * config/frv/frv.c (frv_function_prologue): Likewise.
15549         (frv_register_nop): Likewise.
15550         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
15551         (ia64_reorg): Likewise.
15552         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
15553         (mep_make_bundle): Likewise.
15554         (mep_bundle_insns): Likewise.
15555         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
15556         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
15557         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
15558
15559 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15560
15561         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
15562         return type from rtx to rtx_insn *.
15563         (BB_END): Likewise.
15564         (BB_HEADER): Likewise.
15565         (BB_FOOTER): Likewise.
15566         (SET_BB_HEAD): Convert to a function.
15567         (SET_BB_END): Likewise.
15568         (SET_BB_HEADER): Likewise.
15569         (SET_BB_FOOTER): Likewise.
15570
15571         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
15572         Strengthen the return type from rtx to rtx_insn *.  For now, this
15573         is done by adding a checked cast, but this will eventually
15574         become a field lookup.
15575         (BB_END): Likewise.
15576         (BB_HEADER): Likewise.
15577         (BB_FOOTER): Likewise.
15578         (SET_BB_HEAD): New function, from macro of same name.  This is
15579         intended for use as an lvalue, and so returns an rtx& to allow
15580         in-place modification.
15581         (SET_BB_END): Likewise.
15582         (SET_BB_HEADER): Likewise.
15583         (SET_BB_FOOTER): Likewise.
15584
15585 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15586
15587         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
15588         for rvalues, and...
15589         (SET_BB_HEAD): New macro, for use as a lvalue.
15590         (BB_END, SET_BB_END): Likewise.
15591         (BB_HEADER, SET_BB_HEADER): Likewise.
15592         (BB_FOOTER, SET_BB_FOOTER): Likewise.
15593
15594         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
15595         of BB_* macros into SET_BB_* macros.
15596         (fix_crossing_unconditional_branches): Likewise.
15597         * caller-save.c (save_call_clobbered_regs): Likewise.
15598         (insert_one_insn): Likewise.
15599         * cfgbuild.c (find_bb_boundaries): Likewise.
15600         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
15601         (outgoing_edges_match): Likewise.
15602         (try_optimize_cfg): Likewise.
15603         * cfgexpand.c (expand_gimple_cond): Likewise.
15604         (expand_gimple_tailcall): Likewise.
15605         (expand_gimple_basic_block): Likewise.
15606         (construct_exit_block): Likewise.
15607         * cfgrtl.c (delete_insn): Likewise.
15608         (create_basic_block_structure): Likewise.
15609         (rtl_delete_block): Likewise.
15610         (rtl_split_block): Likewise.
15611         (emit_nop_for_unique_locus_between): Likewise.
15612         (rtl_merge_blocks): Likewise.
15613         (block_label): Likewise.
15614         (try_redirect_by_replacing_jump): Likewise.
15615         (emit_barrier_after_bb): Likewise.
15616         (fixup_abnormal_edges): Likewise.
15617         (record_effective_endpoints): Likewise.
15618         (relink_block_chain): Likewise.
15619         (fixup_reorder_chain): Likewise.
15620         (fixup_fallthru_exit_predecessor): Likewise.
15621         (cfg_layout_duplicate_bb): Likewise.
15622         (cfg_layout_split_block): Likewise.
15623         (cfg_layout_delete_block): Likewise.
15624         (cfg_layout_merge_blocks): Likewise.
15625         * combine.c (update_cfg_for_uncondjump): Likewise.
15626         * emit-rtl.c (add_insn_after): Likewise.
15627         (remove_insn): Likewise.
15628         (reorder_insns): Likewise.
15629         (emit_insn_after_1): Likewise.
15630         * haifa-sched.c (get_ebb_head_tail): Likewise.
15631         (restore_other_notes): Likewise.
15632         (move_insn): Likewise.
15633         (sched_extend_bb): Likewise.
15634         (fix_jump_move): Likewise.
15635         * ifcvt.c (noce_process_if_block): Likewise.
15636         (dead_or_predicable): Likewise.
15637         * ira.c (update_equiv_regs): Likewise.
15638         * reg-stack.c (change_stack): Likewise.
15639         * sel-sched-ir.c (sel_move_insn): Likewise.
15640         * sel-sched.c (move_nop_to_previous_block): Likewise.
15641
15642         * config/c6x/c6x.c (hwloop_optimize): Likewise.
15643         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
15644
15645 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15646
15647         * rtl.h (for_each_rtx_in_insn): New function.
15648         * rtlanal.c (for_each_rtx_in_insn): Likewise.
15649
15650 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15651
15652         * coretypes.h (class rtx_insn): Add forward declaration.
15653
15654         * rtl.h: Include is-a.h.
15655         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
15656         workaround to ensure gengtype knows inheritance is occurring,
15657         whilst continuing to use the pre-existing special-casing for
15658         rtx_def.
15659         (class rtx_insn): New subclass of rtx_def, adding the
15660         invariant that we're dealing with something we can sanely use
15661         INSN_UID, NEXT_INSN, PREV_INSN on.
15662         (is_a_helper <rtx_insn *>::test): New.
15663         (is_a_helper <const rtx_insn *>::test): New.
15664
15665 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15666
15667         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
15668
15669 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
15670
15671         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
15672         comdats as extern.
15673
15674 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
15675
15676         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
15677         to BUILT_IN_UNREACHABLE.
15678
15679 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
15680
15681         PR target/62011
15682         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
15683         New tune flag.
15684         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
15685         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
15686         (ffs<mode>2): Do not expand with tzcnt for
15687         TARGET_AVOID_FALSE_DEP_FOR_BMI.
15688         (ffssi2_no_cmove): Ditto.
15689         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
15690         (ctz<mode>2): New expander.
15691         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
15692         (*ctz<mode>2_falsedep): New insn.
15693         (*ctz<mode>2): Rename from ctz<mode>2.
15694         (clz<mode>2_lzcnt): New expander.
15695         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
15696         (*clz<mode>2_lzcnt_falsedep): New insn.
15697         (*clz<mode>2): Rename from ctz<mode>2.
15698         (popcount<mode>2): New expander.
15699         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
15700         (*popcount<mode>2_falsedep): New insn.
15701         (*popcount<mode>2): Rename from ctz<mode>2.
15702         (*popcount<mode>2_cmp): Remove.
15703         (*popcountsi2_cmp_zext): Ditto.
15704
15705 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
15706
15707         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
15708         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
15709         * config/microblaze/microblaze.h
15710         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
15711
15712 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
15713
15714         PR other/62168
15715         * configure.ac: Set install_gold_as_default to no for
15716         --enable-gold=no.
15717         * configure: Regenerated.
15718
15719 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
15720
15721         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
15722         * config.in: Add undef of HAVE_isl.
15723         * configure: Regenerate.
15724         * configure.ac: Add definition of HAVE_isl.
15725         * graphite-blocking.c: Add checking of HAVE_isl.
15726         * graphite-dependences.c: Likewise.
15727         * graphite-interchange.c: Likewise.
15728         * graphite-isl-ast-to-gimple.c: Likewise.
15729         * graphite-optimize-isl.c: Likewise.
15730         * graphite-poly.c: Likewise.
15731         * graphite-scop-detection.c: Likewise.
15732         * graphite-sese-to-poly.c: Likewise.
15733         * graphite.c: Likewise.
15734         * toplev.c: Replace the checking of HAVE_cloog with the checking
15735         of HAVE_isl.
15736
15737 2014-08-18  Richard Biener  <rguenther@suse.de>
15738
15739         PR tree-optimization/62090
15740         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
15741         (fold_builtin_3): Do not fold snprintf.
15742         (fold_builtin_4): Likewise.
15743         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
15744         moved from builtins.c.
15745         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
15746         (gimple_fold_builtin): Do not fold sprintf here.
15747
15748 2014-08-18  Richard Biener  <rguenther@suse.de>
15749
15750         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
15751         code to ...
15752         (maybe_canonicalize_mem_ref_addr): ... this function.
15753         (fold_stmt_1): Apply it here before all simplification.
15754
15755 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
15756
15757         PR ipa/61800
15758         * cgraph.h (cgraph_node::create_indirect_edge): Add
15759         compute_indirect_info param.
15760         * cgraph.c (cgraph_node::create_indirect_edge): Compute
15761         indirect_info only when it is required.
15762         * cgraphclones.c (cgraph_clone_edge): Do not recompute
15763         indirect_info fore cloned indirect edge.
15764
15765 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15766             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15767             Anna Tikhonova  <anna.tikhonova@intel.com>
15768             Ilya Tocar  <ilya.tocar@intel.com>
15769             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15770             Ilya Verbin  <ilya.verbin@intel.com>
15771             Kirill Yukhin  <kirill.yukhin@intel.com>
15772             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15773
15774         * config/i386/sse.md
15775         (define_mode_iterator VI8_AVX2_AVX512BW): New.
15776         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
15777
15778 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15779             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15780             Anna Tikhonova  <anna.tikhonova@intel.com>
15781             Ilya Tocar  <ilya.tocar@intel.com>
15782             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15783             Ilya Verbin  <ilya.verbin@intel.com>
15784             Kirill Yukhin  <kirill.yukhin@intel.com>
15785             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15786
15787         * config/i386/sse.md
15788         (define_mode_iterator VF1_AVX512VL): New.
15789         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
15790         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
15791         New.
15792
15793 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15794             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15795             Anna Tikhonova  <anna.tikhonova@intel.com>
15796             Ilya Tocar  <ilya.tocar@intel.com>
15797             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15798             Ilya Verbin  <ilya.verbin@intel.com>
15799             Kirill Yukhin  <kirill.yukhin@intel.com>
15800             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15801
15802         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
15803         * config/i386/i386.md
15804         (define_code_iterator any_float): New.
15805         (define_code_attr floatsuffix): New.
15806         * config/i386/sse.md
15807         (define_mode_iterator VF1_128_256VL): New.
15808         (define_mode_iterator VF2_512_256VL): New.
15809         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
15810         TARGET check.
15811         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
15812         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
15813         New.
15814         (define_mode_attr qq2pssuff): New.
15815         (define_mode_attr sselongvecmode): New.
15816         (define_mode_attr sselongvecmodelower): New.
15817         (define_mode_attr sseintvecmode3): New.
15818         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
15819         New.
15820         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
15821         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
15822         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
15823         (define_insn "ufloatv2siv2df2<mask_name>"): New.
15824
15825 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15826             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15827             Anna Tikhonova  <anna.tikhonova@intel.com>
15828             Ilya Tocar  <ilya.tocar@intel.com>
15829             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15830             Ilya Verbin  <ilya.verbin@intel.com>
15831             Kirill Yukhin  <kirill.yukhin@intel.com>
15832             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15833
15834         * config/i386/sse.md
15835         (define_mode_iterator VF2_AVX512VL): New.
15836         (define_mode_attr sseintvecmode2): New.
15837         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
15838         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
15839         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
15840         (define_insn
15841         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
15842         Ditto.
15843         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15844         Ditto.
15845         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15846         Ditto.
15847
15848 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15849             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15850             Anna Tikhonova  <anna.tikhonova@intel.com>
15851             Ilya Tocar  <ilya.tocar@intel.com>
15852             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15853             Ilya Verbin  <ilya.verbin@intel.com>
15854             Kirill Yukhin  <kirill.yukhin@intel.com>
15855             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15856
15857         * config/i386/i386.md
15858         (define_insn "*movoi_internal_avx"): Add evex version.
15859         (define_insn "*movti_internal"): Ditto.
15860
15861 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15862             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15863             Anna Tikhonova  <anna.tikhonova@intel.com>
15864             Ilya Tocar  <ilya.tocar@intel.com>
15865             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15866             Ilya Verbin  <ilya.verbin@intel.com>
15867             Kirill Yukhin  <kirill.yukhin@intel.com>
15868             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15869
15870         * config/i386/i386.md
15871         (define_attr "isa"): Add avx512dq, noavx512dq.
15872         (define_attr "enabled"): Ditto.
15873         * config/i386/sse.md
15874         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
15875
15876 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15877             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15878             Anna Tikhonova  <anna.tikhonova@intel.com>
15879             Ilya Tocar  <ilya.tocar@intel.com>
15880             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15881             Ilya Verbin  <ilya.verbin@intel.com>
15882             Kirill Yukhin  <kirill.yukhin@intel.com>
15883             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15884
15885         * config/i386/i386.c
15886         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
15887         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
15888         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
15889         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
15890         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
15891         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
15892         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
15893         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
15894         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
15895         * config/i386/sse.md
15896         (define_mode_iterator VMOVE): Allow V4TI mode.
15897         (define_mode_iterator V_AVX512VL): New.
15898         (define_mode_iterator V): New handling for AVX512VL.
15899         (define_insn "avx512f_load<mode>_mask"): Delete.
15900         (define_insn "<avx512>_load<mode>_mask"): New.
15901         (define_insn "avx512f_store<mode>_mask"): Delete.
15902         (define_insn "<avx512>_store<mode>_mask"): New.
15903
15904
15905 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
15906
15907         PR sanitizer/62089
15908         * asan.c (instrument_derefs): Fix bitfield check.
15909
15910 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15911
15912         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
15913         * config/rs6000/htm.md (ttest): Remove clobber.
15914         * config/rs6000/predicates.md (any_mask_operand): New predicate.
15915         (and_operand): Reformat.
15916         (and_2rld_operand): New predicate.
15917         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
15918         parameter.
15919         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
15920         parameter.  Handle AND directly.
15921         (rs6000_split_logical_di): Remove last parameter.
15922         (rs6000_split_logical): Remove last parameter.  Remove obsolete
15923         comment.
15924         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
15925         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
15926         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
15927         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
15928         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
15929         and 5 anonymous splitters):  Delete.
15930         (and<mode>3): New expander.
15931         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
15932         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
15933         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
15934         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
15935         (floatdisf2_internal1): Remove clobbers.
15936         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
15937         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
15938         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
15939         (and<mode>3 for BOOL_128): Remove clobber.
15940         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
15941         rs6000_split_logical.
15942         (*bool<mode>3_internal for BOOL_128): Adjust call of
15943         rs6000_split_logical.
15944         (*boolc<mode>3_internal1 for BOOL_128,
15945         *boolc<mode>3_internal2 for BOOL_128,
15946         *boolcc<mode>3_internal1 for BOOL_128,
15947         *boolcc<mode>3_internal2 for BOOL_128,
15948         *eqv<mode>3_internal1 for BOOL_128,
15949         *eqv<mode>3_internal2 for BOOL_128,
15950         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
15951         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
15952         clobber.
15953         (*vec_reload_and_reg_<mptrsize>): Delete.
15954
15955 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15956
15957         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
15958         and split, *boolccsi3_internal3 and split): Delete.
15959         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
15960         *boolccdi3_internal3 and split): Delete.
15961         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
15962         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
15963
15964 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15965
15966         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
15967         and split, *boolcsi3_internal3 and split): Delete.
15968         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
15969         *boolcdi3_internal3 and split): Delete.
15970         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
15971
15972 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15973
15974         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
15975         <'u'>: Also support printing the low-order 16 bits.
15976         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
15977         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
15978         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
15979         *booldi3_internal3 and split): Delete.
15980         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
15981         *bool<mode>3_dot2): New.
15982         (two anonymous define_splits for non_logical_cint_operand): Merge.
15983
15984 2014-08-17  Marek Polacek  <polacek@redhat.com>
15985             Manuel López-Ibáñez  <manu@gcc.gnu.org>
15986
15987         PR c/62059
15988         * diagnostic.c (adjust_line): Add gcc_checking_assert.
15989         (diagnostic_show_locus): Don't print caret diagnostic
15990         if a column is larger than the line_width.
15991
15992 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
15993
15994         * common.opt: Make the ISL AST generator to be the main code generator
15995         of Graphite.
15996
15997 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
15998
15999         * wide-int.h (generic_wide_int): Declare as class instead of struct.
16000
16001 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
16002
16003         PR target/61641
16004         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
16005         Declare.
16006         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
16007         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
16008         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
16009         Define.
16010         * config/pa/pa.md (begin_brtab): Delete insn.
16011         (end_brtab): Likewise.
16012
16013 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16014
16015         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
16016
16017 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
16018
16019         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
16020         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
16021         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
16022         (get_dynamic_type): Remove.
16023         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
16024         (clear_speculation): Bring to ipa-deivrt.h
16025         (get_class_context): Rename to ...
16026         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
16027         (contains_type_p): Update.
16028         (get_dynamic_type): Rename to ...
16029         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
16030         (possible_polymorphic_call_targets): UPdate.
16031         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
16032         * ipa-prop.c (ipa_analyze_call_uses): Update.
16033
16034 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
16035
16036         * doc/invoke.texi (SH options): Document missing processor variant
16037         options.  Remove references to Hitachi.  Undocument deprecated mspace
16038         option.
16039
16040 2014-08-15  Jason Merrill  <jason@redhat.com>
16041
16042         * tree.c (type_hash_canon): Uncomment assert.
16043
16044 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16045
16046         * input.h (in_system_header_at): Add comment.
16047
16048 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16049
16050         PR fortran/44054
16051         * diagnostic.c (build_message_string): Make it extern.
16052         * diagnostic.h (build_message_string): Make it extern.
16053
16054 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
16055
16056         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
16057         load/store from/to non-floating class pseudo.
16058
16059 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16060
16061         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
16062
16063 2014-08-15  Richard Biener  <rguenther@suse.de>
16064
16065         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
16066         (get_constraint_for_ssa_var): Remove dead code.
16067         (get_constraint_for_1): Adjust.
16068         (find_what_var_points_to): Likewise.
16069         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
16070
16071 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
16072
16073         PR target/61878
16074         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
16075         (_mm512_mask_cmpge_epu32_mask): Ditto.
16076         (_mm512_cmpge_epu32_mask): Ditto.
16077         (_mm512_mask_cmpge_epi64_mask): Ditto.
16078         (_mm512_cmpge_epi64_mask): Ditto.
16079         (_mm512_mask_cmpge_epu64_mask): Ditto.
16080         (_mm512_cmpge_epu64_mask): Ditto.
16081         (_mm512_mask_cmple_epi32_mask): Ditto.
16082         (_mm512_cmple_epi32_mask): Ditto.
16083         (_mm512_mask_cmple_epu32_mask): Ditto.
16084         (_mm512_cmple_epu32_mask): Ditto.
16085         (_mm512_mask_cmple_epi64_mask): Ditto.
16086         (_mm512_cmple_epi64_mask): Ditto.
16087         (_mm512_mask_cmple_epu64_mask): Ditto.
16088         (_mm512_cmple_epu64_mask): Ditto.
16089         (_mm512_mask_cmplt_epi32_mask): Ditto.
16090         (_mm512_cmplt_epi32_mask): Ditto.
16091         (_mm512_mask_cmplt_epu32_mask): Ditto.
16092         (_mm512_cmplt_epu32_mask): Ditto.
16093         (_mm512_mask_cmplt_epi64_mask): Ditto.
16094         (_mm512_cmplt_epi64_mask): Ditto.
16095         (_mm512_mask_cmplt_epu64_mask): Ditto.
16096         (_mm512_cmplt_epu64_mask): Ditto.
16097         (_mm512_mask_cmpneq_epi32_mask): Ditto.
16098         (_mm512_mask_cmpneq_epu32_mask): Ditto.
16099         (_mm512_cmpneq_epu32_mask): Ditto.
16100         (_mm512_mask_cmpneq_epi64_mask): Ditto.
16101         (_mm512_cmpneq_epi64_mask): Ditto.
16102         (_mm512_mask_cmpneq_epu64_mask): Ditto.
16103         (_mm512_cmpneq_epu64_mask): Ditto.
16104         (_mm512_castpd_ps): Ditto.
16105         (_mm512_castpd_si512): Ditto.
16106         (_mm512_castps_pd): Ditto.
16107         (_mm512_castps_si512): Ditto.
16108         (_mm512_castsi512_ps): Ditto.
16109         (_mm512_castsi512_pd): Ditto.
16110         (_mm512_castpd512_pd128): Ditto.
16111         (_mm512_castps512_ps128): Ditto.
16112         (_mm512_castsi512_si128): Ditto.
16113         (_mm512_castpd512_pd256): Ditto.
16114         (_mm512_castps512_ps256): Ditto.
16115         (_mm512_castsi512_si256): Ditto.
16116         (_mm512_castpd128_pd512): Ditto.
16117         (_mm512_castps128_ps512): Ditto.
16118         (_mm512_castsi128_si512): Ditto.
16119         (_mm512_castpd256_pd512): Ditto.
16120         (_mm512_castps256_ps512): Ditto.
16121         (_mm512_castsi256_si512): Ditto.
16122         (_mm512_cmpeq_epu32_mask): Ditto.
16123         (_mm512_mask_cmpeq_epu32_mask): Ditto.
16124         (_mm512_mask_cmpeq_epu64_mask): Ditto.
16125         (_mm512_cmpeq_epu64_mask): Ditto.
16126         (_mm512_cmpgt_epu32_mask): Ditto.
16127         (_mm512_mask_cmpgt_epu32_mask): Ditto.
16128         (_mm512_mask_cmpgt_epu64_mask): Ditto.
16129         (_mm512_cmpgt_epu64_mask): Ditto.
16130         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
16131         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
16132         * config/i386/i386.c (enum ix86_builtins): Add
16133         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
16134         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
16135         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
16136         (bdesc_args): Add __builtin_ia32_si512_256si,
16137         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
16138         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
16139         __builtin_ia32_pd512_pd.
16140         (ix86_expand_args_builtin): Handle new FTYPEs.
16141         * config/i386/sse.md (castmode): Add 512-bit modes.
16142         (AVX512MODE2P): New.
16143         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
16144         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
16145
16146 2014-08-15  Richard Biener  <rguenther@suse.de>
16147
16148         * fold-const.c (tree_swap_operands_p): Put all constants
16149         last, also strip sign-changing NOPs when considering further
16150         canonicalization.  Canonicalize also when optimizing for size.
16151
16152 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16153
16154         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
16155         one_match > zero_match case to just before simple_sequence.
16156
16157 2014-08-15  Richard Biener  <rguenther@suse.de>
16158
16159         * data-streamer.h (streamer_string_index, string_for_index):
16160         Remove.
16161         * data-streamer-out.c (streamer_string_index): Make static.
16162         * data-streamer-in.c (string_for_index): Likewise.
16163         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
16164         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
16165
16166 2014-08-15  Richard Biener  <rguenther@suse.de>
16167
16168         PR tree-optimization/62031
16169         * tree-data-ref.c (dr_analyze_indices): Do not set
16170         DR_UNCONSTRAINED_BASE.
16171         (dr_may_alias_p): All indirect accesses have to go the
16172         formerly DR_UNCONSTRAINED_BASE path.
16173         * tree-data-ref.h (struct indices): Remove
16174         unconstrained_base member.
16175         (DR_UNCONSTRAINED_BASE): Remove.
16176
16177 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
16178
16179         PR middle-end/62092
16180         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
16181         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
16182         in OMP_CLAUSE_MAP in some outer target region.
16183
16184 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
16185
16186         * tree-ssa-loop-ivopts.c (ivopts_data): New field
16187         name_expansion_cache.
16188         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
16189         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
16190         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
16191         (difference_cannot_overflow_p): New parameter.  Use affine
16192         expansion for equality check.
16193         (iv_elimination_compare_lt): Pass new argument.
16194
16195 2014-08-14  DJ Delorie  <dj@redhat.com>
16196
16197         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
16198         variables to the accumulator.
16199
16200         * config/rl78/predicates.md (rl78_near_mem_operand): New.
16201         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
16202         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
16203         with far-far moves.
16204
16205         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
16206         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
16207         (umulqihi3_virt): Likewise.
16208         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
16209         (umulqihi3_real): Likewise.
16210
16211         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
16212
16213 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
16214
16215         PR tree-optimization/62091
16216         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
16217         function_entry_reached.
16218         (walk_aliased_vdefs): Clear it here.
16219         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
16220
16221 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
16222
16223         * ipa-utils.h (compare_virtual_tables): Declare.
16224         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
16225
16226 2014-08-14  Marek Polacek  <polacek@redhat.com>
16227
16228         DR 458
16229         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
16230         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
16231
16232 2014-08-14  Tom de Vries  <tom@codesourcery.com>
16233
16234         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
16235
16236 2014-08-14  Tom de Vries  <tom@codesourcery.com>
16237
16238         PR rtl-optimization/62004
16239         PR rtl-optimization/62030
16240         * ifcvt.c (rtx_interchangeable_p): New function.
16241         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
16242         * emit-rtl.h (mem_attrs_eq_p): Declare.
16243
16244 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
16245
16246         * graphite-scop-detection.c:
16247         Add inclusion of cp-tree.h.
16248         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
16249         in case they are pointers to object types
16250
16251 2014-08-14  Richard Biener  <rguenther@suse.de>
16252
16253         * BASE-VER: Change to 5.0.0
16254
16255 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16256             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16257             Anna Tikhonova  <anna.tikhonova@intel.com>
16258             Ilya Tocar  <ilya.tocar@intel.com>
16259             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16260             Ilya Verbin  <ilya.verbin@intel.com>
16261             Kirill Yukhin  <kirill.yukhin@intel.com>
16262             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16263
16264         * config/i386/sse.md (define_mode_attr avx512): New.
16265         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
16266         V4DI modes.
16267         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
16268         (define_mode_attr ssse3_avx2): Ditto.
16269         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
16270         (define_mode_attr avx2_avx512bw): New.
16271         (define_mode_attr ssedoublemodelower): New.
16272         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
16273         V32HI, V64QI modes.
16274         (define_mode_attr ssebytemode): Allow V8DI modes.
16275         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
16276         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
16277         (define_mode_attr ssePSmode2): New.
16278         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
16279         V16HI, V32HI modes.
16280         (define_mode_attr dbpsadbwmode): New.
16281         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
16282         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
16283         (vi8_sse4_1_avx2_avx512): New.
16284         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
16285         mode attribute.
16286         (define_mode_attr blendbits): Move before its immediate use.
16287
16288 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16289             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16290             Anna Tikhonova  <anna.tikhonova@intel.com>
16291             Ilya Tocar  <ilya.tocar@intel.com>
16292             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16293             Ilya Verbin  <ilya.verbin@intel.com>
16294             Kirill Yukhin  <kirill.yukhin@intel.com>
16295             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16296
16297         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
16298         * config/i386/subst.md
16299         (define_mode_iterator SUBST_V): Update.
16300         (define_mode_iterator SUBST_A): Ditto.
16301         (define_subst_attr "mask_operand7"): New.
16302         (define_subst_attr "mask_operand10"): New.
16303         (define_subst_attr "mask_operand_arg34") : New.
16304         (define_subst_attr "mask_expand_op3"): New.
16305         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
16306         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
16307         (define_subst_attr "mask_avx512vl_condition"): New.
16308         (define_subst_attr "round_mask_operand4"): Ditto.
16309         (define_subst_attr "round_mask_scalar_op3"): Delete.
16310         (define_subst_attr "round_mask_op4"): New.
16311         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
16312         V16SImode.
16313         (define_subst_attr "round_modev8sf_condition"): New.
16314         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
16315         <MODE>mode.
16316         (define_subst_attr "round_saeonly_mask_operand4"): New.
16317         (define_subst_attr "round_saeonly_mask_op4"): New.
16318         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
16319         V8DImode, V16SImode.
16320         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
16321         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
16322         (define_subst_attr "mask_expand4_args"): New.
16323         (define_subst "mask_expand4"): New.
16324
16325 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16326             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16327             Anna Tikhonova  <anna.tikhonova@intel.com>
16328             Ilya Tocar  <ilya.tocar@intel.com>
16329             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16330             Ilya Verbin  <ilya.verbin@intel.com>
16331             Kirill Yukhin  <kirill.yukhin@intel.com>
16332             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16333
16334         * config/i386/i386.md
16335         (define_attr "isa"): Add avx512bw,noavx512bw.
16336         (define_attr "enabled"): Ditto.
16337         (define_split): Add 32/64-bit mask logic.
16338         (define_insn "*k<logic>qi"): New.
16339         (define_insn "*k<logic>hi"): New.
16340         (define_insn "*anddi_1"): Add mask version.
16341         (define_insn "*andsi_1"): Ditto.
16342         (define_insn "*<code><mode>_1"): Ditto.
16343         (define_insn "*<code>hi_1"): Ditto.
16344         (define_insn "kxnor<mode>"): New.
16345         (define_insn "kunpcksi"): New.
16346         (define_insn "kunpckdi"): New.
16347         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
16348         (define_insn "*one_cmplhi2_1"): Ditto.
16349
16350 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16351             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16352             Anna Tikhonova  <anna.tikhonova@intel.com>
16353             Ilya Tocar  <ilya.tocar@intel.com>
16354             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16355             Ilya Verbin  <ilya.verbin@intel.com>
16356             Kirill Yukhin  <kirill.yukhin@intel.com>
16357             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16358
16359         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
16360         V32HImode.
16361
16362 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16363             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16364             Anna Tikhonova  <anna.tikhonova@intel.com>
16365             Ilya Tocar  <ilya.tocar@intel.com>
16366             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16367             Ilya Verbin  <ilya.verbin@intel.com>
16368             Kirill Yukhin  <kirill.yukhin@intel.com>
16369             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16370
16371         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
16372         registers.
16373         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
16374         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
16375         xmm/ymm16+ when availble.
16376         * config/i386/i386.h
16377         (HARD_REGNO_NREGS): Add mask regs.
16378         (VALID_AVX512F_REG_MODE): Ditto.
16379         (VALID_AVX512F_REG_MODE) : Define.
16380         (VALID_MASK_AVX512BW_MODE): Ditto.
16381         (reg_class) (MASK_REG_P(X)): Define.
16382         * config/i386/i386.md: Do not split long moves with mask register,
16383         use kmovb if avx512bw is availible.
16384         (movdi_internal): Handle mask registers.
16385
16386 2014-08-14  Richard Biener  <rguenther@suse.de>
16387
16388         PR tree-optimization/62081
16389         * tree-ssa-loop.c (pass_fix_loops): New pass.
16390         (pass_tree_loop::gate):  Do not fixup loops here.
16391         * tree-pass.h (make_pass_fix_loops): Declare.
16392         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
16393
16394 2014-08-14  Richard Biener  <rguenther@suse.de>
16395
16396         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
16397         (type_hash_canon): ... this and avoid 2nd lookup for the add.
16398
16399 2014-08-14  Richard Biener  <rguenther@suse.de>
16400
16401         PR tree-optimization/62090
16402         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
16403         (fold_builtin_2): Do not fold sprintf.
16404         (fold_builtin_3): Likewise.
16405         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
16406         moved from builtins.c.
16407         (gimple_fold_builtin): Fold sprintf.
16408
16409 2014-08-14  Richard Biener  <rguenther@suse.de>
16410
16411         PR rtl-optimization/62079
16412         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
16413         run cleanup_cfg.
16414
16415 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
16416
16417         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
16418         current_function_decl.
16419
16420 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
16421
16422         * cgraph.c (cgraph_node::function_symbol): Fix wrong
16423         cgraph_function_node to cgraph_node::function_symbol
16424         refactoring.
16425
16426 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16427
16428         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
16429         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
16430
16431 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
16432
16433         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
16434         warning.
16435
16436 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
16437
16438         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
16439         generator.
16440
16441 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
16442
16443         PR target/62025
16444         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
16445         any registers that are used in mem_insn.
16446
16447 2014-08-12  Steve Ellcey  <sellcey@mips.com>
16448
16449         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
16450
16451 2014-08-12  Steve Ellcey  <sellcey@mips.com>
16452
16453         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
16454         (MULTILIB_DIRNAMES): Ditto.
16455         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
16456         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
16457         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
16458         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
16459         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
16460         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
16461
16462 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16463
16464         PR target/61413
16465         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
16466         of __ARM_SIZEOF_WCHAR_T.
16467
16468 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16469
16470         PR target/62098
16471         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
16472         Remove unnecessary attributes.
16473
16474 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
16475
16476         * internal-fn.c (init_internal_fns): Fix off-by-one.
16477
16478 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16479             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16480             Anna Tikhonova  <anna.tikhonova@intel.com>
16481             Ilya Tocar  <ilya.tocar@intel.com>
16482             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16483             Ilya Verbin  <ilya.verbin@intel.com>
16484             Kirill Yukhin  <kirill.yukhin@intel.com>
16485             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16486
16487         * config/i386/i386.c (standard_sse_constant_opcode): Use
16488         vpxord/vpternlog if avx512 is availible.
16489
16490 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16491
16492         PR middle-end/62103
16493         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
16494         bitfields, that is when size doesn't match the size of type or the
16495         size of the constructor.
16496
16497 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
16498
16499         * config/rs6000/constraints.md (wh constraint): New constraint,
16500         for FP registers if direct move is available.
16501         (wi constraint): New constraint, for VSX/FP registers that can
16502         handle 64-bit integers.
16503         (wj constraint): New constraint for VSX/FP registers that can
16504         handle 64-bit integers for direct moves.
16505         (wk constraint): New constraint for VSX/FP registers that can
16506         handle 64-bit doubles for direct moves.
16507         (wy constraint): Make documentation match implementation.
16508
16509         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
16510         scalar_in_vmx_p field to simplify tests of whether SFmode or
16511         DFmode can go in the Altivec registers.
16512         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
16513         (rs6000_setup_reg_addr_masks): Likewise.
16514         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
16515         field, and wh/wi/wj/wk constraints.
16516         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
16517         the wh/wi/wj/wk constraints.
16518         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
16519         upper registers, prefer VSX registers unless the operation is a
16520         memory operation with REG+OFFSET addressing.
16521
16522         * config/rs6000/vsx.md (VSr mode attribute): Add support for
16523         DImode.  Change SFmode to use ww constraint instead of d to allow
16524         SF registers in the upper registers.
16525         (VSr2): Likewise.
16526         (VSr3): Likewise.
16527         (VSr5): Fix thinko in comment.
16528         (VSa): New mode attribute that is an alternative to wa, that
16529         returns the VSX register class that a mode can go in, but may not
16530         be the preferred register class.
16531         (VS_64dm): New mode attribute for appropriate register classes for
16532         referencing 64-bit elements of vectors for direct moves and normal
16533         moves.
16534         (VS_64reg): Likewise.
16535         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
16536         register allocator to only registers the data type can handle.
16537         (vsx_le_perm_load_<mode>): Likewise.
16538         (vsx_le_perm_store_<mode>): Likewise.
16539         (vsx_xxpermdi2_le_<mode>): Likewise.
16540         (vsx_xxpermdi4_le_<mode>): Likewise.
16541         (vsx_lxvd2x2_le_<mode>): Likewise.
16542         (vsx_lxvd2x4_le_<mode>): Likewise.
16543         (vsx_stxvd2x2_le_<mode>): Likewise.
16544         (vsx_add<mode>3): Likewise.
16545         (vsx_sub<mode>3): Likewise.
16546         (vsx_mul<mode>3): Likewise.
16547         (vsx_div<mode>3): Likewise.
16548         (vsx_tdiv<mode>3_internal): Likewise.
16549         (vsx_fre<mode>2): Likewise.
16550         (vsx_neg<mode>2): Likewise.
16551         (vsx_abs<mode>2): Likewise.
16552         (vsx_nabs<mode>2): Likewise.
16553         (vsx_smax<mode>3): Likewise.
16554         (vsx_smin<mode>3): Likewise.
16555         (vsx_sqrt<mode>2): Likewise.
16556         (vsx_rsqrte<mode>2): Likewise.
16557         (vsx_tsqrt<mode>2_internal): Likewise.
16558         (vsx_fms<mode>4): Likewise.
16559         (vsx_nfma<mode>4): Likewise.
16560         (vsx_eq<mode>): Likewise.
16561         (vsx_gt<mode>): Likewise.
16562         (vsx_ge<mode>): Likewise.
16563         (vsx_eq<mode>_p): Likewise.
16564         (vsx_gt<mode>_p): Likewise.
16565         (vsx_ge<mode>_p): Likewise.
16566         (vsx_xxsel<mode>): Likewise.
16567         (vsx_xxsel<mode>_uns): Likewise.
16568         (vsx_copysign<mode>3): Likewise.
16569         (vsx_float<VSi><mode>2): Likewise.
16570         (vsx_floatuns<VSi><mode>2): Likewise.
16571         (vsx_fix_trunc<mode><VSi>2): Likewise.
16572         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
16573         (vsx_x<VSv>r<VSs>i): Likewise.
16574         (vsx_x<VSv>r<VSs>ic): Likewise.
16575         (vsx_btrunc<mode>2): Likewise.
16576         (vsx_b2trunc<mode>2): Likewise.
16577         (vsx_floor<mode>2): Likewise.
16578         (vsx_ceil<mode>2): Likewise.
16579         (vsx_<VS_spdp_insn>): Likewise.
16580         (vsx_xscvspdp): Likewise.
16581         (vsx_xvcvspuxds): Likewise.
16582         (vsx_float_fix_<mode>2): Likewise.
16583         (vsx_set_<mode>): Likewise.
16584         (vsx_extract_<mode>_internal1): Likewise.
16585         (vsx_extract_<mode>_internal2): Likewise.
16586         (vsx_extract_<mode>_load): Likewise.
16587         (vsx_extract_<mode>_store): Likewise.
16588         (vsx_splat_<mode>): Likewise.
16589         (vsx_xxspltw_<mode>): Likewise.
16590         (vsx_xxspltw_<mode>_direct): Likewise.
16591         (vsx_xxmrghw_<mode>): Likewise.
16592         (vsx_xxmrglw_<mode>): Likewise.
16593         (vsx_xxsldwi_<mode>): Likewise.
16594         (vsx_xscvdpspn): Tighten constraints to only use register classes
16595         the types use.
16596         (vsx_xscvspdpn): Likewise.
16597         (vsx_xscvdpspn_scalar): Likewise.
16598
16599         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
16600         wj, and wk constraints.
16601         (GPR_REG_CLASS_P): New helper macro for register classes targeting
16602         general purpose registers.
16603
16604         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
16605         direct moves.
16606         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
16607         DImode instead of wm.  Use wk constraint for direct move of DFmode
16608         instead of wm.
16609         (extendsidi2_lfiwax): Likewise.
16610         (lfiwax): Likewise.
16611         (lfiwzx): Likewise.
16612         (movdi_internal64): Likewise.
16613
16614         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
16615         wk constraints. Make the wy constraint documentation match them
16616         implementation.
16617
16618 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
16619
16620         Replacement of isl_int by isl_val
16621         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
16622         (compute_bounds_for_param): use isl_val instead of isl_int
16623         (compute_bounds_for_loop): likewise
16624         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
16625         (build_linearized_memory_access): use isl_val instead of isl_int
16626         (pdr_stride_in_loop): likewise
16627         * graphite-optimize-isl.c:
16628         (getPrevectorMap): use isl_val instead of isl_int
16629         * graphite-poly.c:
16630         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
16631         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
16632         (extern the_isl_ctx): declare
16633         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
16634         (extract_affine_gmp): likewise
16635         (wrap): likewise
16636         (build_loop_iteration_domains): likewise
16637         (add_param_constraints): likewise
16638
16639 2014-08-11  Richard Biener  <rguenther@suse.de>
16640
16641         PR tree-optimization/62075
16642         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
16643         handle uses in patterns.
16644
16645 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16646             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16647             Anna Tikhonova  <anna.tikhonova@intel.com>
16648             Ilya Tocar  <ilya.tocar@intel.com>
16649             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16650             Ilya Verbin  <ilya.verbin@intel.com>
16651             Kirill Yukhin  <kirill.yukhin@intel.com>
16652             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16653
16654         * common/config/i386/i386-common.c
16655         (OPTION_MASK_ISA_AVX512VL_SET): Define.
16656         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
16657         (ix86_handle_option): Handle OPT_mavx512vl.
16658         * config/i386/cpuid.h (bit_AVX512VL): Define.
16659         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
16660         set -mavx512vl accordingly.
16661         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16662         OPTION_MASK_ISA_AVX512VL.
16663         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
16664         (ix86_option_override_internal): Define PTA_AVX512VL, handle
16665         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
16666         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
16667         * config/i386/i386.h (TARGET_AVX512VL): Define.
16668         (TARGET_AVX512VL_P(x)): Ditto.
16669         * config/i386/i386.opt: Add mavx512vl.
16670
16671 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
16672
16673         PR tree-optimization/62073
16674         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
16675         a basic block.
16676
16677 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16678             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16679             Anna Tikhonova  <anna.tikhonova@intel.com>
16680             Ilya Tocar  <ilya.tocar@intel.com>
16681             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16682             Ilya Verbin  <ilya.verbin@intel.com>
16683             Kirill Yukhin  <kirill.yukhin@intel.com>
16684             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16685
16686         * common/config/i386/i386-common.c
16687         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
16688         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
16689         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
16690         (ix86_handle_option): Handle OPT_mavx512bw.
16691         * config/i386/cpuid.h (bit_AVX512BW): Define.
16692         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
16693         set -mavx512bw accordingly.
16694         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16695         OPTION_MASK_ISA_AVX512BW.
16696         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
16697         (ix86_option_override_internal): Define PTA_AVX512BW, handle
16698         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
16699         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
16700         * config/i386/i386.h (TARGET_AVX512BW): Define.
16701         (TARGET_AVX512BW_P(x)): Ditto.
16702         * config/i386/i386.opt: Add mavx512bw.
16703
16704 2014-08-11  Richard Biener  <rguenther@suse.de>
16705
16706         PR tree-optimization/62070
16707         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
16708         Remove SSA checking.
16709
16710 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
16711
16712         * asan.c (asan_check_flags): New enum.
16713         (build_check_stmt_with_calls): Removed function.
16714         (build_check_stmt): Split inlining logic to
16715         asan_expand_check_ifn.
16716         (instrument_derefs): Rename parameter.
16717         (instrument_mem_region_access): Rename parameter.
16718         (instrument_strlen_call): Likewise.
16719         (asan_expand_check_ifn): New function.
16720         (asan_instrument): Remove old code.
16721         (pass_sanopt::execute): Change handling of
16722         asan-instrumentation-with-call-threshold.
16723         (asan_clear_shadow): Fix formatting.
16724         (asan_function_start): Likewise.
16725         (asan_emit_stack_protection): Likewise.
16726         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
16727         Update description.
16728         * internal-fn.c (expand_ASAN_CHECK): New function.
16729         * internal-fn.def (ASAN_CHECK): New internal function.
16730         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
16731         Update description.
16732         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
16733         * tree.c: Small comment fix.
16734
16735 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
16736
16737         * gimple.c (gimple_call_fnspec): Support internal functions.
16738         (gimple_call_return_flags): Use const.
16739         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
16740         * internal-fn.def: Add fnspec information.
16741         * internal-fn.h (internal_fn_fnspec): New function.
16742         (init_internal_fns): Declare new function.
16743         * internal-fn.c (internal_fn_fnspec_array): New global variable.
16744         (init_internal_fns): New function.
16745         * tree-core.h: Update macro call.
16746         * tree.c (build_common_builtin_nodes): Initialize internal fns.
16747
16748 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
16749
16750         * lto-streamer.h (struct output_block::symbol): Change from
16751         struct symtab_node to plain symtab_node.
16752         (referenced_from_this_partition_p): Change first parameter
16753         from struct symtab_node to plain symtab_node.
16754
16755 2014-08-10  Marek Polacek  <polacek@redhat.com>
16756
16757         PR c/51849
16758         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
16759
16760 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
16761
16762         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
16763         DECL correctly; do not give up on types in static storage.
16764
16765 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
16766
16767         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
16768
16769 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
16770
16771         * graphite-isl-ast-to-gimple.c:
16772         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
16773
16774         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
16775
16776 2014-08-08  Guozhi Wei  <carrot@google.com>
16777
16778         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
16779
16780 2014-08-08  Cary Coutant  <ccoutant@google.com>
16781
16782         * dwarf2out.c (get_skeleton_type_unit): Remove.
16783         (output_skeleton_debug_sections): Remove skeleton type units.
16784         (output_comdat_type_unit): Likewise.
16785         (dwarf2out_finish): Likewise.
16786
16787 2014-08-07  Yi Yang  <ahyangyi@google.com>
16788
16789         * predict.c (expr_expected_value_1): Remove the redundant assignment.
16790
16791 2014-08-08  Richard Biener  <rguenther@suse.de>
16792
16793         * lto-streamer.h (struct lto_input_block): Make it a class
16794         with a constructor.
16795         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
16796         (struct lto_function_header, struct lto_simple_header,
16797         struct lto_simple_header_with_strings,
16798         struct lto_decl_header, struct lto_function_header): Make
16799         a simple inheritance hieararchy.  Remove unused fields.
16800         (struct lto_asm_header): Remove.
16801         * lto-streamer-out.c (produce_asm): Adjust.
16802         (lto_output_toplevel_asms): Likewise.
16803         (produce_asm_for_decls): Likewise.
16804         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16805         * data-streamer-in.c (string_for_index): Likewise.
16806         * ipa-inline-analysis.c (inline_read_section): Likewise.
16807         * ipa-prop.c (ipa_prop_read_section): Likewise.
16808         (read_replacements_section): Likewise.
16809         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
16810         * lto-section-in.c (lto_create_simple_input_block): Likewise.
16811         (lto_destroy_simple_input_block): Likewise.
16812         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
16813         (lto_input_toplevel_asms): Likewise.
16814
16815 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16816             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16817             Anna Tikhonova  <anna.tikhonova@intel.com>
16818             Ilya Tocar  <ilya.tocar@intel.com>
16819             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16820             Ilya Verbin  <ilya.verbin@intel.com>
16821             Kirill Yukhin  <kirill.yukhin@intel.com>
16822             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16823
16824         * common/config/i386/i386-common.c
16825         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
16826         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
16827         (ix86_handle_option): Handle OPT_mavx512dq.
16828         * config/i386/cpuid.h (bit_AVX512DQ): Define.
16829         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
16830         set -mavx512dq accordingly.
16831         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16832         OPTION_MASK_ISA_AVX512DQ.
16833         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
16834         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
16835         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
16836         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
16837         * config/i386/i386.h (TARGET_AVX512DQ): Define.
16838         (TARGET_AVX512DQ_P(x)): Ditto.
16839         * config/i386/i386.opt: Add mavx512dq.
16840
16841 2014-08-08  Richard Biener  <rguenther@suse.de>
16842
16843         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
16844         target_percent, target_percent_s): Export.
16845         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
16846         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
16847         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
16848         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
16849         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
16850         Move to gimple-fold.c.
16851         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
16852         strcat and strcpy.
16853         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
16854         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
16855         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
16856         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
16857         (rewrite_call_expr_array): Remove.
16858         (fold_builtin_sprintf_chk): Likewise.
16859         (fold_builtin_snprintf_chk): Likewise.
16860         (fold_builtin_varargs): Remove handling of sprintf_chk,
16861         vsprintf_chk, snprintf_chk and vsnprintf_chk.
16862         (gimple_fold_builtin_sprintf_chk): Remove.
16863         (gimple_fold_builtin_snprintf_chk): Likewise.
16864         (gimple_fold_builtin_varargs): Likewise.
16865         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
16866         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
16867         * gimple.c (gimple_seq_add_seq_without_update): New function.
16868         * gimple.h (gimple_seq_add_seq_without_update): Declare.
16869         * gimple-fold.c: Include output.h.
16870         (gsi_replace_with_seq_vops): New function, split out from ...
16871         (gimplify_and_update_call_from_tree): ... here.
16872         (replace_call_with_value): New function.
16873         (replace_call_with_call_and_fold): Likewise.
16874         (var_decl_component_p): Moved from builtins.c.
16875         (gimple_fold_builtin_memory_op): Moved from builtins.c
16876         fold_builtin_memory_op and rewritten to GIMPLE.
16877         (gimple_fold_builtin_memset): Likewise.
16878         (gimple_fold_builtin_strcpy): Likewise.
16879         (gimple_fold_builtin_strncpy): Likewise.
16880         (gimple_fold_builtin_strcat): Likewise.
16881         (gimple_fold_builtin_fputs): Likewise.
16882         (gimple_fold_builtin_memory_chk): Likewise.
16883         (gimple_fold_builtin_stxcpy_chk): Likewise.
16884         (gimple_fold_builtin_stxncpy_chk): Likewise.
16885         (gimple_fold_builtin_snprintf_chk): Likewise.
16886         (gimple_fold_builtin_sprintf_chk): Likewise.
16887         (gimple_fold_builtin_strlen): New function.
16888         (gimple_fold_builtin_with_strlen): New function split out from
16889         gimple_fold_builtin.
16890         (gimple_fold_builtin): Change signature and handle
16891         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
16892         here.  Call gimple_fold_builtin_with_strlen.
16893         (gimple_fold_call): Adjust.
16894
16895 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
16896
16897         * calls.c (precompute_arguments): Check
16898         promoted_for_signed_and_unsigned_p and set the promoted mode.
16899         (promoted_for_signed_and_unsigned_p): New function.
16900         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
16901         and set the promoted mode.
16902         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
16903         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
16904         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
16905
16906
16907 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
16908
16909         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
16910         instead of SUBREG_PROMOTED_UNSIGNED_SET.
16911         (expand_call): Likewise.
16912         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
16913         to get promoted mode.
16914         * combine.c (record_promoted_value): Skip > 0 comparison with
16915         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
16916         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
16917         of SUBREG_PROMOTED_UNSIGNED_P.
16918         (convert_modes): Likewise.
16919         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
16920         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
16921         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
16922         SUBREG_PROMOTED_UNSIGNED_SET.
16923         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
16924         instead of SUBREG_PROMOTED_UNSIGNED_SET.
16925         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
16926         SUBREG_PROMOTED_SET.
16927         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
16928         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
16929         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
16930         of SUBREG_PROMOTED_UNSIGNED_P.
16931         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
16932         (SUBREG_PROMOTED_SET): New define.
16933         (SUBREG_PROMOTED_GET): Likewise.
16934         (SUBREG_PROMOTED_SIGN): Likewise.
16935         (SUBREG_PROMOTED_SIGNED_P): Likewise.
16936         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
16937         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
16938         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
16939         instead of SUBREG_PROMOTED_UNSIGNED_GET.
16940         (nonzero_bits1): Skip > 0 comparison with the results as
16941         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
16942         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
16943         of !SUBREG_PROMOTED_UNSIGNED_P.
16944         * simplify-rtx.c (simplify_unary_operation_1): Use new
16945         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
16946         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
16947         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
16948         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
16949
16950 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
16951
16952         * ipa-devirt.c: Include gimple-pretty-print.h
16953         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
16954         further tests.
16955         (decl_maybe_in_construction_p): Fix conditional on cdtor check
16956         (get_polymorphic_call_info): Fix return value
16957         (type_change_info): New sturcture based on ipa-prop
16958         variant.
16959         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
16960         based on ipa-prop variant.
16961         (extr_type_from_vtbl_ptr_store): New function
16962         based on ipa-prop variant.
16963         (record_known_type): New function.
16964         (check_stmt_for_type_change): New function.
16965         (get_dynamic_type): New function.
16966         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
16967         * tree-ssa-pre.c: ipa-utils.h
16968         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
16969         machinery; sanity check with ipa-prop devirtualization.
16970         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
16971         polymorphic flag.
16972
16973 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
16974
16975         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
16976         * alias.c, cfgexpand.c, cgraphbuild.c,
16977         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
16978         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
16979         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
16980         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
16981         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
16982         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
16983         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
16984         dse.c, except.c, gengtype.c, gimple-expr.c,
16985         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
16986         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
16987         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
16988         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
16989         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
16990         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
16991         pointer-set.h.
16992         * pointer-set.c: Remove file.
16993         * pointer-set.h: Remove file.
16994
16995 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16996
16997         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
16998         * config/arm/types.md (f_sels, f_seld): Delete.
16999
17000 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17001
17002         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
17003         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
17004         (aarch64_movdi_<mode>high): Likewise.
17005         (aarch64_mov<mode>high_di): Likewise.
17006         (aarch64_movdi_<mode>low): Likewise.
17007         (aarch64_mov<mode>low_di): Likewise.
17008         (aarch64_movtilow_tilow): Likewise.
17009         Add comment explaining usage of fp,simd attributes and of
17010         TARGET_FLOAT and TARGET_SIMD.
17011
17012 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
17013             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17014
17015         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
17016         Use MOVN when one of the half-words is 0xffff.
17017
17018 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
17019
17020         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
17021
17022 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17023
17024         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
17025         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
17026         (rfs_str): String corresponding to RFS_* constants.
17027         (rank_for_schedule_stats_t): New typedef.
17028         (rank_for_schedule_stats): New static variable.
17029         (rfs_result): New static function.
17030         (rank_for_schedule): Track statistics for deciding heuristics.
17031         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
17032         static functions.
17033         (ready_sort): Use them for debug printouts.
17034         (schedule_block): Init statistics state.  Print statistics on
17035         rank_for_schedule decisions.
17036
17037 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17038
17039         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
17040
17041 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
17042
17043         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
17044         constraint.
17045
17046 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
17047
17048         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
17049         function to not conflict.
17050         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
17051         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
17052         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
17053         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
17054         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
17055         of pointer_map.
17056
17057 2014-08-07  Marek Polacek  <polacek@redhat.com>
17058
17059         * fold-const.c (fold_binary_loc): Add folding of
17060         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
17061
17062 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
17063
17064         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
17065         instead of type size.
17066         (ASM_FINISH_DECLARE_OBJECT): Likewise.
17067
17068 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
17069
17070         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
17071         (*thumb1_movqi_insn): Likewise.
17072         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
17073
17074 2014-08-07  Tom de Vries  <tom@codesourcery.com>
17075
17076         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
17077         (glibc_2_11_or_earlier): Remove effective-target keywords.
17078
17079 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
17080
17081         * config/arm/arm.c (bdesc_2arg): Fix typo.
17082         (arm_atomic_assign_expand_fenv): Remove The default implementation.
17083
17084 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
17085
17086         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
17087
17088 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
17089
17090         PR debug/61923
17091         * haifa-sched.c (advance_one_cycle): Fix dump.
17092         (schedule_block): Don't advance cycle if we are already at the
17093         beginning of the cycle.
17094
17095 2014-08-06  Martin Jambor  <mjambor@suse.cz>
17096
17097         PR ipa/61393
17098         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
17099
17100 2014-08-06  Richard Biener  <rguenther@suse.de>
17101
17102         PR lto/62034
17103         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
17104         SCCs here.
17105         (lto_input_tree): Pop SCCs here.
17106
17107 2014-08-06  Richard Biener  <rguenther@suse.de>
17108
17109         PR tree-optimization/61320
17110         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
17111         handle misaligned loads.
17112
17113 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
17114
17115         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
17116         (aarch64_expand_vec_perm_const): Check for dup before zip.
17117
17118 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17119
17120         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
17121         CONST_INT_P instead of GET_CODE and compare.
17122         (aarch64_select_cc_mode): Likewise.
17123         (aarch64_print_operand): Likewise.
17124         (aarch64_rtx_costs): Likewise.
17125         (aarch64_simd_valid_immediate): Likewise.
17126         (aarch64_simd_check_vect_par_cnst_half): Likewise.
17127         (aarch64_simd_emit_pair_result_insn): Likewise.
17128
17129 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
17130
17131         * gdbhooks.py (find_gcc_source_dir): New helper function.
17132         (class PassNames): New class, locating and parsing passes.def.
17133         (class BreakOnPass): New command "break-on-pass".
17134
17135 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
17136
17137         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
17138         getting olde.
17139
17140 2014-08-05  Richard Biener  <rguenther@suse.de>
17141
17142         PR rtl-optimization/61672
17143         * emit-rtl.h (mem_attrs_eq_p): Declare.
17144         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
17145         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
17146         * cfgcleanup.c (merge_memattrs): Likewise.
17147         Include emit-rtl.h.
17148
17149 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17150
17151         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
17152         rather than singleton vectors.
17153         (vqdmlsls_lane_s32): Likewise.
17154
17155 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17156
17157         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
17158         Use VSDQ_HSI mode iterator.
17159         (aarch64_sqrdmulh_laneq<mode>): Likewise.
17160         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
17161         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
17162         Use BUILTIN_VDQHS macro.
17163         (sqrdmulh_laneq): Likewise.
17164         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
17165         (vqdmlals_laneq_s32): Likewise.
17166         (vqdmlslh_laneq_s16): Likewise.
17167         (vqdmlsls_laneq_s32): Likewise.
17168         (vqdmulhh_laneq_s16): Likewise.
17169         (vqdmulhs_laneq_s32): Likewise.
17170         (vqrdmulhh_laneq_s16): Likewise.
17171         (vqrdmulhs_laneq_s32): Likewise.
17172
17173 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17174
17175         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
17176         (vmuld_laneq_f64): Likewise.
17177         (vmuls_laneq_f32): Likewise.
17178         (vmul_n_f64): Likewise.
17179         (vmuld_lane_f64): Reimplement in C.
17180         (vmuls_lane_f32): Likewise.
17181
17182 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17183
17184         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
17185         to reservation.
17186         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
17187
17188 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17189
17190         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
17191         (rbitsi2): Likewise.
17192         (*arm_rev): Set predicable and predicable_short_it attributes.
17193
17194 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17195
17196         * convert.c (convert_to_integer): Guard transformation to lrint by
17197         -fno-math-errno.
17198
17199 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
17200
17201         * config/aarch64/aarch64-builtins.c
17202         (aarch64_simd_builtin_type_mode): Delete.
17203         (v8qi_UP): Remap to V8QImode.
17204         (v4hi_UP): Remap to V4HImode.
17205         (v2si_UP): Remap to V2SImode.
17206         (v2sf_UP): Remap to V2SFmode.
17207         (v1df_UP): Remap to V1DFmode.
17208         (di_UP): Remap to DImode.
17209         (df_UP): Remap to DFmode.
17210         (v16qi_UP):V16QImode.
17211         (v8hi_UP): Remap to V8HImode.
17212         (v4si_UP): Remap to V4SImode.
17213         (v4sf_UP): Remap to V4SFmode.
17214         (v2di_UP): Remap to V2DImode.
17215         (v2df_UP): Remap to V2DFmode.
17216         (ti_UP): Remap to TImode.
17217         (ei_UP): Remap to EImode.
17218         (oi_UP): Remap to OImode.
17219         (ci_UP): Map to CImode.
17220         (xi_UP): Remap to XImode.
17221         (si_UP): Remap to SImode.
17222         (sf_UP): Remap to SFmode.
17223         (hi_UP): Remap to HImode.
17224         (qi_UP): Remap to QImode.
17225         (aarch64_simd_builtin_datum): Make mode a machine_mode.
17226         (VAR1): Build builtin name.
17227         (aarch64_init_simd_builtins): Remove dead code.
17228
17229 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
17230
17231         * graphite-isl-ast-to-gimple.c:
17232         (set_options): New function.
17233         (scop_to_isl_ast): Add calling of set_options.
17234
17235 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
17236
17237         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
17238         (analyze_iv_to_split_insn): Don't initialize them.
17239         (get_ivts_expr): Removed.
17240         (allocate_basic_variable, insert_base_initialization): Use
17241         SET_SRC instead of *get_ivts_expr.
17242         (split_iv): Use &SET_SRC instead of get_ivts_expr.
17243
17244 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
17245
17246         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
17247         (translate_isl_ast_for_loop): Add checking of the
17248         flag_loop_parallelize_all.
17249         (ast_build_before_for): New function.
17250         (scop_to_isl_ast): Add checking of the
17251         flag_loop_parallelize_all.
17252         * graphite-dependences.c: Move the defenition of the
17253         scop_get_dependences from graphite-optimize-isl.c to this file.
17254         (apply_schedule_on_deps): Add checking of the ux's emptiness.
17255         (carries_deps): Add checking of the x's value.
17256         * graphite-optimize-isl.c: Move the defenition of the
17257         scop_get_dependences to graphite-dependences.c.
17258         * graphite-poly.h: Add declarations of scop_get_dependences
17259         and carries_deps.
17260
17261 2014-08-04  Rohit  <rohitarulraj@freescale.com>
17262
17263         PR target/60102
17264         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
17265         names.
17266         (alt_reg_names): Likewise.
17267         (rs6000_dwarf_register_span): For SPE high registers, replace
17268         dwarf register numbers with GCC hard register numbers.
17269         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
17270         (rs6000_dbx_register_number): For SPE high registers, return dwarf
17271         register number for the corresponding GCC hard register number.
17272         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
17273         newly added GCC hard register numbers for SPE high registers.
17274         (DWARF_FRAME_REGISTERS):  Likewise.
17275         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
17276         (DWARF_FRAME_REGNUM): Likewise.
17277         (FIXED_REGISTERS): Likewise.
17278         (CALL_USED_REGISTERS): Likewise.
17279         (CALL_REALLY_USED_REGISTERS): Likewise.
17280         (REG_ALLOC_ORDER): Likewise.
17281         (enum reg_class): Likewise.
17282         (REG_CLASS_NAMES): Likewise.
17283         (REG_CLASS_CONTENTS): Likewise.
17284         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
17285
17286 2014-08-04  Richard Biener  <rguenther@suse.de>
17287
17288         * gimple-fold.h (gimple_fold_builtin): Remove.
17289         * gimple-fold.c (gimple_fold_builtin): Make static.
17290         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
17291         fold_stmt, not gimple_fold_builtin.
17292
17293 2014-08-04  Martin Liska <mliska@suse.cz>
17294
17295         * cgraph.h (csi_end_p): Removed.
17296         (csi_next): Likewise.
17297         (csi_node): Likewise.
17298         (csi_start): Likewise.
17299         (cgraph_node_in_set_p): Likewise.
17300         (cgraph_node_set_size): Likewise.
17301         (vsi_end_p): Likewise.
17302         (vsi_next): Likewise.
17303         (vsi_node): Likewise.
17304         (vsi_start): Likewise.
17305         (varpool_node_set_size): Likewise.
17306         (cgraph_node_set_nonempty_p): Likewise.
17307         (varpool_node_set_nonempty_p): Likewise.
17308         * cgraphunit.c (cgraph_process_new_functions): vec replaces
17309         cgraph_node_set.
17310         * ipa-inline-transform.c: Likewise.
17311         * ipa-utils.c (cgraph_node_set_new): Removed.
17312         (cgraph_node_set_add): Likewise.
17313         (cgraph_node_set_remove): Likewise.
17314         (cgraph_node_set_find): Likewise.
17315         (dump_cgraph_node_set): Likewise.
17316         (debug_cgraph_node_set): Likewise.
17317         (free_cgraph_node_set): Likewise.
17318         (varpool_node_set_new): Likewise.
17319         (varpool_node_set_add): Likewise.
17320         (varpool_node_set_remove): Likewise.
17321         (varpool_node_set_find): Likewise.
17322         (dump_varpool_node_set): Likewise.
17323         (free_varpool_node_set): Likewise.
17324         (debug_varpool_node_set): Likewise.
17325         * tree-emutls.c (struct tls_var_data):
17326         (emutls_index): Removed.
17327         (emutls_decl): Likewise.
17328         (gen_emutls_addr): Function implementation uses newly added
17329         hash_map<varpool_node *, tls_var_data>.
17330         (clear_access_vars): Likewise.
17331         (create_emultls_var): Likewise.
17332         (ipa_lower_emutls): Likewise.
17333         (reset_access): New function.
17334
17335 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
17336
17337         * config/i386/i386.c (ix86_option_override_internal): Add
17338         PTA_RDRND and PTA_MOVBE for bdver4.
17339
17340 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17341             James Greenhalgh  <james.greenhalgh@arm.com>
17342
17343         * doc/md.texi (clrsb): Document.
17344         (clz): Change reference to x into operand 1.
17345         (ctz): Likewise.
17346         (popcount): Likewise.
17347
17348 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17349
17350         PR target/61713
17351         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
17352         move to subtarget in serial version if result is ignored.
17353
17354 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17355             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17356
17357         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
17358         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
17359         (sched_analyze_insn): Update use of try_group_insn to
17360         sched_macro_fuse_insns.
17361         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
17362         arguments that are not conditional jumps.
17363
17364 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
17365
17366         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
17367         family information. Handle BTVER2 cpu with cpuid family value.
17368
17369 2014-08-04  Tom de Vries  <tom@codesourcery.com>
17370
17371         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
17372         (glibc_2_11_or_earlier): Document effective-target keywords.
17373
17374 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
17375
17376         * ipa-devirt.c (odr_type_warn_count): Add type.
17377         (possible_polymorphic_call_targets): Set it.
17378         (ipa_devirt): Use it.
17379
17380 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
17381
17382         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
17383         Document.
17384         * ipa-devirt.c: Include hash-map.h
17385         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
17386         (clear_speculation): Break out of ...
17387         (get_class_context): ... here; speed up handling obviously useless
17388         speculations.
17389         (odr_type_warn_count, decl_warn_count): New structures.
17390         (final_warning_record): New structure.
17391         (final_warning_records): New static variable.
17392         (possible_polymorphic_call_targets): Cleanup handling of
17393         speculative info; do not build speculation when user do not care;
17394         record info about warnings when asked for.
17395         (add_decl_warning): New function.
17396         (type_warning_cmp): New function.
17397         (decl_warning_cmp): New function.
17398         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
17399         (gate): Enable pass when warnings are requested.
17400         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
17401         options.
17402
17403 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
17404
17405         * hash-map.h (default_hashmap_traits::mark_key_deleted):
17406         Fix cast.
17407         (hash_map::remove): New method.
17408         (hash_map::traverse): New method.
17409         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
17410         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
17411         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
17412         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
17413         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
17414         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
17415         pointer_map.
17416
17417 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
17418
17419         * hash-set.h: new File.
17420         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
17421         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
17422         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
17423         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
17424         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
17425         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
17426         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
17427         varpool.c: Use hash_set instead of pointer_set.
17428
17429 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
17430
17431         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
17432
17433 2014-08-01  Jiong Wang <jiong.wang@arm.com>
17434
17435         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
17436         for frame access when strict_p is false.
17437
17438 2014-08-01  Renlin Li <renlin.li@arm.com>
17439 2014-08-01  Jiong Wang <jiong.wang@arm.com>
17440
17441         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
17442         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
17443         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
17444         Declaration.
17445         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
17446         predicate.
17447         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
17448         aarch64_mem_pair_offset.
17449
17450 2014-08-01  Jiong Wang <jiong.wang@arm.com>
17451
17452         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
17453         offset.
17454         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
17455         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
17456
17457 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
17458
17459         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
17460
17461 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
17462
17463         PR regression/61510
17464         * cgraphunit.c (analyze_functions): Use get_create rather than get
17465         for decls which are clones of abstract functions.
17466
17467 2014-08-01  Martin Liska  <mliska@suse.cz>
17468
17469         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
17470         * ipa-prop.h (count_formal_params): Global function created from static.
17471         * ipa-prop.c (count_formal_params): Likewise.
17472         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
17473         profiles for semantically equivalent functions.
17474         * passes.c (do_per_function): If we load body of a function
17475         during WPA, this condition should behave same.
17476         * varpool.c (ctor_for_folding): More tolerant assert for variable
17477         aliases created during WPA.
17478
17479 2014-08-01  Martin Liska  <mliska@suse.cz>
17480
17481         * doc/invoke.texi (Options That Control Optimization): Documentation
17482         for -foptimize-strlen introduced. Optimization levels default options
17483         fixed.
17484
17485 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
17486
17487         * opts.c (common_handle_option): Handle -fsanitize=alignment.
17488         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
17489         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
17490         type to bool.
17491         * stor-layout.h (min_align_of_type): New prototype.
17492         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
17493         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
17494         check.
17495         * ubsan.c: Include builtins.h.
17496         (ubsan_expand_bounds_ifn): Change return type to bool,
17497         always return true.
17498         (ubsan_expand_null_ifn): Change return type to bool, change
17499         argument to gimple_stmt_iterator *.  Handle both null and alignment
17500         sanitization, take type from ckind argument's type rather than
17501         first argument.
17502         (instrument_member_call): Removed.
17503         (instrument_mem_ref): Remove t argument, add mem and base arguments.
17504         Handle both null and alignment sanitization, don't say whole
17505         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
17506         call instead of 2 argument.
17507         (instrument_null): Adjust instrument_mem_ref caller.  Don't
17508         instrument calls here.
17509         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
17510         like SANITIZE_NULL.
17511         * stor-layout.c (min_align_of_type): New function.
17512         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
17513         Or it into SANITIZE_UNDEFINED.
17514         * doc/invoke.texi (-fsanitize=alignment): Document.
17515
17516 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17517
17518         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
17519
17520 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17521
17522         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
17523         inchash.
17524         (vn_reference_compute_hash): Dito.
17525         (vn_nary_op_compute_hash): Dito.
17526         (vn_phi_compute_hash): Dito.
17527         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
17528
17529 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17530
17531         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
17532         Rename to inchash:add_expr_commutative. Convert to inchash.
17533         (iterative_hash_hashable_expr): Rename to
17534         inchash:add_hashable_expr. Convert to inchash.
17535         (avail_expr_hash): Dito.
17536
17537 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17538
17539         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
17540         Convert to inchash.
17541
17542 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17543
17544         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
17545
17546 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17547
17548         * Makefile.in (OBJS): Add rtlhash.o
17549         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
17550         (loc_checksum): Dito.
17551         (loc_checksum_ordered): Dito.
17552         (hash_loc_operands): Dito.
17553         (hash_locs): Dito.
17554         (hash_loc_list): Dito.
17555         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
17556         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
17557         * rtlhash.c: New file.
17558         * rtlhash.h: New file.
17559
17560 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17561
17562         * inchash.h (inchash): Change inchash class to namespace.
17563         (class hash): ... Rename from inchash.
17564         (add_object): Move from macro to class template.
17565         * lto-streamer-out.c (hash_tree): Change inchash
17566         to inchash::hash.
17567         * tree.c (build_type_attribute_qual_variant): Dito.
17568         (type_hash_list): Dito.
17569         (attribute_hash_list): Dito.
17570         (iterative_hstate_expr): Rename to inchash::add_expr
17571         (build_range_type_1): Change inchash to inchash::hash
17572         and use hash::add_expr.
17573         (build_array_type_1): Dito.
17574         (build_function_type): Dito
17575         (build_method_type_directly): Dito.
17576         (build_offset_type): Dito.
17577         (build_complex_type): Dito.
17578         (make_vector_type): Dito.
17579         * tree.h (iterative_hash_expr): Dito.
17580
17581 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
17582
17583         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
17584
17585 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17586
17587         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
17588         correct alphabetical position.
17589         (vpaddd_f64): Rewrite using builtins.
17590         (vpaddd_s64): Move to correct alphabetical position.
17591         (vpaddd_u64): New.
17592
17593 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
17594
17595         PR target/61844
17596         * config/sh/sh.c (sh_legitimate_address_p,
17597         sh_legitimize_reload_address): Handle reg+reg address modes when
17598         ALLOW_INDEXED_ADDRESS is false.
17599         * config/sh/predicates.md (general_movsrc_operand,
17600         general_movdst_operand): Likewise.
17601
17602 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17603
17604         * config/aarch64/aarch64-builtins.c
17605         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
17606         BYTES_BIG_ENDIAN.
17607
17608 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17609
17610         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
17611         the generated mask based on BYTES_BIG_ENDIAN.
17612         (aarch64_simd_check_vect_par_cnst_half): New.
17613         * config/aarch64/aarch64-protos.h
17614         (aarch64_simd_check_vect_par_cnst_half): New.
17615         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
17616         the check out to aarch64_simd_check_vect_par_cnst_half.
17617         (vect_par_cnst_lo_half): Likewise.
17618         * config/aarch64/aarch64-simd.md
17619         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
17620         (move_hi_quad_<mode>): Always generate a low mask.
17621
17622 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17623
17624         * doc/invoke.texi (AVR Options): Add documentation about
17625         __AVR_DEVICE_NAME__ built-in macro.
17626
17627 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
17628
17629         PR target/61948
17630         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
17631         constraints are satisfied.
17632         (<shift>di3_neon): Likewise.
17633
17634 2014-07-31  Richard Biener  <rguenther@suse.de>
17635
17636         PR tree-optimization/61964
17637         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
17638         by structural equality.
17639
17640 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
17641
17642         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
17643         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
17644         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
17645         New enums.
17646         * gcc.c (sanitize_spec_function): Support new option.
17647         (SANITIZER_SPEC): Remove now redundant check.
17648         * opts.c (common_handle_option): Support new option.
17649         (finish_options): Check for incompatibilities.
17650         * toplev.c (process_options): Split userspace-specific checks.
17651
17652 2014-07-31  Richard Biener  <rguenther@suse.de>
17653
17654         * lto-streamer.h (struct output_block): Remove global.
17655         (struct data_in): Remove labels, num_named_labels and
17656         num_unnamed_labels.
17657         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
17658         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
17659
17660 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
17661
17662         PR c++/60517
17663         * common.opt (-Wreturn-local-addr): Moved from c.opt.
17664         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
17665         (isolate_path): New argument to avoid inserting a trap.
17666         (find_implicit_erroneous_behaviour): Handle returning the address
17667         of a local variable.
17668         (find_explicit_erroneous_behaviour): Likewise.
17669
17670 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
17671
17672         PR lto/61868
17673         * toplev.c (init_random_seed): Move piece of code never called to
17674         set_random_seed.
17675         (set_random_seed): see above.
17676
17677 2014-07-31  Tom de Vries  <tom@codesourcery.com>
17678
17679         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
17680
17681 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
17682
17683         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
17684         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
17685
17686 2014-07-31  Richard Biener  <rguenther@suse.de>
17687
17688         * data-streamer.h (streamer_write_data_stream): Declare here,
17689         renamed from ...
17690         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
17691         * lto-cgraph.c (lto_output_node): Adjust.
17692         (lto_output_varpool_node): Likewise.
17693         * data-streamer-out.c (streamer_string_index): Likewise.
17694         (streamer_write_data_stream, lto_append_block): Move from ...
17695         * lto-section-out.c (lto_output_data_stream,
17696         lto_append_block): ... here.
17697
17698 2014-07-30  Mike Stump  <mikestump@comcast.net>
17699
17700         * configure.ac: Also check for popen.
17701         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
17702         * configure: Regenerate.
17703         * config.in:  Regenerate.
17704
17705 2014-07-30  Martin Jambor  <mjambor@suse.cz>
17706
17707         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
17708         parameter to gimple.
17709
17710 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17711
17712         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
17713         address as second parameter to __tpf_eh_return routine.
17714
17715 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
17716
17717         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
17718         Thumb2.
17719
17720 2014-07-30  Tom Tromey  <tromey@redhat.com>
17721
17722         PR c/59855
17723         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
17724         * doc/extend.texi (Type Attributes): Document designated_init
17725         attribute.
17726
17727 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
17728
17729         * graphite-isl-ast-to-gimple.c:
17730         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
17731         (gcc_expression_from_isl_expression): Pass type to
17732         gcc_expression_from_isl_ast_expr_id.
17733
17734 2014-07-30  Richard Biener  <rguenther@suse.de>
17735
17736         * lto-streamer.h (lto_write_data): New function.
17737         * langhooks.c (lhd_append_data): Do not free block.
17738         * lto-section-out.c (lto_write_data): New function writing
17739         raw data to the current section.
17740         (lto_write_stream): Adjust for langhook semantic change.
17741         (lto_destroy_simple_output_block): Write header directly.
17742         * lto-opts.c (lto_write_options): Write options directly.
17743         * lto-streamer-out.c (produce_asm): Write heaeder directly.
17744         (lto_output_toplevel_asms): Likewise.
17745         (copy_function_or_variable): Copy data directly.
17746         (write_global_references): Output index table directly.
17747         (lto_output_decl_state_refs): Likewise.
17748         (write_symbol): Write data directly.
17749         (produce_symtab): Adjust.
17750         (produce_asm_for_decls): Output header and refs directly.
17751
17752 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
17753
17754         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
17755         to speculative_targets
17756         (get_class_context): Fix handling of contextes without outer type;
17757         avoid matching non-polymorphic types in LTO.
17758         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
17759         parameter to speculative_targetsp; handle speculation.
17760         (dump_possible_polymorphic_call_targets): Update dumping.
17761
17762 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
17763
17764         * common.opt (Wodr): Enable by default.
17765
17766 2014-07-29  Olivier Hainque  <hainque@adacore.com>
17767
17768         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
17769
17770 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
17771
17772         PR bootstrap/61914
17773         * gengtype.c (strtoken): New function.
17774         (create_user_defined_type): Replace strtok with strtoken.
17775
17776 2014-07-29  Nathan Sidwell  <nathan@acm.org>
17777
17778         * gcov-io.c (gcov_var): Make hidden.
17779         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
17780         (gcov_do_dump): Declare.
17781         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
17782
17783 2014-07-29  Martin Jambor  <mjambor@suse.cz>
17784
17785         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
17786         parameter to gimple.
17787         (sra_modify_assign): Likewise.
17788
17789 2014-07-29  Richard Biener  <rguenther@suse.de>
17790
17791         PR middle-end/52478
17792         * expr.c (expand_expr_real_2): Revert last change.
17793
17794 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
17795
17796         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
17797         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
17798         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
17799         call.
17800         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
17801         (contains_type_p): Forward declare.
17802         (polymorphic_call_target_hasher::hash): Hash speculative info.
17803         (polymorphic_call_target_hasher::equal): Compare speculative info.
17804         (get_class_context): Handle speuclation.
17805         (contains_type_p): Update.
17806         (get_polymorphic_call_info_for_decl): Update.
17807         (walk_ssa_copies): Break out from ...
17808         (get_polymorphic_call_info): ... here; set speculative context
17809         before giving up.
17810         * ipa-prop.c (ipa_write_indirect_edge_info,
17811         ipa_read_indirect_edge_info): Stream speculative context.
17812         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
17813         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
17814         SPECULATIVE_MAYBE_DERIVED_TYPE).
17815         (possible_polymorphic_call_targets overriders): Update.
17816         (dump_possible_polymorphic_call_targets overriders): Update.
17817         (dump_possible_polymorphic_call_target_p overriders): Update.
17818
17819 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
17820
17821         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
17822         ipa-devirt path; fix thinko there.
17823
17824 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
17825
17826         * config/i386/i386.c (ix86_return_in_memory): Replace one
17827         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
17828
17829 2014-07-28  Marek Polacek  <polacek@redhat.com>
17830
17831         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
17832
17833 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
17834
17835         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
17836         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
17837         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
17838         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17839         (USE_LD_AS_NEEDED): Likewise.
17840         (ASM_APP_ON): Likewise.
17841         (ASM_APP_OFF): Likewise.
17842         (TARGET_POSIX_IO): Likewise.
17843         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
17844         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17845         (USE_LD_AS_NEEDED): Likewise.
17846         (ASM_APP_ON): Likewise.
17847         (ASM_APP_OFF): Likewise.
17848         (TARGET_POSIX_IO): Likewise.
17849
17850 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17851
17852         PR middle-end/61734
17853         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
17854         operators other than the equality operators.
17855
17856 2014-07-28  Richard Biener  <rguenther@suse.de>
17857
17858         PR middle-end/52478
17859         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
17860         sure to register SImode ones, not only >= word_mode ones.
17861         * expr.c (expand_expr_real_2): When expanding -ftrapv
17862         binops do not use OPTAB_LIB_WIDEN.
17863
17864 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
17865
17866         PR middle-end/61919
17867         * tree-outof-ssa.c (insert_partition_copy_on_edge)
17868         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
17869         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
17870         inserting them in the insn stream.
17871
17872 2014-07-28  Marek Polacek  <polacek@redhat.com>
17873
17874         PR middle-end/61913
17875         * common.opt (Wodr): Add Var.
17876
17877 2014-07-28  Richard Biener  <rguenther@suse.de>
17878
17879         PR tree-optimization/61921
17880         * tree-ssa-structalias.c (create_variable_info_for_1): Check
17881         if there is a varpool node before dereferencing it.
17882
17883 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
17884
17885         * graphite-sese-to-poly.c:
17886         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
17887         id of the pbb), which contains pointer to the pbb1.
17888
17889         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
17890
17891 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
17892
17893         * graphite-isl-ast-to-gimple.c:
17894         (graphite_create_new_guard): New function.
17895         (translate_isl_ast_node_if): New function.
17896         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
17897
17898         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
17899
17900 2014-07-27  Anthony Green  <green@moxielogic.com>
17901
17902         * config.gcc: Add moxie-*-moxiebox* configuration.
17903         * config/moxie/moxiebox.h: New file.
17904
17905 2014-07-26  Andrew Pinski  <apinski@cavium.com>
17906
17907         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
17908         from the read only register.
17909
17910 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
17911
17912         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
17913         as the allocation class if it isn't likely to be spilled.
17914
17915 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
17916
17917         * rtl.h (tls_referenced_p): Declare.
17918         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
17919         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
17920         (mips_cannot_force_const_mem): Use tls_referenced_p.
17921         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
17922         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
17923         instead of pa_tls_referenced_p.
17924         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
17925         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
17926         (pa_legitimate_constant_p): Likewise.
17927         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
17928         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
17929         (rs6000_cannot_force_const_mem, rs6000_emit_move)
17930         (rs6000_address_for_altivec): Use tls_referenced_p instead of
17931         rs6000_tls_referenced_p.
17932         (rs6000_tls_symbol_ref_1): Delete.
17933
17934 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
17935
17936         PR target/44551
17937         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
17938         Optimize inverse of a VEC_CONCAT.
17939
17940 2014-07-25  Xinliang David Li  <davidxl@google.com>
17941
17942         * params.def: New parameter.
17943         * coverage.c (get_coverage_counts): Check new flag.
17944         (coverage_compute_profile_id): Check new flag.
17945         (coverage_begin_function): Check new flag.
17946         (coverage_end_function): Check new flag.
17947         * value-prof.c (coverage_node_map_initialized_p): New function.
17948         (init_node_map): Populate map with all functions.
17949         * doc/invoke.texi: Document new parameter.
17950
17951 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
17952             Richard Biener <rguenther@suse.de>
17953
17954         * lto-streamer-out.c (struct sccs): Turn to ...
17955         (class DFS): ... this one; refactor the DFS walk so it can
17956         be re-done on per-SCC basis.
17957         (DFS::DFS): New constructor.
17958         (DFS::~DFS): New destructor.
17959         (hash_tree): Add new MAP argument holding in-SCC hash values;
17960         remove POINTER_TYPE hashing hack.
17961         (scc_entry_compare): Rename to ...
17962         (DFS::scc_entry_compare): ... this one.
17963         (hash_scc): Rename to ...
17964         (DFS::hash_scc): ... this one; pass output_block instead
17965         of streamer_cache; work harder to get unique and stable SCC
17966         hashes.
17967         (DFS_write_tree): Rename to ...
17968         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
17969         (lto_output_tree): Update.
17970
17971 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17972
17973         * lto-streamer-out.c (hash_tree): Convert to inchash.
17974
17975 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17976
17977         * tree.c (build_type_attribute_qual_variant): Use inchash.
17978         (type_hash_list): Dito.
17979         (attribute_hash_list): Dito
17980         (iterative_hstate_expr): Dito.
17981         (iterative_hash_expr): Dito.
17982         (build_range_type_1): Dito.
17983         (build_array_type_1): Dito.
17984         (build_function_type): Dito.
17985         (build_method_type_directly): Dito.
17986         (build_offset_type): Dito.
17987         (build_complex_type): Dito.
17988         (make_vector_type): Dito.
17989         * tree.h (iterative_hash_expr): Add compat wrapper.
17990         (iterative_hstate_expr): Add.
17991
17992 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17993
17994         * Makefile.in (OBJS): Add inchash.o.
17995         (PLUGIN_HEADERS): Add inchash.h.
17996         * ipa-devirt.c: Include inchash.h.
17997         * lto-streamer-out.c: Dito.
17998         * tree-ssa-dom.c: Dito.
17999         * tree-ssa-pre.c: Dito.
18000         * tree-ssa-sccvn.c: Dito.
18001         * tree-ssa-tail-merge.c: Dito.
18002         * asan.c: Dito.
18003         * tree.c (iterative_hash_hashval_t): Move to ...
18004         (iterative_hash_host_wide_int): Move to ...
18005         * inchash.c: Here. New file.
18006         * tree.h (iterative_hash_hashval_t): Move to ...
18007         (iterative_hash_host_wide_int): Move to ...
18008         * inchash.h: Here. New file.
18009
18010 2014-07-25  Richard Biener  <rguenther@suse.de>
18011
18012         PR middle-end/61762
18013         PR middle-end/61894
18014         * fold-const.c (native_encode_int): Add and handle offset
18015         parameter to do partial encodings of expr.
18016         (native_encode_fixed): Likewise.
18017         (native_encode_real): Likewise.
18018         (native_encode_complex): Likewise.
18019         (native_encode_vector): Likewise.
18020         (native_encode_string): Likewise.
18021         (native_encode_expr): Likewise.
18022         * fold-const.c (native_encode_expr): Add offset parameter
18023         defaulting to -1.
18024         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
18025         (fold_ctor_reference): Handle all reads from tcc_constant
18026         ctors.
18027
18028 2014-07-25  Richard Biener  <rguenther@suse.de>
18029
18030         * tree-inline.c (estimate_move_cost): Mark speed_p argument
18031         as possibly unused.
18032
18033 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
18034
18035         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
18036
18037 2014-07-24  Kyle McMartin  <kyle@redhat.com>
18038
18039         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
18040
18041 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18042
18043         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
18044         Add prototype.
18045         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
18046         function.
18047         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
18048         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
18049         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
18050
18051 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18052
18053         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
18054         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
18055         aggregate types.  Instead, *all* aggregate types, except for single-
18056         element or homogeneous float/vector aggregates, are quadword-aligned
18057         if required by their type alignment.  Issue -Wpsabi note when a type
18058         is now treated differently than before.
18059
18060 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18061
18062         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
18063         does not fit fully into floating-point registers, and there is still
18064         space in the register parameter area, use GPRs to pass those parts
18065         of the argument.  Issue -Wpsabi note if any parameter is now treated
18066         differently than before.
18067         (rs6000_arg_partial_bytes): Update.
18068
18069 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
18070
18071         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
18072
18073 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
18074
18075         * rtl.h (target_rtl): Remove lang_dependent_initialized.
18076         * toplev.c (initialize_rtl): Don't use it.  Move previously
18077         "language-dependent" calls to...
18078         (backend_init): ...here.
18079         (lang_dependent_init_target): Don't set lang_dependent_initialized.
18080         Assert that RTL initialization hasn't happend yet.
18081
18082 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
18083
18084         PR rtl-optimization/61629
18085         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
18086         they have already been initialized.
18087
18088 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
18089
18090         PR middle-end/61268
18091         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
18092         DECL_INCOMING_RTL and entry_parm.
18093         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
18094         * calls.c (load_register_parameters): Likewise argument values.
18095         (emit_library_call_value_1, store_one_arg): Likewise argument
18096         save areas.
18097         * config/i386/i386.c (assign_386_stack_local): Likewise the local
18098         stack slot.
18099         * explow.c (validize_mem): Modify the argument in-place.
18100
18101 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18102
18103         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
18104         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
18105
18106 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18107
18108         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
18109         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
18110
18111 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18112
18113         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
18114         (aarch64_save_callee_saves): New parameter "skip_wb".
18115         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
18116
18117 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18118
18119         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
18120         "wb_candidate2".
18121         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
18122
18123 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
18124
18125         * graphite-isl-ast-to-gimple.c:
18126         (graphite_create_new_loop): Add calling of isl_id_free to properly
18127         decrement reference counts.
18128
18129         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
18130
18131 2014-07-24  Martin Liska  <mliska@suse.cz>
18132         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
18133         function used.
18134         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
18135         (rs6000_code_end): Likewise.
18136
18137 2014-07-24  Martin Liska  <mliska@suse.cz>
18138
18139         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
18140         symtab_node funtion used.
18141         (rs6000_xcoff_declare_object_name): Likewise.
18142
18143 2014-07-24  Martin Liska  <mliska@suse.cz>
18144
18145         * cgraphunit.c (compile): Correct function used.
18146
18147 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
18148
18149         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
18150         as non-indexable.
18151
18152 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
18153
18154         PR lto/61802
18155         * varasm.c (bss_initializer_p): Handle offlined ctors.
18156         (align_variable, get_variable_align): Likewise.
18157         (make_decl_one_only): Likewise.
18158         (default_binds_local_p_1): Likewise.
18159         (decl_binds_to_current_def_p): Likewise.
18160         (get_variable_section): Get constructor if it is offlined.
18161         (assemble_variable_contents): Sanity check that the caller
18162         streamed in the ctor in LTO.
18163
18164 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
18165
18166         * graphite-isl-ast-to-gimple.c:
18167         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
18168         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
18169         isl_ast_op_pdiv_r to the different case.
18170
18171         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
18172
18173 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18174
18175         PR middle-end/61876
18176         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
18177         when flag_errno_math is on.
18178
18179 2014-07-24  Martin Liska  <mliska@suse.cz>
18180
18181         * cgraph.h (varpool_node):
18182         (availability get_availability (void)):
18183         created from cgraph_variable_initializer_availability
18184         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
18185         created from: cgraph_variable_initializer_availability
18186         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
18187         (void finalize_named_section_flags (void)):
18188         created from varpool_finalize_named_section_flags
18189         (bool assemble_decl (void)): created from varpool_assemble_decl
18190         (void analyze (void)): created from varpool_analyze_node
18191         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
18192         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
18193         (void remove_initializer (void)): created from varpool_remove_initializer
18194         (tree get_constructor (void)): created from varpool_get_constructor
18195         (bool externally_visible_p (void)): created from varpool_externally_visible_p
18196         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
18197         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
18198         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
18199         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
18200         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
18201         (static bool output_variables (void)): created from varpool_output_variables
18202         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
18203         created from varpool_extra_name_alias
18204         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
18205         (static void dump_varpool (FILE *f)): created from dump_varpool
18206         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
18207         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
18208         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
18209         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
18210         (void assemble_aliases (void)): created from assemble_aliases
18211
18212 2014-07-24  Martin Liska  <mliska@suse.cz>
18213
18214         * cgraph.h (symtab_node):
18215         (void register_symbol (void)): created from symtab_register_node
18216         (void remove (void)): created from symtab_remove_node
18217         (void dump (FILE *f)): created from dump_symtab_node
18218         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
18219         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
18220         (struct ipa_ref *add_reference (symtab_node *referred_node,
18221         enum ipa_ref_use use_type)): created from add_reference
18222         (struct ipa_ref *add_reference (symtab_node *referred_node,
18223         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
18224         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
18225         gimple stmt)): created from maybe_add_reference
18226         (bool semantically_equivalent_p (symtab_node *target)): created from
18227         symtab_semantically_equivalent_p
18228         (void remove_from_same_comdat_group (void)): created from
18229         remove_from_same_comdat_group
18230         (void add_to_same_comdat_group (symtab_node *old_node)): created from
18231         symtab_add_to_same_comdat_group
18232         (void dissolve_same_comdat_group_list (void)): created from
18233         symtab_dissolve_same_comdat_group_list
18234         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
18235         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
18236         created from symtab_alias_ultimate_target
18237         (inline symtab_node *next_defined_symbol (void)): created from
18238         symtab_next_defined_symbol
18239         (bool resolve_alias (symtab_node *target)): created from
18240         symtab_resolve_alias
18241         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
18242         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
18243         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
18244         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
18245         (void set_section (const char *section)): created from set_section_1
18246         (enum availability get_availability (void)): created from symtab_node_availability
18247         (void make_decl_local (void)): created from symtab_make_decl_local
18248         (bool real_symbol_p (void)): created from symtab_read_node
18249         (can_be_discarded_p (void)): created from symtab_can_be_discarded
18250         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
18251         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
18252         symtab_in_same_comdat_p;
18253         (bool address_taken_from_non_vtable_p (void)): created from
18254         address_taken_from_non_vtable_p
18255         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
18256         (static void dump_table (FILE *)): created from dump_symtab
18257         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
18258         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
18259         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
18260         symtab_used_from_object_file_p
18261         (void dump_base (FILE *)): created from dump_symtab_base
18262         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
18263         (void unregister (void)): created from symtab_unregister_node
18264         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
18265         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
18266         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
18267         symtab_nonoverwritable_alias_1
18268         * cgraph.h (cgraph_node):
18269         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
18270         created from cgraph_remove_node_and_inline_clones
18271         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
18272         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
18273         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
18274         (cgraph_node *function_symbol (enum availability *avail = NULL)):
18275         created from cgraph_function_node
18276         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
18277         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
18278         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
18279         created from cgraph_create_clone
18280         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
18281         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
18282         created from cgraph_create_virtual_clone
18283         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
18284         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
18285         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
18286         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
18287         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
18288         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
18289         created from cgraph_function_version_info
18290         (struct cgraph_function_version_info *insert_new_function_version (void)):
18291         created from insert_new_cgraph_node_version
18292         (struct cgraph_function_version_info *function_version (void)): created from
18293         get_cgraph_node_version
18294         (void analyze (void)): created from analyze_function
18295         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
18296         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
18297         tree real_alias) cgraph_add_thunk
18298         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
18299         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
18300         created from cgraph_function_or_thunk_node
18301         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
18302         created from expand_thunk
18303         (void reset (void)): created from cgraph_reset_node
18304         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
18305         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
18306         (void remove (void)): created from cgraph_remove_node
18307         (void dump (FILE *f)): created from dump_cgraph_node
18308         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
18309         (bool get_body (void)): created from cgraph_get_body
18310         (void release_body (void)): created from cgraph_release_function_body
18311         (void unnest (void)): created from cgraph_unnest_node
18312         (void make_local (void)): created from cgraph_make_node_local
18313         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
18314         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
18315         gcov_type count, int freq)): created from cgraph_create_edge
18316         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
18317         gcov_type count, int freq)): created from cgraph_create_indirect_edge
18318         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
18319         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
18320         created from cgraph_create_edge_including_clones
18321         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
18322         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
18323         (void remove_callers (void)): created from cgraph_node_remove_callers
18324         (void remove_callees (void)): created from cgraph_node_remove_callees
18325         (enum availability get_availability (void)): created from cgraph_function_body_availability
18326         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
18327         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
18328         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
18329         (void call_duplication_hooks (cgraph_node *node2)): created from
18330         cgraph_call_node_duplication_hooks
18331         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
18332         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
18333         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
18334         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
18335         (void call_function_insertion_hooks (void)):
18336         created from cgraph_call_function_insertion_hooks
18337         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
18338         (bool local_p (void)): created from cgraph_local_node
18339         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
18340         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
18341         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
18342         (inline bool only_called_directly_or_aliased_p (void)):
18343         created from cgraph_only_called_directly_or_aliased_p
18344         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
18345         created from cgraph_will_be_removed_from_program_if_no_direct_calls
18346         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
18347         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
18348         (bool can_remove_if_no_direct_calls_p (void)):
18349         created from cgraph_can_remove_if_no_direct_calls_p
18350         (inline bool has_gimple_body_p (void)):
18351         created from cgraph_function_with_gimple_body_p
18352         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
18353         (static void dump_cgraph (FILE *f)): created from dump_cgraph
18354         (static inline void debug_cgraph (void)): created from debug_cgraph
18355         (static void record_function_versions (tree decl1, tree decl2)):
18356         created from record_function_versions
18357         (static void delete_function_version (tree decl)):
18358         created from delete_function_version
18359         (static void add_new_function (tree fndecl, bool lowered)):
18360         created from cgraph_add_new_function
18361         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
18362         (static cgraph_node * create (tree decl)): created from cgraph_create_node
18363         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
18364         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
18365         (static cgraph_node *get_for_asmname (tree asmname)):
18366         created from cgraph_node_for_asm
18367         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
18368         created from cgraph_same_body_alias
18369         (static bool used_from_object_file_p_worker (cgraph_node *node,
18370         void *): new function
18371         (static bool non_local_p (cgraph_node *node, void *)):
18372         created from cgraph_non_local_node_p_1
18373         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
18374         created from verify_cgraph
18375         (static bool make_local (cgraph_node *node, void *)):
18376         created from cgraph_make_node_local
18377         (static cgraph_node *create_alias (tree alias, tree target)):
18378         created from cgraph_create_function_alias
18379         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
18380         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
18381         created from cgraph_create_edge_1
18382         * cgraph.h (varpool_node):
18383         (void remove (void)): created from varpool_remove_node
18384         (void dump (FILE *f)): created from dump_varpool_node
18385
18386 2014-07-24  Richard Biener  <rguenther@suse.de>
18387
18388         PR ipa/61823
18389         * tree-ssa-structalias.c (create_variable_info_for_1):
18390         Use varpool_get_constructor.
18391         (create_variable_info_for): Likewise.
18392
18393 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18394
18395         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
18396         subtract outgoing area size when restoring stack_pointer_rtx.
18397
18398 2014-07-24  Nick Clifton  <nickc@redhat.com>
18399
18400         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
18401         that operations are taking place in parallel.
18402         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
18403
18404 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
18405
18406         * omp-low.c (extract_omp_for_data): Add missing break statement.
18407
18408 2014-07-24  Richard Biener  <rguenther@suse.de>
18409
18410         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
18411         * tree-inline.c (estimate_move_cost): Add speed_p parameter
18412         and adjust MOVE_RATIO query accordingly.
18413         (estimate_num_insns): Adjust callers.
18414         * ipa-prop.c (ipa_populate_param_decls): Likewise.
18415         * ipa-cp.c (gather_context_independent_values,
18416         estimate_local_effects): Likewise.
18417         * ipa-split.c (consider_split): Likewise.
18418
18419 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
18420
18421         * config/i386/driver-i386.c: Remove names of unused arguments and
18422         unnecessary unused attributes.
18423         * config/i386/host-mingw32.c: Likewise.
18424         * config/i386/i386.c: Likewise.
18425         * config/i386/winnt-stubs.c: Likewise.
18426         * config/i386/winnt.c: Likewise.
18427
18428 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18429
18430         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
18431         (aarch64_gen_loadwb_pair): New helper function.
18432         (aarch64_expand_epilogue): Simplify code using new helper functions.
18433         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
18434
18435 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18436
18437         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
18438         (aarch64_gen_storewb_pair): New helper function.
18439         (aarch64_expand_prologue): Simplify code using new helper functions.
18440         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
18441
18442 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18443
18444         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
18445         Rename to aarch64_save_callee_saves, remove restore code.
18446         (aarch64_restore_callee_saves): New function.
18447
18448 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18449
18450         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
18451         (aarch64_save_callee_saves): New function to handle reg save
18452         for both core and vectore regs.
18453
18454 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18455
18456         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
18457         (aarch64_gen_store_pair): New helper function.
18458         (aarch64_save_or_restore_callee_save_registers)
18459         (aarch64_save_or_restore_fprs): Use new helper functions.
18460
18461 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18462
18463         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
18464         (aarch64_save_or_restore_callee_save_registers)
18465         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
18466
18467 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18468
18469         * config/aarch64/aarch64.c
18470         (aarch64_save_or_restore_callee_save_registers)
18471         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
18472
18473 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18474
18475         * config/aarch64/aarch64.c
18476         (aarch64_save_or_restore_callee_save_registers)
18477         (aarch64_save_or_restore_fprs): Remove 'increment'.
18478
18479 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18480
18481         * config/aarch64/aarch64.c
18482         (aarch64_save_or_restore_callee_save_registers)
18483         (aarch64_save_or_restore_fprs): Use register offset in
18484         cfun->machine->frame.reg_offset.
18485
18486 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18487
18488         * config/aarch64/aarch64.c
18489         (aarch64_save_or_restore_callee_save_registers)
18490         (aarch64_save_or_restore_fprs): Remove base_rtx.
18491
18492 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18493
18494         * config/aarch64/aarch64.c
18495         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
18496         to 'start_offset'.  Remove local variable 'start_offset'.
18497
18498 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18499
18500         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
18501         type to HOST_WIDE_INT.
18502
18503 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18504
18505         * config/aarch64/aarch64.c (aarch64_expand_prologue)
18506         (aarch64_save_or_restore_fprs)
18507         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
18508
18509 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18510
18511         * config/arm/t-rtems-eabi: Add
18512         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
18513         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
18514         mbig-endian/mthumb/march=armv7-r, and
18515         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
18516         multilibs.
18517
18518 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18519             Chris Johns <chrisj@rtems.org>
18520             Joel Sherrill <joel.sherrill@oarcorp.com>
18521
18522         * config.gcc: Add nios2-*-rtems*.
18523         * config/nios2/rtems.h: New file.
18524         * gcc/config/nios2/t-rtems: New file.
18525
18526 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
18527
18528         PR target/61396
18529         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
18530         constant numbers, not general constants.
18531         (rs6000_expand_vector_init): Ditto.
18532
18533 2014-07-23  Nathan Sidwell  <nathan@acm.org>
18534
18535         * gcov-tool.c (gcov_list): Declare here.
18536         (set_gcov_list): Remove.
18537         (gcov_output_files): Set gcov_list directly.
18538
18539 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
18540
18541         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
18542
18543 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18544
18545         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
18546         callee-saved registers are available for padding purpose
18547         and r3 is not mandatory, then prefer use those callee-saved
18548         instead of r3.
18549
18550 2014-07-23  Richard Biener  <rguenther@suse.de>
18551
18552         * params.def (PARAM_MAX_COMBINE_INSNS): New.
18553         * combine.c: Include statistics.h and params.h.
18554         (combine_instructions): Guard three and four insn combines
18555         with max-combine-insns value.  Record statistics for combines
18556         performed.
18557         * doc/invoke.texi (max-combine-insns): Document new param.
18558
18559 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
18560
18561         * graphite-isl-ast-to-gimple.c:
18562         (translate_isl_ast_node_block): New function.
18563         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
18564
18565         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
18566         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
18567
18568 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
18569
18570         * graphite-isl-ast-to-gimple.c:
18571         (get_max_schedule_dimensions): New function.
18572         (extend_schedule): Likewise.
18573         (generate_isl_schedule): Add calling of extend_schedule and
18574         get_max_schedule_dimensions.
18575
18576 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18577
18578         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
18579         (case UNSPEC): Handle UNSPEC_RBIT.
18580
18581 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18582
18583         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
18584         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
18585
18586 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18587
18588         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
18589
18590 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
18591
18592         * graphite-isl-ast-to-gimple.c:
18593         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
18594         (ivs_params_clear):
18595         (build_iv_mapping): New function.
18596         (translate_isl_ast_node_user): Likewise.
18597         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
18598
18599         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
18600         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
18601         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
18602
18603 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
18604
18605         PR target/55701
18606         * config/arm/arm.md (setmem): New pattern.
18607         * config/arm/arm-protos.h (struct tune_params): New fields.
18608         (arm_gen_setmem): New prototype.
18609         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
18610         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
18611         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
18612         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
18613         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
18614         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
18615         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
18616         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
18617         (arm_const_inline_cost): New function.
18618         (arm_block_set_max_insns): New function.
18619         (arm_block_set_non_vect_profit_p): New function.
18620         (arm_block_set_vect_profit_p): New function.
18621         (arm_block_set_unaligned_vect): New function.
18622         (arm_block_set_aligned_vect): New function.
18623         (arm_block_set_unaligned_non_vect): New function.
18624         (arm_block_set_aligned_non_vect): New function.
18625         (arm_block_set_vect, arm_gen_setmem): New functions.
18626
18627 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
18628
18629         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
18630
18631 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
18632
18633         PR target/61855
18634         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
18635         out of #ifdef __OPTIMIZE__.
18636
18637 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
18638
18639         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
18640         different trapping status if -fnon-call-exceptions is enabled.
18641
18642 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
18643
18644         * expr.c (store_field): Handle VOIDmode for calls that return values
18645         in multiple locations.
18646
18647 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18648
18649         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
18650         (altivec_vsldoi_<mode>): Likewise.
18651
18652 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
18653
18654         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
18655         to the number of characters in the line.
18656
18657 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
18658
18659         * graphite-isl-ast-to-gimple.c: Add using of
18660         build_nonstandard_integer_type instead of int128_integer_type_node.
18661
18662 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
18663
18664         * toplev.c (output_stack_usage): Adjust the location of the warning.
18665
18666 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
18667
18668         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
18669         (*membar_storeload): Disable for LEON3.
18670
18671 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18672
18673         PR rtl-optimization/61461
18674         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
18675
18676 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
18677
18678         PR target/61794
18679         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
18680         Fix instruction constraint.
18681         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
18682
18683 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
18684
18685         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
18686
18687 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
18688
18689         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
18690         GNU coding standards.
18691         (nds32_register_move_cost): Likewise.
18692         (nds32_memory_move_cost): Likewise.
18693         (nds32_address_cost): Likewise.
18694
18695 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
18696
18697         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
18698
18699 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
18700
18701         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
18702         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
18703         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
18704         (HAVE_sync_compare_and_swapqi): Define.
18705         (HAVE_sync_compare_and_swaphi): Likewise.
18706         (HAVE_sync_compare_and_swapsi): Likewise.
18707
18708 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
18709
18710         * config/mips/p5600.md: Add missing cpu tests.
18711
18712 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18713
18714         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
18715         (vmla_f64): Likewise.
18716         (vfms_f64): Likewise.
18717         (vmls_f64): Likewise.
18718
18719 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18720
18721         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
18722         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
18723
18724 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18725
18726         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
18727         (vmlal_high_lane_s32): Likewise.
18728         (vmlal_high_lane_u16): Likewise.
18729         (vmlal_high_lane_u32): Likewise.
18730         (vmlsl_high_lane_s16): Likewise.
18731         (vmlsl_high_lane_s32): Likewise.
18732         (vmlsl_high_lane_u16): Likewise.
18733         (vmlsl_high_lane_u32): Likewise.
18734
18735 2014-07-17  Terry Guo  <terry.guo@arm.com>
18736
18737         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
18738         (alus_reg): Renamed to alus_sreg.
18739         * config/arm/arm-fixed.md: Change type of non-dsp instructions
18740         from alu_reg to alu_sreg.  Change type of dsp instructions from
18741         alu_reg to alu_dsp_reg.
18742         * config/arm/thumb1.md: Likewise.
18743         * config/arm/thumb2.md: Likewise.
18744         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
18745         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
18746         with alu_sreg and alus_sreg.
18747         * config/arm/arm1026ejs.md (alu_op): Likewise.
18748         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
18749         * config/arm/arm926ejs.md (9_alu_op): Likewise.
18750         * config/arm/fa526.md (526_alu_op): Likewise.
18751         * config/arm/fa606te.md (606te_alu_op): Likewise.
18752         * config/arm/fa626te.md (626te_alu_op): Likewise.
18753         * config/arm/fa726te.md (726te_alu_op): Likewise.
18754         * config/arm/fmp626.md (mp626_alu_op): Likewise.
18755         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
18756         alu_sreg, alu_dsp_reg and alus_sreg.
18757         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
18758         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18759         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18760         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
18761         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
18762         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18763         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18764         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18765         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
18766         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
18767         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
18768         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
18769         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
18770         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
18771         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
18772         alus_reg to alus_sreg.
18773
18774 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
18775
18776         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
18777         infinity format.
18778
18779 2014-07-17  Richard Biener  <rguenther@suse.de>
18780
18781         PR rtl-optimization/61801
18782         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
18783         don't set reg_pending_barrier if it appears in a debug-insn.
18784
18785 2014-07-16  DJ Delorie  <dj@redhat.com>
18786
18787         * config/rx/rx.c (rx_option_override): Fix alignment values.
18788         (rx_align_for_label): Likewise.
18789
18790 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
18791
18792         PR target/61737.
18793         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
18794         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18795         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
18796         functions.
18797         (cris_print_index, cris_print_operand, cris_constant_index_p)
18798         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
18799         (cris_address_cost): Ditto last CONSTANT_P.
18800         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
18801         callers changed.  Yield cris_offsettable_symbol for non-PIC
18802         constant symbolic expressions including labels.  Yield cris_unspec
18803         for all unspecs.
18804         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
18805         target to pic_offset_table_rtx for calls that will likely go
18806         through PLT, const0_rtx when they can't.  All callers changed.
18807         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
18808         symbolic expressions to be PICified.  Remove second, redundant,
18809         assert on can_create_pseudo_p returning non-zero.  Use
18810         replace_equiv_address_nv, not replace_equiv_address, for final
18811         operand update.
18812         * config/cris/cris.md ("movsi"): Move variable t to pattern
18813         toplevel. Adjust assert for new cris_symbol_type member.  Use
18814         CONSTANT_P instead of CONSTANT_ADDRESS_P.
18815         ("*movsi_internal") <case 9>: Make check for valid unspec operands
18816         for lapc stricter.
18817         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
18818         ("call", "call_value"): Use second incoming operand as a marker
18819         for pic-offset-table-register being used.
18820         ("*expanded_call_non_v32", "*expanded_call_v32")
18821         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
18822         second incoming operand to CALL, match cris_call_type_marker.
18823         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
18824         ("*expanded_call_side"): Ditto.  Fix typo in comment.
18825         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
18826         CONSTANT_P.
18827         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
18828         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
18829         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
18830         users changed.  Add members cris_offsettable_symbol and cris_unspec.
18831         (cris_symbol_type): Rename from cris_pic_symbol_type.
18832         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
18833         just CONSTANT_P.
18834         * config/cris/cris-protos.h (cris_symbol_type_of,
18835         cris_expand_pic_call_address): Adjust prototypes.
18836         (cris_legitimate_constant_p): New prototype.
18837
18838         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
18839         an existing tmake_file.  Don't add t-slibgcc and t-linux.
18840
18841 2014-07-17  Jason Merrill  <jason@redhat.com>
18842
18843         PR c++/61623
18844         * symtab.c (symtab_remove_from_same_comdat_group): Also
18845         set_comdat_group to NULL_TREE.
18846         (verify_symtab): Fix diagnostic.
18847
18848 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
18849
18850         PR target/61662
18851         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
18852
18853 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
18854
18855         Support location tracking for built-in macro tokens
18856         * input.h (is_location_from_builtin_token): New function declaration.
18857         * input.c (is_location_from_builtin_token): New function definition.
18858         * toplev.c (general_init): Tell libcpp what the pre-defined
18859         spelling location for built-in tokens is.
18860
18861 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
18862
18863         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
18864         on the FUNCTION_DECL.
18865
18866 2014-07-16  Richard Biener  <rguenther@suse.de>
18867
18868         PR other/61782
18869         * doc/extend.texi (always_inline): Clarify.
18870
18871 2014-07-15  Eric Christopher  <echristo@gmail.com>
18872
18873         * doc/invoke.texi (Link Options): Document -z option.
18874
18875 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
18876
18877         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
18878         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18879
18880 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
18881
18882         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
18883
18884 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18885
18886         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
18887         varpool_assemble_decl.
18888         * varpool.c (varpool_assemble_decl): Assert that node->definition is
18889         true.
18890
18891 2014-07-15  Michael Matz  <matz@suse.de>
18892
18893         PR rtl-optimization/61772
18894         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
18895
18896 2014-07-15  Richard Biener  <rguenther@suse.de>
18897
18898         * opts.c (default_options_table): Disable bit-ccp at -Og.
18899
18900 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
18901
18902         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
18903
18904 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
18905
18906         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
18907         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
18908         call langhook for unknown declaration.
18909         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
18910         * tree.h (DECL_ARGUMENTS): Update.
18911         * print-tree.c (print_node): Update.
18912         * tree-core.h (tree_decl_non_common): Remove arguments.
18913         (tree_function_decl): Add arguments.
18914
18915 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
18916
18917         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
18918
18919 2014-07-14  Richard Biener  <rguenther@suse.de>
18920
18921         PR tree-optimization/61779
18922         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
18923         simplifying a condition.
18924
18925 2014-07-14  Richard Biener  <rguenther@suse.de>
18926
18927         * builtins.c (c_strlen): Make only_value == 2 really only
18928         affect warning generation.
18929
18930 2014-07-14  Richard Biener  <rguenther@suse.de>
18931
18932         PR tree-optimization/61757
18933         PR tree-optimization/61783
18934         PR tree-optimization/61787
18935         * tree-ssa-dom.c (record_equality): Revert canonicalization
18936         change and add comment.
18937         (propagate_rhs_into_lhs): Revert previous fix, removing
18938         loop depth restriction again.
18939
18940 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18941
18942         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
18943         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18944         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18945         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
18946         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18947         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18948         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18949
18950 2014-07-14  Richard Biener  <rguenther@suse.de>
18951
18952         * cgraph.h (decl_in_symtab_p): Make inline.
18953
18954 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
18955
18956         PR middle-end/61294
18957         * doc/invoke.texi (-Wmemset-transposed-args): Document.
18958
18959         PR target/61656
18960         * config/i386/i386.c (classify_argument): Don't merge classes above
18961         number of words.
18962
18963 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
18964
18965         * cgraph.h (symtab_node): Add nonzero_address.
18966         (decl_in_symtab_p): Break out from ...
18967         (symtab_get_node): ... here.
18968         * fold-const.c: Include cgraph.h
18969         (tree_single_nonzero_warnv_p): Use symtab to determine
18970         if symbol is non-zero.
18971         * symtab.c (symtab_node::nonzero_address): New method.
18972
18973 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18974
18975         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
18976         forgotten in previous commit.
18977
18978 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18979
18980         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
18981         on builtin types.
18982         * ipa-devirt.c: Include stor-layout.h and intl.h
18983         (odr_subtypes_equivalent_p): New function.
18984         (warn_odr): New function.
18985         (warn_type_mismatch): New function.
18986         (odr_types_equivalent_p): New function.
18987         (add_type_duplicate): Use it.
18988         * common.opt (Wodr): New flag.
18989         * doc/invoke.texi (Wodr): Document new warning.
18990
18991 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18992
18993         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
18994         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
18995         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
18996         (varpool_get_constructor): Push CTORS_IN timevar.
18997         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
18998
18999 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
19000
19001         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
19002         Remove VOID_FTYPE_PUSHORT.
19003         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
19004         Change code to USHORT_FTYPE_VOID.
19005         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
19006         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
19007         (ix86_atomic_assign_expand_fenv): Update for
19008         __builtin_ia32_fnstsw changes.
19009         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
19010         (fnstsw): Change operand 0 to nonimmediate operand.
19011
19012 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
19013
19014         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
19015         (varpool_get_constructor): New function.
19016         (varpool_ctor_useable_for_folding_p): Break out from ...
19017         (ctor_for_folding): ... here; use varpool_get_constructor.
19018         (varpool_assemble_decl): Likewise.
19019         * lto-streamer.h (struct output_block): Turn cgraph_node
19020         to symbol filed.
19021         (lto_input_variable_constructor): Declare.
19022         * ipa-visibility.c (function_and_variable_visibility): Use
19023         varpool_get_constructor.
19024         * cgraph.h (varpool_get_constructor): Declare.
19025         (varpool_ctor_useable_for_folding_p): New function.
19026         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
19027         parameter; return error_mark_node for non-trivial constructors.
19028         (lto_write_tree_1, DFS_write_tree): Update use of
19029         get_symbol_initial_value.
19030         (output_function): Update initialization of symbol.
19031         (output_constructor): New function.
19032         (copy_function): Rename to ..
19033         (copy_function_or_variable): ... this one; handle vars too.
19034         (lto_output): Output variable sections.
19035         * lto-streamer-in.c (input_constructor): New function.
19036         (lto_read_body): Rename from ...
19037         (lto_read_body_or_constructor): ... this one; handle vars too.
19038         (lto_input_variable_constructor): New function.
19039         * ipa-prop.c (ipa_prop_write_jump_functions,
19040         ipa_prop_write_all_agg_replacement): Update.
19041         * lto-cgraph.c (compute_ltrans_boundary): Use it.
19042         (output_cgraph_opt_summary): Set symbol to NULL.
19043
19044 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
19045
19046         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
19047         non-polymorphic types.
19048         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
19049         * ipa-devirt.c (types_same_for_odr): Do not explode when one
19050         of types is not polymorphic.
19051
19052 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
19053
19054         * lra-constraints.c (remove_inheritance_pseudos): Process
19055         destination pseudo too.
19056
19057 2014-07-11  Rong Xu  <xur@google.com>
19058
19059         * gcov-tool.c (gcov_output_files): Fix build error introduced in
19060         commit r212448.
19061
19062 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
19063
19064         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
19065         * config/avr/avr-devices.c (AVR_MCU): Same.
19066         (avr_mcu_types): add text start value to end of device list.
19067         * config/avr/avr-mcus.def: Add text section start for all devices.
19068         (ata5782): Add new avr5 device.
19069         (ata5831): Same.
19070         * config/avr/avr-tables.opt: Regenerate.
19071         * config/avr/avr.h: Add declaration for text section start handler.
19072         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
19073         SPEC functions.
19074         (LINK_SPEC): Include text section start handler to linker spec.
19075         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
19076         pass -Ttext option to linker if the text section start for the device
19077         is not zero.
19078         * config/avr/t-multilib: Regenerate.
19079         * doc/avr-mmcu.texi: Regenerate.
19080
19081 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
19082
19083         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
19084         * config/rs6000/aix52.h (LINK_SPEC): Same.
19085         * config/rs6000/aix53.h (LINK_SPEC): Same.
19086         * config/rs6000/aix61.h (LINK_SPEC): Same.
19087         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
19088
19089 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
19090
19091         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
19092         (graphite_verify): New function.
19093         (ivs_params_clear): New function.
19094         (gcc_expression_from_isl_ast_expr_id): New function.
19095         (gcc_expression_from_isl_expr_int): New function.
19096         (binary_op_to_tree): New function.
19097         (ternary_op_to_tree): New function.
19098         (unary_op_to_tree): New function.
19099         (nary_op_to_tree): New function.
19100         (gcc_expression_from_isl_expr_op): New function.
19101         (gcc_expression_from_isl_expression): New function.
19102         (graphite_create_new_loop): New function.
19103         (translate_isl_ast_for_loop): New function.
19104         (get_upper_bound): New function.
19105         (graphite_create_new_loop_guard): New function.
19106         (translate_isl_ast_node_for): New function.
19107         (translate_isl_ast): New function.
19108         (add_parameters_to_ivs_params): New function.
19109         (scop_to_isl_ast): New parameter ip.
19110         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
19111
19112 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
19113
19114         * config/xtensa/predicates.md (call expander): Update for
19115         DECL_SECTION_NAME being string.
19116
19117 2014-07-11  Richard Biener  <rguenther@suse.de>
19118
19119         PR middle-end/61473
19120         * builtins.c (fold_builtin_memory_op): Inline memory moves that
19121         can be implemented with a single load followed by a single store.
19122         (c_strlen): Only warn when only_value is not 2.
19123
19124 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
19125
19126         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
19127
19128 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
19129
19130         PR target/61561
19131         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
19132         (*movhi_bytes): Likewise.
19133         (*arm_movqi_insn): Likewise.
19134
19135 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
19136
19137         PR target/56858
19138         * config/alpha/alpha.c: Include tree-pass.h, context.h
19139         and pass_manager.h.
19140         (pass_data_handle_trap_shadows): New pass.
19141         (pass_handle_trap_shadows::gate): New pass gate function.
19142         (make_pass_handle_trap_shadows): New function.
19143         (rest_of_handle_trap_shadows): Ditto.
19144
19145         (alpha_align_insns_1): Rename from alpha_align_insns.
19146         (pass_data_align_insns): New pass.
19147         (pass_align_insns::gate): New pass gate function.
19148         (make_pass_aling_insns): New function.
19149         (rest_of_align_insns): Ditto.
19150         (alpha_align_insns): Ditto.
19151
19152         (alpha_option_override): Declare handle_trap_shadows info
19153         and align_insns_info.  Register handle_trap_shadows and align_insns
19154         passes here.
19155         (alpha_reorg): Do not call alpha_trap_shadows and
19156         alpha_align_insn from here.
19157
19158         (alpha_pad_function_end): Do not skip BARRIERs.
19159
19160 2014-07-10  Rong Xu  <xur@google.com>
19161
19162         Add gcov-tool: an offline gcda profile processing tool support.
19163         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
19164         (gcov_is_error): Ditto.
19165         (gcov_read_string): Ditto.
19166         (gcov_read_sync): Ditto.
19167         * gcov-io.h: Move counter defines to gcov-counter.def.
19168         * gcov-dump.c (tag_counters): Use gcov-counter.def.
19169         * coverage.c: Ditto.
19170         * gcov-tool.c: Offline gcda profile processing tool.
19171         (unlink_gcda_file): Remove one gcda file.
19172         (unlink_profile_dir): Remove gcda files from the profile path.
19173         (gcov_output_files): Output gcda files to an output dir.
19174         (profile_merge): Merge two profiles in directory.
19175         (print_merge_usage_message): Print merge usage.
19176         (merge_usage): Print merge usage and exit.
19177         (do_merge): Driver for profile merge sub-command.
19178         (profile_rewrite): Rewrite profile.
19179         (print_rewrite_usage_message): Print rewrite usage.
19180         (rewrite_usage): Print rewrite usage and exit.
19181         (do_rewrite): Driver for profile rewrite sub-command.
19182         (print_usage): Print gcov-info usage and exit.
19183         (print_version): Print gcov-info version.
19184         (process_args): Process arguments.
19185         (main): Main routine for gcov-tool.
19186         * Makefile.in: Build and install gcov-tool.
19187         * gcov-counter.def: New file split from gcov-io.h.
19188         * doc/gcc.texi: Include gcov-tool.texi.
19189         * doc/gcov-tool.texi: Document for gcov-tool.
19190
19191 2014-07-10  Richard Biener  <rguenther@suse.de>
19192
19193         PR tree-optimization/61757
19194         * tree-ssa-dom.c (loop_depth_of_name): Restore.
19195         (propagate_rhs_into_lhs): Revert part of last change.
19196
19197 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
19198
19199         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
19200         FUNCTION_DECLs.
19201
19202 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
19203
19204         PR middle-end/53590
19205         * function.c (allocate_struct_function): Revert r188667 change.
19206
19207         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
19208
19209 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
19210
19211         * doc/install.texi: Remove links to defunct package providers for
19212         Solaris.
19213
19214 2014-07-09  Tom de Vries  <tom@codesourcery.com>
19215
19216         * final.c (get_call_fndecl): Declare.
19217         (self_recursive_call_p): New function.
19218         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
19219
19220 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19221
19222         * ipa-devirt.c (record_node): Walk through aliases.
19223
19224 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19225
19226         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
19227
19228 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19229
19230         Revert:
19231         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
19232
19233 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19234
19235         * ipa-visibility.c (function_and_variable_visibility): Remove
19236         temporary hack disabling local aliases on AIX.
19237
19238 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19239
19240         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
19241         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
19242
19243 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19244
19245         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
19246         * rs6000/rs6000.c: Inline output of .set instruction.
19247         (declare_alias_data): New struct.
19248         (rs6000_declare_alias): New function.
19249         (rs6000_xcoff_declare_function_name): Use it.
19250         (rs6000_xcoff_declare_object_name): New function.
19251         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
19252         (ASM_OUTPUT_DEF): Turn to empty definition.
19253
19254 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
19255
19256         PR bootstrap/61679
19257         * hash-table.h: use hash_table::value_type instead of
19258         Descriptor::value_type in the return types of several methods.
19259
19260 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
19261
19262         * tree-pass.h (pass_data): Remove has_execute member.
19263         * passes.c (execute_one_pass): Don't check pass->has_execute.
19264         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
19265         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
19266         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
19267         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
19268         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
19269         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
19270         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
19271         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
19272         gimple-low.c, gimple-ssa-isolate-paths.c,
19273         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
19274         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
19275         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
19276         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
19277         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
19278         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
19279         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
19280         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
19281         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
19282         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
19283         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
19284         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
19285         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
19286         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
19287         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
19288         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
19289         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
19290         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
19291         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
19292         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
19293         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
19294         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
19295         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
19296         web.c: Remove initializer for pass_data::has_execute.
19297
19298 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
19299
19300         * graphite-htab.h: Use hash_map instead of hash_table.
19301         * graphite-clast-to-gimple.c: Adjust.
19302         * passes.c: Use hash_map instead of hash_table.
19303         * sese.c: Likewise.
19304         * sese.h: Remove now unused code.
19305
19306 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
19307
19308         PR target/61599
19309         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
19310         than zero.
19311
19312 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
19313
19314         PR rtl-optimization/61673
19315         * combine.c (simplify_comparison): Test just mode's sign bit
19316         in tmode rather than the sign bit and any bits above it.
19317
19318 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
19319
19320         * graphite-isl-ast-to-gimple.c (generate_isl_context):
19321         Add __isl_give to the declaration.
19322         (generate_isl_schedule): Likewise.
19323         (scop_to_isl_ast): Likewise.
19324
19325 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19326
19327         * config/arm/arm.c (cortexa5_extra_costs): New table.
19328         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
19329
19330 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
19331
19332         PR tree-optimization/61725
19333         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
19334         range, use range_includes_zerop_p instead of integer_zerop on
19335         vr0->min, only use log2 of max if min is not negative.
19336
19337 2014-07-08  Richard Biener  <rguenther@suse.de>
19338
19339         * tree-ssa-dom.h (loop_depth_of_name): Remove.
19340         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
19341         restriction on loop depth difference.
19342         (record_equality): Likewise.
19343         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
19344         (loop_depth_of_name): Remove.
19345         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
19346         restriction on loop depth difference.
19347         (init_copy_prop): Likewise.
19348
19349 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19350
19351         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
19352         parameter.
19353         (walk_aliased_vdefs): Likewise.
19354         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
19355         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
19356         (detect_type_change_from_memory_writes): Check if entry was reached.
19357
19358 2014-07-08  Richard Biener  <rguenther@suse.de>
19359
19360         PR tree-optimization/61681
19361         * tree-ssa-structalias.c (find_what_var_points_to): Expand
19362         NONLOCAL inside ESCAPED.
19363
19364 2014-07-08  Richard Biener  <rguenther@suse.de>
19365
19366         PR tree-optimization/61680
19367         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19368         Handle properly all read-write dependences with group accesses.
19369
19370 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
19371
19372         PR tree-optimization/61576
19373         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
19374         block containing reduction statement is predecessor of phi basi block.
19375
19376 2014-07-08  Marek Polacek  <polacek@redhat.com>
19377
19378         PR c/60226
19379         * fold-const.c (round_up_loc): Change the parameter type.
19380         Remove assert.
19381         * fold-const.h (round_up_loc): Adjust declaration.
19382         * stor-layout.c (finalize_record_size): Check for too large types.
19383
19384 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
19385
19386         * symtab.c: Include calls.h.
19387         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
19388
19389 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
19390
19391         * config/rs6000/rs6000.c (output_vec_const_move): Handle
19392         little-endian code generation.
19393         * config/rs6000/spe.md (spe_evmergehi): Rename to...
19394         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
19395         (spe_evmergehilo): Rename to...
19396         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
19397         (spe_evmergelo): Rename to...
19398         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
19399         (spe_evmergelohi): Rename to...
19400         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
19401         (spe_evmergehi, spe_evmergehilo): New expanders.
19402         (spe_evmergelo, spe_evmergelohi): Likewise.
19403         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
19404         (*frob_tf_ti): Likewise.
19405         (*frob_<mode>_di_2): Likewise.
19406         (*frob_tf_di_8_2): Likewise.
19407         (*frob_di_<mode>): Likewise.
19408         (*frob_ti_tf): Likewise.
19409         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
19410         (*frob_ti_<mode>_8_2): Likewise.
19411         (*frob_ti_tf_2): Likewise.
19412         (mov_si<mode>_e500_subreg0): Rename to...
19413         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
19414         endianness only.
19415         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
19416         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
19417         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
19418         the big endianness only.
19419         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
19420         (*mov_si<mode>_e500_subreg0_2): Rename to...
19421         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
19422         big big endianness only.
19423         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
19424         (*mov_si<mode>_e500_subreg4): Rename to...
19425         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
19426         endianness only.
19427         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
19428         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
19429         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
19430         the big endianness only.
19431         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
19432         pattern.
19433         (*mov_si<mode>_e500_subreg4_2): Rename to...
19434         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
19435         endianness only.
19436         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
19437         (*mov_sitf_e500_subreg8): Rename to...
19438         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
19439         endianness only.
19440         (*mov_sitf_e500_subreg8_le): New instruction pattern.
19441         (*mov_sitf_e500_subreg8_2): Rename to...
19442         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
19443         endianness only.
19444         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
19445         (*mov_sitf_e500_subreg12): Rename to...
19446         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
19447         endianness only.
19448         (*mov_sitf_e500_subreg12_le): New instruction pattern.
19449         (*mov_sitf_e500_subreg12_2): Rename to...
19450         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
19451         endianness only.
19452         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
19453
19454 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
19455
19456         * asan.c (instrument_strlen_call): Do not instrument first byte
19457         in strlen if already instrumented.
19458
19459 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19460
19461         * config/arm/arm.opt (mwords-little-endian): Delete.
19462         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
19463         of TARGET_LITTLE_WORDS.
19464         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
19465         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
19466         warning.
19467         * doc/invoke.texi: Remove references to -mwords-little-endian.
19468
19469 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
19470
19471         * expmed.c (struct init_expmed_rtl): Change all fields but
19472         pow2 and cint from struct rtx_def to rtx.
19473         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
19474         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
19475         at the end again.
19476
19477 2014-07-06  Marek Polacek  <polacek@redhat.com>
19478
19479         PR c/6940
19480         * doc/invoke.texi: Document -Wsizeof-array-argument.
19481
19482 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
19483
19484         * wide-int.h (wide_int_storage): Change declaration from struct
19485         to class.
19486
19487 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
19488
19489         * cgraph.c (cgraph_create_indirect_edge): Update call of
19490         get_polymorphic_call_info.
19491         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
19492         (possible_polymorphic_call_targets): Add parameter call.
19493         (decl_maybe_in_construction_p): New predicate.
19494         (get_polymorphic_call_info): Add parameter call;
19495         use decl_maybe_in_construction_p.
19496         * gimple-fold.c (fold_gimple_assign): Update use of
19497         possible_polymorphic_call_targets.
19498         (gimple_fold_call): Likewise.
19499         * ipa-prop.c: Inlcude calls.h
19500         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
19501         (param_type_may_change_p): New predicate.
19502         (detect_type_change_from_memory_writes): Break out from ...
19503         (detect_type_change): ... this one; use param_type_may_change_p.
19504         (detect_type_change_ssa): Use param_type_may_change_p.
19505         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
19506
19507 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
19508
19509         PR target/49423
19510         * config/arm/arm-protos.h (arm_legitimate_address_p,
19511         arm_is_constant_pool_ref): Add prototypes.
19512         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
19513         (arm_is_constant_pool_ref) New function.
19514         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
19515         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
19516         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
19517         operand. Remove pool_range and neg_pool_range attributes.
19518         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
19519         pool_range and neg_pool_range attributes.
19520         * config/arm/constraints.md (Uh): New constraint.
19521         (Uq): Don't allow constant pool references.
19522
19523 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
19524
19525         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
19526         (move_lo_quad_internal_be_<mode>): Likewise.
19527         (move_lo_quad_<mode>): Convert to define_expand.
19528         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
19529         (aarch64_simd_move_hi_quad_be_<mode>): New.
19530         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
19531         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
19532         (aarch64_combinez_be<mode>): New.
19533         (aarch64_combine<mode>): Convert to define_expand.
19534         (aarch64_combine_internal<mode>): New.
19535         (aarch64_simd_combine<mode>): Remove bogus RTL description.
19536
19537 2014-07-04  Tom de Vries  <tom@codesourcery.com>
19538
19539         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
19540         combination of earlyclobber and read/write modifiers.
19541
19542 2014-07-04  Tom de Vries  <tom@codesourcery.com>
19543
19544         * config/aarch64/aarch64-simd.md
19545         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
19546
19547 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
19548
19549         PR target/61714
19550         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
19551
19552 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
19553
19554         PR middle-end/61654
19555         * cgraphunit.c (expand_thunk): Call free_dominance_info.
19556
19557         PR tree-optimization/61684
19558         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
19559         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
19560
19561 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19562             Kito Cheng  <kito@0xlab.org>
19563             Monk Chiang  <sh.chiang04@gmail.com>
19564
19565         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
19566         (nds32_symbol_load_store_p): Move to ...
19567         (nds32_fp_as_gp_check_available): Move to ...
19568         * config/nds32/nds32-fp-as-gp.c: ... here.
19569         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
19570         extern declaration.
19571
19572 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19573             Kito Cheng  <kito@0xlab.org>
19574             Monk Chiang  <sh.chiang04@gmail.com>
19575
19576         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
19577         (nds32_expand_store_multiple): Move to ...
19578         (nds32_expand_movmemqi): Move to ...
19579         * config/nds32/nds32-memory-manipulation.c: ... here.
19580
19581 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19582             Kito Cheng  <kito@0xlab.org>
19583             Monk Chiang  <sh.chiang04@gmail.com>
19584
19585         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
19586         (nds32_output_casesi_pc_relative): Move to ...
19587         (nds32_output_casesi): Move to ...
19588         (nds32_mem_format): Move to ...
19589         (nds32_output_16bit_store): Move to ...
19590         (nds32_output_16bit_load): Move to ...
19591         (nds32_output_32bit_store): Move to ...
19592         (nds32_output_32bit_load): Move to ...
19593         (nds32_output_32bit_load_s): Move to ...
19594         (nds32_output_stack_push): Move to ...
19595         (nds32_output_stack_pop): Move to ...
19596         * config/nds32/nds32-md-auxiliary.c: ... here.
19597
19598 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19599             Ling-Hua Tseng  <uranus@tinlans.org>
19600
19601         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
19602         the purpose of this file.
19603
19604 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19605             Kito Cheng  <kito@0xlab.org>
19606             Monk Chiang  <sh.chiang04@gmail.com>
19607
19608         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
19609         (nds32_address_cost): Move implementation to ...
19610         * config/nds32/nds32-cost.c: ... here.
19611         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
19612         (nds32_address_cost_impl): Declare.
19613
19614 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19615             Kito Cheng  <kito@0xlab.org>
19616             Monk Chiang  <sh.chiang04@gmail.com>
19617
19618         * config/nds32/nds32.c
19619         (nds32_consecutive_registers_load_store_p): Move to ...
19620         (nds32_valid_multiple_load_store): Move to ...
19621         (nds32_valid_stack_push_pop): Move to ...
19622         (nds32_can_use_bclr_p): Move to ...
19623         (nds32_can_use_bset_p): Move to ...
19624         (nds32_can_use_btgl_p): Move to ...
19625         (nds32_can_use_bitci_p): Move to ...
19626         * config/nds32/nds32-predicates.c: ... here.
19627
19628 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19629             Kito Cheng  <kito@0xlab.org>
19630             Monk Chiang  <sh.chiang04@gmail.com>
19631
19632         * config/nds32/nds32.c
19633         (nds32_expand_builtin_null_ftype_reg): Move to ...
19634         (nds32_expand_builtin_reg_ftype_imm): Move to ...
19635         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
19636         (nds32_init_builtins): Move implementation to ...
19637         (nds32_expand_builtin): Move implementation to ...
19638         * config/nds32/nds32-intrinsic.c: ... here.
19639         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
19640         (nds32_expand_builtin_impl): Declare.
19641
19642 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19643             Kito Cheng  <kito@0xlab.org>
19644             Monk Chiang  <sh.chiang04@gmail.com>
19645
19646         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
19647         (nds32_emit_section_tail_template): Move to ...
19648         (nds32_emit_isr_jmptbl_section): Move to ...
19649         (nds32_emit_isr_vector_section): Move to ...
19650         (nds32_emit_isr_reset_conten): Move to ...
19651         (nds32_check_isr_attrs_conflict): Move to ...
19652         (nds32_construct_isr_vectors_information): Move to ...
19653         (nds32_asm_file_start): Move implementation to ...
19654         (nds32_asm_file_end): Move implementation to ...
19655         * config/nds32/nds32-isr.c: ... here.
19656         * config/nds32/nds32-protos.h
19657         (nds32_check_isr_attrs_conflict): Declare.
19658         (nds32_construct_isr_vectors_information): Declare.
19659         (nds32_asm_file_start_for_isr): Declare.
19660         (nds32_asm_file_end_for_isr): Declare.
19661
19662 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19663             Kito Cheng  <kito@0xlab.org>
19664             Monk Chiang  <sh.chiang04@gmail.com>
19665
19666         * config.gcc (nds32*): Add new modules to extra_objs.
19667         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
19668         (nds32be-*-*): Likewise.
19669         * config/nds32/nds32-cost.c: New file.
19670         * config/nds32/nds32-fp-as-gp.c: New file.
19671         * config/nds32/nds32-intrinsic.c: New file.
19672         * config/nds32/nds32-isr.c: New file.
19673         * config/nds32/nds32-md-auxiliary.c: New file.
19674         * config/nds32/nds32-memory-manipulation.c: New file.
19675         * config/nds32/nds32-pipelines-auxiliary.c: New file.
19676         * config/nds32/nds32-predicates.c: New file.
19677         * config/nds32/t-nds32: New file.
19678
19679 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
19680
19681         PR tree-optimization/61682
19682         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
19683         using cases and when one of the operands is equal to 1.
19684
19685 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
19686
19687         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
19688         ashr<mode>3): Correct mode of operands[2].
19689         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
19690         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
19691         Correct mode of operands[2].  Fix split condition.
19692
19693 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
19694
19695         * arm.md (arch): Add armv6_or_vfpv3.
19696         (arch_enabled): Add test for the above.
19697         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
19698         on VFP9.
19699         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
19700
19701 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
19702
19703         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
19704         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
19705         HWI 1 and negate the unsigned value.
19706         * expmed.c (expand_sdiv_pow2): For modes wider than word always
19707         use AND instead of shift.
19708         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
19709
19710 2014-07-03  Marek Polacek  <polacek@redhat.com>
19711
19712         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
19713         (-fsanitize=float-divide-by-zero): Move to the table with
19714         -fsanitize=undefined suboptions.
19715         (-fsanitize=float-cast-overflow): Likewise.
19716
19717 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
19718
19719         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
19720         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
19721         endianness.
19722
19723 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19724
19725         * loop-invariant.c (struct invariant): Add a new member: eqno;
19726         (find_identical_invariants): Update eqno;
19727         (create_new_invariant): Init eqno;
19728         (get_inv_cost): Compute comp_cost with eqno;
19729
19730 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
19731
19732         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
19733         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
19734         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
19735         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
19736         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
19737
19738 2014-07-02  Christian Bruel  <christian.bruel@st.com>
19739
19740         PR target/29349
19741         PR target/53513
19742         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
19743         (make_preds_opaque): Delete.
19744         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
19745         (commit_mode_sets): New function.
19746         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
19747         Process all modes at once.
19748         * basic-block.h (pre_edge_lcm_avs): Declare.
19749         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
19750         Call clear_aux_for_edges. Fix comments.
19751         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
19752         (pre_edge_rev_lcm): Idem.
19753         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
19754         parameter.
19755         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
19756         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
19757         Idem.
19758         * config/i386/i386.c (x96_emit_mode_set): Idem.
19759         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
19760         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
19761         (fpscr_toggle) Disallow from delay slot.
19762         * target.def (emit_mode_set): Add prev_mode parameter.
19763         * doc/tm.texi: Regenerate.
19764
19765 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19766
19767         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
19768         variable i.
19769
19770 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
19771
19772         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
19773         vtable_pointer_value_to_vtable): Constify.
19774         (contains_polymorphic_type_p): Declare.
19775         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
19776         vtable_pointer_value_to_vtable): Constify.
19777         (contains_polymorphic_type_p): New predicate.
19778         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
19779         polymorphic types.
19780         (ipa_set_ancestor_jf): Likewise.
19781         (detect_type_change): Return false in easy cases.
19782         (compute_complex_assign_jump_func): Require type to contain
19783         polymorphic type.
19784         (compute_known_type_jump_func): Likewise.
19785
19786 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
19787
19788         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
19789         Remove.
19790         (type_in_anonymous_namespace_p): Constify argument.
19791         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
19792         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
19793         (main_odr_variant): New function.
19794         (hash_type_name): Make static; update assert; do not ICE on
19795         non-records.
19796         (types_same_for_odr): Bring here from tree.c; simplify and remove
19797         old structural comparing code that doesn't work for templates.
19798         (odr_hasher::equal): Update assert.
19799         (add_type_duplicate): Return true when bases should be computed;
19800         replace incomplete loader by complete; do not output duplicated
19801         warnings; do not ICE on non-records; set odr_violated flag.
19802         (get_odr_type): Be ready to replace incomplete type by complete
19803         one; work on ODR variants instead of main variants; reorder item
19804         in array so bases have still smaller indexes.
19805         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
19806         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
19807
19808 2014-07-01  Cary Coutant  <ccoutant@google.com>
19809
19810         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
19811         lookup.
19812         (resolve_addr_in_expr): When replacing the rtx in a location list
19813         entry, get a new address table entry.
19814         (dwarf2out_finish): Call index_location_lists even if there are no
19815         addr_index_table entries yet.
19816
19817 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
19818
19819         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
19820         change for not being obvious.
19821
19822 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
19823
19824         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
19825         unused argument.
19826
19827 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19828
19829         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
19830         (vcagt_f64): Likewise.
19831         (vcale_f64): Likewise.
19832         (vcaled_f64): Likewise.
19833         (vcales_f32): Likewise.
19834         (vcalt_f64): Likewise.
19835         (vcaltd_f64): Likewise.
19836         (vcalts_f32): Likewise.
19837
19838 2014-07-01  Marek Polacek  <polacek@redhat.com>
19839
19840         * doc/invoke.texi: Document -Wint-conversion.
19841
19842 2014-07-01  Marek Polacek  <polacek@redhat.com>
19843
19844         PR c/58286
19845         * doc/invoke.texi: Document -Wincompatible-pointer-types.
19846
19847 2014-07-01  Martin Liska  <mliska@suse.cz>
19848
19849         IPA REF alias refactoring
19850         * cgraph.h (iterate_direct_aliases): New function.
19851         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
19852         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
19853         FOR_EACH_ALIAS added.
19854         (cgraph_for_node_and_aliases): Likewise.
19855         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
19856         * ipa-inline.c (reset_edge_caches): Likewise.
19857         (update_caller_keys): Likewise.
19858         * trans-mem.c (ipa_tm_execute): Likewise.
19859         *varpool.c (varpool_analyze_node): Likewise.
19860         (varpool_for_node_and_aliases): Likewise.
19861         * ipa-ref.h (first_alias): New function.
19862         (last_alias): Likewise.
19863         (has_aliases_p): Likewise.
19864         * ipa-ref.c (ipa_ref::remove_reference): Removal function
19865         is sensitive to IPA_REF_ALIASes.
19866         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
19867         are put at the beginning of the list.
19868         (symtab_node::iterate_direct_aliases): New function.
19869
19870 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19871
19872         Revert:
19873         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19874         type is complete.
19875         (write_ts_type_common_tree_pointers): Do not stream fields not set
19876         for incomplete types; do not stream duplicated fields for variants;
19877         sanity check that variant and type match.
19878         (write_ts_type_non_common_tree_pointers): Likewise.
19879         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19880         TYPE_SIZE whether type is complete.
19881         (lto_input_ts_type_common_tree_pointers): Do same changes as in
19882         write_ts_type_common_tree_pointers
19883         (lto_input_ts_type_non_common_tree_pointers): Likewise.
19884
19885 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
19886
19887         * var-tracking.c (add_stores): Return instead of asserting if old
19888         and new values for conditional store are the same.
19889
19890 2014-06-30  Richard Henderson  <rth@redhat.com>
19891
19892         PR rtl-opt/61608
19893         PR target/39284
19894         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
19895         the cfg if there were any changes.
19896         * passes.def: Revert move of peephole2 after reorder_blocks;
19897         move duplicate_computed_gotos before peephole2.
19898
19899 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
19900
19901         * except.c (emit_note_eh_region_end): New helper function.
19902         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
19903         emit EH_REGION_END note.
19904         * jump.c (cleanup_barriers): Do not split a call and its
19905         corresponding CALL_ARG_LOCATION note.
19906
19907 2014-06-30  Jeff Law  <law@redhat.com>
19908
19909         PR tree-optimization/61607
19910         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
19911         deeper into the SSA_NAME_VALUE chain.
19912
19913 2014-06-30  Marek Polacek  <polacek@redhat.com>
19914
19915         * convert.c (convert_to_integer): Don't instrument conversions if the
19916         function has no_sanitize_undefined attribute.
19917         * ubsan.c: Don't run the ubsan pass if the function has
19918         no_sanitize_undefined attribute.
19919
19920 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
19921
19922         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
19923         -fsanitize=undefined suboptions.
19924
19925 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
19926
19927         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
19928         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
19929         against bigendian and adjust indices.
19930
19931 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
19932
19933         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
19934
19935 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19936
19937         PR target/61633
19938         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
19939         Add alternative; make early clobber.  Adjust both split patterns
19940         to use operand 0 as the working register.
19941
19942 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
19943
19944         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
19945         as ira_object_id_map might be NULL, or 1.
19946
19947 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19948
19949         * loop-invariant.c (get_inv_cost): Handle register class.
19950         (gain_for_invariant): Check the register pressure of the inv
19951         and its overlapped register class, other than all.
19952
19953 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
19954
19955         * doc/invoke.texi (Optimize Options): Fix descriptions of
19956         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
19957
19958 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
19959
19960         * doc/extend.texi (Function Attributes): Update 'naked' attribute
19961         documentation.
19962
19963 2014-06-29  Tobias Grosser <tobias@grosser.es>
19964
19965         PR bootstrap/61650
19966         * graphite-isl-ast-to-gimple.c: Add missing guards.
19967
19968 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19969
19970         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
19971         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
19972         * flag-types.h: Add new enum fgraphite_generator.
19973         * graphite-isl-ast-to-gimple.c: New.
19974         * graphite-isl-ast-to-gimple.h: New.
19975         * graphite.c (graphite_transform_loops): Add choice of Graphite
19976         code generator, which depends on flag_graphite_code_gen.
19977
19978 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19979
19980         * graphite-dependences.c (subtract_commutative_associative_deps):
19981         Add NULL checking of the following variables: must_raw_no_source,
19982         may_raw_no_source, must_war_no_source, may_war_no_source,
19983         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
19984         must_war, may_war, must_waw, may_waw.
19985
19986 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19987
19988         * graphite-clast-to-gimple.c: gloog is renamed to
19989         graphite_regenerate_ast_cloog.  gloog_error is renamed to
19990         graphite_regenerate_error.
19991         * graphite-clast-to-gimple.h: The definition of the struct
19992         bb_pbb_def is moved to graphite-htab.h.
19993         Add inclusion of the hash-table.h.
19994         * graphite-htab.h: The declaration of the function gloog is moved
19995         to graphite-clast-to-gimple.h and renamed to
19996         graphite_regenerate_ast_cloog.
19997         * graphite.c (graphite_transform_loops): gloog is renamed
19998         to graphite_regenerate_ast_cloog.
19999
20000 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
20001
20002         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
20003         type is complete.
20004         (write_ts_type_common_tree_pointers): Do not stream fields not set
20005         for incomplete types; do not stream duplicated fields for variants;
20006         sanity check that variant and type match.
20007         (write_ts_type_non_common_tree_pointers): Likewise.
20008         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
20009         TYPE_SIZE whether type is complete.
20010         (lto_input_ts_type_common_tree_pointers): Do same changes as in
20011         write_ts_type_common_tree_pointers
20012         (lto_input_ts_type_non_common_tree_pointers): Likewise.
20013
20014 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
20015
20016         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
20017
20018 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
20019
20020         * tree-inline.c (remap_type_1): Do not duplicate fields
20021         that are shared in between type and its main variant.
20022
20023 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
20024
20025         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
20026         of the type.
20027         (ipa_set_ancestor_jf) Likewise.
20028         (check_stmt_for_type_change): Check that we work on main variant.
20029         (detect_type_change): Look into main variant.
20030         (compute_known_type_jump_func): Check that main variant has BINFO.
20031
20032 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
20033
20034         * ipa-devirt.c (set_type_binfo): New function.
20035         (add_type_duplicate): Use it.
20036         (get_odr_type): Sanity check that binfos points to main variants.
20037         (get_class_context): Be sure the context's outer_type is main variant.
20038         (contains_type_p): Walk main variant.
20039         (get_polymorphic_call_info_for_decl): Set outer_type to be
20040         main variant.
20041         (get_polymorphic_call_info): Likewise.
20042         (possible_polymorphic_call_targets): Sanity check that we operate
20043         on main variant.
20044
20045 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
20046
20047         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
20048
20049 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20050
20051         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
20052         accidental change due to wide-int branch merge.
20053
20054 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20055
20056         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
20057         compressed debug support.
20058         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
20059         * configure: Regenerate.
20060         * config.in: Regenerate.
20061         * common.opt (compressed_debug_sections): New enum.
20062         (gz, gz=): New options.
20063         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
20064         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
20065         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
20066         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
20067         LINK_COMPRESS_DEBUG_SPEC.
20068         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
20069         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
20070         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
20071         (Debugging Options): Document -gz[=type].
20072
20073 2014-06-27  Martin Jambor  <mjambor@suse.cz>
20074
20075         PR ipa/61160
20076         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
20077         args_to_skip, use those from node instead.  Copy args_to_skip and
20078         combined_args_to_skip from node to the new thunk.
20079         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
20080         (cgraph_create_virtual_clone): Moved computation of
20081         combined_args_to_skip...
20082         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
20083
20084 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
20085
20086         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
20087         redundant diagnostic machinary.
20088
20089 2014-06-27  Richard Biener  <rguenther@suse.de>
20090
20091         * tree-ssa-math-opts.c (bswap_replace): Fix
20092         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
20093
20094 2014-06-27  Martin Liska  <mliska@suse.cz>
20095
20096         * gimple.h (gimple_location_safe): New function introduced.
20097         * cgraphunit.c (walk_polymorphic_call_targets): Usage
20098         of gimple_location_safe replaces gimple_location.
20099         (gimple_fold_call): Likewise.
20100         * ipa-devirt.c (ipa_devirt): Likewise.
20101         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
20102         * ipa.c (walk_polymorphic_call_targets): Likewise.
20103         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
20104
20105 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
20106
20107         PR tree-optimization/57233
20108         PR tree-optimization/61299
20109         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
20110         functions.
20111         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
20112         would be lowered to scalar shifts, check if corresponding
20113         shifts and vector BIT_IOR_EXPR are supported and don't lower
20114         or lower just to narrower vector type in that case.
20115         * expmed.c (expand_shift_1): Fix up handling of vector
20116         shifts and rotates.
20117
20118 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
20119
20120         PR target/61586
20121         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
20122
20123 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
20124
20125         * doc/invoke.texi (-fsemantic-interposition): Document.
20126         * common.opt (fsemantic-interposition): New flag.
20127         * varasm.c (decl_replaceable_p): Use it.
20128
20129 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20130
20131         PR target/61542
20132         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
20133         extraction other than index 3.
20134
20135 2014-06-26  Teresa Johnson  <tejohnson@google.com>
20136
20137         * doc/invoke.texi: Fix typo.
20138         * dumpfile.c: Add support for documented -fdump-* options
20139         optimized/missed/note/optall.
20140
20141 2014-06-26  Martin Jambor  <mjambor@suse.cz>
20142
20143         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
20144         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
20145         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
20146         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
20147         * opts.c (default_options_optimization): Set
20148         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
20149         * doc/invoke.texi (allow-load-data-races)
20150         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
20151         (allow-store-data-races): Document the new default.
20152
20153 2014-06-26  Martin Jambor  <mjambor@suse.cz>
20154
20155         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
20156         renamed to ipa_impossible_devirt_target.  Fix typo.
20157         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
20158         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
20159         ipa_impossible_devirt_target.
20160
20161 2014-06-26  Richard Biener  <rguenther@suse.de>
20162
20163         PR tree-optimization/61607
20164         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
20165         explaining why we restrict copies on loop depth.
20166         * tree-ssa-dom.c (cprop_operand): Remove restriction on
20167         on loop depth.
20168         (record_equivalences_from_phis): Instead add it here.
20169
20170 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
20171
20172         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
20173         (LTO_WRAPPER_OBJS): New variable.
20174         (lto-wrapper$(exeext)): Use it.
20175         * collect2.c: Include "collect-utils.h".
20176         (verbose, debug): Remove variables.
20177         (at_file_supplied): No longer static.
20178         (tool_name): New variable.
20179         (do_wait, fork_execute, maybe_unlink): Don't declare.
20180         (tool_cleanup): No longer static.
20181         (notice): Remove function.
20182         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
20183         fork_execute calls.
20184         (collect_wait, do_wait, collect_execute): Remove functions.
20185         (maybe_unlink): No longer static.
20186         * collect2.h (verbose, debug): Don't declare.
20187         (at_file_supplied): Declare.
20188         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
20189         changed.
20190         (collect_execute): Replace with implementation from collect2, plus a
20191         new arg use_atfile.  All callers changed.
20192         (collect_wait): Replace with implementation from collect2.
20193         (maybe_unlink_file): Remove function.
20194         (fork_execute): Replace with implementation from collect2, plus a
20195         new arg use_atfile.  All callers changed.
20196         (do_wait): Add call to utils_cleanup to the error path.
20197         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
20198         (tool_cleanup): Adjust declarations.
20199         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
20200         * tlink.c: Include "collect-utils.h".
20201         (tlink_execute): New arg use_atfile.  All callers changed.
20202         (tlink_init, tlink_execute): Remove declarations.
20203
20204         * collect-utils.c (save_temps): New variable.
20205         (do_wait): Use it instead of debug.  Use fatal_error.
20206         * collect-utils.h (save_temps): Declare.
20207         * collect2.c (verbose): Rename from vflag.  All uses changed.
20208         (tool_cleanup): New function, copied from collect_atexit.
20209         (collect_atexit, handler): Just call it.
20210         * collect2.h (verbose): Declaration renamed from vflag.
20211         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
20212         debug.
20213
20214         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
20215         (lto-wrapper$(exeext)): Link with collect-utils.o.
20216         * collect-utils.c: New file.
20217         * collect-utils.h: New file.
20218         * lto-wrapper.c: Include "collect-utils.h".
20219         (args_name): Delete variable.
20220         (tool_name): New variable.
20221         (tool_cleanup): New function.
20222         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
20223         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
20224         (fork_execute): Remove functions.
20225
20226 2014-06-26  Nick Clifton  <nickc@redhat.com>
20227
20228         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
20229
20230         * doc/extend.texi (Function Attributes): Fix typo in description
20231         of RX vector attribute.
20232
20233 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
20234
20235         * config.gcc (supported_defaults): Error when passing either
20236         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
20237
20238 2014-06-26  Richard Biener  <rguenther@suse.de>
20239
20240         * tree-ssa-dom.c (cprop_operand): Remove restriction on
20241         propagating volatile pointers.
20242
20243 2014-06-26  Richard Biener  <rguenther@suse.de>
20244
20245         PR tree-optimization/61607
20246         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
20247         loop if we redirected its latch edge.
20248         (thread_block_1): Do not cancel loops prematurely.
20249
20250 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
20251
20252         * toplev.c (backend_init_target): Move init_emit_regs and
20253         init_regs to...
20254         (backend_init) ... here; skip ira_init_once and backend_init_target.
20255         (target_reinit) ... and here; clear
20256         this_target_rtl->lang_dependent_initialized.
20257         (lang_dependent_init_target): Clear
20258         this_target_rtl->lang_dependent_initialized;
20259         break out rtl initialization to ...
20260         (initialize_rtl): ... here; call also backend_init_target
20261         and ira_init_once.
20262         * toplev.h (initialize_rtl): New function.
20263         * function.c: Include toplev.h
20264         (init_function_start): Call initialize_rtl.
20265         * rtl.h (target_rtl): Add target_specific_initialized,
20266         lang_dependent_initialized.
20267
20268 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
20269             Jakub Jelinek  <jakub@redhat.com>
20270
20271         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
20272
20273 2014-06-25  Tom de Vries  <tom@codesourcery.com>
20274
20275         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
20276
20277 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20278
20279         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
20280         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
20281         Issue a strict overflow warning if appropriate.
20282
20283 2014-06-25  Martin Liska  <mliska@suse.cz>
20284
20285         IPA REF refactoring
20286         * Makefile.in: Removed header file (ipa-ref-inline.h).
20287         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
20288         called.
20289         (cgraph_speculative_call_info): Likewise.
20290         (cgraph_for_node_thunks_and_aliases): Likewise.
20291         (cgraph_for_node_and_aliases): Likewise.
20292         (verify_cgraph_node): Likewise.
20293         * cgraph.h: Batch of IPA REF functions become member functions of
20294         symtab_node: add_reference, maybe_add_reference, clone_references,
20295         clone_referring, clone_reference, find_reference,
20296         remove_stmt_references, remove_all_references,
20297         remove_all_referring, dump_references, dump_referring,
20298         has_alias_p, iterate_reference, iterate_referring.
20299         * cgraphbuild.c (record_reference): New IPA REF function used.
20300         (record_type_list): Likewise.
20301         (record_eh_tables): Likewise.
20302         (mark_address): Likewise.
20303         (mark_load): Likewise.
20304         (mark_store): Likewise.
20305         (pass_build_cgraph_edges): Likewise.
20306         (rebuild_cgraph_edge): Likewise.
20307         (cgraph_rebuild_references): Likewise.
20308         (pass_remove_cgraph_callee_edges): Likewise.
20309         * cgraphclones.c (cgraph_clone_node): Likewise.
20310         (cgraph_create_virtual_clone): Likewise.
20311         (cgraph_materialize_clone): Likewise.
20312         (cgraph_materialize_all_clones): Likewise.
20313         * cgraphunit.c (cgraph_reset_node): Likewise.
20314         (cgraph_reset_node): Likewise.
20315         (analyze_function): Likewise.
20316         (assemble_thunks_and_aliases): Likewise.
20317         (expand_function): Likewise.
20318         * ipa-comdats.c (propagate_comdat_group): Likewise.
20319         (enqueue_references): Likewise.
20320         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
20321         (create_specialized_node): Likewise.
20322         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
20323         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
20324         * ipa-inline.c (reset_edge_caches): Likewise.
20325         (update_caller_keys): Likewise.
20326         (execute): Likewise.
20327         * ipa-prop.c (remove_described_reference): Likewise.
20328         (propagate_controlled_uses): Likewise.
20329         (ipa_edge_duplication_hook): Likewise.
20330         (ipa_modify_call_arguments): Likewise.
20331         * ipa-pure-const.c (propagate_pure_const): Likewise.
20332         * ipa-ref-inline.h: Header file removed, functions moved
20333         to symtab_node class.
20334         * ipa-ref.c (remove_reference): New class member function.
20335         (cannot_lead_to_return): New class member function.
20336         (referring_ref_list): Likewise.
20337         (referred_ref_list): Likewise.
20338         Rest of functions moved to symtab_node class.
20339         * ipa-ref.h: New member functions remove_reference,
20340         cannot_lead_to_return, referring_ref_list, referred_ref_list added
20341         to ipa_ref class.
20342         ipa_ref_list class has new member functions: first_reference,
20343         first_referring, clear, nreferences.
20344         * ipa-reference.c (analyze_function): New IPA REF function used.
20345         (write_node_summary_p): Likewise.
20346         (ipa_reference_write_optimization_summary): Likewise.
20347         * ipa-split.c (split_function): Likewise.
20348         * ipa-utils.c (ipa_reverse_postorder): Likewise.
20349         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
20350         (function_and_variable_visibility): Likewise.
20351         * ipa.c (has_addr_references_p): Likewise.
20352         (process_references): Argument type changed.
20353         (symtab_remove_unreachable_nodes): New IPA REF function used.
20354         (process_references): Likewise.
20355         (set_writeonly_bit): Likewise.
20356         * lto-cgraph.c: Implementation of new symtab_node member functions
20357         that uses new IPA REF functions.
20358         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
20359         function used.
20360         * lto-streamer-out.c (output_symbol_p): Likewise.
20361         * lto-streamer.h (referenced_from_this_partition_p): Argument type
20362         changed.
20363         * symtab.c: Implementation of new IPA REF API.
20364         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
20365         (ipa_tm_create_version): Likewise.
20366         (ipa_tm_execute): Likewise.
20367         * tree-emutls.c (gen_emutls_addr): Likewise.
20368         * tree-inline.c (copy_bb): Likewise.
20369         (delete_unreachable_blocks_update_callgraph): Likewise.
20370         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
20371         (varpool_for_node_and_aliases): Likewise.
20372
20373 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
20374
20375         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
20376
20377 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
20378
20379         PR bootstrap/61598
20380         * fold-const.c (fold_checksum_tree): Use a hash_table of const
20381         tree_node * instead of tree_node *.
20382         (fold): Adjust.
20383         (print_fold_checksum): Likewise.
20384         (fold_check_failed): Likewise.
20385         (debug_fold_checksum): Likewise.
20386         (fold_build1_stat_loc): Likewise.
20387         (fold_build2_stat_loc): Likewise.
20388         (fold_build3_stat_loc): Likewise.
20389         (fold_build_call_array_loc): Likewise.
20390
20391 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
20392
20393         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
20394         implementation with call to...
20395         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
20396         function.
20397         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
20398         Declare.
20399
20400 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
20401
20402         PR tree-optimization/57742
20403         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
20404         after replacing the statement.
20405
20406 2014-06-25  Nick Clifton  <nickc@redhat.com>
20407
20408         * config/v850/v850.c (GHS_default_section_names): Change to const
20409         char * type.
20410         (GHS_current_section_names): Likewise.
20411         (v850_insert_attributes): Do not build strings, just assign the
20412         names directly.  Change the type of 'chosen_section' to const
20413         char*.
20414         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
20415         directly to the array entry.
20416         * config/v850/v850.h (GHS_default_section_names): Change to const
20417         char * type.
20418         (GHS_current_section_names): Likewise.
20419
20420 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
20421
20422         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
20423         (LANG_HOOKS_DECLS): Add it.
20424         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
20425         has correct type.
20426         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
20427         * langhooks.h (struct lang_hooks_for_decls): Add
20428         omp_clause_linear_ctor hook.
20429         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
20430         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
20431         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
20432         combined simd loop use omp_clause_linear_ctor hook.
20433
20434 2014-06-24  Cong Hou  <congh@google.com>
20435
20436         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
20437         pattern recognition.
20438         (type_conversion_p): PROMOTION is true if it's a type promotion
20439         conversion, and false otherwise.  Return true if the given expression
20440         is a type conversion one.
20441         * tree-vectorizer.h: Adjust the number of patterns.
20442         * tree.def: Add SAD_EXPR.
20443         * optabs.def: Add sad_optab.
20444         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
20445         * expr.c (expand_expr_real_2): Likewise.
20446         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
20447         * gimple.c (get_gimple_rhs_num_ops): Likewise.
20448         * optabs.c (optab_for_tree_code): Likewise.
20449         * tree-cfg.c (estimate_operator_cost): Likewise.
20450         * tree-ssa-operands.c (get_expr_operands): Likewise.
20451         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
20452         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
20453         * doc/generic.texi: Add document for SAD_EXPR.
20454         * doc/md.texi: Add document for ssad and usad.
20455
20456 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20457
20458         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
20459         qualification in cast.
20460
20461 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
20462
20463         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
20464         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
20465         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
20466         (tree_function_decl): ... here.
20467         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
20468         streaming of vindex to ...
20469         (write_ts_function_decl_tree_pointers): ... here.
20470         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
20471         Do not stream DECL_VINDEX.
20472         (lto_input_ts_function_decl_tree_pointers): Stream it here.
20473
20474 2014-06-24  Catherine Moore  <clm@codesourcery.com>
20475             Sandra Loosemore  <sandra@codesourcery.com>
20476
20477         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
20478         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
20479         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
20480
20481 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
20482
20483         * doc/invoke.texi (Warning Options): Remove duplicated
20484         -Wmaybe-uninitialized.
20485
20486 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
20487
20488         PR tree-optimization/57742
20489         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
20490         (handle_builtin_malloc, handle_builtin_memset): New functions.
20491         (strlen_optimize_stmt): Call them.
20492         * passes.def: Move strlen after loop+dom but before vrp.
20493
20494 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
20495
20496         PR target/61570
20497         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
20498         model family 6 CPU with has_longmode never use a CPU without
20499         64-bit support.
20500
20501 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
20502
20503         PR target/61570
20504         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
20505         the last change.
20506
20507 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20508
20509         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
20510         * dominance.c (iterate_fix_dominators): Use hash_map instead of
20511         pointer_map.
20512         * hash-map.h: New file.
20513         * ipa-comdats.c: Use hash_map instead of pointer_map.
20514         * ipa.c: Likewise.
20515         * lto-section-out.c: Adjust.
20516         * lto-streamer.h: Replace pointer_map with hash_map.
20517         * symtab.c (verify_symtab): Likewise.
20518         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
20519         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
20520         * tree-streamer.h: Likewise.
20521         * tree-streamer.c: Adjust.
20522         * pointer-set.h: Remove pointer_map.
20523
20524 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20525
20526         * hash-table.h: Add a template arg to choose between storing values
20527         and storing pointers to values, and then provide partial
20528         specializations for both.
20529         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
20530         should store, not the type values should point to.
20531         * tree-into-ssa.c (var_info_hasher): Likewise.
20532         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
20533         * tree-complex.c: Adjust.
20534         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
20535         table instead of int_tree_map *.
20536         * tree-parloops.c: Adjust.
20537         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
20538         type is being stored.
20539         * tree-vectorizer.c: Adjust.
20540
20541 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20542
20543         * hash-table.h: Remove a layer of indirection from hash_table so that
20544         it contains the hash table's data instead of a pointer to the data.
20545         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
20546         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
20547         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
20548         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
20549         fold-const.c, gcse.c, ggc-common.c,
20550         gimple-ssa-strength-reduction.c, gimplify.c,
20551         graphite-clast-to-gimple.c, graphite-dependences.c,
20552         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
20553         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
20554         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
20555         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
20556         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
20557         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
20558         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
20559         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
20560         tree-ssa-live.c, tree-ssa-loop-im.c,
20561         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
20562         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
20563         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
20564         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
20565         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
20566         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
20567         vtable-verify.c, vtable-verify.h: Adjust.
20568
20569 2014-06-24  Richard Biener  <rguenther@suse.de>
20570
20571         PR tree-optimization/61572
20572         * tree-ssa-sink.c (statement_sink_location): Do not sink
20573         loads from hard registers.
20574
20575 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
20576
20577         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
20578         not mentioned in clauses use private clause if the iterator is
20579         declared in #pragma omp for simd, and when adding lastprivate
20580         instead, add it to the outer #pragma omp for too.  Diagnose
20581         if the variable is private in outer context.  For simd collapse > 1
20582         loops, replace all iterators with temporaries.
20583         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
20584         same even in collapse > 1 loops.
20585
20586         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
20587         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
20588         non-NULL.
20589         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
20590         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
20591         non-NULL.
20592         (gimplify_adjust_omp_clauses): Likewise.
20593         * omp-low.c (lower_rec_simd_input_clauses,
20594         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
20595         safelen the same as safelen(1).
20596         * tree-nested.c (convert_nonlocal_omp_clauses,
20597         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
20598         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
20599         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
20600         Fixup handling of GIMPLE_OMP_TARGET.
20601         (convert_tramp_reference_stmt, convert_gimple_call): Handle
20602         GIMPLE_OMP_TARGET.
20603
20604 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
20605
20606         PR tree-optimization/61554
20607         * tree-ssa-propagate.c: Include "bitmap.h".
20608         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
20609         properly update constructor/destructor.
20610         (substitute_and_fold_dom_walker::before_dom_children):
20611         Remove call to gimple_purge_dead_eh_edges, add bb->index to
20612         need_eh_cleaup instead.
20613         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
20614         need_eh_cleanup.
20615
20616 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
20617
20618         * varpool.c (dump_varpool_node): Dump used_by_single_function.
20619         * tree-pass.h (make_pass_ipa_single_use): New pass.
20620         * cgraph.h (used_by_single_function): New flag.
20621         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
20622         Stream it.
20623         * passes.def (pass_ipa_single_use): Scedule.
20624         * ipa.c (BOTTOM): New macro.
20625         (meet): New function
20626         (propagate_single_user): New function.
20627         (ipa_single_use): New function.
20628         (pass_data_ipa_single_use): New pass.
20629         (pass_ipa_single_use): New pass.
20630         (pass_ipa_single_use::gate): New gate.
20631         (make_pass_ipa_single_use): New function.
20632
20633 2014-06-23  Kai Tietz  <ktietz@redhat.com>
20634
20635         PR target/39284
20636         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
20637         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
20638
20639 2014-06-23  Richard Biener  <rguenther@suse.de>
20640
20641         * tree-ssa-loop.c (gate_loop): New function.
20642         (pass_tree_loop::gate): Call it.
20643         (pass_data_tree_no_loop, pass_tree_no_loop,
20644         make_pass_tree_no_loop): New.
20645         * tree-vectorizer.c: Include tree-scalar-evolution.c
20646         (pass_slp_vectorize::execute): Initialize loops and SCEV if
20647         required.
20648         (pass_slp_vectorize::clone): New method.
20649         * timevar.def (TV_TREE_NOLOOP): New.
20650         * tree-pass.h (make_pass_tree_no_loop): Declare.
20651         * passes.def (pass_tree_no_loop): New pass group with
20652         SLP vectorizer.
20653
20654 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
20655
20656         PR target/61570
20657         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
20658         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
20659
20660 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
20661
20662         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
20663         "yes" where needed.
20664
20665 2014-06-23  Alan Modra  <amodra@gmail.com>
20666
20667         PR bootstrap/61583
20668         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
20669         to zero on debug statements.
20670
20671 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
20672
20673         PR target/60825
20674         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
20675         Ignore third operand if present by marking qualifier_internal.
20676
20677         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
20678
20679         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
20680         vector extension.
20681         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
20682         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
20683         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
20684         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
20685         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
20686         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
20687         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
20688         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
20689         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
20690         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
20691         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
20692         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
20693         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
20694         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
20695         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
20696         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
20697         logic in GCC vector extensions
20698
20699         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
20700         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
20701         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
20702         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
20703         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
20704         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
20705         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
20706         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
20707         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
20708         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
20709
20710         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
20711
20712         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
20713         extensions.
20714
20715         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
20716         (vget_low_s64): Use __GET_LOW macro.
20717         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
20718         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
20719         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
20720         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
20721         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
20722
20723         (vcombine_s64): Use GCC vector extensions; remove cast.
20724         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
20725         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
20726         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
20727         Fix type signature; remove cast.
20728
20729 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
20730
20731         PR target/60825
20732         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
20733         V1DFmode.
20734         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
20735         add V1DFmode
20736         (BUILTIN_VD1): New.
20737         (BUILTIN_VD_RE): Remove.
20738         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
20739         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
20740         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
20741         variant but not df.
20742         (vreinterpretv1df*, vreinterpret*v1df): New.
20743         (vreinterpretdf*, vreinterpret*df): Remove.
20744         * config/aarch64/aarch64-simd.md (aarch64_create,
20745         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
20746         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
20747         (VD1): New.
20748         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
20749         (vcreate_f64): Remove cast, use v1df builtin.
20750         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
20751         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
20752         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
20753         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
20754         vmov_n_f64, vst1_f64): Use gcc vector extensions.
20755         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
20756         add range check using __builtin_aarch64_im_lane_boundsi.
20757         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
20758         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
20759         type signature, use gcc vector extensions.
20760         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
20761         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
20762         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
20763         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
20764         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
20765         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
20766         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
20767         vreinterpret_u64_f64): Use v1df builtin not df.
20768
20769 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
20770
20771         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
20772         vector registers.
20773
20774 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
20775
20776         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
20777         priority directly.
20778
20779 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20780
20781         * loop-invariant.c (pre_check_invariant_p): New function.
20782         (find_invariant_insn): Call pre_check_invariant_p.
20783
20784 2014-06-22  Richard Henderson  <rth@redhat.com>
20785
20786         PR target/61565
20787         * compare-elim.c (struct comparison): Add eh_note.
20788         (find_comparison_dom_walker::before_dom_children): Don't eliminate
20789         a redundant comparison in a different EH region.  Purge EH edges if
20790         necessary.
20791
20792 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20793
20794         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
20795         (var_shift): Use it.
20796         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
20797         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
20798         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
20799         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
20800         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
20801         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
20802         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
20803         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
20804         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
20805         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
20806         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
20807         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
20808         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
20809         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
20810         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
20811         *rotldi3_internal15be): Use the new attribute.  Merge register and
20812         integer alternatives.
20813
20814 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20815
20816         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
20817         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
20818         split, *ashrdi3_internal3 and split): Delete, merge into...
20819         (ashr<mode>3): New expander.
20820         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
20821         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
20822
20823 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20824
20825         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
20826         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
20827         *rotldi3_internal3 and split): Delete, merge into...
20828         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
20829         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
20830         Use "rotlw" extended mnemonic.
20831
20832 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20833
20834         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
20835         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
20836         and split, *ashldi3_internal3 and split): Delete, merge into...
20837         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
20838         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
20839
20840 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20841
20842         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
20843         (lshrsi3, two anonymous define_insns and define_splits,
20844         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
20845         *lshrdi3_internal3 and split): Delete, merge into...
20846         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
20847         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
20848
20849 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20850
20851         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
20852         Remove "O" alternative.
20853
20854 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
20855
20856         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
20857         (mips_move_from_gpr_cost): Likewise.
20858         (mips_register_move_cost): Update accordingly.
20859         (mips_secondary_reload_class): Remove name of in_p.
20860
20861 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
20862
20863         PR target/61503
20864         * config/i386/i386.md (x86_64_shrd, x86_shrd,
20865         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
20866
20867 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20868
20869         * config/nios2/nios2.c: Include "builtins.h".
20870
20871 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20872
20873         * cgraph.h (tls_model_names): New variable.
20874         * print-tree.c (print_node): Simplify.
20875         * varpool.c (tls_model_names): New variable.
20876         (dump_varpool_node): Output tls model.
20877
20878 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20879
20880         * ipa-visibility.c (function_and_variable_visibility): Disable
20881         temporarily local aliases for some targets.
20882
20883 2014-06-20  Marek Polacek  <polacek@redhat.com>
20884
20885         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
20886         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
20887         into SANITIZE_UNDEFINED.
20888         * doc/invoke.texi: Describe -fsanitize=bounds.
20889         * gimplify.c (gimplify_call_expr): Add gimplification of internal
20890         functions created in the FEs.
20891         * internal-fn.c: Move "internal-fn.h" after "tree.h".
20892         (expand_UBSAN_BOUNDS): New function.
20893         * internal-fn.def (UBSAN_BOUNDS): New internal function.
20894         * internal-fn.h: Don't define internal functions here.
20895         * opts.c (common_handle_option): Add -fsanitize=bounds.
20896         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
20897         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
20898         * tree-core.h: Define internal functions here.
20899         (struct tree_base): Add ifn field.
20900         * tree-pretty-print.c: Include "internal-fn.h".
20901         (dump_generic_node): Handle functions without CALL_EXPR_FN.
20902         * tree.c (get_callee_fndecl): Likewise.
20903         (build_call_expr_internal_loc): New function.
20904         * tree.def (CALL_EXPR): Update description.
20905         * tree.h (CALL_EXPR_IFN): Define.
20906         (build_call_expr_internal_loc): Declare.
20907         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
20908         types.
20909         (ubsan_type_descriptor): Change bool parameter to enum
20910         ubsan_print_style.  Adjust the code.  Add handling of
20911         UBSAN_PRINT_ARRAY.
20912         (ubsan_expand_bounds_ifn): New function.
20913         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
20914         (ubsan_build_overflow_builtin): Likewise.
20915         (instrument_bool_enum_load): Likewise.
20916         (ubsan_instrument_float_cast): Likewise.
20917         * ubsan.h (enum ubsan_print_style): New enum.
20918         (ubsan_expand_bounds_ifn): Declare.
20919         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
20920
20921 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
20922
20923         * config/rs6000/rs6000.md: Append `DONE' to preparation
20924         statements of `bswap' pattern splitters.
20925
20926 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20927
20928         * target.def (call_fusage_contains_non_callee_clobbers): Update
20929         definition.
20930         * doc/tm.texi: Regenerate.
20931
20932 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
20933             Max Ostapenko  <m.ostapenko@partner.samsung.com>
20934
20935         PR sanitizer/61547
20936         * asan.c (instrument_strlen_call): Fixed instrumentation of
20937         trailing byte.
20938
20939 2014-06-20  Martin Jambor  <mjambor@suse.cz>
20940
20941         PR ipa/61540
20942         * ipa-prop.c (impossible_devirt_target): New function.
20943         (try_make_edge_direct_virtual_call): Use it, also instead of
20944         asserting.
20945
20946 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
20947             Max Ostapenko  <m.ostapenko@partner.samsung.com>
20948
20949         PR sanitizer/61530
20950         * asan.c (build_check_stmt): Add condition.
20951
20952 2014-06-20  Martin Jambor  <mjambor@suse.cz>
20953
20954         PR ipa/61211
20955         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
20956         expanded clones.
20957
20958 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20959
20960         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
20961         Update comments.
20962         (VCONQ): Make comment more helpful.
20963         (VCON): Delete.
20964         * config/aarch64/aarch64-simd.md
20965         (aarch64_sqdmulh_lane<mode>):
20966         Use VCOND for operands 2.  Update lane checking and flipping logic.
20967         (aarch64_sqrdmulh_lane<mode>): Likewise.
20968         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
20969         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
20970         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
20971         attribute of operand 3 to VCOND.
20972         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
20973         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
20974         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
20975         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
20976         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
20977         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
20978         define_insn.
20979         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
20980         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
20981         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
20982         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
20983         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
20984         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
20985         operand to VCOND.  Update lane flipping and bounds checking logic.
20986         (aarch64_sqdmlal2_lane<mode>): Likewise.
20987         (aarch64_sqdmlsl_lane<mode>): Likewise.
20988         (aarch64_sqdmull_lane<mode>): Likewise.
20989         (aarch64_sqdmull2_lane<mode>): Likewise.
20990         (aarch64_sqdmlal_laneq<mode>):
20991         Replace VCON usage with VCONQ.
20992         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
20993         (aarch64_sqdmlal2_laneq<mode>): Emit
20994         aarch64_sqdmlal2_laneq<mode>_internal insn.
20995         Replace VCON with VCONQ.
20996         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
20997         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
20998         (aarch64_sqdmull_laneq<mode>): Emit
20999         aarch64_sqdmull_laneq<mode>_internal insn.
21000         Replace VCON with VCONQ.
21001         (aarch64_sqdmull2_laneq<mode>): Emit
21002         aarch64_sqdmull2_laneq<mode>_internal insn.
21003         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
21004         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
21005         of 3rd argument to int16x4_t.
21006         (vqdmlalh_lane_s16): Likewise.
21007         (vqdmlslh_lane_s16): Likewise.
21008         (vqdmull_high_lane_s16): Likewise.
21009         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
21010         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
21011         (vqdmlsl_lane_s16): Likewise.
21012         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
21013         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
21014         (vqdmlals_lane_s32): Likewise.
21015         (vqdmlsls_lane_s32): Likewise.
21016         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
21017         (vqdmulls_lane_s32): Likewise.
21018         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
21019         (vqdmlsl_lane_s32): Likewise.
21020         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
21021         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
21022         (vqrdmulhh_lane_s16): Likewise.
21023         (vqdmlsl_high_lane_s16): Likewise.
21024         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
21025         (vqdmlsl_high_lane_s32): Likewise.
21026         (vqrdmulhs_lane_s32): Likewise.
21027
21028 2014-06-20  Tom de Vries  <tom@codesourcery.com>
21029
21030         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
21031         get_call_reg_set_usage.
21032
21033 2014-06-20  Tom de Vries  <tom@codesourcery.com>
21034
21035         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
21036         it contains all call_used_regs.
21037
21038 2014-06-20  Tom de Vries  <tom@codesourcery.com>
21039
21040         * final.c (collect_fn_hard_reg_usage): Add and use variable
21041         function_used_regs.
21042
21043 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
21044
21045         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
21046         (set_init_priority, get_init_priority, set_fini_priority,
21047         get_fini_priority): New methods.
21048         * tree.c (init_priority_for_decl): Remove.
21049         (init_ttree): Do not initialize init priority.
21050         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
21051         (decl_priority_info): Remove.
21052         (decl_init_priority_insert): Rewrite.
21053         (decl_fini_priority_insert): Rewrite.
21054         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
21055         tree_priority_map_marked_p): Remove.
21056         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
21057         * lto-streamer-out.c (hash_tree): Do not hash priorities.
21058         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
21059         not output priorities.
21060         (pack_ts_function_decl_value_fields): Likewise.
21061         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
21062         not input priorities.
21063         (unpack_ts_function_decl_value_fields): Likewise.
21064         * symtab.c (symbol_priority_map): Declare.
21065         (init_priority_hash): Declare.
21066         (symtab_unregister_node): Unregister from priority hash, too.
21067         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
21068         New methods.
21069         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
21070         (symbol_priority_info): New function.
21071         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
21072         New methods.
21073         * tree-core.h (tree_priority_map): Remove.
21074
21075 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
21076
21077         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
21078         0xff to uint64_t before shifting it up.
21079
21080 2014-06-20  Julian Brown  <julian@codesourcery.com>
21081             Chung-Lin Tang  <cltang@codesourcery.com>
21082
21083         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
21084         TARGET_THUMB1_ONLY. Add comments.
21085
21086 2014-06-19  Tom de Vries  <tom@codesourcery.com>
21087
21088         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
21089         return type to void.
21090         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
21091
21092 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
21093
21094         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
21095         as "move", from depends_on.
21096
21097 2014-06-19  Terry Guo  <terry.guo@arm.com>
21098
21099         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
21100         stage.
21101
21102 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
21103
21104         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
21105         Remove cr5.
21106         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
21107
21108 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
21109
21110         PR target/61550
21111         * config/sh/sh.c (prepare_move_operands): Don't process TLS
21112         addresses here if reload in progress or completed.
21113
21114 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
21115
21116         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
21117         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
21118         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
21119         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
21120         (mips_register_priority): New function that implements the target
21121         hook TARGET_REGISTER_PRIORITY.
21122         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
21123         (mips_lra_p): Likewise for TARGET_LRA_P.
21124         (TARGET_REGISTER_PRIORITY): Define macro.
21125         (TARGET_SPILL_CLASS): Likewise.
21126         (TARGET_LRA_P): Likewise.
21127         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
21128         classes.
21129         (REG_CLASS_NAMES): Likewise.
21130         (REG_CLASS_CONTENTS): Likewise.
21131         (BASE_REG_CLASS): Use M16_SP_REGS.
21132         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
21133         New set attribute to enable alternatives depending on the register
21134         allocator used.
21135         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
21136         (*lea64): Disable pattern for MIPS16.
21137         * config/mips/mips.opt (mlra): New option.
21138
21139 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
21140
21141         * lra-constraints.c (base_to_reg): New function.
21142         (process_address): Use new function.
21143
21144 2014-06-18  Tom de Vries  <tom@codesourcery.com>
21145
21146         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
21147         * config/aarch64/aarch64.c
21148         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
21149         (aarch64_emit_call_insn): New function.
21150         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
21151         of emit_call_insn.
21152         * config/aarch64/aarch64.md (define_expand "call_internal")
21153         (define_expand "call_value_internal", define_expand "sibcall_internal")
21154         (define_expand "sibcall_value_internal"): New.
21155         (define_expand "call", define_expand "call_value")
21156         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
21157         expand variant and aarch64_emit_call_insn.
21158
21159 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
21160             Tom de Vries  <tom@codesourcery.com>
21161
21162         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
21163         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
21164         Redefine to true.
21165         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
21166         clobbers to CALL_INSN_FUNCTION_USAGE.
21167         (define_expand "sibcall_internal")
21168         (define_expand "sibcall_value_internal"): New.
21169         (define_expand "call", define_expand "call_value"): Add argument to
21170         arm_emit_call_insn.
21171         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
21172         (define_expand "sibcall_value"): Use sibcall_value_internal and
21173         arm_emit_call_insn.
21174
21175 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21176
21177         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
21178
21179 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21180
21181         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
21182         __udivmoddi4.
21183
21184 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21185
21186         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
21187         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
21188         annotations. Fix DWARF information.
21189
21190 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21191
21192         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
21193         __udivmoddi4, and fixups for negative operands.
21194
21195 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21196
21197         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
21198
21199 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21200
21201         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
21202         to __udivmoddi4.
21203
21204 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21205
21206         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
21207         manipulation.
21208
21209 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21210
21211         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
21212         describing register usage on function entry and exit.
21213
21214 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21215
21216         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
21217         (__aeabi_ldivmod): Fix whitespace.
21218
21219 2014-06-18  Andreas Schwab  <schwab@suse.de>
21220
21221         * doc/md.texi (Standard Names): Use @itemx for grouped items.
21222         Remove blank line after @item.
21223
21224 2014-06-18  Richard Henderson  <rth@redhat.com>
21225
21226         PR target/61545
21227         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
21228
21229 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21230
21231         * config/arm/arm.c (neon_vector_mem_operand): Allow register
21232         POST_MODIFY for neon loads and stores.
21233         (arm_print_operand): Output post-index register for neon loads and
21234         stores.
21235
21236 2014-06-18  Richard Biener  <rguenther@suse.de>
21237
21238         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
21239
21240 2014-06-18  Richard Biener  <rguenther@suse.de>
21241
21242         * tree-pass.h (make_pass_dce_loop): Remove.
21243         * passes.def: Replace pass_dce_loop with pass_dce.
21244         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
21245         changed free niter estimates and reset the scev cache.
21246         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
21247         make_pass_dce_loop): Remove.
21248         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
21249         (fini_copy_prop): Return whether something changed.  Always
21250         let substitute_and_fold perform DCE and free niter estimates
21251         and reset the scev cache if so.
21252         (execute_copy_prop): If sth changed schedule cleanup-cfg.
21253         (pass_data_copy_prop): Do not unconditionally schedule
21254         cleanup-cfg or update-ssa.
21255
21256 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
21257
21258         PR tree-optimization/61518
21259         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
21260         reduction var is used in reduction stmt or phi-function only.
21261
21262 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21263
21264         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
21265
21266 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21267
21268         PR tree-optimization/61517
21269         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
21270         whose rhs's first tree is the source expression instead of the
21271         expression itself.
21272         (find_bswap_or_nop): Likewise.
21273         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
21274         gimple stmt whose rhs's first tree is the source. In the memory source
21275         case, move the stmt to be replaced close to one of the original load to
21276         avoid the problem of a store between the load and the stmt's original
21277         location.
21278         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
21279         signature.
21280
21281 2014-06-18  Andreas Schwab  <schwab@suse.de>
21282
21283         PR rtl-optimization/54555
21284         * postreload.c (move2add_use_add2_insn): Substitute
21285         STRICT_LOW_PART only if it is cheaper.
21286
21287 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
21288
21289         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
21290         Do not use unspec as call operand.  Use memory_operand instead of
21291         memory_nox32_operand and add "m" operand constraint.  Disable
21292         pattern for TARGET_X32.
21293         (*sibcall_pop_memory): Ditto.
21294         (*sibcall_value_memory): Ditto.
21295         (*sibcall_value_pop_memory): Ditto.
21296         (sibcall peepholes): Merge SImode and DImode patterns using
21297         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
21298         Disable pattern for TARGET_X32.  Check if eliminated register is
21299         really dead after call insn.  Generate call RTX without unspec operand.
21300         (sibcall_value peepholes): Ditto.
21301         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
21302         instead of memory_nox32_operand.  Check if eliminated register is
21303         really dead after call insn. Generate call RTX without unspec operand.
21304         (sibcall_value_pop peepholes): Ditto.
21305         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
21306
21307 2014-06-18  Terry Guo  <terry.guo@arm.com>
21308
21309         PR target/61544
21310         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
21311         reach the head.
21312
21313 2014-06-18  Olivier Hainque  <hainque@adacore.com>
21314
21315         * tree-core.h (tree_block): Add an "end_locus" field, allowing
21316         memorization of the end of block source location.
21317         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
21318         * gimplify.c (gimplify_bind_expr): Propagate the block start and
21319         end source location info we have on the block entry/exit code we
21320         generate.
21321
21322 2014-06-18  Richard Biener  <rguenther@suse.de>
21323
21324         * common.opt (fssa-phiopt): New option.
21325         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
21326         but not with -Og.
21327         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
21328         * doc/invoke.texi (-fssa-phiopt): Document.
21329
21330 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21331
21332         * genattrtab.c (n_bypassed): New variable.
21333         (process_bypasses): Initialise n_bypassed.
21334         Count number of bypassed reservations.
21335         (make_automaton_attrs): Allocate space for bypassed reservations
21336         rather than number of bypasses.
21337
21338 2014-06-18  Richard Biener  <rguenther@suse.de>
21339
21340         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
21341         we propagated anything.
21342         (substitute_and_fold_dom_walker::before_dom_children): Something
21343         changed if we propagated into PHI arguments.
21344         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
21345         we removed a stmt.
21346
21347 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
21348
21349         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
21350         vector case.
21351         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
21352         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
21353         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
21354         Introduces alternative way of loads group permutaions.
21355         (vect_transform_grouped_load): Try alternative way of permutations.
21356
21357 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
21358
21359         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
21360         changed in ORT_TARGET region, don't jump to do_outer.
21361         (struct gimplify_adjust_omp_clauses_data): New type.
21362         (gimplify_adjust_omp_clauses_1): Adjust for data being
21363         a struct gimplify_adjust_omp_clauses_data pointer instead
21364         of tree *.  Pass pre_p as a new argument to
21365         lang_hooks.decls.omp_finish_clause hook.
21366         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
21367         splay_tree_foreach to pass both list_p and pre_p.
21368         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
21369         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
21370         gimplify_adjust_omp_clauses callers.
21371         * langhooks.c (lhd_omp_finish_clause): New function.
21372         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
21373         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
21374         * langhooks.h (struct lang_hooks_for_decls): Add a new
21375         gimple_seq * argument to omp_finish_clause hook.
21376         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
21377         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
21378         (scan_omp_parallel, lower_omp_for): When adding
21379         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
21380         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
21381         * tree-nested.c (convert_nonlocal_omp_clauses,
21382         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
21383         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
21384
21385 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
21386
21387         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
21388         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
21389
21390 2014-06-17  Xinliang David Li  <davidxl@google.com>
21391
21392         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
21393         * passes.c (pass_init_dump_file): Do not set initialize
21394         flag to false unconditionally.
21395
21396 2014-06-17  Richard Biener  <rguenther@suse.de>
21397
21398         * genopinit.c (main): Use vec<>::qsort method.
21399         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
21400         Likewise.
21401         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
21402
21403 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
21404
21405         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
21406         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
21407         (mips_move_to_gpr_cost): Remove ST_REGS case.
21408         (mips_move_from_gpr_cost): Likewise.
21409         (mips_register_move_cost): Likewise.
21410         (mips_secondary_reload_class): Likewise.
21411
21412 2014-06-17  Richard Biener  <rguenther@suse.de>
21413
21414         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
21415         (pass_all_optimizations): Move 3rd copy-prop pass from after
21416         fre to before ifcombine/phiopt.
21417
21418 2014-06-17  Richard Biener  <rguenther@suse.de>
21419
21420         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
21421         and allow all blocks to be forwarders.
21422
21423 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
21424
21425         PR target/61483
21426         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
21427         variable 'size'; calculate 'size' right in the front; use
21428         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
21429         pcum->aapcs_stack_words.
21430
21431 2014-06-17  Nick Clifton  <nickc@redhat.com>
21432
21433         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
21434         (umulhi3, mulsidi3, umulsidi3): Likewise.
21435
21436 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
21437
21438         PR middle-end/61508
21439         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
21440         check for section name.
21441
21442 2014-06-17  Richard Biener  <rguenther@suse.de>
21443
21444         * tree-ssa-propagate.c: Include domwalk.h.
21445         (substitute_and_fold): Outline main worker into a domwalker ...
21446         (substitute_and_fold_dom_walker::before_dom_children): ... here.
21447         Schedule stmts we can fully propagate for removal.  Remove
21448         poor-mans DCE.
21449         (substitute_and_fold): Apply a dominator walk to perform
21450         substitution.  Process stmts scheduled for removal here.
21451
21452 2014-06-17  Richard Biener  <rguenther@suse.de>
21453
21454         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
21455         of PHI node moving.
21456
21457 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
21458
21459         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
21460         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
21461         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
21462         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
21463         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
21464         TARGET_HARD_FLOAT.
21465         (get_fpscr) : Likewise.
21466
21467 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
21468
21469         PR rtl-optimization/61325
21470         * lra-constraints.c (valid_address_p): Add forward declaration.
21471         (simplify_operand_subreg): Check address validity before and after
21472         alter_reg of memory subreg.
21473
21474 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
21475
21476         * config/i386/i386.c (decide_alg): Correctly handle
21477         maximum size of stringop algorithm.
21478
21479 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
21480
21481         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
21482
21483 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
21484
21485         PR rtl-optimization/61522
21486         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
21487
21488 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
21489
21490         Revert:
21491         * symtab.c (symtab_node::reset_section): New method.
21492         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21493         for localization.
21494         * cgraph.h (reset_section): Declare.
21495         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21496         do not consider comdat locals.
21497         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21498         for new symbol.
21499         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21500         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21501         reset sections of symbols dragged out of the comdats.
21502         (function_and_variable_visibility): Reset sections of
21503         localized symbols.
21504
21505 2014-06-16  Richard Biener  <rguenther@suse.de>
21506
21507         PR tree-optimization/61482
21508         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
21509         [-INF(OVF), +INF(OVF)] range.
21510
21511 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
21512
21513         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
21514         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
21515         handling 32-bit multiplication.
21516
21517 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
21518
21519         PR middle-end/61430
21520         * lra-lives.c (process_bb_lives): Skip creating copy during
21521         insn scan when src/dest has constrained to same regno.
21522
21523 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
21524
21525         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
21526         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
21527
21528 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
21529
21530         * asan.c (check_func): New function.
21531         (maybe_create_ssa_name): Likewise.
21532         (build_check_stmt_with_calls): Likewise.
21533         (use_calls_p): Likewise.
21534         (report_error_func): Change interface.
21535         (build_check_stmt): Allow non-integer lengths; add support
21536         for new parameter.
21537         (asan_instrument): Likewise.
21538         (instrument_mem_region_access): Moved code to build_check_stmt.
21539         (instrument_derefs): Likewise.
21540         (instrument_strlen_call): Likewise.
21541         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
21542         * doc/invoke.texi: Describe new parameter.
21543         * params.def: Define new parameter.
21544         * params.h: Likewise.
21545         * sanitizer.def: Describe new builtins.
21546
21547 2014-06-16  Richard Biener  <rguenther@suse.de>
21548
21549         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21550         Make all defs available at the end.
21551         (eliminate): If we remove a PHI node schedule cfg-cleanup.
21552
21553 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
21554
21555         PR plugins/45078
21556         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
21557
21558 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
21559
21560         PR bootstrap/61516
21561         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
21562         initialization.  Replace remaining use of uid.
21563
21564 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
21565
21566         * c-family/c-common.c (handle_tls_model_attribute): Use
21567         set_decl_tls_model.
21568         * c-family/c-common.c (handle_tls_model_attribute): Use
21569         set_decl_tls_model.
21570         * cgraph.h (struct varpool_node): Add tls_model.
21571         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
21572         * tree.h (DECL_TLS_MODEL): Update.
21573         (DECL_THREAD_LOCAL_P): Check that variable is static.
21574         (decl_tls_model): Declare.
21575         (set_decl_tls_model): Declare.
21576         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
21577         set symbol prorperties.
21578         (get_emutls_init_templ_addr): Cleanup.
21579         (new_emutls_decl): Update.
21580         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
21581         (lto_input_varpool_node): Likewise.
21582         * lto-streamer-out.c (hash_tree): Likewise.
21583         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
21584         not stream DECL_TLS_MODEL.
21585         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
21586         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
21587
21588 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21589
21590         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
21591
21592 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21593
21594         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
21595         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
21596         lists.
21597         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
21598         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
21599         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
21600         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
21601         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
21602         (df_get_artificial_defs, df_get_artificial_uses)
21603         (df_single_def, df_single_use): Update accordingly.
21604         (df_refs_chain_dump): Take the first element in a linked list as
21605         parameter, rather than a pointer to an array of pointers.
21606         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
21607         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
21608         (df_chain_create_bb_process_use): Likewise.
21609         (df_md_bb_local_compute_process_def): Likewise.
21610         * fwprop.c (process_defs, process_uses): Likewise.
21611         (register_active_defs, update_uses): Likewise.
21612         (forward_propagate_asm): Update for new df_ref linking.
21613         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
21614         (df_null_ref_rec, df_null_mw_rec): Likewise.
21615         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
21616         explicitly.
21617         (df_scan_free_bb_info): Remove check for null artificial_defs.
21618         (df_install_ref_incremental): Adjust for new df_ref linking.
21619         Use a single-element insertion rather than a full sort.
21620         (df_ref_chain_delete_du_chain): Take the first element
21621         in a linked list as parameter, rather than a pointer to an array of
21622         pointers.
21623         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
21624         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
21625         (df_insn_info_delete): Remove check for null defs and call to
21626         df_scan_free_mws_vec.
21627         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
21628         null rather than df_null_*_rec.
21629         (df_insn_rescan_debug_internal): Likewise, and update null
21630         checks in the same way.  Remove check for null defs.
21631         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
21632         Move a single element rather doing a full sort.
21633         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
21634         linking.
21635         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
21636         Initialize df_ref and df_mw_hardreg lists to null rather than
21637         df_null_*_rec.
21638         (df_ref_compare): Take df_refs as parameter, transferring the
21639         old interface to...
21640         (df_ref_ptr_compare): ...this new function.
21641         (df_sort_and_compress_refs): Update accordingly.
21642         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
21643         old interface to...
21644         (df_mw_ptr_compare): ...this new function.
21645         (df_sort_and_compress_mws): Update accordingly.
21646         (df_install_refs, df_install_mws): Return a linked list rather than
21647         an array of pointers.
21648         (df_refs_add_to_chains): Assert that old lists are empty rather
21649         than freeing them.
21650         (df_insn_refs_verify): Don't handle null defs speciailly.
21651         * web.c (union_match_dups): Update for new df_ref linking.
21652
21653 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21654
21655         * df.h (df_ref_create, df_ref_remove): Delete.
21656         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
21657         (df_ref_remove): Likewise.
21658
21659 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21660
21661         * df.h (df_single_def, df_single_use): New functions.
21662         * ira.c (find_moveable_pseudos): Use them.
21663
21664 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21665
21666         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
21667         * df-problems.c (df_note_bb_compute): Use it.
21668         * regstat.c (regstat_bb_compute_ri): Likewise.
21669
21670 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21671
21672         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
21673         * cse.c (cse_extended_basic_block): Use them.
21674         * dce.c (mark_artificial_use): Likewise.
21675         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
21676         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21677         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
21678         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
21679         (df_simulate_initialize_backwards): Likewise.
21680         (df_simulate_finalize_backwards): Likewise.
21681         (df_simulate_initialize_forwards): Likewise.
21682         (df_md_simulate_artificial_defs_at_top): Likewise.
21683         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21684         * regrename.c (init_rename_info): Likewise.
21685         * regstat.c (regstat_bb_compute_ri): Likewise.
21686         (regstat_bb_compute_calls_crossed): Likewise.
21687
21688 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21689
21690         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
21691         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
21692         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
21693         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
21694         * combine.c (create_log_links): Likewise.
21695         * compare-elim.c (find_flags_uses_in_insn): Likewise.
21696         (try_eliminate_compare): Likewise.
21697         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
21698         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
21699         (remove_reg_equal_equiv_notes_for_defs): Likewise.
21700         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
21701         (word_dce_process_block, dce_process_block): Likewise.
21702         * ddg.c (def_has_ccmode_p): Likewise.
21703         * df-core.c (df_bb_regno_first_def_find): Likewise.
21704         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
21705         * df-problems.c (df_rd_simulate_one_insn): Likewise.
21706         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21707         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
21708         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
21709         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
21710         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
21711         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
21712         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
21713         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
21714         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21715         * fwprop.c (local_ref_killed_between_p): Likewise.
21716         (all_uses_available_at, free_load_extend): Likewise.
21717         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
21718         * hw-doloop.c (scan_loop): Likewise.
21719         * ifcvt.c (dead_or_predicable): Likewise.
21720         * init-regs.c (initialize_uninitialized_regs): Likewise.
21721         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
21722         (process_bb_node_lives): Likewise.
21723         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
21724         (find_moveable_pseudos): Likewise.
21725         * loop-invariant.c (check_dependencies, record_uses): Likewise.
21726         * recog.c (peep2_find_free_register): Likewise.
21727         * ree.c (get_defs): Likewise.
21728         * regstat.c (regstat_bb_compute_ri): Likewise.
21729         (regstat_bb_compute_calls_crossed): Likewise.
21730         * sched-deps.c (find_inc, find_mem): Likewise.
21731         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
21732         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
21733         * shrink-wrap.c (requires_stack_frame_p): Likewise.
21734         (prepare_shrink_wrap): Likewise.
21735         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
21736         * web.c (union_defs, pass_web::execute): Likewise.
21737         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
21738         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
21739
21740 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
21741
21742         * lra-assign.c (assign_by_spills): Add code to assign vector regs
21743         to inheritance pseudos.
21744         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
21745
21746 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
21747
21748         PR target/61415
21749         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
21750         (BU_MISC_2): Rename to ...
21751         (BU_LDBL128_2): ... this.
21752         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
21753         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
21754         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
21755         RS6000_BTM_LDBL128.
21756         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
21757         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
21758         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
21759         (unpacktf_1): Likewise.
21760         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
21761         (__builtin_longdouble_dw1): Likewise.
21762         * doc/sourcebuild.texi (longdouble128): Document.
21763
21764 2014-06-13  Jeff Law  <law@redhat.com>
21765
21766         PR rtl-optimization/61094
21767         PR rtl-optimization/61446
21768         * ree.c (combine_reaching_defs): Get the mode for the copy from
21769         the extension insn rather than the defining insn.
21770
21771 2014-06-13  Dehao Chen  <dehao@google.com>
21772
21773         * dwarf2out.c (add_linkage_name): Emit more linkage name.
21774
21775 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
21776
21777         * doc/install.texi (--enable-linker-plugin-configure-flags)
21778         (--enable-linker-plugin-flags): Document new flags.
21779
21780 2014-06-13  Martin Jambor  <mjambor@suse.cz>
21781
21782         PR ipa/61186
21783         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
21784         cache_token if returning early.
21785
21786 2014-06-13  Nick Clifton  <nickc@redhat.com>
21787
21788         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
21789         requested alignment is active.
21790         (LABEL_ALIGN): Likewise.
21791         (LOOP_ALIGN): Likewise.
21792
21793 2014-06-13  Richard Biener  <rguenther@suse.de>
21794
21795         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21796         Rewrite to propagate the VN result into all uses where
21797         possible and to remove stmts becoming dead because of that.
21798         (eliminate): Generalize stmt removal handling, remove in
21799         reverse dominator order to support proper debug stmt
21800         generation.  Update stmts before removing stmts.
21801         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
21802
21803 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21804
21805         PR tree-optimization/61375
21806         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
21807         symbolic number cannot be represented in an uint64_t.
21808         (find_bswap_or_nop_1): Likewise.
21809
21810 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
21811
21812         * symtab.c (symtab_node::reset_section): New method.
21813         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21814         for localization.
21815         * cgraph.h (reset_section): Declare.
21816         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21817         do not consider comdat locals.
21818         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21819         for new symbol.
21820         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21821         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21822         reset sections of symbols dragged out of the comdats.
21823         (function_and_variable_visibility): Reset sections of
21824         localized symbols.
21825
21826 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
21827
21828         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
21829         to use symtab and decl_binds_to_current_def_p
21830         * tree-vectorizer.c (increase_alignment): Increase alignment
21831         of alias target, too.
21832
21833 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
21834
21835         PR middle-end/61486
21836         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
21837         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
21838         if outer combined construct is distribute.
21839         (gimplify_omp_for): For OMP_DISTRIBUTE set
21840         gimplify_omp_ctxp->distribute.
21841         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
21842         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
21843         mapping into decl map.
21844
21845 2014-06-12  Jason Merrill  <jason@redhat.com>
21846
21847         * common.opt (fabi-version): Change default to 0.
21848
21849 2014-06-12  Jason Merrill  <jason@redhat.com>
21850
21851         * toplev.c (process_options): Reject -fabi-version=1.
21852
21853 2014-06-12  Jeff Law  <law@redhat.com>
21854
21855         PR tree-optimization/61009
21856         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
21857         value when we stop processing a block due to problematic PHIs.
21858
21859 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
21860
21861         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
21862         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
21863         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
21864         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
21865         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
21866         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
21867         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
21868         are not in the spec.
21869
21870 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
21871
21872         PR target/59843
21873         * config/aarch64/aarch64-modes.def: Add V1DFmode.
21874         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
21875         Support V1DFmode.
21876
21877 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
21878
21879         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
21880
21881 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
21882
21883         PR target/61443
21884         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
21885         loading from address spaces.
21886
21887 2014-06-12  Martin Liska  <mliska@suse.cz>
21888
21889         PR ipa/61462
21890         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
21891         statement is reachable.
21892
21893 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
21894
21895         * symtab.c (section_hash): New hash.
21896         (symtab_unregister_node): Clear section before freeing.
21897         (hash_section_hash_entry): New haser.
21898         (eq_sections): New function.
21899         (symtab_node::set_section_for_node): New method.
21900         (set_section_1): Update.
21901         (symtab_node::set_section): Take string instead of tree as parameter.
21902         (symtab_resolve_alias): Update.
21903         * cgraph.h (section_hash_entry_d): New structure.
21904         (section_hash_entry): New typedef.
21905         (cgraph_node): Change comdat_group_ to x_comdat_group,
21906         change section_ to x_section and turn into section_hash_entry;
21907         update accestors; put set_section_for_node offline.
21908         * tree.c (decl_section_name): Turn into string.
21909         (set_decl_section_name): Change parameter to be string.
21910         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
21911         * sdbout.c (sdbout_one_type): Update.
21912         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
21913         * varasm.c (IN_NAMED_SECTION, get_named_section,
21914         resolve_unique_section, hot_function_section, get_named_text_section,
21915         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
21916         make_decl_rtl, default_unique_section): Update.
21917         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
21918         (c6x_elf_unique_section): Update.
21919         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
21920         * config/pa/pa.c (pa_function_section): Update.
21921         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
21922         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
21923         * config/arc/arc.c (arc_in_small_data_p): Update.
21924         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
21925         * config/mcore/mcore.c (mcore_unique_section): Update.
21926         * config/mips/mips.c (mips16_build_function_stub): Update.
21927         (mips16_build_call_stub): Update.
21928         (mips_function_rodata_section): Update.
21929         (mips_in_small_data_p): Update.
21930         * config/score/score.c (score_in_small_data_p): Update.
21931         * config/rx/rx.c (rx_in_small_data): Update.
21932         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
21933         (rs6000_xcoff_asm_named_section): Update.
21934         (rs6000_xcoff_unique_section): Update.
21935         * config/frv/frv.c (frv_string_begins_with): Update.
21936         (frv_in_small_data_p): Update.
21937         * config/v850/v850.c (v850_encode_data_area): Update.
21938         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
21939         (bfin_handle_l1_data_attribute): Update.
21940         (bfin_handle_l2_attribute): Update.
21941         * config/mep/mep.c (mep_unique_section): Update.
21942         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
21943         Update.
21944         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
21945         (h8300_handle_tiny_data_attribute): Update.
21946         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
21947         (m32r_in_small_data_p): Update.
21948         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
21949         * config/i386/i386.c (ix86_in_large_data_p): Update.
21950         * config/i386/winnt.c (i386_pe_unique_section): Update.
21951         * config/darwin.c (darwin_function_section): Update.
21952         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
21953         * tree-emutls.c (get_emutls_init_templ_addr): Update.
21954         (new_emutls_decl): Update.
21955         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
21956         input_varpool_node): Update.
21957         (ead_string_cst): Turn to ...
21958         (read_string): ... this one.
21959         * dwarf2out.c (secname_for_decl): Update.
21960         * asan.c (asan_protect_global): Update.
21961
21962 2014-06-11  DJ Delorie  <dj@redhat.com>
21963
21964         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
21965         cache lines.
21966         * config/rx/rx.c (rx_option_override): Likewise.
21967         (rx_align_for_label): Likewise.
21968
21969         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
21970
21971 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
21972
21973         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
21974         prototype.
21975
21976 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21977
21978         * common.md: New file.
21979         * doc/md.texi: Update description of generic, machine-independent
21980         constraints.
21981         * config/s390/constraints.md (e): Delete.
21982         * Makefile.in (md_file): Include common.md.
21983         * config/m32c/t-m32c (md_file): Likewise.
21984         * genpreds.c (general_mem): New array.
21985         (generic_constraint_letters): Remove constraints now defined by
21986         common.md.
21987         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
21988         Allow the first character to be '<' or '>' as well.
21989         * genoutput.c (general_mem): New array.
21990         (indep_constraints): Remove constraints now defined by common.md.
21991         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
21992         Remove special handling of 'm'.
21993         * ira-costs.c (record_reg_classes): Remove special handling of
21994         constraints now defined by common.md.
21995         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
21996         * ira-lives.c (single_reg_class): Likewise.
21997         (ira_implicitly_set_insn_hard_regs): Likewise.
21998         * lra-constraints.c (reg_class_from_constraints): Likewise.
21999         (process_alt_operands, process_address, curr_insn_transform): Likewise.
22000         * postreload.c (reload_cse_simplify_operands): Likewise.
22001         * reload.c (push_secondary_reload, scratch_reload_class)
22002         (find_reloads, alternative_allows_const_pool_ref): Likewise.
22003         * reload1.c (maybe_fix_stack_asms): Likewise.
22004         * targhooks.c (default_secondary_reload): Likewise.
22005         * stmt.c (parse_output_constraint): Likewise.
22006         * recog.c (preprocess_constraints): Likewise.
22007         (constrain_operands, peep2_find_free_register): Likewise.
22008         (asm_operand_ok): Likewise, but add a comment saying why 'o'
22009         must be handled specially.
22010
22011 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22012
22013         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
22014         * genpreds.c (have_const_dbl_constraints): Delete.
22015         (add_constraint): Don't set it.
22016         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
22017         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
22018         constraints using the lookup_constraint logic.
22019         * ira-lives.c (single_reg_class): Likewise.
22020         * ira.c (ira_setup_alts): Likewise.
22021         * lra-constraints.c (process_alt_operands): Likewise.
22022         * recog.c (asm_operand_ok, constrain_operands): Likewise.
22023         * reload.c (find_reloads): Likewise.
22024
22025 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22026
22027         * genpreds.c (const_int_start, const_int_end): New variables.
22028         (choose_enum_order): Output CONST_INT constraints before memory
22029         constraints.
22030         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
22031         Add CT_CONST_INT.
22032         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
22033         * ira.c (ira_setup_alts): Likewise.
22034         * lra-constraints.c (process_alt_operands): Likewise.
22035         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
22036         * reload.c (find_reloads): Likewise.
22037
22038 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22039
22040         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
22041         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
22042         * recog.c (preprocess_constraints): Update accordingly.
22043
22044 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22045
22046         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
22047         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
22048         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
22049         * genpreds.c (print_type_tree): New function.
22050         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
22051         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
22052         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
22053         Write out enum constraint_type and get_constraint_type.
22054         * lra-constraints.c (satisfies_memory_constraint_p): Take a
22055         constraint_num rather than a constraint string.
22056         (satisfies_address_constraint_p): Likewise.
22057         (reg_class_from_constraints): Avoid old constraint macros.
22058         (process_alt_operands, process_address_1): Likewise.
22059         (curr_insn_transform): Likewise.
22060         * ira-costs.c (record_reg_classes): Likewise.
22061         (record_operand_costs): Likewise.
22062         * ira-lives.c (single_reg_class): Likewise.
22063         (ira_implicitly_set_insn_hard_regs): Likewise.
22064         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
22065         * postreload.c (reload_cse_simplify_operands): Likewise.
22066         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
22067         (constrain_operands, peep2_find_free_register): Likewise.
22068         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
22069         (find_reloads, alternative_allows_const_pool_ref): Likewise.
22070         * reload1.c (maybe_fix_stack_asms): Likewise.
22071         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
22072         * targhooks.c (default_secondary_reload): Likewise.
22073         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
22074         to EXTRA_CONSTRAINT_STR.
22075         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
22076
22077 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22078
22079         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
22080         (write_constraint_satisfied_p_array): ...this new function.
22081         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
22082         an array.
22083         (write_insn_preds_c): Update accordingly.
22084
22085 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22086
22087         * genpreds.c (write_lookup_constraint): Rename to...
22088         (write_lookup_constraint_1): ...this.
22089         (write_lookup_constraint_array): New function.
22090         (write_tm_preds_h): Define lookup_constraint as an inline function
22091         that uses write_lookup_constraint_array where possible.
22092         (write_insn_preds_c): Update for the changes above.
22093
22094 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22095
22096         * doc/md.texi (regclass_for_constraint): Rename to...
22097         (reg_class_for_constraint): ...this.
22098         * genpreds.c (num_constraints, enum_order, register_start)
22099         (register_end, satisfied_start, memory_start, memory_end)
22100         (address_start, address_end): New variables.
22101         (add_constraint): Count the number of constraints.
22102         (choose_enum_order): New function.
22103         (write_enum_constraint_num): Iterate over enum_order.
22104         (write_regclass_for_constraint): Rename to...
22105         (write_reg_class_for_constraint_1): ...this and update output
22106         accordingly.
22107         (write_constraint_satisfied_p): Rename to...
22108         (write_constraint_satisfied_p_1): ...this and update output
22109         accordingly.  Do nothing if all extra constraints are register
22110         constraints.
22111         (write_insn_extra_memory_constraint): Delete.
22112         (write_insn_extra_address_constraint): Delete.
22113         (write_range_function): New function.
22114         (write_tm_preds_h): Define constraint_satisfied_p and
22115         reg_class_for_constraint as inline functions that do a range check
22116         before calling the out-of-line function.  Use write_range_function
22117         to implement insn_extra_{register,memory,address}_constraint,
22118         the first of which is new.
22119         (write_insn_preds_c): Update after above changes to write_* functions.
22120         (main): Call choose_enum_order.
22121
22122 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22123
22124         PR tree-optimization/61306
22125         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
22126         expression instead of its size.
22127         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
22128         false to prevent optimization when the result is unpredictable due to
22129         arithmetic right shift of signed type with highest byte is set.
22130         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
22131         (init_symbolic_number): Likewise.
22132         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
22133         when the result is unpredictable due to sign extension.
22134
22135 2014-06-11  Terry Guo  <terry.guo@arm.com>
22136
22137         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
22138         (*thumb1_addsi3): Ditto.
22139         (*thumb_subdi3): Ditto.
22140         (thumb1_subsi3_insn): Ditto.
22141         (*thumb_mulsi3): Ditto.
22142         (*thumb_mulsi3_v6): Ditto.
22143         (*thumb1_andsi3_insn): Ditto.
22144         (thumb1_bicsi3): Ditto.
22145         (*thumb1_iorsi3_insn): Ditto.
22146         (*thumb1_xorsi3_insn): Ditto.
22147         (*thumb1_ashlsi3): Ditto.
22148         (*thumb1_ashrsi3): Ditto.
22149         (*thumb1_lshrsi3): Ditto.
22150         (*thumb1_rotrsi3): Ditto.
22151         (*thumb1_negdi2): Ditto.
22152         (*thumb1_negsi2): Ditto.
22153         (*thumb1_abssi2): Ditto.
22154         (*thumb1_neg_abssi2): Ditto.
22155         (*thumb1_one_cmplsi2): Ditto.
22156         (*thumb1_zero_extendhisi2): Ditto.
22157         (*thumb1_zero_extendqisi2): Ditto.
22158         (*thumb1_zero_extendqisi2_v6): Ditto.
22159         (thumb1_extendhisi2): Ditto.
22160         (thumb1_extendqisi2): Ditto.
22161         (*thumb1_movdi_insn): Ditto.
22162         (*thumb1_movsi_insn): Ditto.
22163         (*thumb1_movhi_insn): Ditto.
22164         (thumb_movhi_clobber): Ditto.
22165         (*thumb1_movqi_insn): Ditto.
22166         (*thumb1_movhf): Ditto.
22167         (*thumb1_movsf_insn): Ditto.
22168         (*thumb_movdf_insn): Ditto.
22169         (movmem12b): Ditto.
22170         (movmem8b): Ditto.
22171         (cbranchqi4): Ditto.
22172         (cbranchsi4_insn): Ditto.
22173         (cbranchsi4_scratch): Ditto.
22174         (*negated_cbranchsi4): Ditto.
22175         (*tbit_cbranch): Ditto.
22176         (*tlobits_cbranch): Ditto.
22177         (*tstsi3_cbranch): Ditto.
22178         (*cbranchne_decr1): Ditto.
22179         (*addsi3_cbranch): Ditto.
22180         (*addsi3_cbranch_scratch): Ditto.
22181         (*thumb_cmpdi_zero): Ditto.
22182         (cstoresi_eq0_thumb1): Ditto.
22183         (cstoresi_ne0_thumb1): Ditto.
22184         (*cstoresi_eq0_thumb1_insn): Ditto.
22185         (*cstoresi_ne0_thumb1_insn): Ditto.
22186         (cstoresi_nltu_thumb1): Ditto.
22187         (cstoresi_ltu_thumb1): Ditto.
22188         (thumb1_addsi3_addgeu): Ditto.
22189         (*thumb_jump): Ditto.
22190         (*call_reg_thumb1_v5): Ditto.
22191         (*call_reg_thumb1): Ditto.
22192         (*call_value_reg_thumb1_v5): Ditto.
22193         (*call_value_reg_thumb1): Ditto.
22194         (*call_insn): Ditto.
22195         (*call_value_insn): Ditto.
22196         (thumb1_casesi_internal_pic): Ditto.
22197         (thumb1_casesi_dispatch): Ditto.
22198         (*thumb1_indirect_jump): Ditto.
22199         (prologue_thumb1_interwork): Ditto.
22200         (*epilogue_insns): Ditto.
22201         (consttable_1): Ditto.
22202         (consttable_2): Ditto.
22203         (tablejump): Ditto.
22204         (*thumb1_tablejump): Ditto.
22205         (thumb_eh_return): Ditto.
22206         (define_peephole2): Two of them are thumb1 only and got moved into
22207         new file thumb1.md.
22208         (define_split): Six of them are thumb1 only and got moved into new
22209         file thumb1.md.
22210         * config/arm/thumb1.md: New file comprised of above thumb1 only
22211         patterns.
22212
22213 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22214
22215         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
22216         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
22217         dependencies.
22218         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
22219         (aarch64_crc_builtin_datum): New struct.
22220         (aarch64_crc_builtin_data): New.
22221         (aarch64_init_crc32_builtins): New function.
22222         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
22223         (aarch64_crc32_expand_builtin): New.
22224         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
22225         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
22226         __ARM_FEATURE_CRC32 when appropriate.
22227         (TARGET_CRC32): Define.
22228         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
22229         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
22230         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
22231         (aarch64_<crc_variant>): New pattern.
22232         * config/aarch64/arm_acle.h: New file.
22233         * config/aarch64/iterators.md (CRC): New int iterator.
22234         (crc_variant, crc_mode): New int attributes.
22235         * doc/aarch64-acle-intrinsics.texi: New file.
22236         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
22237         Include aarch64-acle-intrinsics.texi.
22238
22239 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
22240
22241         * tree-vect-data-refs.c (vect_grouped_store_supported): New
22242         check for stores group of length 3.
22243         (vect_permute_store_chain): New permutations for stores group of
22244         length 3.
22245         * tree-vect-stmts.c (vect_model_store_cost): Change cost
22246         of vec_perm_shuffle for the new permutations.
22247
22248 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
22249
22250         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
22251         table rewriting temporarily on targets not supporting ONE_ONLY.
22252
22253 2014-06-11  Richard Biener  <rguenther@suse.de>
22254
22255         PR middle-end/61437
22256         Revert
22257         2014-06-04  Richard Biener  <rguenther@suse.de>
22258
22259         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
22260         TREE_PUBLIC and DECL_EXTERNAL decls.
22261
22262 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
22263
22264         * varasm.c (set_implicit_section): New function.
22265         (resolve_unique_section): Use it to set implicit section
22266         for aliases, too.
22267         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
22268         (default_function_section): Likewise.
22269         (decl_binds_to_current_def_p): Constify argument.
22270         * varasm.h (decl_binds_to_current_def_p): Update prototype.
22271         * asan.c (asan_protect_global): Use
22272         symtab_get_node (decl)->implicit_section.
22273         * symtab.c (dump_symtab_base): Dump implicit sections.
22274         (verify_symtab_base): Verify sanity of sectoins and comdats.
22275         (symtab_resolve_alias): Alias share the section of its target.
22276         (set_section_1): New function.
22277         (symtab_node::set_section): Move here, recurse to aliases.
22278         (verify_symtab): Check for duplicated symtab lists.
22279         * tree-core.h (implicit_section_name_p): Remove.
22280         * tree-vect-data-refs.c: Include varasm.h.
22281         (vect_can_force_dr_alignment_p): Fix conditional on when
22282         decl bints to current definition; use
22283         symtab_get_node (decl)->implicit_section.
22284         * cgraph.c (cgraph_make_node_local_1): Fix section set.
22285         * cgraph.h (struct symtab_node): Add implicit_section.
22286         (set_section): Rename to ...
22287         (set_section_for_node): ... this one.
22288         (set_section): Declare.
22289         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
22290         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
22291         input_overwrite_node, input_varpool_node): Stream implicit_section.
22292         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
22293         removal; it will fail in LTO.
22294
22295 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22296
22297         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
22298         Change second alternative type to f_mcr.
22299         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
22300         and 12th alternatives' types to f_mcr and f_mrc.
22301         (*movdi_aarch64): Same for 12th and 13th alternatives.
22302         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
22303         (aarch64_movtilow_tilow): Change type to fmov.
22304
22305 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
22306
22307         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
22308         (aarch64_save_or_restore_callee_save_registers): Fix layout.
22309
22310 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22311
22312         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
22313         New expander.
22314         (aarch64_sqrdmulh_lane<mode>): Likewise.
22315         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
22316         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
22317         (aarch64_sqdmulh_laneq<mode>): New expander.
22318         (aarch64_sqrdmulh_laneq<mode>): Likewise.
22319         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
22320         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
22321         (aarch64_sqdmulh_lane<mode>): New expander.
22322         (aarch64_sqrdmulh_lane<mode>): Likewise.
22323         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
22324         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
22325         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
22326         (aarch64_sqdmlal_laneq<mode>): Likewise.
22327         (aarch64_sqdmlsl_lane<mode>): Likewise.
22328         (aarch64_sqdmlsl_laneq<mode>): Likewise.
22329         (aarch64_sqdmlal2_lane<mode>): Likewise.
22330         (aarch64_sqdmlal2_laneq<mode>): Likewise.
22331         (aarch64_sqdmlsl2_lane<mode>): Likewise.
22332         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
22333         (aarch64_sqdmull_lane<mode>): Likewise.
22334         (aarch64_sqdmull_laneq<mode>): Likewise.
22335         (aarch64_sqdmull2_lane<mode>): Likewise.
22336         (aarch64_sqdmull2_laneq<mode>): Likewise.
22337
22338 2014-06-10  Richard Biener  <rguenther@suse.de>
22339
22340         PR tree-optimization/61438
22341         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
22342         (eliminate_dom_walker::before_dom_children): Only try to inhibit
22343         insertion of IVs if running PRE.
22344         (eliminate): Adjust.
22345         (pass_pre::execute): Likewise.
22346         (pass_fre::execute): Likewise.
22347
22348 2014-06-10  Richard Biener  <rguenther@suse.de>
22349
22350         PR middle-end/61456
22351         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
22352         Do not use the main variant for the type comparison.
22353         (ncr_compar): Likewise.
22354         (nonoverlapping_component_refs_p): Likewise.
22355
22356 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22357
22358         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
22359         REG_CFA_RESTORE mode.
22360
22361 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
22362
22363         * config/i386/i386.c (expand_vec_perm_pblendv): New.
22364         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
22365         expand_vec_perm_pblendv.
22366
22367 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22368
22369         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
22370         available.
22371         Simplify description of __crc32d and __crc32cd intrinsics.
22372         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
22373         availability.
22374
22375 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
22376
22377         PR lto/61334
22378         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
22379         * config.in: Regenerate.
22380         * configure: Likewise.
22381
22382 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
22383
22384         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
22385         and public vars.
22386         (intersect_static_var_sets): Remove.
22387         (propagate): Do not prune local statics.
22388
22389 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
22390
22391         PR fortran/60928
22392         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
22393         Set lastprivate_firstprivate even if omp_private_outer_ref
22394         langhook returns true.
22395         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
22396         langhook, call unshare_expr on new_var and call
22397         build_outer_var_ref to get the last argument.
22398
22399 2014-06-10  Marek Polacek  <polacek@redhat.com>
22400
22401         PR c/60988
22402         * doc/extend.texi: Add cindex for transparent_union.
22403
22404 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22405
22406         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
22407         init_symbolic_number ().
22408
22409 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
22410
22411         PR middle-end/61141
22412         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
22413         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
22414         (verify_rtl_sharing): Likewise.
22415
22416 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
22417
22418         PR c++/54442
22419         * tree.c (build_qualified_type): Use a canonical type for
22420         TYPE_CANONICAL.
22421
22422 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22423
22424         * config/arm/arm-modes.def: Remove XFmode.
22425
22426 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
22427
22428         PR target/61062
22429         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
22430         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
22431         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
22432         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
22433         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
22434         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
22435         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
22436         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
22437         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
22438
22439 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
22440
22441         * tree-core.h (tree_decl_with_vis): Remove section_name.
22442
22443 2014-06-09  Kito Cheng  <kito@0xlab.org>
22444
22445         * ira.c (ira): Don't call init_caller_save if LRA enabled
22446         since LRA use its own infrastructure to handle that.
22447
22448 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22449
22450         * symtab.c (dump_symtab_base): Update dumping.
22451         (symtab_make_decl_local): Clear only DECL_COMDAT.
22452         * tree-vect-data-refs.c (Check that variable is static before
22453         tampering with sections.
22454         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
22455         (cgraph_create_virtual_clone): Likewise.
22456         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
22457         (decl_section_name, set_decl_section_name): New accessors.
22458         (find_decls_types_r): Do not walk section name
22459         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
22460         (decl_comdat_group, decl_comdat_group_id): Constify.
22461         (decl_section_name, set_decl_section_name): Update.
22462         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
22463         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
22464         (cgraph_make_node_local_1): Clear section and comdat group.
22465         * cgraph.h (set_comdat_group): Sanity check.
22466         (get_section, set_section): New.
22467         * ipa-comdats.c (ipa_comdats): Use get_section.
22468         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
22469         * lto-streamer-out.c: Do not follow section names.
22470         * c-family/c-common.c (handle_section_attribute): Update.
22471         * lto-cgraph.c (lto_output_node): Output section.
22472         (lto_output_varpool_node): Likewise.
22473         (read_comdat_group): Rename to ...
22474         (read_identifier): ... this one.
22475         (read_string_cst): New function.
22476         (input_node, input_varpool_node): Input section names.
22477         * tree-emutls.c (get_emutls_init_templ_addr): Update.
22478         (new_emutls_decl): Update.
22479         (secname_for_decl): Check section names only of static vars.
22480         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
22481         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
22482         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
22483         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
22484         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
22485         * config/mcore/mcore.c (mcore_unique_section): Likewise.
22486         * config/mips/mips.c (mips16_build_function_stub): Likewise.
22487         * config/v850/v850.c (v850_insert_attributes): Likewise.
22488         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
22489         Likewise.
22490         (h8300_handle_tiny_data_attribute): Likewise.
22491         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
22492         (bfin_handle_l2_attribute): Likewise.
22493
22494 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22495
22496         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
22497         remove static initializer.
22498
22499 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22500
22501         * varasm.c (use_blocks_for_decl_p): Check symbol table
22502         instead of alias attribute.
22503         (place_block_symbol): Recurse on aliases.
22504
22505 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22506
22507         * ipa-visibility.c: Include varasm.h
22508         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
22509
22510 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22511
22512         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
22513         outputting aliases.
22514
22515 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
22516
22517         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
22518         from test_insn into GGC space escape via SET_SRC.
22519
22520 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
22521
22522         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
22523         call statement, if any.
22524         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
22525         statements, if any.  Tidy up.
22526
22527 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
22528
22529         PR target/61431
22530         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
22531         iterators, VSX_D that handles 64-bit types, and VSX_LE that
22532         handles swapping the two 64-bit double words on little endian
22533         systems.  Include V1TImode and optionally TImode in VSX_LE so that
22534         these types are properly swapped.  Change all of the insns and
22535         splits that do the 64-bit swaps to use VSX_LE.
22536         (vsx_le_perm_load_<mode>): Likewise.
22537         (vsx_le_perm_store_<mode>): Likewise.
22538         (splitters for little endian memory operations): Likewise.
22539         (vsx_xxpermdi2_le_<mode>): Likewise.
22540         (vsx_lxvd2x2_le_<mode>): Likewise.
22541         (vsx_stxvd2x2_le_<mode>): Likewise.
22542
22543 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
22544
22545         PR target/61423
22546         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
22547         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
22548         and corresponding splitters.  Zero extend general register
22549         or memory input operand to XMM temporary.  Enable for
22550         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
22551         (floatunssi<mode>2): Update expander predicate.
22552
22553 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
22554
22555         PR rtl-optimization/61325
22556         * lra-constraints.c (process_address_1): Check scale equal to one
22557         to prevent transformation: base + scale * index => base + new_reg.
22558
22559 2014-06-06  Richard Biener  <rguenther@suse.de>
22560
22561         PR tree-optimization/59299
22562         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
22563         a def operand.
22564         (nearest_common_dominator_of_uses): Likewise.
22565         (statement_sink_location): Adjust.  Support sinking loads.
22566
22567 2014-06-06  Martin Jambor  <mjambor@suse.cz>
22568
22569         * ipa-prop.c (get_place_in_agg_contents_list): New function.
22570         (build_agg_jump_func_from_list): Likewise.
22571         (determine_known_aggregate_parts): Renamed to
22572         determine_locally_known_aggregate_parts.  Moved some functionality
22573         to the two functions above, removed bound checks.
22574
22575 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
22576
22577         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
22578         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
22579         (aarch64_progress_pointer): Likewise.
22580         (aarch64_copy_one_part_and_move_pointers): Likewise.
22581         (aarch64_expand_movmen): Likewise.
22582         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
22583         * config/aarch64/aarch64.md (movmem<mode>): New.
22584
22585 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
22586
22587         * targhooks.c (default_add_stmt_cost): Call target specific
22588         hook instead of default one.
22589
22590 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22591
22592         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
22593         endianness instead of host endianness.
22594         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
22595         comments.
22596
22597 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22598
22599         PR debug/53927
22600         * function.c (instantiate_decls): Process the saved static chain.
22601         (expand_function_start): If not optimizing, save the static chain
22602         onto the stack.
22603         * tree-nested.c (convert_all_function_calls): Always create the static
22604         chain for nested functions if not optimizing.
22605
22606 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22607
22608         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
22609
22610 2014-06-06  Richard Biener  <rguenther@suse.de>
22611
22612         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
22613         (construct_init_block): Likewise.
22614         (construct_exit_block): Likewise.
22615         (pass_expand::execute): Likewise.
22616         * graphite.c (graphite_transforms): Replace check for current_loops
22617         with a check for > 1 loops.
22618         (pass_graphite_transforms::execute): Adjust.
22619         * ipa-split.c (split_function): Remove check for current_loops.
22620         * omp-low.c (expand_parallel_call): Likewise.
22621         (expand_omp_for_init_counts): Likewise.
22622         (extract_omp_for_update_vars): Likewise.
22623         (expand_omp_for_generic): Likewise.
22624         (expand_omp_sections): Likewise.
22625         (expand_omp_target): Likewise.
22626         * tracer.c (tail_duplicate): Likewise.
22627         (pass_tracer::execute): Likewise.
22628         * trans-mem.c (expand_transaction): Likewise.
22629         * tree-complex.c (expand_complex_div_wide): Likewise.
22630         * tree-eh.c (lower_resx): Likewise.
22631         (cleanup_empty_eh_merge_phis): Likewise.
22632         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
22633         current_loops with a check for > 1 loops.
22634         (pass_predcom::execute): Adjust.
22635         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
22636         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
22637         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
22638         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
22639         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
22640         * tree-switch-conversion.c (process_switch): Likewise.
22641         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
22642         * tree-vrp.c (vrp_visit_phi_node): Likewise.
22643         (execute_vrp): Likewise.
22644         * ubsan.c (ubsan_expand_null_ifn): Likewise.
22645
22646 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22647
22648         * rtl.h (insn_location): Declare.
22649         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
22650         with UNKNOWN_LOCATION.
22651         * emit-rtl.c (insn_location): New function.
22652         * final.c (notice_source_line): Check that the instruction has a
22653         location before retrieving it and use insn_location.
22654         * modulo-sched.c (loop_single_full_bb_p): Likewise.
22655         * print-rtl.c (print_rtx): Likewise.
22656
22657 2014-06-06  Richard Biener  <rguenther@suse.de>
22658
22659         * passes.def: Move 2nd VRP pass before phi-only-cprop.
22660
22661 2014-06-06  Christian Bruel  <christian.bruel@st.com>
22662
22663         PR tree-optimization/43934
22664         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
22665         cost.
22666
22667 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
22668
22669         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
22670         return NO_REGS for extra address and memory constraints.  Handle
22671         operands that match (or are equivalent to something that matches)
22672         extra constant constraints.  Ignore other non-register operands.
22673
22674 2014-06-06  Alan Modra  <amodra@gmail.com>
22675
22676         PR target/61300
22677         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
22678         * doc/tm.texi: Regenerate.
22679         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
22680         Use throughout in place of REG_PARM_STACK_SPACE.
22681         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
22682         "incoming" param.  Pass to rs6000_function_parms_need_stack.
22683         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
22684         prototype_p when incoming.  Use function decl when incoming
22685         to handle K&R style functions.
22686         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
22687         (INCOMING_REG_PARM_STACK_SPACE): Define.
22688
22689 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
22690
22691         PR target/52472
22692         * cfgexpand.c (expand_debug_expr): Use address space of nested
22693         TREE_TYPE for ADDR_EXPR and MEM_REF.
22694
22695 2014-06-05  Jeff Law  <law@redhat.com>
22696
22697         PR tree-optimization/61289
22698         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
22699         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
22700         looking for those which match LHS.  All callers changed.
22701         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
22702         parameters and code which manipulated them.  All callers changed.
22703         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
22704         and DST_MAP parameters.  Simplify invalidation code by just calling
22705         invalidate_equivalences.  All callers changed.
22706         (thread_across_edge): Simplify now that we don't need to maintain
22707         the map of equivalences to invalidate.
22708
22709 2014-06-05  Kai Tietz  <ktietz@redhat.com>
22710             Richard Henderson  <rth@redhat.com>
22711
22712         PR target/46219
22713         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
22714         checking for !TARGET_X32.
22715         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
22716         (sibcall_intern): New define_insn, plus required peepholes.
22717         (sibcall_pop_intern): Likewise.
22718         (sibcall_value_intern): Likewise.
22719         (sibcall_value_pop_intern): Likewise.
22720
22721 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
22722
22723         * tree-inline.c (tree_function_versioning): Check DF info existence
22724         before accessing it.
22725
22726 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22727
22728         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
22729         frame_size.
22730         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
22731         aarch64_frame hard_fp_offset and frame_size.
22732         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
22733         frame_size; remove original_frame_size.
22734         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
22735         (aarch64_initial_elimination_offset): Remove frame_size and
22736         offset.  Use aarch64_frame frame_size.
22737
22738 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22739             Jiong Wang  <jiong.wang@arm.com>
22740             Renlin  <renlin.li@arm.com>
22741
22742         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
22743         initialization of R30 offset.  Update offset.  Iterate core
22744         regisers upto X30.  Remove X29, X30 specific code.
22745
22746 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22747             Jiong Wang  <jiong.wang@arm.com>
22748
22749         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
22750         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
22751         (aarch64_register_saved_on_entry): Adjust test.
22752
22753 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22754
22755         * config/aarch64/aarch64.h (machine_function): Move
22756         saved_varargs_size from here...
22757         (aarch64_frame): ... to here.
22758
22759         * config/aarch64/aarch64.c (aarch64_expand_prologue)
22760         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
22761         (aarch64_initial_elimination_offset)
22762         (aarch64_setup_incoming_varargs): Adjust location of
22763         saved_varargs_size.
22764
22765 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22766
22767         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
22768         layout comment.
22769
22770 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
22771             Prachi Godbole  <Prachi.Godbole@imgtec.com>
22772
22773         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
22774         mips32r5 entry to use PROCESSOR_P5600.
22775         * config/mips/mips-tables.opt: Regenerate.
22776         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
22777         * config/mips/mips.c (mips_fmadd_bypass): New function.
22778         (mips_rtx_cost_data): Add costs for p5600.
22779         (mips_issue_rate): Add support for p5600.
22780         (mips_multipass_dfa_lookahead): Likewise.
22781         * config/mips/mips.h (TUNE_P5600): New define.
22782         (TUNE_MACC_CHAINS): Add TUNE_P5600.
22783         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
22784         * config/mips/mips.md: Include p5600.md.
22785         (processor): Add p5600.
22786         * config/mips/p5600.md: New file.
22787
22788 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
22789
22790         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
22791         * config/i386/predicates.md (palignr_operand): New.
22792         Indicates if permutation is suitable for palignr instruction.
22793
22794 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
22795
22796         PR tree-optimization/61319
22797         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
22798         stmt belongs to loop.
22799
22800 2014-06-05  Richard Biener  <rguenther@suse.de>
22801
22802         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
22803         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
22804         (lookup_tmp_var): Adjust.
22805         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
22806
22807 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22808
22809         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
22810
22811 2014-06-05  Marek Polacek  <polacek@redhat.com>
22812
22813         PR c/49706
22814         * doc/invoke.texi: Document -Wlogical-not-parentheses.
22815
22816 2014-06-04  Tom de Vries  <tom@codesourcery.com>
22817
22818         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
22819         CONST_INT.
22820
22821 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
22822
22823         PR tree-optimization/61385
22824         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
22825
22826 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
22827
22828         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
22829         changed to use fatal_error.
22830         (main): Ensure lto_wrapper_cleanup is run atexit.
22831
22832 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22833
22834         * lra-constraints.c (valid_address_p): Move earlier in file.
22835         (address_eliminator): New structure.
22836         (satisfies_memory_constraint_p): New function.
22837         (satisfies_address_constraint_p): Likewise.
22838         (process_alt_operands, process_address, curr_insn_transform): Use them.
22839
22840 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22841
22842         * lra-int.h (lra_static_insn_data): Make operand_alternative a
22843         const pointer.
22844         (target_lra_int, default_target_lra_int, this_target_lra_int)
22845         (op_alt_data): Delete.
22846         * lra.h (lra_init): Delete.
22847         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
22848         (init_insn_code_data_once): Remove op_alt_data handling.
22849         (finish_insn_code_data_once): Likewise.
22850         (init_op_alt_data): Delete.
22851         (get_static_insn_data): Initialize operand_alternative to null.
22852         (free_insn_recog_data): Cast operand_alternative before freeing it.
22853         (setup_operand_alternative): Take the operand_alternative as
22854         parameter and assume it isn't already cached in the static
22855         insn data.
22856         (lra_set_insn_recog_data): Update accordingly.
22857         (lra_init): Delete.
22858         * ira.c (ira_init): Don't call lra_init.
22859         * target-globals.h (this_target_lra_int): Declare.
22860         (target_globals): Remove lra_int.
22861         (restore_target_globals): Update accordingly.
22862         * target-globals.c: Don't include lra-int.h.
22863         (default_target_globals, save_target_globals): Remove lra_int.
22864
22865 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22866
22867         * recog.h (operand_alternative): Convert reg_class, reject,
22868         matched and matches into bitfields.
22869         (preprocess_constraints): New overload.
22870         (preprocess_insn_constraints): New function.
22871         (preprocess_constraints): Take the insn as parameter.
22872         (recog_op_alt): Change into a pointer.
22873         (target_recog): Add x_op_alt.
22874         * recog.c (asm_op_alt): New variable.
22875         (recog_op_alt): Change into a pointer.
22876         (preprocess_constraints): New overload, replacing the old function
22877         definition with one that doesn't use global state.
22878         (preprocess_insn_constraints): New function.
22879         (preprocess_constraints): Use them.  Take the insn as parameter.
22880         Use asm_op_alt for asms.
22881         (recog_init): Free existing x_op_alt entries.
22882         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
22883         pointer const.
22884         (make_early_clobber_and_input_conflicts): Likewise.
22885         (process_bb_node_lives): Pass the insn to process_constraints.
22886         * reg-stack.c (check_asm_stack_operands): Likewise.
22887         (subst_asm_stack_regs): Likewise.
22888         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22889         * regrename.c (build_def_use): Likewise.
22890         * sched-deps.c (sched_analyze_insn): Likewise.
22891         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
22892         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
22893         (note_invalid_constants): Likewise.
22894         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22895         (ix86_legitimate_combined_insn): Make operand_alternative pointer
22896         const.
22897
22898 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22899
22900         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
22901         * ira-lives.c (check_and_make_def_conflict): Check for disabled
22902         alternatives.
22903         (make_early_clobber_and_input_conflicts): Likewise.
22904         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22905
22906 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22907
22908         * recog.h (alternative_class): New function.
22909         (which_op_alt): Return a const recog_op_alt.
22910         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
22911         (subst_asm_stack_regs): Likewise.
22912         * config/arm/arm.c (note_invalid_constants): Likewise.
22913         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
22914         the operand_alternative; use alternative class instead.
22915         * sel-sched.c (get_reg_class): Likewise.
22916         * regrename.c (build_def_use): Likewise.
22917         (hide_operands, restore_operands, record_out_operands): Update type
22918         accordingly.
22919
22920 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22921
22922         * recog.h (recog_op_alt): Convert to a flat array.
22923         (which_op_alt): New function.
22924         * recog.c (recog_op_alt): Convert to a flat array.
22925         (preprocess_constraints): Update accordingly, grouping all
22926         operands of the same alternative together, rather than the
22927         other way around.
22928         * ira-lives.c (check_and_make_def_conflict): Likewise.
22929         (make_early_clobber_and_input_conflicts): Likewise.
22930         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22931         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
22932         (subst_asm_stack_regs): Likewise.
22933         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22934         * regrename.c (hide_operands, record_out_operands): Likewise.
22935         (build_def_use): Likewise.
22936         * sel-sched.c (get_reg_class): Likewise.
22937         * config/arm/arm.c (note_invalid_constants): Likewise.
22938
22939 2014-06-04  Jason Merrill  <jason@redhat.com>
22940
22941         PR c++/51253
22942         PR c++/61382
22943         * gimplify.c (gimplify_arg): Non-static.
22944         * gimplify.h: Declare it.
22945
22946 2014-06-04  Richard Biener  <rguenther@suse.de>
22947
22948         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
22949         TREE_PUBLIC and DECL_EXTERNAL decls.
22950
22951 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
22952
22953         * regcprop.c (copyprop_hardreg_forward_1): Account for
22954         HARD_REGNO_CALL_PART_CLOBBERED.
22955
22956 2014-06-04  Richard Biener  <rguenther@suse.de>
22957
22958         * configure.ac: Check whether the underlying type of int64_t
22959         is long or long long.
22960         * configure: Regenerate.
22961         * config.in: Likewise.
22962         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
22963         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
22964
22965 2014-06-04  Richard Biener  <rguenther@suse.de>
22966
22967         PR tree-optimization/60098
22968         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
22969         we hit a kill.
22970         (dse_optimize_stmt): Simplify, now that we found a kill
22971         earlier.
22972
22973 2014-06-04  Richard Biener  <rguenther@suse.de>
22974
22975         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
22976         of accesses with non-invariant address.
22977
22978 2014-06-04  Martin Liska  <mliska@suse.cz>
22979
22980         * cgraph.h (cgraph_make_wrapper): New function introduced.
22981         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
22982         * ipa-inline.h (inline_analyze_function): The function is global.
22983         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
22984
22985 2014-06-04  Martin Liska  <mliska@suse.cz>
22986
22987         * tree.h (private_lookup_attribute_starting): New function.
22988         (lookup_attribute_starting): Likewise.
22989         * tree.c (private_lookup_attribute_starting): Likewise.
22990
22991 2014-06-04  Martin Liska  <mliska@suse.cz>
22992
22993         * cgraph.h (expand_thunk): New argument added.
22994         (address_taken_from_non_vtable_p): New global function.
22995         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
22996         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
22997         * cgraphunit.c (analyze_function): Likewise.
22998         (assemble_thunks_and_aliases): Argument added to call.
22999         (expand_thunk): New argument forces to produce GIMPLE thunk.
23000
23001 2014-06-04  Martin Liska  <mliska@suse.cz>
23002
23003         * coverage.h (coverage_compute_cfg_checksum): Argument added.
23004         * coverage.c (coverage_compute_cfg_checksum): Likewise.
23005         * profile.c (branch_prob): Likewise.
23006
23007 2014-06-04  Martin Jambor  <mjambor@suse.cz>
23008
23009         PR ipa/61340
23010         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
23011         handler for switch on an ipa_ref_use enum.
23012         * ipa-reference.c (analyze_function): Likewise.
23013
23014 2014-06-04  Kai Tietz  <ktietz@redhat.com>
23015
23016         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
23017         from old call-instruction.
23018
23019 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
23020
23021         * config/aarch64/aarch64.c (aarch64_classify_address)
23022         (aarch64_legitimize_reload_address): Support full addressing modes
23023         for vector modes.
23024         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
23025         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
23026
23027 2014-06-03  Andrew Pinski  <apinski@cavium.com>
23028
23029         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
23030         for OP0.
23031
23032 2014-06-03  Andrew Pinski  <apinski@cavium.com>
23033
23034         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
23035         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
23036
23037 2014-06-03  Kai Tietz  <ktietz@redhat.com>
23038
23039         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
23040         for 64-bit ms-abi.
23041
23042 2014-06-03  Dehao Chen  <dehao@google.com>
23043
23044         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
23045         the same loop.
23046
23047 2014-06-03  Marek Polacek  <polacek@redhat.com>
23048
23049         PR c/60439
23050         * doc/invoke.texi: Document -Wswitch-bool.
23051         * function.c (stack_protect_epilogue): Cast controlling expression of
23052         the switch to int.
23053         * gengtype.c (walk_type): Generate switch expression with its
23054         controlling expression cast to int.
23055
23056 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
23057
23058         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
23059         and attiny841.
23060         * config/avr/avr-tables.opt: Regenerate.
23061         * config/avr/t-multilib: Regenerate.
23062         * doc/avr-mmcu.texi: Regenerate.
23063
23064 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
23065             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
23066
23067         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
23068         (ata6617c, ata664251): Add new avr35 devices.
23069         (ata6612c): Add new avr4 device.
23070         (ata6613c, ata6614q): Add new avr5 devices.
23071         * config/avr/avr-tables.opt: Regenerate.
23072         * config/avr/t-multilib: Regenerate.
23073         * doc/avr-mmcu.texi: Regenerate.
23074
23075 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
23076
23077         * gcc/config/aarch64/aarch64-builtins.c
23078         (aarch64_types_binop_ssu_qualifiers): New static data.
23079         (TYPES_BINOP_SSU): Define.
23080         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
23081         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
23082         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
23083         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
23084         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
23085         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
23086         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
23087         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
23088         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
23089         suffix to builtin function name, remove cast.
23090         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
23091         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
23092         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
23093
23094 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
23095
23096         * gcc/config/aarch64/aarch64-builtins.c
23097         (aarch64_types_binop_uus_qualifiers,
23098         aarch64_types_shift_to_unsigned_qualifiers,
23099         aarch64_types_unsigned_shiftacc_qualifiers): Define.
23100         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
23101         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
23102         sqshlu_n, uqshl_n): Update qualifiers.
23103         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
23104         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
23105         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
23106         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
23107         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
23108         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
23109         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
23110         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
23111         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
23112         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
23113         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
23114         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
23115         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
23116         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
23117         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
23118         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
23119         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
23120         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
23121         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
23122         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
23123         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
23124         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
23125         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
23126         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
23127         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
23128         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
23129         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
23130
23131 2014-06-03  Teresa Johnson  <tejohnson@google.com>
23132
23133         * tree-sra.c (modify_function): Record caller nodes after rebuild.
23134
23135 2014-06-02  Jason Merrill  <jason@redhat.com>
23136
23137         PR c++/61020
23138         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
23139
23140 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
23141
23142         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
23143         location == 0.
23144
23145 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
23146
23147         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
23148         New pattern.
23149         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
23150         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
23151         * config/aarch64/iterators.md (REVERSE): New iterator.
23152         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
23153         (rev_op): New int_attribute.
23154         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
23155         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
23156         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
23157         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
23158         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
23159         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
23160         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
23161         Replace temporary __asm__ with __builtin_shuffle.
23162
23163 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
23164
23165         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
23166         mips64r5.
23167         * config/mips/mips-tables.opt: Regenerate.
23168         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
23169         to use mips_isa_rev rather than ISA_MIPS32R2.
23170         * config/mips/mips.h (ISA_MIPS32R3): New define.
23171         (ISA_MIPS32R5): New define.
23172         (ISA_MIPS64R3): New define.
23173         (ISA_MIPS64R5): New define.
23174         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
23175         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
23176         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
23177         and mips64r5.
23178         (MIPS_ISA_SYNCI_SPEC): Likewise.
23179         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
23180         (LINK_SPEC): Added mips32r3 and mips32r5.
23181         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
23182         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
23183         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
23184         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
23185         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
23186         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
23187         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
23188
23189 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
23190
23191         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
23192         options.
23193         * config/mips/mips.opt (mxpa): New option.
23194         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
23195         assembler.
23196
23197 2014-06-03  Martin Jambor  <mjambor@suse.cz>
23198
23199         PR ipa/61160
23200         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
23201         thunks.
23202
23203 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23204
23205         PR tree-optimization/61328
23206         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
23207         initialization from find_bswap_or_nop_1.
23208         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
23209         in source_expr2 before using the size value the function sets. Also
23210         make use of init_symbolic_number () in both the old place and
23211         find_bswap_or_nop_load () to avoid reading uninitialized memory when
23212         doing recursion in the GIMPLE_BINARY_RHS case.
23213
23214 2014-06-03  Richard Biener  <rguenther@suse.de>
23215
23216         PR tree-optimization/61383
23217         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
23218         stmts can't trap.
23219
23220 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
23221
23222         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
23223         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
23224         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
23225         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
23226         in this file.
23227         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
23228         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
23229         * system.h: ...here and make it unconditional.
23230         * target.def (conditional_register_usage): Mention
23231         define_register_constraint instead of old-style constraint macros.
23232         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
23233         * doc/tm.texi: Regenerate.
23234         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
23235         protected by !USE_MD_CONSTRAINTS.
23236         * config/frv/frv.md: Remove quote from old version of documentation.
23237         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
23238         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
23239         CONST_DOUBLE_OK_FOR_LETTER.
23240         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
23241
23242 2014-06-02  Andrew Pinski  <apinski@cavium.com>
23243
23244         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
23245         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
23246         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
23247         file whose name depends on -mabi= and -mbig-endian.
23248         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
23249         Handle LP64 better and handle ilp32 too.
23250         (MULTILIB_OPTIONS): Delete.
23251         (MULTILIB_DIRNAMES): Delete.
23252
23253 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
23254
23255         * expr.h: Remove prototypes of functions defined in builtins.c.
23256         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
23257         Remove prototypes of functions defined in builtins.c.
23258         * builtins.h: Update prototype list to include all exported functions.
23259         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
23260         no_c99_libc_has_function): Move to targhooks.c
23261         (build_string_literal, build_call_expr_loc_array,
23262         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
23263         to tree.c.
23264         (expand_builtin_object_size, fold_builtin_object_size): Make static.
23265         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
23266         no_c99_libc_has_function): Relocate from builtins.c.
23267         * tree.c: Include builtins.h.
23268         (build_call_expr_loc_array, build_call_expr_loc_vec,
23269         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
23270         from builtins.c.
23271         * fold-const.h (fold_fma): Move prototype to builtins.h.
23272         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
23273         * asan.c: Include builtins.h.
23274         * cfgexpand.c: Likewise.
23275         * convert.c: Likewise.
23276         * emit-rtl.c: Likewise.
23277         * except.c: Likewise.
23278         * expr.c: Likewise.
23279         * fold-const.c: Likewise.
23280         * gimple-fold.c: Likewise.
23281         * gimple-ssa-strength-reduction.c: Likewise.
23282         * gimplify.c: Likewise.
23283         * ipa-inline.c: Likewise.
23284         * ipa-prop.c: Likewise.
23285         * lto-streamer-out.c: Likewise.
23286         * stmt.c: Likewise.
23287         * tree-inline.c: Likewise.
23288         * tree-object-size.c: Likewise.
23289         * tree-sra.c: Likewise.
23290         * tree-ssa-ccp.c: Likewise.
23291         * tree-ssa-forwprop.c: Likewise.
23292         * tree-ssa-loop-ivcanon.c: Likewise.
23293         * tree-ssa-loop-ivopts.c: Likewise.
23294         * tree-ssa-math-opts.c: Likewise.
23295         * tree-ssa-reassoc.c: Likewise.
23296         * tree-ssa-threadedge.c: Likewise.
23297         * tree-streamer-in.c: Likewise.
23298         * tree-vect-data-refs.c: Likewise.
23299         * tree-vect-patterns.c: Likewise.
23300         * tree-vect-stmts.c: Likewise.
23301         * config/aarch64/aarch64.c: Likewise.
23302         * config/alpha/alpha.c: Likewise.
23303         * config/arc/arc.c: Likewise.
23304         * config/arm/arm.c: Likewise.
23305         * config/avr/avr.c: Likewise.
23306         * config/bfin/bfin.c: Likewise.
23307         * config/c6x/c6x.c: Likewise.
23308         * config/cr16/cr16.c: Likewise.
23309         * config/cris/cris.c: Likewise.
23310         * config/epiphany/epiphany.c: Likewise.
23311         * config/fr30/fr30.c: Likewise.
23312         * config/frv/frv.c: Likewise.
23313         * config/h8300/h8300.c: Likewise.
23314         * config/i386/i386.c: Likewise.
23315         * config/i386/winnt.c: Likewise.
23316         * config/ia64/ia64.c: Likewise.
23317         * config/iq2000/iq2000.c: Likewise.
23318         * config/lm32/lm32.c: Likewise.
23319         * config/m32c/m32c.c: Likewise.
23320         * config/m32r/m32r.c: Likewise.
23321         * config/m68k/m68k.c: Likewise.
23322         * config/mcore/mcore.c: Likewise.
23323         * config/mep/mep.c: Likewise.
23324         * config/microblaze/microblaze.c: Likewise.
23325         * config/mips/mips.c: Likewise.
23326         * config/mmix/mmix.c: Likewise.
23327         * config/mn10300/mn10300.c: Likewise.
23328         * config/moxie/moxie.c: Likewise.
23329         * config/msp430/msp430.c: Likewise.
23330         * config/nds32/nds32.c: Likewise.
23331         * config/pa/pa.c: Likewise.
23332         * config/pdp11/pdp11.c: Likewise.
23333         * config/picochip/picochip.c: Likewise.
23334         * config/rl78/rl78.c: Likewise.
23335         * config/rs6000/rs6000.c: Likewise.
23336         * config/rx/rx.c: Likewise.
23337         * config/s390/s390.c: Likewise.
23338         * config/score/score.c: Likewise.
23339         * config/sh/sh.c: Likewise.
23340         * config/sparc/sparc.c: Likewise.
23341         * config/spu/spu.c: Likewise.
23342         * config/stormy16/stormy16.c: Likewise.
23343         * config/tilegx/tilegx.c: Likewise.
23344         * config/tilepro/tilepro.c: Likewise.
23345         * config/v850/v850.c: Likewise.
23346         * config/vax/vax.c: Likewise.
23347         * config/xtensa/xtensa.c: Likewise.
23348
23349 2014-06-02  Jeff Law  <law@redhat.com>
23350
23351         PR rtl-optimization/61094
23352         * ree.c (combine_reaching_defs): Do not reextend an insn if it
23353         was marked as do_no_reextend.  If a copy is needed to eliminate
23354         an extension, then mark it as do_not_reextend.
23355
23356 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
23357
23358         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
23359
23360 2014-06-02  Richard Henderson  <rth@redhat.com>
23361
23362         PR target/61336
23363         * config/alpha/alpha.c (print_operand_address): Allow symbolic
23364         addresses inside asms.  Use output_operand_lossage instead of
23365         gcc_unreachable.
23366
23367 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
23368
23369         PR target/61239
23370         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
23371         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
23372
23373 2014-06-02  Tom de Vries  <tom@codesourcery.com>
23374
23375         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
23376         case that x has VOIDmode.
23377
23378 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
23379
23380         * varasm.c (copy_constant): Delete function.
23381         (build_constant_desc): Don't call it.
23382
23383 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23384
23385         PR target/61154
23386         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
23387         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
23388         with immediate_operand.
23389
23390 2014-06-02  Andreas Schwab  <schwab@suse.de>
23391
23392         * config/ia64/ia64.c
23393         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
23394         pending_data_specs first.
23395
23396 2014-06-02  Richard Biener  <rguenther@suse.de>
23397
23398         PR tree-optimization/61378
23399         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
23400         valueized_anything.
23401
23402 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
23403
23404         * config/i386/constraints.md (Bw): Rename from 'w'.
23405         (Bz): Rename from 'z'.
23406         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
23407
23408 2014-06-01  Kai Tietz  <ktietz@redhat.com>
23409
23410         PR target/61377
23411         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
23412         * config/i386/i386.md (sibcall_insn_operand): Use Bs
23413         instead of m constraint.
23414
23415 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
23416
23417         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
23418         a separate alternative where the scratch operand 2 is marked as
23419         early clobber.
23420
23421 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
23422
23423         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
23424         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
23425         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
23426         and __builtins_arm_get_fpscr.
23427         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
23428         __builtins_arm_get_fpscr.
23429         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
23430         __builtins_arm_ldfpscr.
23431         (arm_atomic_assign_expand_fenv): New function.
23432         * config/arm/vfp.md (set_fpscr): New pattern.
23433         (get_fpscr) : Likewise.
23434         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
23435         VUNSPEC_SET_FPSCR.
23436         * doc/extend.texi (AARCH64 Built-in Functions) : Document
23437         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
23438
23439 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
23440
23441         * asan.c (report_error_func): Add SLOW_P argument, use
23442         BUILT_IN_ASAN_*_N if set.
23443         (build_check_stmt): Likewise.
23444         (instrument_derefs): If T has insufficient alignment,
23445         force same handling as for odd sizes.
23446
23447         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
23448         BUILT_IN_ASAN_REPORT_STORE_N): New.
23449         * asan.c (struct asan_mem_ref): Change access_size type to
23450         HOST_WIDE_INT.
23451         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
23452         update_mem_ref_hash_table): Likewise.
23453         (asan_mem_ref_hasher::hash): Hash in a HWI.
23454         (report_error_func): Change size_in_bytes argument to HWI.
23455         Use *_N builtins if size_in_bytes is larger than 16 or not power of
23456         two.
23457         (build_shadow_mem_access): New function.
23458         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
23459         Handle size_in_bytes not power of two or larger than 16.
23460         (instrument_derefs): Don't give up if size_in_bytes is not
23461         power of two or is larger than 16.
23462
23463 2014-05-30  Kai Tietz  <ktietz@redhat.com>
23464
23465         PR target/60104
23466         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
23467         for sibling-tail-calls.
23468         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
23469         to its use.
23470         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
23471         (sibcall_insn_operand): Add check for sibcall_memory_operand.
23472
23473 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
23474
23475         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
23476         * config/avr/avr-tables.opt: Regenerate.
23477         * config/avr/t-multilib: Regenerate.
23478         * doc/avr-mmcu.texi: Regenerate.
23479
23480 2014-05-30  Ian Lance Taylor  <iant@google.com>
23481
23482         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
23483         target("sse").
23484
23485 2014-05-30  Tom de Vries  <tom@codesourcery.com>
23486
23487         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
23488         Redefine as true.
23489
23490 2014-05-30  Tom de Vries  <tom@codesourcery.com>
23491
23492         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23493         * lra.c (initialize_lra_reg_info_element): Add init of
23494         actual_call_used_reg_set field.
23495         (lra): Call lra_create_live_ranges before lra_inheritance for
23496         -fuse-caller-save.
23497         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23498         -fuse-caller-save.
23499         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
23500         instead of call_used_reg_set for -fuse-caller-save.
23501         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23502
23503 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23504
23505         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
23506         to mov_imm.
23507         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
23508
23509 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
23510
23511         * ira.c (ira_get_dup_out_num): Check for output operands at
23512         the start of the loop.  Handle cases where an included alternative
23513         follows an excluded one.
23514
23515 2014-05-29  Mike Stump  <mikestump@comcast.net>
23516
23517         PR debug/61352
23518         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
23519         post ld passes when lto is used.
23520
23521 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
23522
23523         PR rtl-optimization/61325
23524         * lra-constraints.c (process_address): Rename to process_address_1.
23525         (process_address): New function.
23526
23527 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
23528
23529         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
23530         TYPES_BINOPV): New static data.
23531         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
23532         New builtin.
23533         * config/aarch64/aarch64-simd.md (aarch64_ext,
23534         aarch64_im_lane_boundsi): New patterns.
23535         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
23536         patterns for EXT.
23537         (aarch64_evpc_ext): New function.
23538
23539         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
23540
23541         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
23542         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
23543         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
23544         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
23545         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
23546
23547 2014-05-29  Tom de Vries  <tom@codesourcery.com>
23548
23549         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
23550
23551 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
23552             Richard Sandiford  <rdsandiford@googlemail.com>
23553
23554         * arm/iterators.md (shiftable_ops): New code iterator.
23555         (t2_binop0, arith_shift_insn): New code attributes.
23556         * arm/predicates.md (shift_nomul_operator): New predicate.
23557         * arm/arm.md (insn_enabled): Delete.
23558         (enabled): Remove insn_enabled test.
23559         (*arith_shiftsi): Delete.  Replace with ...
23560         (*<arith_shift_insn>_multsi): ... new pattern.
23561         (*<arith_shift_insn>_shiftsi): ... new pattern.
23562         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
23563
23564 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
23565             Tom de Vries  <tom@codesourcery.com>
23566
23567         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
23568         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
23569         clobber.
23570         (mips_split_call): Use POST_CALL_TMP_REG.
23571         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
23572
23573 2014-05-29  Tom de Vries  <tom@codesourcery.com>
23574
23575         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
23576         with #ifdef STACK_REGS.
23577
23578 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
23579
23580         * varasm.c (get_variable_section): Walk aliases.
23581         (place_block_symbol): Walk aliases.
23582
23583 2014-05-28  Tom de Vries  <tom@codesourcery.com>
23584
23585         Revert:
23586         2014-05-28  Tom de Vries  <tom@codesourcery.com>
23587
23588         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23589         * lra.c (initialize_lra_reg_info_element): Add init of
23590         actual_call_used_reg_set field.
23591         (lra): Call lra_create_live_ranges before lra_inheritance for
23592         -fuse-caller-save.
23593         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23594         -fuse-caller-save.
23595         * lra-constraints.c (need_for_call_save_p): Use
23596         actual_call_used_reg_set instead of call_used_reg_set for
23597         -fuse-caller-save.
23598         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23599
23600 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23601
23602         * doc/md.texi: Document that the % constraint character must
23603         be at the beginning of the string.
23604         * genoutput.c (validate_insn_alternatives): Check that '=',
23605         '+' and '%' only appear at the beginning of a constraint.
23606         * ira.c (commutative_constraint_p): Delete.
23607         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
23608         at the start of the string.
23609         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
23610         duplicate '='s.
23611         * config/arm/neon.md (bicdi3_neon): Likewise.
23612         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
23613         (slt_si, sltu_si): Likewise.
23614         * config/vax/vax.md (sbcdi3): Likewise.
23615         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
23616         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
23617         (mul64): Move '%' to beginning of constraint.
23618         * config/arm/arm.md (*xordi3_insn): Likewise.
23619         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
23620         (xorsi3): Likewise.
23621
23622 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23623
23624         * doc/md.texi: Document the restrictions on the "enabled" attribute.
23625
23626 2014-05-28  Jason Merrill  <jason@redhat.com>
23627
23628         PR c++/47202
23629         * cgraph.h (symtab_node::get_comdat_group_id): New.
23630         * cgraphunit.c (analyze_functions): Call it.
23631         * symtab.c (dump_symtab_node): Likewise.
23632         * tree.c (decl_comdat_group_id): New.
23633         * tree.h: Declare it.
23634         * lto-streamer-out.c (write_symbol): Use it.
23635         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
23636
23637 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
23638
23639         PR bootstrap/PR61146
23640         * wide-int.cc: Do not include longlong.h when compiling with clang.
23641
23642 2014-05-28  Richard Biener  <rguenther@suse.de>
23643
23644         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
23645         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
23646         (vrp_visit_assignment_or_call): Print less vertical space.
23647         (vrp_visit_stmt): Likewise.
23648         (vrp_visit_phi_node): Likewise.  For a PHI argument with
23649         VR_VARYING range consider recording it as copy.
23650
23651 2014-05-28  Richard Biener  <rguenther@suse.de>
23652
23653         Revert
23654         2014-05-28  Richard Biener  <rguenther@suse.de>
23655
23656         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23657
23658 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
23659
23660         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
23661         sufficiently aligned and an offset is used at the same time.
23662         (expand_expr_real_1): Likewise.
23663
23664 2014-05-28  Richard Biener  <rguenther@suse.de>
23665
23666         PR middle-end/61045
23667         * fold-const.c (fold_comparison): When folding
23668         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
23669         the sign of the remaining constant operand stays the same.
23670
23671 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
23672
23673         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
23674         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
23675         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
23676         to the assembler.
23677         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
23678         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
23679         (m32bit-doubles) Likewise.
23680         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
23681         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
23682         option for RL78.
23683
23684 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23685
23686         * configure.ac ($gcc_cv_ld_clearcap): New test.
23687         * configure: Regenerate.
23688         * config.in: Regenerate.
23689         * config/sol2.opt (mclear-hwcap): New option.
23690         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
23691         * config/sol2-clearcap.map: Moved here from
23692         testsuite/gcc.target/i386/clearcap.map.
23693         * config/sol2-clearcapv2.map: Move here from
23694         gcc.target/i386/clearcapv2.map.
23695         * config/t-sol2 (install): Depend on install-clearcap-map.
23696         (install-clearcap-map): New target.
23697         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
23698         -mclear-hwcap.
23699
23700 2014-05-28  Richard Biener  <rguenther@suse.de>
23701
23702         * hwint.h (*_HALF_WIDE_INT*): Move to ...
23703         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
23704         ... here and remove the rest.
23705         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23706
23707 2014-05-28  Richard Biener  <rguenther@suse.de>
23708
23709         PR tree-optimization/61335
23710         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
23711         new range fails, drop to varying.
23712
23713 2014-05-28  Olivier Hainque  <hainque@adacore.com>
23714
23715         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
23716         (CPP_SPEC): Add entry for -mcpu=8548.
23717         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
23718         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
23719
23720 2014-05-28  Tom de Vries  <tom@codesourcery.com>
23721
23722         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23723         * lra.c (initialize_lra_reg_info_element): Add init of
23724         actual_call_used_reg_set field.
23725         (lra): Call lra_create_live_ranges before lra_inheritance for
23726         -fuse-caller-save.
23727         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23728         -fuse-caller-save.
23729         * lra-constraints.c (need_for_call_save_p): Use
23730         actual_call_used_reg_set instead of call_used_reg_set for
23731         -fuse-caller-save.
23732         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23733
23734 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23735             Tom de Vries  <tom@codesourcery.com>
23736
23737         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
23738         to gccoptlist.
23739         (@item -fuse-caller-save): New item.
23740
23741 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23742             Tom de Vries  <tom@codesourcery.com>
23743
23744         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
23745         OPT_fuse_caller_save.
23746
23747 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23748             Tom de Vries  <tom@codesourcery.com>
23749
23750         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
23751         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
23752         get_call_reg_set_usage.
23753         * resource.c (mark_set_resources, mark_target_live_regs): Use
23754         get_call_reg_set_usage.
23755         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
23756         field.
23757         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
23758         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
23759         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23760         * ira-build.c (ira_create_allocno): Init
23761         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23762         (create_cap_allocno, propagate_allocno_info)
23763         (propagate_some_info_from_allocno)
23764         (copy_info_to_removed_store_destinations): Handle
23765         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23766         * ira-costs.c (ira_tune_allocno_costs): Use
23767         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
23768
23769 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23770             Tom de Vries  <tom@codesourcery.com>
23771
23772         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
23773         and function_used_regs_valid fields.
23774         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
23775         find_all_hard_reg_sets.
23776         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
23777         (get_call_reg_set_usage): New function.
23778         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
23779         * regs.h (get_call_reg_set_usage): Declare.
23780
23781 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
23782
23783         PR libgcc/61152
23784         * config/dbx.h (License): Add Runtime Library Exception.
23785         * config/newlib-stdint.h (License): Same.
23786         * config/rtems.h (License): Same
23787         * config/initfini-array.h (License): Same
23788         * config/v850/v850.h (License): Same.
23789         * config/v850/v850-opts.h (License): Same
23790         * config/v850/rtems.h (License): Same.
23791
23792 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
23793
23794         PR target/61044
23795         * doc/extend.texi (Local Labels): Note that label differences are
23796         not supported for AVR.
23797
23798 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23799             Olivier Hainque  <hainque@adacore.com>
23800
23801         * rtl.h (set_for_reg_notes): Declare.
23802         * emit-rtl.c (set_for_reg_notes): New function.
23803         (set_unique_reg_note): Use it.
23804         * optabs.c (add_equal_note): Likewise
23805
23806 2014-05-27  Andrew Pinski  <apinski@cavium.com>
23807
23808         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
23809         Use <w> for the register in assembly template.
23810         (stack_protect_test): Use the mode of operands[0] for the result.
23811         (stack_protect_test_<mode>): Use <w> for the register
23812         in assembly template.
23813
23814 2014-05-27  DJ Delorie  <dj@redhat.com>
23815
23816         * config/rx/rx.c (add_vector_labels): New.
23817         (rx_output_function_prologue): Call it.
23818         (rx_handle_func_attribute): Don't require empty arguments.
23819         (rx_handle_vector_attribute): New.
23820         (rx_attribute_table): Add "vector" attribute.
23821         * doc/extend.texi (interrupt, vector): Document new/changed
23822         RX-specific attributes.
23823
23824         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
23825
23826 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23827
23828         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
23829         predicate to detect a negative quotient.
23830
23831 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23832
23833         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
23834         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
23835         Add X - Y CMP 0 to X CMP Y transformation.
23836         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
23837
23838 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
23839
23840         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
23841         before printing.
23842
23843 2014-05-27  Steve Ellcey  <sellcey@mips.com>
23844
23845         * config/mips/mips.c: Add include of cgraph.h.
23846
23847 2014-05-27  Richard Biener  <rguenther@suse.de>
23848
23849         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
23850
23851 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
23852
23853         PR libgcc/61152
23854         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
23855         * config/arm/arm-cores.def (License): Same.
23856         * config/arm/arm-opts.h (License): Same.
23857         * config/arm/aout.h (License): Same.
23858         * config/arm/bpabi.h (License): Same.
23859         * config/arm/elf.h (License): Same.
23860         * config/arm/linux-elf.h (License): Same.
23861         * config/arm/linux-gas.h (License): Same.
23862         * config/arm/netbsd-elf.h (License): Same.
23863         * config/arm/uclinux-eabi.h (License): Same.
23864         * config/arm/uclinux-elf.h (License): Same.
23865         * config/arm/vxworks.h (License): Same.
23866
23867 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23868
23869         * config/arm/neon.md (neon_bswap<mode>): New pattern.
23870         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
23871         (arm_init_neon_builtins): Handle NEON_BSWAP.
23872         Define required type nodes.
23873         (arm_expand_neon_builtin): Handle NEON_BSWAP.
23874         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
23875         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
23876         * config/arm/iterators.md (VDQHSD): New mode iterator.
23877
23878 2014-05-27  Richard Biener  <rguenther@suse.de>
23879
23880         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
23881         Try using literal operands when comparing value-ranges failed.
23882
23883 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23884
23885         * ira.c (commutative_operand): Adjust for change to recog_data.
23886         [Missing from previous commit.]
23887
23888 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23889
23890         * system.h (TEST_BIT): New macro.
23891         * recog.h (alternative_mask): New type.
23892         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
23893         (recog_data_d): Replace alternative_enabled_p array with
23894         enabled_alternatives.
23895         (target_recog): New structure.
23896         (default_target_recog, this_target_recog): Declare.
23897         (get_enabled_alternatives, recog_init): Likewise.
23898         * recog.c (default_target_recog, this_target_recog): New variables.
23899         (get_enabled_alternatives): New function.
23900         (extract_insn): Use it.
23901         (recog_init): New function.
23902         (preprocess_constraints, constrain_operands): Adjust for change to
23903         recog_data.
23904         * postreload.c (reload_cse_simplify_operands): Likewise.
23905         * reload.c (find_reloads): Likewise.
23906         * ira-costs.c (record_reg_classes): Likewise.
23907         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
23908         all alternatives after a disabled one would be skipped.
23909         (ira_implicitly_set_insn_hard_regs): Likewise.
23910         * ira.c (ira_setup_alts): Adjust for change to recog_data.
23911         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
23912         with enabled_alternatives.
23913         * lra.c (free_insn_recog_data): Update accordingly.
23914         (lra_update_insn_recog_data): Likewise.
23915         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
23916         * lra-constraints.c (process_alt_operands): Likewise.  Handle
23917         only_alternative as part of the enabled mask.
23918         * target-globals.h (this_target_recog): Declare.
23919         (target_globals): Add a recog field.
23920         (restore_target_globals): Restore this_target_recog.
23921         * target-globals.c: Include recog.h.
23922         (default_target_globals): Initialize recog field.
23923         (save_target_globals): Likewise.
23924         * reginfo.c (reinit_regs): Call recog_init.
23925         * toplev.c (backend_init_target): Likewise.
23926
23927 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23928
23929         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
23930         rather than any named insn's code.
23931
23932 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
23933
23934         PR libgcc/61152
23935         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
23936         * config/arm/arm-cores.def (License): Same.
23937
23938 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
23939
23940         * tree.h (decl_comdat_group): Declare.
23941         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
23942         * tree.c (decl_comdat_group): Here.
23943
23944 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
23945
23946         PR rtl-optimization/61222
23947         * combine.c (simplify_shift_const_1): When moving a PLUS outside
23948         the shift, truncate the PLUS operand to the result mode.
23949
23950 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
23951
23952         PR target/61271
23953         * config/i386/i386.c (ix86_rtx_costs)
23954         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
23955         Fix condition.
23956
23957 2014-05-26  Martin Jambor  <mjambor@suse.cz>
23958
23959         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
23960         subreg uses.
23961
23962 2014-05-26  Richard Biener  <rguenther@suse.de>
23963
23964         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
23965         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
23966         Provide specializations.
23967         (wi::int_traits <HOST_WIDE_INT>,
23968         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
23969
23970 2014-05-26  Alan Modra  <amodra@gmail.com>
23971
23972         PR target/61098
23973         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
23974         params and return a bool.  Remove dead code.  Update comment.
23975         Assert we have a const_int source.  Remove bogus code from
23976         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
23977         handling of constants > 2G and reg_equal note, from..
23978         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
23979         return value.  Update comment.  If we can, use a new pseudo
23980         for intermediate calculations.
23981         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
23982         prototype.
23983         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
23984         call to rs6000_emit_set_const in splitter.
23985         (movdi_internal64+2, +3): Likewise.
23986
23987 2014-05-26  Richard Biener  <rguenther@suse.de>
23988
23989         * system.h: Define __STDC_FORMAT_MACROS before
23990         including inttypes.h.
23991         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
23992         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
23993         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
23994         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
23995         HOST_WIDEST_INT_C): Remove.
23996         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
23997         if C99 inttypes.h is not available.
23998         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
23999         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
24000         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
24001         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
24002         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
24003         (struct output_info): Likewise.
24004         (print_statistics): Adjust.
24005         (dump_bitmap_statistics): Likewise.
24006         * bt-load.c (migrate_btr_defs): Print with PRId64.
24007         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
24008         (MAX_SAFE_MULTIPLIER): Adjust.
24009         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
24010         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
24011         dump_cgraph_node): Likewise.
24012         * final.c (dump_basic_block_info): Likewise.
24013         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
24014         * gcov.c (format_gcov): Likewise.
24015         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
24016         for calculation.
24017         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
24018         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
24019         (inline_small_functions, dump_overall_stats, dump_inline_stats):
24020         Use PRId64 for dumping.
24021         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
24022         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
24023         (add_allocno_hard_regs): Adjust.
24024         * loop-doloop.c (doloop_modify): Print using PRId64.
24025         * loop-iv.c (inverse): Compute in uint64_t.
24026         (determine_max_iter, iv_number_of_iterations): Likewise.
24027         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
24028         Print using PRId64.
24029         * lto-streamer-out.c (write_symbol): Use uint64_t.
24030         * mcf.c (CAP_INFINITY): Use int64_t maximum.
24031         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
24032         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
24033         * modulo-sched.c (const_iteration_count): Use int64_t.
24034         (sms_schedule): Dump using PRId64.
24035         * predict.c (dump_prediction): Likewise.
24036         * pretty-print.h (pp_widest_integer): Remove.
24037         * profile.c (get_working_sets, is_edge_inconsistent,
24038         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
24039         * tree-pretty-print.c (pp_double_int): Remove case handling
24040         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
24041         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
24042         and adjust users.
24043         (pass_optimize_bswap::execute): Remove restriction on hosts.
24044         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
24045         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
24046         * tree.c (widest_int_cst_value): Remove.
24047         * tree.h (widest_int_cst_value): Likewise.
24048         * value-prof.c (dump_histogram_value): Print using PRId64.
24049         * gengtype.c (main): Also inject int64_t.
24050         * ggc-page.c (struct max_alignment): Use int64_t.
24051         * alloc-pool.c (struct allocation_object_def): Likewise.
24052         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
24053         for computation.
24054         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
24055         * doc/tm.texi: Regenerated.
24056         * gengtype-lex.l (IWORD): Handle [u]int64_t.
24057         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
24058         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
24059         mmix_output_register_setting): Use [u]int64_t in prototypes.
24060         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
24061         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
24062         mmix_output_octa, mmix_output_shifted_value): Adjust.
24063         (mmix_intval): Adjust.  Remove unreachable case.
24064         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
24065
24066 2014-05-26  Richard Biener  <rguenther@suse.de>
24067
24068         * configure.ac: Drop __int64 type check.  Insist that we
24069         found uint64_t and int64_t.
24070         * hwint.h (HOST_BITS_PER___INT64): Remove.
24071         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
24072         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
24073         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
24074         (HOST_WIDEST_FAST_INT): Remove __int64 case.
24075         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
24076         for dst_q_src_df_rms_cdt.
24077         * configure: Regenerate.
24078         * config.in: Likewise.
24079
24080 2014-05-26  Michael Tautschnig  <mt@debian.org>
24081
24082         PR target/61249
24083         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
24084         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
24085
24086 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24087
24088         PR rtl-optimization/61278
24089         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
24090
24091 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24092
24093         PR rtl-optimization/61220
24094         Part of PR rtl-optimization/61225
24095         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
24096         insn; skip split_edge for a block with only one successor.
24097
24098 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24099
24100         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
24101         for variables.
24102
24103 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24104
24105         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
24106         (update_vtable_references): New function.
24107         (function_and_variable_visibility): Rewrite also vtable initializers.
24108         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
24109
24110 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24111
24112         * ggc.h (ggc_grow): New function.
24113         * ggc-none.c (ggc_grow): New function.
24114         * ggc-page.c (ggc_grow): Likewise.
24115
24116 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24117
24118         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
24119         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
24120         comdat_can_be_unshared_p, cgraph_externally_visible_p,
24121         varpool_externally_visible_p, can_replace_by_local_alias,
24122         update_visibility_by_resolution_info, function_and_variable_visibility,
24123         pass_data_ipa_function_and_variable_visibility,
24124         make_pass_ipa_function_and_variable_visibility,
24125         whole_program_function_and_variable_visibility,
24126         pass_data_ipa_whole_program_visibility,
24127         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
24128         * cgraph.h (cgraph_local_node_p): Declare.
24129         * ipa-visibility.c: New file.
24130         * Makefile.in (OBJS): Add ipa-visiblity.o
24131
24132 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24133
24134         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
24135         that var decl is available.
24136
24137 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24138
24139         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
24140         symtab_node pointer.
24141         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
24142         (find_decls_types_r): Do not walk COMDAT_GROUP.
24143         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
24144         * varasm.c (make_decl_one_only): Use set_comdat_group;
24145         create node if needed.
24146         * ipa-inline-transform.c (save_inline_function_body): Update
24147         way we decl->symtab mapping.
24148         * symtab.c (symtab_hash, hash_node, eq_node
24149         symtab_insert_node_to_hashtable): Remove.
24150         (symtab_register_node): Update.
24151         (symtab_unregister_node): Update.
24152         (symtab_get_node): Reimplement as inline function.
24153         (symtab_add_to_same_comdat_group): Update.
24154         (symtab_dissolve_same_comdat_group_list): Update.
24155         (dump_symtab_base): Update.
24156         (verify_symtab_base): Update.
24157         (symtab_make_decl_local): Update.
24158         (fixup_same_cpp_alias_visibility): Update.
24159         (symtab_nonoverwritable_alias): Update.
24160         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
24161         * ipa.c (update_visibility_by_resolution_info): UPdate.
24162         * bb-reorder.c: Include cgraph.h
24163         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
24164         with comdat groups.
24165         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
24166         * cgraph.c (cgraph_get_create_node): Update.
24167         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
24168         and comdat_group_.
24169         (symtab_get_node): Make inline.
24170         (symtab_insert_node_to_hashtable): Remove.
24171         (symtab_can_be_discarded): Update.
24172         (decl_comdat_group): New function.
24173         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
24174         Update.
24175         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
24176         comdat group name.
24177         (read_comdat_group): New function.
24178         (input_node, input_varpool_node): Use it.
24179         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
24180         comdat groups.
24181         * mips.c (mips_start_unique_function): Likewise.
24182         (ix86_code_end): Likewise.
24183         (rs6000_code_end): Likweise.
24184         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
24185
24186 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24187
24188         * gengtype-state.c (fatal_reading_state): Bring offline.
24189         * optabs.c (widening_optab_handler): Bring offline.
24190         * optabs.h (widening_optab_handler): Likewise.
24191         * final.c (get_attr_length_1): Likewise.
24192
24193 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24194
24195         * sched-int.h (sd_iterator_cond): Manually tail recurse.
24196
24197 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24198
24199         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
24200         (ppc440-compare): Include shift with dot.
24201         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
24202         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
24203         without dot.
24204         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
24205         without dot.
24206         (e6500_sfx2): Include it.
24207         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
24208         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
24209         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
24210         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
24211         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
24212         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
24213         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
24214         *lshiftrt_internal1le, *lshiftrt_internal1be,
24215         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
24216         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
24217         *rotldi3_internal10le, *rotldi3_internal10be,
24218         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
24219         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
24220         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
24221         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
24222         define_insns): Use type "shift" in the appropriate alternatives.
24223
24224 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24225
24226         * config/rs6000/rs6000.md (type): Add "logical".  Delete
24227         "fast_compare".
24228         (dot): Adjust comment.
24229         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
24230         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
24231         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
24232         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
24233         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
24234         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
24235         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
24236         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
24237
24238         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24239         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
24240         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24241         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24242         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24243         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24244         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24245         * config/rs6000/8540.md (ppc8540_su): Adjust.
24246         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24247         cell-cmp-microcoded): Adjust.
24248         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
24249         * config/rs6000/e500mc.md (e500mc_su): Adjust.
24250         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
24251         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
24252         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
24253         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24254         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
24255         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
24256         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
24257         Adjust.
24258         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
24259         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
24260         Adjust.  Adjust comment.
24261         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24262         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
24263
24264 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24265
24266         * config/rs6000/rs6000.md (type): Add "add".
24267         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
24268         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
24269         define_insns): Use it.
24270         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
24271
24272         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24273         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
24274         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24275         * config/rs6000/601.md (ppc601-integer): Adjust.
24276         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24277         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24278         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24279         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24280         * config/rs6000/8540.md (ppc8540_su): Adjust.
24281         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24282         cell-cmp-microcoded): Adjust.
24283         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
24284         * config/rs6000/e500mc.md (e500mc_su): Adjust.
24285         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
24286         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
24287         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
24288         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24289         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
24290         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
24291         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
24292         Adjust.
24293         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
24294         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
24295         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24296         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
24297
24298 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24299
24300         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
24301         "delayed_compare", "var_delayed_compare".
24302         (var_shift): New attribute.
24303         (cell_micro): Adjust.
24304         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
24305         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
24306         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
24307         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
24308         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
24309         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
24310         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
24311         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
24312         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
24313         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
24314         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
24315         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
24316         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
24317         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
24318         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
24319         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
24320         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
24321         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
24322         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
24323         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
24324         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
24325         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
24326         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
24327         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24328         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24329
24330         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24331         * config/rs6000/440.md (ppc440-integer): Adjust.
24332         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24333         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
24334         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24335         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24336         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24337         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24338         * config/rs6000/8540.md (ppc8540_su): Adjust.
24339         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24340         cell-cmp-microcoded): Adjust.
24341         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
24342         * config/rs6000/e500mc.md (e500mc_su): Adjust.
24343         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
24344         e500mc64_delayed): Adjust.
24345         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
24346         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
24347         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24348         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
24349         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
24350         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
24351         power6-delayed-compare, power6-var-delayed-compare): Adjust.
24352         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
24353         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
24354         Adjust comment.
24355         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24356         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
24357
24358 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24359
24360         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
24361         (bits): New mode_attr.
24362         (idiv_ldiv): Delete mode_attr.
24363         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
24364         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24365         rs6000_adjust_priority, is_nonpipeline_insn,
24366         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24367
24368         * config/rs6000/40x.md (ppc403-idiv): Adjust.
24369         * config/rs6000/440.md (ppc440-idiv): Adjust.
24370         * config/rs6000/476.md (ppc476-idiv): Adjust.
24371         * config/rs6000/601.md (ppc601-idiv): Adjust.
24372         * config/rs6000/603.md (ppc603-idiv): Adjust.
24373         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
24374         ppc620-ldiv): Adjust.
24375         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
24376         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
24377         * config/rs6000/8540.md (ppc8540_divide): Adjust.
24378         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
24379         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
24380         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
24381         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
24382         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
24383         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
24384         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
24385         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
24386         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
24387         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
24388         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
24389         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
24390         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
24391         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
24392         * config/rs6000/titan.md (titan_fxu_div): Adjust.
24393
24394 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24395
24396         * config/rs6000/rs6000.md (type): Delete "insert_word",
24397         "insert_dword".  Add "insert".
24398         (size): Update comment.
24399         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24400         insn_must_be_first_in_group): Adjust.
24401         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
24402         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
24403         *insvsi_internal6, insvdi_internal): Adjust.
24404
24405         * config/rs6000/40x.md (ppc403-integer): Adjust.
24406         * config/rs6000/440.md (ppc440-integer): Adjust.
24407         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
24408         * config/rs6000/601.md (ppc601-integer): Adjust.
24409         * config/rs6000/603.md (ppc603-integer): Adjust.
24410         * config/rs6000/6xx.md (ppc604-integer): Adjust.
24411         * config/rs6000/7450.md (ppc7450-integer): Adjust.
24412         * config/rs6000/7xx.md (ppc750-integer): Adjust.
24413         * config/rs6000/8540.md (ppc8540_su): Adjust.
24414         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
24415         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
24416         * config/rs6000/e500mc.md (e500mc_su): Adjust.
24417         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
24418         * config/rs6000/e5500.md (e5500_sfx): Adjust.
24419         * config/rs6000/e6500.md (e6500_sfx): Adjust.
24420         * config/rs6000/mpc.md (mpccore-integer): Adjust.
24421         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
24422         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
24423         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
24424         * config/rs6000/power7.md (power7-integer): Adjust.
24425         * config/rs6000/power8.md (power8-1cyc): Adjust.
24426         * config/rs6000/rs64.md (rs64a-integer): Adjust.
24427         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
24428
24429 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24430
24431         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
24432         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
24433         (size): New attribute.
24434         (dot): New attribute.
24435         (cell_micro): Adjust.
24436         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
24437         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
24438         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
24439         umuldi3_highpart): Adjust.
24440         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24441         rs6000_adjust_priority, is_nonpipeline_insn,
24442         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24443
24444         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
24445         ppc405-imul3): Adjust.
24446         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
24447         * config/rs6000/476.md (ppc476-imul): Adjust.
24448         * config/rs6000/601.md (ppc601-imul): Adjust.
24449         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
24450         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
24451         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
24452         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
24453         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
24454         Adjust.
24455         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
24456         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
24457         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
24458         cell-imul): Adjust.
24459         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
24460         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
24461         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
24462         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
24463         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
24464         * config/rs6000/mpc.md (mpccore-imul): Adjust.
24465         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
24466         power4-lmul, power4-imul, power4-imul3): Adjust.
24467         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
24468         power5-lmul, power5-imul, power5-imul3): Adjust.
24469         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
24470         power6-lmul, power6-imul, power6-imul3): Adjust.
24471         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
24472         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
24473
24474         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
24475         rs64a-lmul): Adjust.
24476         * config/rs6000/titan.md (titan_imul): Adjust.
24477
24478 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24479
24480         * config/rs6000/rs6000.md (type): Add new value "halfmul".
24481         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
24482         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
24483         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
24484         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
24485         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
24486         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
24487         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
24488         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
24489         * config/rs6000/titan.md: Delete nonsensical comment.
24490         (titan_imul): Add type imul3.
24491         (titan_mulhw): Remove type imul3; add type halfmul.
24492
24493 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24494
24495         * config/rs6000/rs6000.md (type): Reorder, reformat.
24496
24497 2014-05-23  Martin Jambor  <mjambor@suse.cz>
24498
24499         PR tree-optimization/53787
24500         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
24501         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
24502         analysis_done, update all uses.
24503         * ipa-prop.c: Include domwalk.h
24504         (param_analysis_info): Removed.
24505         (param_aa_status): New type.
24506         (ipa_bb_info): Likewise.
24507         (func_body_info): Likewise.
24508         (ipa_get_bb_info): New function.
24509         (aa_overwalked): Likewise.
24510         (find_dominating_aa_status): Likewise.
24511         (parm_bb_aa_status_for_bb): Likewise.
24512         (parm_preserved_before_stmt_p): Changed to use new param AA info.
24513         (load_from_unmodified_param): Accept func_body_info as a parameter
24514         instead of parms_ainfo.
24515         (parm_ref_data_preserved_p): Changed to use new param AA info.
24516         (parm_ref_data_pass_through_p): Likewise.
24517         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
24518         (compute_complex_assign_jump_func): Changed to use new param AA info.
24519         (compute_complex_ancestor_jump_func): Likewise.
24520         (ipa_compute_jump_functions_for_edge): Likewise.
24521         (ipa_compute_jump_functions): Removed.
24522         (ipa_compute_jump_functions_for_bb): New function.
24523         (ipa_analyze_indirect_call_uses): Likewise, moved variable
24524         declarations down.
24525         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
24526         and info, moved variable declarations down.
24527         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
24528         node and info.
24529         (ipa_analyze_stmt_uses): Likewise.
24530         (ipa_analyze_params_uses): Removed.
24531         (ipa_analyze_params_uses_in_bb): New function.
24532         (ipa_analyze_controlled_uses): Likewise.
24533         (free_ipa_bb_info): Likewise.
24534         (analysis_dom_walker): New class.
24535         (ipa_analyze_node): Handle node-specific forbidden analysis,
24536         initialize and free func_body_info, use dominator walker.
24537         (ipcp_modif_dom_walker): New class.
24538         (ipcp_transform_function): Create and free func_body_info, use
24539         ipcp_modif_dom_walker, moved a lot of functionality there.
24540
24541 2014-05-23  Marek Polacek  <polacek@redhat.com>
24542             Jakub Jelinek  <jakub@redhat.com>
24543
24544         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
24545         * gcc.c (sanitize_spec_function): Likewise.
24546         * convert.c (convert_to_integer): Include "ubsan.h".  Add
24547         floating-point to integer instrumentation.
24548         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
24549         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
24550         SANITIZE_NONDEFAULT.
24551         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
24552         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
24553         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
24554         * ubsan.c: Include "realmpfr.h" and "dfp.h".
24555         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
24556         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
24557         float/double/long double.
24558         (ubsan_instrument_float_cast): New function.
24559         * ubsan.h (ubsan_instrument_float_cast): Declare.
24560
24561 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
24562
24563         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
24564         predicate.
24565         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
24566         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
24567         Adjust for tailcalling through registers.
24568         * config/aarch64/aarch64.h (enum reg_class): New caller save
24569         register class.
24570         (REG_CLASS_NAMES): Likewise.
24571         (REG_CLASS_CONTENTS): Likewise.
24572         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
24573         Allow tailcalling without decls.
24574
24575 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
24576
24577         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
24578         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
24579
24580         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
24581         gsi, and variables v_* to v*.
24582
24583 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
24584
24585         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
24586
24587 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
24588
24589         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
24590         * omp-low.c: Update accordingly.
24591
24592         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
24593         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
24594         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
24595         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
24596         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
24597         GF_OMP_TARGET_KIND_UPDATE.
24598
24599         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
24600         Explicitly enumerate the expected region types.
24601
24602 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
24603
24604         PR other/56955
24605         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
24606         documentation; the old documentation didn't clearly state the
24607         constraints on the contents of the pointed-to storage.
24608
24609 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24610
24611         Fix bootstrap error on ia64
24612         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
24613         Return default value.
24614
24615 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24616
24617         PR tree-optimization/54733
24618         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
24619         (CMPNOP): Define.
24620         (find_bswap_or_nop_load): New.
24621         (find_bswap_1): Renamed to ...
24622         (find_bswap_or_nop_1): This. Also add support for memory source.
24623         (find_bswap): Renamed to ...
24624         (find_bswap_or_nop): This. Also add support for memory source and
24625         detection of bitwise operations equivalent to load in target
24626         endianness.
24627         (execute_optimize_bswap): Likewise. Also move its leading comment back
24628         in place and split statement transformation into ...
24629         (bswap_replace): This.
24630
24631 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
24632
24633         PR rtl-optimization/61215
24634         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
24635         simplify_gen_subreg until final substitution.
24636
24637 2014-05-23  Alan Modra  <amodra@gmail.com>
24638
24639         PR target/61231
24640         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
24641         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
24642         Use "Y" constraint rather than "m".
24643
24644 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
24645
24646         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
24647         define.
24648         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
24649         New function declaration.
24650         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
24651         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
24652         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
24653         (aarch64_init_builtins) : Initialize builtins
24654         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24655         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24656         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
24657         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
24658         and __builtins_aarch64_set_fpsr.
24659         (aarch64_atomic_assign_expand_fenv): New function.
24660         * config/aarch64/aarch64.md (set_fpcr): New pattern.
24661         (get_fpcr) : Likewise.
24662         (set_fpsr) : Likewise.
24663         (get_fpsr) : Likewise.
24664         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
24665         and UNSPECV_SET_FPSR.
24666         * doc/extend.texi (AARCH64 Built-in Functions) : Document
24667         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24668         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24669
24670 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
24671
24672         PR rtl-optimization/60969
24673         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
24674         constraints.  Set up mem cost for NO_REGS case.
24675
24676 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
24677
24678         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
24679
24680 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
24681
24682         * config/darwin.c: Include "lto-section-names.h".
24683         (LTO_SEGMENT_NAME): Don't define.
24684         * config/i386/winnt.c: Include "lto-section-names.h".
24685         * lto-streamer.c: Include "lto-section-names.h".
24686         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
24687         * lto-wrapper.c: Include "lto-section-names.h".
24688         (LTO_SECTION_NAME_PREFIX): Don't define.
24689         * lto-section-names.h: New file.
24690         * cgraphunit.c: Include "lto-section-names.h".
24691
24692 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
24693
24694         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
24695
24696 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
24697
24698         PR target/61208
24699         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
24700
24701 2014-05-22  Nick Clifton  <nickc@redhat.com>
24702
24703         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
24704
24705 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
24706
24707         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
24708         -> (T)A transformation to integer types.
24709
24710 2014-05-22  Teresa Johnson  <tejohnson@google.com>
24711
24712         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
24713         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
24714         (gcov_rewrite): Use gcov_nonruntime_assert.
24715         (gcov_open): Ditto.
24716         (gcov_write_words): Ditto.
24717         (gcov_write_length): Ditto.
24718         (gcov_read_words): Use gcov_nonruntime_assert, and remove
24719         gcc_assert from IN_LIBGCOV code.
24720         (gcov_read_summary): Use gcov_error to flag profile corruption.
24721         (gcov_sync): Use gcov_nonruntime_assert.
24722         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
24723         (gcov_histo_index): Use gcov_nonruntime_assert.
24724         (static void gcov_histogram_merge): Ditto.
24725         (compute_working_sets): Ditto.
24726         * gcov-io.h (gcov_nonruntime_assert): Define.
24727         (gcov_error): Define for !IN_LIBGCOV
24728
24729 2014-05-22  Richard Biener  <rguenther@suse.de>
24730
24731         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
24732         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
24733         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
24734         and deallocation site.
24735         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24736         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
24737         passing through the incoming points-to set.
24738         (handle_lhs_call): Use flags argument instead of recomputing it.
24739         (find_func_aliases_for_call): Call handle_lhs_call with proper
24740         call return flags.
24741
24742 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
24743
24744         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
24745         all padding bits in REAL_VALUE_TYPE are cleared.
24746
24747 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24748
24749         Cleanup and improve multipass_dfa_lookahead_guard
24750         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
24751         (core2i7_first_cycle_multipass_begin,)
24752         (core2i7_first_cycle_multipass_issue,)
24753         (core2i7_first_cycle_multipass_backtrack): Update signature.
24754         * config/ia64/ia64.c
24755         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
24756         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
24757         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
24758         hook definition.
24759         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
24760         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
24761         values.
24762         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
24763         return values.
24764         * doc/tm.texi: Regenerate.
24765         * doc/tm.texi.in
24766         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
24767         * haifa-sched.c (ready_try): Make signed to allow negative values.
24768         (rebug_ready_list_1): Update.
24769         (choose_ready): Simplify.
24770         (sched_extend_ready_list): Update.
24771
24772 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24773
24774         Remove IA64 speculation tweaking flags
24775         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
24776         speculation tuning flags.
24777         (msched-prefer-non-data-spec-insns,)
24778         (msched-prefer-non-control-spec-insns): Obsolete options.
24779         * haifa-sched.c (choose_ready): Remove handling of
24780         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24781         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
24782         and PREFER_NON_DATA_SPEC.
24783         * sel-sched.c (process_spec_exprs): Remove handling of
24784         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24785
24786 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24787
24788         Improve scheduling debug output
24789         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
24790         (advance_one_cycle): Update.
24791         (schedule_insn, queue_to_ready): Add debug printouts.
24792         (debug_ready_list_1): New static function.
24793         (debug_ready_list): Update.
24794         (max_issue): Add debug printouts.
24795         (dump_insn_stream): New static function.
24796         (schedule_block): Use it.  Also better indent printouts.
24797
24798 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24799
24800         Fix sched_insn debug counter
24801         * haifa-sched.c (schedule_insn): Update.
24802         (struct haifa_saved_data): Add nonscheduled_insns_begin.
24803         (save_backtrack_point, restore_backtrack_point): Update.
24804         (first_nonscheduled_insn): New static function.
24805         (queue_to_ready, choose_ready): Use it.
24806         (schedule_block): Init nonscheduled_insns_begin.
24807         (sched_emit_insn): Update.
24808
24809
24810 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
24811
24812         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
24813         to GENERAL_REGS.
24814         (aarch64_secondary_reload) : LikeWise.
24815         (aarch64_class_max_nregs) : Remove CORE_REGS.
24816         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
24817         (REG_CLASS_NAMES) : Likewise.
24818         (REG_CLASS_CONTENTS) : LikeWise.
24819         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
24820
24821 2014-05-21  Guozhi Wei  <carrot@google.com>
24822
24823         PR target/61202
24824         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
24825         constraint.
24826         (vqdmulhq_n_s16): Likewise.
24827
24828 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
24829
24830         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
24831
24832 2014-05-21  Marek Polacek  <polacek@redhat.com>
24833
24834         PR sanitizer/61272
24835         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
24836
24837 2014-05-21  Martin Jambor  <mjambor@suse.cz>
24838
24839         * doc/invoke.texi (Optimize Options): Document parameters
24840         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
24841         ipa-cp-array-index-hint-bonus.
24842
24843 2014-05-21  Mark Wielaard  <mjw@redhat.com>
24844
24845         PR debug/16063
24846         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
24847         version >= 3 or not strict DWARF.
24848         * langhooks.h (struct lang_hooks_for_types): Add
24849         enum_underlying_base_type.
24850         * langhooks.c (lhd_enum_underlying_base_type): New function.
24851         * gcc/langhooks.h (struct lang_hooks_for_types): Add
24852         enum_underlying_base_type.
24853         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
24854         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
24855         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
24856
24857 2014-05-21  Richard Biener  <rguenther@suse.de>
24858
24859         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
24860
24861 2014-05-21  John Marino  <gnugcc@marino.st>
24862
24863         * config.gcc (*-*-dragonfly*): New target.
24864         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
24865         * configure: Regenerate.
24866         * config/dragonfly-stdint.h: New.
24867         * config/dragonfly.h: New.
24868         * config/dragonfly.opt: New.
24869         * config/i386/dragonfly.h: New.
24870         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
24871
24872 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
24873
24874         * tree.def (VOID_CST): New.
24875         * tree-core.h (TI_VOID): New.
24876         * tree.h (void_node): New.
24877         * tree.c (tree_node_structure_for_code, tree_code_size)
24878         (iterative_hash_expr): Handle VOID_CST.
24879         (build_common_tree_nodes): Initialize void_node.
24880
24881 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
24882
24883         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
24884         functions.
24885         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
24886
24887         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
24888         more places.
24889
24890         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
24891         flag_reorder_blocks_and_partition.
24892         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
24893
24894 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
24895
24896         PR target/54236
24897         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
24898         constraints.
24899         (*addc_r_t): Add new insn_and_split.
24900
24901 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
24902
24903         PR middle-end/61252
24904         * omp-low.c (handle_simd_reference): New function.
24905         (lower_rec_input_clauses): Use it.  Defer adding reference
24906         initialization even for reduction without placeholder if in simd,
24907         handle it properly later on.
24908
24909 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24910
24911         PR tree-optimization/60899
24912         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
24913         assume all static symbols will have definition wile parsing and
24914         check the do have definition later in compilation; check that
24915         variable referring symbol will be output before concluding that
24916         reference is safe; be conservative for referring local statics;
24917         be more precise about when comdat is output in other partition.
24918
24919 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24920
24921         PR bootstrap/60984
24922         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
24923         parameter.
24924         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
24925         (ipa_inline): Loop inline_to_all_callers until no more aliases
24926         are removed.
24927
24928 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24929
24930         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
24931         set writeonly flag only for vars actually written to.
24932
24933 2014-05-20  Dehao Chen  <dehao@google.com>
24934
24935         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
24936         and callee count to get clone count.
24937         * tree-inline.c (expand_call_inline): Use callee count instead of bb
24938         count in copy_body.
24939
24940 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
24941
24942         PR rtl-optimization/61243
24943         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
24944
24945 2014-05-20  Xinliang David Li  <davidxl@google.com>
24946
24947         * cgraphunit.c (walk_polymorphic_call_targets): Add
24948         dbgcnt and fopt-info support.
24949         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
24950         * ipa-devirt.c (ipa_devirt): Ditto.
24951         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
24952         * ipa.c (walk_polymorphic_call_targets): Ditto.
24953         * gimple-fold.c (fold_gimple_assign): Ditto.
24954         (gimple_fold_call): Ditto.
24955         * dbgcnt.def: New counter.
24956
24957 2014-05-20  DJ Delorie  <dj@redhat.com>
24958
24959         * config/msp430/msp430.md (split): Don't allow subregs when
24960         splitting SImode adds.
24961         (andneghi): Fix subtraction logic.
24962         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
24963
24964 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24965
24966         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
24967         symbols.
24968         * except.c (switch_to_exception_section, resolve_unique_section,
24969         get_named_text_section, default_function_rodata_section,
24970         align_variable, get_block_for_decl, default_section_type_flags):
24971         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
24972         * symtab.c (symtab_add_to_same_comdat_group,
24973         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
24974         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
24975         Likewise.
24976         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
24977         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
24978         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
24979         (c6x_function_in_section_p): Likewise.
24980         * config/darwin.c (machopic_select_section): Likewise.
24981         * config/arm/arm.c (arm_function_in_section_p): Likewise.
24982         * config/mips/mips.c (mips_function_rodata_section): Likewise.
24983         * config/mep/mep.c (mep_select_section): LIkewise.
24984         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
24985
24986 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
24987
24988         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
24989         EH region of calls to pure functions that can throw an exception.
24990         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
24991         (copy_reference_ops_from_call): Also copy the EH region of the call if
24992         it can throw an exception.
24993
24994 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24995
24996         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
24997         nested VEC_SELECTs that are inverses of each other.
24998
24999 2014-05-20  Richard Biener  <rguenther@suse.de>
25000
25001         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
25002         (extract_and_process_scc_for_name): not here.
25003         (cond_dom_walker::before_dom_children): Only process
25004         stmts that end the BB in interesting ways.
25005         (run_scc_vn): Mark param uses as visited.
25006
25007 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25008
25009         * config/arm/arm.md (arith_shiftsi): Do not predicate for
25010         arm_restrict_it.
25011
25012 2014-05-20  Nick Clifton  <nickc@redhat.com>
25013
25014         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
25015         (msp430_gimplify_va_arg_expr): New function.
25016         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
25017
25018         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
25019         operand 0 in order to prevent confusion about the number of
25020         registers involved.
25021
25022 2014-05-20  Richard Biener  <rguenther@suse.de>
25023
25024         PR tree-optimization/61221
25025         * tree-ssa-pre.c (el_to_update): Remove.
25026         (eliminate_dom_walker::before_dom_children): Handle released
25027         VDEFs by value-numbering them to the associated VUSE.  Update
25028         stmt immediately for substituted call address.
25029         (eliminate): Remove delayed stmt updating code.
25030         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
25031         possibly late re-numbered vuses.
25032         (vn_reference_lookup_2): Adjust.
25033         (vn_reference_lookup_pieces): Likewise.
25034         (vn_reference_lookup): Likewise.
25035
25036 2014-05-20  Richard Biener  <rguenther@suse.de>
25037
25038         * config.gcc: Remove need_64bit_hwint.
25039         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
25040         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
25041         it to be true.
25042         * config.in: Regenerate.
25043         * configure: Likewise.
25044
25045 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
25046
25047         * doc/extend.texi: Create Label Attributes section,
25048         move all label attributes into it and reference it.
25049
25050 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
25051
25052         * arm.c (thumb1_reorg): When scanning backwards skip anything
25053         that's not a proper insn.
25054
25055 2014-05-19  Richard Biener  <rguenther@suse.de>
25056
25057         PR tree-optimization/61221
25058         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
25059         Do nothing for unreachable blocks.
25060         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
25061         Improve unreachability detection.
25062
25063 2014-05-19  Richard Biener  <rguenther@suse.de>
25064
25065         PR tree-optimization/61209
25066         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
25067
25068 2014-05-19  Nick Clifton  <nickc@redhat.com>
25069
25070         * except.c (init_eh): Fix computation of builtin setjmp buffer
25071         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
25072
25073 2014-05-19  Richard Biener  <rguenther@suse.de>
25074
25075         PR tree-optimization/61184
25076         * tree-vrp.c (is_negative_overflow_infinity): Use
25077         TREE_OVERFLOW_P and do that check first.
25078         (is_positive_overflow_infinity): Likewise.
25079         (is_overflow_infinity): Likewise.
25080         (vrp_operand_equal_p): Properly treat operands with
25081         differing overflow as not equal.
25082
25083 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
25084
25085         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
25086         shift simplification where it was intended.
25087
25088 2014-05-19  Christian Bruel  <christian.bruel@st.com>
25089
25090         PR target/61195
25091         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
25092
25093 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
25094
25095         PR target/61084
25096         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
25097         than wide_int.
25098
25099 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
25100
25101         * reg-notes.def (CROSSING_JUMP): Likewise.
25102         * rtl.h (rtx_def): Update comment for jump flag.
25103         (CROSSING_JUMP_P): Define.
25104         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
25105         of a REG_CROSSING_JUMP note.
25106         * cfghooks.c (tidy_fallthru_edges): Likewise.
25107         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
25108         * emit-rtl.c (try_split): Likewise.
25109         * haifa-sched.c (sched_create_recovery_edges): Likewise.
25110         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
25111         * jump.c (redirect_jump_2): Likewise.
25112         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
25113         (relax_delay_slots): Likewise.
25114         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
25115         (bbit_di): Likewise.
25116         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
25117         * config/sh/sh.md (jump_compact): Likewise.
25118         * bb-reorder.c (rotate_loop): Likewise.
25119         (pass_duplicate_computed_gotos::execute): Likewise.
25120         (add_reg_crossing_jump_notes): Rename to...
25121         (update_crossing_jump_flags): ...this.
25122         (pass_partition_blocks::execute): Update accordingly.
25123
25124 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
25125
25126         * tree.h: Remove extraneous template <>.
25127
25128 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
25129
25130         * ipa.c (symtab_remove_unreachable_nodes): Remove
25131         symbol from comdat group if its body was eliminated.
25132         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
25133         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
25134         (symtab_unregister_node): ... this one.
25135         (verify_symtab_base): More strict checking of comdats.
25136         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
25137
25138 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
25139
25140         * tree-pass.h (make_pass_ipa_comdats): New pass.
25141         * timevar.def (TV_IPA_COMDATS): New timevar.
25142         * passes.def (pass_ipa_comdats): Add.
25143         * Makefile.in (OBJS): Add ipa-comdats.o
25144         * ipa-comdats.c: New file.
25145
25146 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
25147
25148         * ipa.c (update_visibility_by_resolution_info): New function.
25149         (function_and_variable_visibility): Use it.
25150
25151 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
25152
25153         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
25154         New functions.
25155         (FOR_EACH_DEFINED_SYMBOL): New macro.
25156         (varpool_first_static_initializer, varpool_next_static_initializer,
25157         varpool_first_defined_variable, varpool_next_defined_variable):
25158         Fix comments.
25159         (symtab_in_same_comdat_p): Correctly deal with inline functions.
25160
25161 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25162
25163         * ggc-page.c (ggc_handle_finalizers): Add comment.
25164
25165 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25166
25167         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
25168         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
25169         (ggc_internal_cleared_alloc): Likewise.
25170         * ggc-page.c (finalizer): New class.
25171         (vec_finalizer): Likewise.
25172         (globals::finalizers): New member.
25173         (globals::vec_finalizers): Likewise.
25174         (ggc_internal_alloc): Record the finalizer if any for the block being
25175         allocated.
25176         (ggc_handle_finalizers): New function.
25177         (ggc_collect): Call ggc_handle_finalizers.
25178         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
25179         finalizer.
25180         (ggc_internal_cleared_alloc): Likewise.
25181         (finalize): New function.
25182         (need_finalization_p): Likewise.
25183         (ggc_alloc): Install the type's destructor as the finalizer if it
25184         might do something.
25185         (ggc_cleared_alloc): Likewise.
25186         (ggc_vec_alloc): Likewise.
25187         (ggc_cleared_vec_alloc): Likewise.
25188
25189 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25190
25191         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
25192
25193 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25194
25195         * alias.c (record_alias_subset): Adjust.
25196         * bitmap.c (bitmap_element_allocate): Likewise.
25197         (bitmap_gc_alloc_stat): Likewise.
25198         * cfg.c (init_flow): Likewise.
25199         (alloc_block): Likewise.
25200         (unchecked_make_edge): Likewise.
25201         * cfgloop.c (alloc_loop): Likewise.
25202         (flow_loops_find): Likewise.
25203         (rescan_loop_exit): Likewise.
25204         * cfgrtl.c (init_rtl_bb_info): Likewise.
25205         * cgraph.c (insert_new_cgraph_node_version): Likewise.
25206         (cgraph_allocate_node): Likewise.
25207         (cgraph_create_edge_1): Likewise.
25208         (cgraph_allocate_init_indirect_info): Likewise.
25209         * cgraphclones.c (cgraph_clone_edge): Likewise.
25210         * cgraphunit.c (add_asm_node): Likewise.
25211         (init_lowered_empty_function): Likewise.
25212         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
25213         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25214         (alpha_use_linkage): Likewise.
25215         * config/arc/arc.c (arc_init_machine_status): Likewise.
25216         * config/arm/arm.c (arm_init_machine_status): Likewise.
25217         * config/avr/avr.c (avr_init_machine_status): Likewise.
25218         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25219         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
25220         * config/cris/cris.c (cris_init_machine_status): Likewise.
25221         * config/darwin.c (machopic_indirection_name): Likewise.
25222         (darwin_build_constant_cfstring): Likewise.
25223         (darwin_enter_string_into_cfstring_table): Likewise.
25224         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
25225         * config/frv/frv.c (frv_init_machine_status): Likewise.
25226         * config/i386/i386.c (get_dllimport_decl): Likewise.
25227         (ix86_init_machine_status): Likewise.
25228         (assign_386_stack_local): Likewise.
25229         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25230         (i386_pe_maybe_record_exported_symbol): Likewise.
25231         (i386_pe_record_stub): Likewise.
25232         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25233         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25234         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25235         (m32c_note_pragma_address): Likewise.
25236         * config/mep/mep.c (mep_init_machine_status): Likewise.
25237         (mep_note_pragma_flag): Likewise.
25238         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25239         (mips16_local_alias): Likewise.
25240         (mips_init_machine_status): Likewise.
25241         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25242         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25243         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
25244         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
25245         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
25246         * config/pa/pa.c (pa_init_machine_status): Likewise.
25247         (pa_get_deferred_plabel): Likewise.
25248         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
25249         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25250         (rs6000_init_machine_status): Likewise.
25251         (output_toc): Likewise.
25252         * config/s390/s390.c (s390_init_machine_status): Likewise.
25253         * config/score/score.c (score_output_external): Likewise.
25254         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25255         * config/spu/spu.c (spu_init_machine_status): Likewise.
25256         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
25257         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
25258         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25259         * coverage.c (coverage_end_function): Likewise.
25260         * dbxout.c (dbxout_init): Likewise.
25261         * doc/gty.texi: Don't mention variable_size attribute.
25262         * dwarf2cfi.c (new_cfi): Adjust.
25263         (new_cfi_row): Likewise.
25264         (copy_cfi_row): Likewise.
25265         (create_cie_data): Likewise.
25266         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
25267         (new_loc_descr): Likewise.
25268         (find_AT_string_in_table): Likewise.
25269         (add_addr_table_entry): Likewise.
25270         (new_die): Likewise.
25271         (add_var_loc_to_decl): Likewise.
25272         (clone_die): Likewise.
25273         (clone_as_declaration): Likewise.
25274         (break_out_comdat_types): Likewise.
25275         (new_loc_list): Likewise.
25276         (add_loc_descr_to_each): Likewise.
25277         (add_location_or_const_value_attribute): Likewise.
25278         (add_linkage_name): Likewise.
25279         (lookup_filename): Likewise.
25280         (dwarf2out_var_location): Likewise.
25281         (new_line_info_table): Likewise.
25282         (dwarf2out_init): Likewise.
25283         (mem_loc_descriptor): Likewise.
25284         (loc_descriptor): Likewise.
25285         (add_const_value_attribute): Likewise.
25286         (tree_add_const_value_attribute): Likewise.
25287         (comp_dir_string): Likewise.
25288         (dwarf2out_vms_debug_main_pointer): Likewise.
25289         (string_cst_pool_decl): Likewise.
25290         * emit-rtl.c (set_mem_attrs): Likewise.
25291         (get_reg_attrs): Likewise.
25292         (start_sequence): Likewise.
25293         (init_emit): Likewise.
25294         (init_emit_regs): Likewise.
25295         * except.c (init_eh_for_function): Likewise.
25296         (gen_eh_region): Likewise.
25297         (gen_eh_region_catch): Likewise.
25298         (gen_eh_landing_pad): Likewise.
25299         (add_call_site): Likewise.
25300         * function.c (add_frame_space): Likewise.
25301         (insert_temp_slot_address): Likewise.
25302         (assign_stack_temp_for_type): Likewise.
25303         (get_hard_reg_initial_val): Likewise.
25304         (allocate_struct_function): Likewise.
25305         (prepare_function_start): Likewise.
25306         (types_used_by_var_decl_insert): Likewise.
25307         * gengtype.c (variable_size_p): Remove function.
25308         (enum alloc_quantity): Remove enum.
25309         (write_typed_alloc_def): Remove function.
25310         (write_typed_struct_alloc_def): Likewise.
25311         (write_typed_typedef_alloc_def): Likewise.
25312         (write_typed_alloc_defns): Likewise.
25313         (main): Adjust.
25314         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
25315         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
25316         * ggc.h (ggc_alloc): new function.
25317         (ggc_cleared_alloc): Likewise.
25318         (ggc_vec_alloc): Template on type of vector element, and remove
25319         element size argument.
25320         (ggc_cleared_vec_alloc): Likewise.
25321         * gimple.c (gimple_build_omp_for): Adjust.
25322         (gimple_copy): Likewise.
25323         * ipa-cp.c (get_replacement_map): Likewise.
25324         (find_aggregate_values_for_callers_subset): Likewise.
25325         (known_aggs_to_agg_replacement_list): Likewise.
25326         * ipa-devirt.c (get_odr_type): Likewise.
25327         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
25328         (read_agg_replacement_chain): Likewise.
25329         * loop-iv.c (get_simple_loop_desc): Likewise.
25330         * lto-cgraph.c (input_node_opt_summary): Likewise.
25331         * lto-section-in.c (lto_new_in_decl_state): Likewise.
25332         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
25333         (input_eh_region): Likewise.
25334         (input_eh_lp): Likewise.
25335         (input_cfg): Likewise.
25336         * optabs.c (set_optab_libfunc): Likewise.
25337         (init_tree_optimization_optabs): Likewise.
25338         (set_conv_libfunc): Likewise.
25339         * passes.c (do_per_function_toporder): Likewise.
25340         * rtl.h: Don't use variable_size gty attribute.
25341         * sese.c (if_region_set_false_region): Adjust.
25342         * stringpool.c (gt_pch_save_stringpool): Likewise.
25343         * target-globals.c (save_target_globals): Likewise.
25344         * toplev.c (general_init): Likewise.
25345         * trans-mem.c (record_tm_replacement): Likewise.
25346         (split_bb_make_tm_edge): Likewise.
25347         * tree-cfg.c (move_sese_region_to_fn): Likewise.
25348         * tree-data-ref.h (lambda_vector_new): Likewise.
25349         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
25350         * tree-iterator.c (tsi_link_before): Likewise.
25351         (tsi_link_after): Likewise.
25352         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
25353         * tree-ssa-loop-niter.c (record_estimate): Likewise.
25354         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
25355         * tree-ssa-operands.h: Don't use variable_size gty attribute.
25356         * tree-ssa.c (init_tree_ssa): Adjust.
25357         * tree-ssanames.c (set_range_info): Likewise.
25358         (get_ptr_info): Likewise.
25359         (duplicate_ssa_name_ptr_info): Likewise.
25360         (duplicate_ssa_name_range_info): Likewise.
25361         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
25362         (unpack_ts_fixed_cst_value_fields): Likewise.
25363         * tree.c (build_fixed): Likewise.
25364         (build_real): Likewise.
25365         (build_string): Likewise.
25366         (decl_priority_info): Likewise.
25367         (decl_debug_expr_insert): Likewise.
25368         (decl_value_expr_insert): Likewise.
25369         (decl_debug_args_insert): Likewise.
25370         (type_hash_add): Likewise.
25371         (build_omp_clause): Likewise.
25372         * ubsan.c (decl_for_type_insert): Likewise.
25373         * varasm.c (get_unnamed_section): Likewise.
25374         (get_noswitch_section): Likewise.
25375         (get_section): Likewise.
25376         (get_block_for_section): Likewise.
25377         (create_block_symbol): Likewise.
25378         (build_constant_desc): Likewise.
25379         (create_constant_pool): Likewise.
25380         (force_const_mem): Likewise.
25381         (record_tm_clone_pair): Likewise.
25382         * varpool.c (varpool_create_empty_node): Likewise.
25383
25384 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25385
25386         * dwarf2out.c (tree_add_const_value_attribute): Call
25387         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
25388         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
25389         instead of ggc_internal_<x>alloc_stat.
25390         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
25391         (ggc_realloc): Likewise.
25392         * ggc-none.c (ggc_internal_alloc): Likewise.
25393         (ggc_internal_cleared_alloc): Likewise.
25394         * ggc-page.c: Likewise.
25395         * ggc.h (ggc_internal_alloc_stat): Likewise.
25396         (ggc_internal_alloc): Remove macro.
25397         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
25398         (ggc_internal_cleared_alloc): Remove macro.
25399         (GGC_RESIZEVEC): Adjust.
25400         (ggc_resizevar): Remove macro.
25401         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
25402         (ggc_internal_cleared_vec_alloc_stat): Likewise.
25403         (ggc_internal_vec_cleared_alloc): Remove macro.
25404         (ggc_alloc_atomic_stat): Drop _stat suffix.
25405         (ggc_alloc_atomic): Remove macro.
25406         (ggc_alloc_cleared_atomic): Remove macro.
25407         (ggc_alloc_string_stat): Drop _stat suffix.
25408         (ggc_alloc_string): Remove macro.
25409         (ggc_alloc_rtx_def_stat): Adjust.
25410         (ggc_alloc_tree_node_stat): Likewise.
25411         (ggc_alloc_cleared_tree_node_stat): Likewise.
25412         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
25413         (ggc_alloc_cleared_simd_clone_stat): Likewise.
25414         * gimple.c (gimple_build_omp_for): Likewise.
25415         (gimple_copy): Likewise.
25416         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
25417         * toplev.c (realloc_for_line_map): Adjust.
25418         * tree-data-ref.h (lambda_vector_new): Likewise.
25419         * tree-phinodes.c (allocate_phi_node): Likewise.
25420         * tree.c (grow_tree_vec_stat): Likewise.
25421         * vec.h (va_gc::reserve): Adjust.
25422
25423 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
25424
25425         * config/microblaze/microblaze.c (break_handler): New Declaration.
25426         (microblaze_break_function_p,microblaze_is_break_handler): New.
25427         (compute_frame_size): Use microblaze_break_function_p.
25428         Add the test of break_handler.
25429         (microblaze_function_prologue) : Add the test of variable
25430         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
25431         (microblaze_function_epilogue) : Add the test of break_handler.
25432         (microblaze_globalize_label) : Add the test of break_handler.
25433         Check the name by BREAK_HANDLER_NAME.
25434
25435         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
25436
25437         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
25438         microblaze_is_break_handler test.
25439         (call_internal1,call_value_intern): Use microblaze_break_function_p.
25440         Use SYMBOL_REF_DECL.
25441
25442         * config/microblaze/microblaze-protos.h
25443         (microblaze_break_function_p,microblaze_is_break_handler):
25444         New Declaration.
25445
25446         * doc/extend.texi (MicroBlaze break_handler Functions): Document
25447         new MicroBlaze break_handler functions.
25448
25449 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
25450
25451         * doc/extend.texi (Size of an asm): Move node text according
25452         to its @menu entry position.
25453
25454 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
25455
25456         PR tree-optimization/61140
25457         PR tree-optimization/61150
25458         PR tree-optimization/61197
25459         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
25460
25461 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
25462
25463         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
25464
25465 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
25466
25467         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
25468         __SIZEOF_INT128__ is defined.
25469
25470 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
25471
25472         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
25473         (rs6000_delegitimize_address): Use it.
25474
25475 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
25476
25477         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
25478         inplace argument.  Store the new address in the original MEM when true.
25479         * emit-rtl.c (change_address_1): Likewise.
25480         (adjust_address_1, adjust_automodify_address_1, offset_address):
25481         Update accordingly.
25482         * rtl.h (plus_constant): Add an inplace argument.
25483         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
25484         when true.  Avoid generating (plus X (const_int 0)).
25485         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
25486         in-place.  Pass true to plus_constant.
25487         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
25488
25489 2014-05-16  Dehao Chen  <dehao@google.com>
25490
25491         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
25492
25493 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
25494
25495         PR target/54089
25496         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
25497         patterns.
25498         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
25499
25500 2014-05-16  Dehao Chen  <dehao@google.com>
25501
25502         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
25503         optimize_function_for_size_p.
25504         * regs.h (REG_FREQ_FROM_BB): Likewise.
25505
25506 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
25507
25508         PR target/51244
25509         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
25510         negt_reg_operand cases.
25511         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
25512         predicate.
25513         * config/sh/predicates.md (cbranch_treg_value): Simplify.
25514
25515 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
25516
25517         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
25518         target variants.
25519
25520 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
25521
25522         Revert:
25523         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
25524
25525         * tree-cfg.c (dump_function_to_file): Dump the return type of
25526         functions, in a line to itself before the function body, mimicking
25527         the layout of a C function.
25528
25529 2014-05-16  Dehao Chen  <dehao@google.com>
25530
25531         * cfghooks.c (make_forwarder_block): Use direct computation to
25532         get fall-through edge's count and frequency.
25533
25534 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
25535
25536         * config/arc/arc.c (arc_init): Fix typo in error message.
25537         * config/i386/i386.c (ix86_expand_builtin): Likewise.
25538         (split_stack_prologue_scratch_regno): Likewise.
25539         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
25540         word from error message.
25541
25542 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
25543
25544         * ira-costs.c: Fix typo in comment.
25545
25546 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
25547
25548         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
25549
25550 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
25551
25552         * varpool.c (dump_varpool_node): Dump write-only flag.
25553         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
25554         write-only flag.
25555         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
25556         write-only variables.
25557         * ipa.c (process_references): New function.
25558         (set_readonly_bit): New function.
25559         (set_writeonly_bit): New function.
25560         (clear_addressable_bit): New function.
25561         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
25562         fix handling of aliases.
25563         * cgraph.h (struct varpool_node): Add writeonly flag.
25564
25565 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
25566
25567         PR rtl-optimization/60969
25568         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
25569         Calculate costs for this case.
25570
25571 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
25572
25573         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
25574         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
25575
25576 2014-05-16  Richard Biener  <rguenther@suse.de>
25577
25578         PR tree-optimization/61194
25579         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
25580         bool patterns ending in a COND_EXPR.
25581
25582 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25583
25584         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
25585
25586 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25587
25588         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
25589         where we were unable to cost an RTX.
25590
25591 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25592
25593         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
25594         HIGH, LO_SUM.
25595
25596 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25597             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25598
25599         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
25600
25601 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25602             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25603
25604         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
25605         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
25606
25607 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25608             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25609
25610         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
25611         operators.
25612
25613 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25614             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25615
25616         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25617         DIV/MOD.
25618
25619 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25620             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25621
25622         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
25623         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
25624
25625 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25626             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25627
25628         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25629         rotates and shifts.
25630
25631 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25632             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25633
25634         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
25635         ZERO_EXTEND and SIGN_EXTEND better.
25636
25637 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25638             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25639
25640         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
25641         logical operations.
25642
25643 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25644             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25645
25646         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
25647         costs when costing loads and stores to memory.
25648
25649 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25650             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
25651
25652         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
25653         for SET RTX.
25654
25655 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25656
25657         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
25658
25659 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25660             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25661
25662         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
25663         to...
25664         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
25665         well formed.
25666         (aarch64_rtx_mult_cost): New.
25667         (aarch64_rtx_costs): Use it, refactor as appropriate.
25668
25669 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25670             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25671
25672         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
25673         emit instructions, return number of instructions which would
25674         be emitted.
25675         (aarch64_add_constant): Update call to aarch64_build_constant.
25676         (aarch64_output_mi_thunk): Likewise.
25677         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
25678         a CONST_DOUBLE.
25679
25680 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25681
25682         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
25683         (TARGET_RTX_COSTS): Call it.
25684
25685 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25686
25687         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
25688         (cortexa57_vector_cost): Likewise.
25689         (cortexa57_tunings): Use them.
25690
25691 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25692
25693         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
25694         (cpu_addrcost_table): Use it.
25695         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
25696         (aarch64_address_cost): Rewrite using aarch64_classify_address,
25697         move it.
25698
25699 2014-05-16  Richard Biener  <rguenther@suse.de>
25700
25701         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
25702         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
25703         (visit_phi): Ignore edges marked as not executable.
25704         (class cond_dom_walker): New.
25705         (cond_dom_walker::before_dom_children): Value-number
25706         control statements and mark successor edges as not
25707         executable if possible.
25708         (run_scc_vn): First walk all control statements in
25709         dominator order, marking edges as not executable.
25710         * tree-inline.c (copy_edges_for_bb): Be not confused
25711         about random edge flags.
25712
25713 2014-05-16  Richard Biener  <rguenther@suse.de>
25714
25715         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
25716
25717 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
25718
25719         PR target/61193
25720         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
25721         (__TM_simple_begin): Use it.
25722         (__TM_begin): Likewise.
25723
25724 2014-05-15  Martin Jambor  <mjambor@suse.cz>
25725
25726         PR ipa/61085
25727         * ipa-prop.c (update_indirect_edges_after_inlining): Check
25728         type_preserved flag when the indirect edge is polymorphic.
25729
25730 2014-05-15  Martin Jambor  <mjambor@suse.cz>
25731
25732         PR tree-optimization/61090
25733         * tree-sra.c (sra_modify_expr): Pass the current gsi to
25734         build_ref_for_model.
25735
25736 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25737
25738         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
25739         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
25740
25741 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
25742
25743         PR tree-optimization/61158
25744         * fold-const.c (fold_binary_loc): If X is zero-extended and
25745         shiftc >= prec, make sure zerobits is all ones instead of
25746         invoking undefined behavior.
25747
25748 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25749
25750         * regcprop.h: New file.
25751         * regcprop.c (skip_debug_insn_p): New decl.
25752         (replace_oldest_value_reg): Check skip_debug_insn_p.
25753         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
25754         * shrink-wrap.c: Include regcprop.h.
25755         (prepare_shrink_wrap): Call
25756         copyprop_hardreg_forward_bb_without_debug_insn.
25757
25758 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25759
25760         * shrink-wrap.h: Update comment.
25761         * shrink-wrap.c: Update comment.
25762         (next_block_for_reg): Rename to live_edge_for_reg.
25763         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
25764         (move_insn_for_shrink_wrap): Split live_edge.
25765         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
25766
25767 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25768
25769         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
25770         Delete.
25771         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
25772         * config/sparc/sparc.md (fptype_ut699): New attribute.
25773         (in_branch_delay): Return false if -mfix-ut699 is specified and
25774         fptype_ut699 is set to single.
25775         (truncdfsf2): Add fptype_ut699 attribute.
25776         (fix_truncdfsi2): Likewise.
25777         (floatsisf2): Change fptype attribute.
25778         (fix_truncsfsi2): Likewise.
25779         (negtf2_notv9): Delete.
25780         (negtf2_v9): Likewise.
25781         (negtf2_hq): New instruction.
25782         (negtf2): New instruction and splitter.
25783         (negdf2_notv9): Rewrite.
25784         (abstf2_notv9): Delete.
25785         (abstf2_hq_v9): Likewise.
25786         (abstf2_v9): Likewise.
25787         (abstf2_hq): New instruction.
25788         (abstf2): New instruction and splitter.
25789         (absdf2_notv9): Rewrite.
25790
25791 2014-05-14  Cary Coutant  <ccoutant@google.com>
25792
25793         PR debug/61013
25794         * opts.c (common_handle_option): Don't special-case "-g".
25795         (set_debug_level): Default to at least level 2 with "-g".
25796
25797 2014-05-14  DJ Delorie  <dj@redhat.com>
25798
25799         * config/msp430/msp430.c (msp430_builtin): Add
25800         MSP430_BUILTIN_DELAY_CYCLES.
25801         (msp430_init_builtins): Register void __delay_cycles(long long).
25802         (msp430_builtin_decl): Add it.
25803         (cg_magic_constant): New.
25804         (msp430_expand_delay_cycles): New.
25805         (msp430_expand_builtin): Call it.
25806         (msp430_print_operand_raw): Change integer printing from "int" to
25807         HOST_WIDE_INT.
25808         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
25809         (delay_cycles_start): New.
25810         (delay_cycles_end): New.
25811         (delay_cycles_32): New.
25812         (delay_cycles_32x): New.
25813         (delay_cycles_16): New.
25814         (delay_cycles_16x): New.
25815         (delay_cycles_2): New.
25816         (delay_cycles_1): New.
25817         * doc/extend.texi: Document __delay_cycles().
25818
25819 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
25820
25821         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
25822         length attribute computation.
25823
25824 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
25825
25826         PR debug/61188
25827         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
25828
25829 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
25830
25831         PR target/61084
25832         * config/sparc/sparc.md: Fix types of low and high in DI constant
25833         splitter.  Use gen_int_mode in some other splitters.
25834
25835 2014-05-14  Martin Jambor  <mjambor@suse.cz>
25836
25837         PR ipa/60897
25838         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
25839
25840 2014-05-14  James Norris  <jnorris@codesourcery.com>
25841
25842         * omp-low.c (expand_parallel_call): Remove shadow variable.
25843         (expand_omp_taskreg): Likewise.
25844
25845 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
25846
25847         * common/config/i386/i386-common.c
25848         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
25849         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
25850         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
25851         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
25852         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
25853         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
25854         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
25855         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
25856         xsavecintrin.h, xsavesintrin.h.
25857         (x86_64-*-*): Ditto.
25858         * config/i386/clflushoptintrin.h: New.
25859         * config/i386/xsavecintrin.h: Ditto.
25860         * config/i386/xsavesintrin.h: Ditto.
25861         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
25862         (bit_XSAVES): Ditto.
25863         (bit_XSAVES): Ditto.
25864         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
25865         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
25866         -mno-clflushopt.
25867         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
25868         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
25869         OPTION_MASK_ISA_XSAVES.
25870         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
25871         -mxsavec, -mxsaves.
25872         (PTA_CLFLUSHOPT) Define.
25873         (PTA_XSAVEC): Ditto.
25874         (PTA_XSAVES): Ditto.
25875         (ix86_option_override_internal): Handle new options.
25876         (ix86_valid_target_attribute_inner_p): Ditto.
25877         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
25878         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
25879         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
25880         (bdesc_special_args): Add __builtin_ia32_xsaves,
25881         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
25882         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
25883         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
25884         (ix86_expand_builtin): Handle new builtins.
25885         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
25886         (TARGET_CLFLUSHOPT_P): Ditto.
25887         (TARGET_XSAVEC): Ditto.
25888         (TARGET_XSAVEC_P): Ditto.
25889         (TARGET_XSAVES): Ditto.
25890         (TARGET_XSAVES_P): Ditto.
25891         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
25892         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
25893         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
25894         (ANY_XRSTOR): New.
25895         (ANY_XRSTOR64): Ditto.
25896         (xrstor): Ditto.
25897         (xrstor): Change into <xrstor>.
25898         (xrstor_rex64): Change into <xrstor>_rex64.
25899         (xrstor64): Change into <xrstor>64
25900         (clflushopt): New.
25901         * config/i386/i386.opt (mclflushopt): New.
25902         (mxsavec): Ditto.
25903         (mxsaves): Ditto.
25904         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
25905         xsavecintrin.h.
25906         * doc/invoke.texi: Document new options.
25907
25908 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
25909
25910         PR rtl-optimization/60866
25911         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
25912         Default it to -1.  Pass it down to init_simplejump_data.
25913         (init_simplejump_data): New parameter old_seqno.  Pass it down
25914         to get_seqno_for_a_jump.
25915         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
25916         initializing new jump seqno as a last resort.  Add comment.
25917         (sel_redirect_edge_and_branch): Save old seqno of the conditional
25918         jump and pass it down to sel_init_new_insn.
25919         (sel_redirect_edge_and_branch_force): Likewise.
25920
25921 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
25922
25923         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
25924         shifted values to avoid build warning.
25925
25926 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25927
25928         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
25929         * cfgrtl.c (rtl_merge_blocks): Fix comment.
25930         (cfg_layout_merge_blocks): Likewise.
25931         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
25932
25933 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
25934
25935         PR rtl-optimization/60901
25936         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
25937         bb predecessor belongs to the same scheduling region.  Adjust comment.
25938
25939 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
25940
25941         * doc/sourcebuild.texi: (dfp_hw): Document.
25942         (p8vector_hw): Likewise.
25943         (powerpc_eabi_ok): Likewise.
25944         (powerpc_elfv2): Likewise.
25945         (powerpc_htm_ok): Likewise.
25946         (ppc_recip_hw): Likewise.
25947         (vsx_hw): Likewise.
25948
25949 2014-05-13  Cary Coutant  <ccoutant@google.com>
25950
25951         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
25952
25953 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
25954
25955         * gengtype-parse.c (require3): Eliminate in favor of...
25956         (require4): New.
25957         (require_template_declaration): Update to support optional single *
25958         on a type.
25959
25960         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
25961         (create_user_defined_type): Handle a single level of explicit
25962         pointerness within template arguments.
25963         (struct write_types_data): Add field "kind".
25964         (filter_type_name): Handle "*" character.
25965         (write_user_func_for_structure_ptr): Require a write_types_data
25966         rather than just a prefix string, so that we can look up the kind
25967         of the wtd and use it as an index into wrote_user_func_for_ptr,
25968         ensuring that such functions are written at most once.  Support
25969         subclasses by invoking the marking function of the ultimate base class.
25970         (write_user_func_for_structure_body): Require a write_types_data
25971         rather than just a prefix string, so that we can pass this to
25972         write_user_func_for_structure_ptr.
25973         (write_func_for_structure): Likewise.
25974         (ggc_wtd): Add initializer of new "kind" field.
25975         (pch_wtd): Likewise.
25976
25977         * gengtype.h (enum write_types_kinds): New.
25978         (struct type): Add field wrote_user_func_for_ptr to the "s"
25979         union member.
25980
25981 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
25982
25983         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
25984         instead of const_binop.
25985         (fold_binary_loc): Likewise.
25986
25987 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
25988
25989         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
25990         calculation to match get_ref_base_and_extent.
25991
25992 2014-05-13  Catherine Moore  <clm@codesourcery.com>
25993             Sandra Loosemore  <sandra@codesourcery.com>
25994
25995         * configure.ac: Fix assembly for explicit JALR relocation check.
25996         * configure: Regenerate.
25997
25998 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25999
26000         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
26001         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
26002         Remove associated type declarations and initialisations.
26003         (arm_expand_neon_builtin): Likewise.
26004         (neon_emit_pair_result_insn): Delete.
26005         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
26006         * config/arm/neon.md (neon_vtrn<mode>): Delete.
26007         (neon_vzip<mode>): Likewise.
26008         (neon_vuzp<mode>): Likewise.
26009
26010 2014-05-13  Richard Biener  <rguenther@suse.de>
26011
26012         PR ipa/60973
26013         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
26014         it needs revisiting whether the call still may be tail-called.
26015
26016 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26017
26018         * rtl.def (SYMBOL_REF): Remove middle "0" field.
26019         * rtl.h (block_symbol): Reduce number of fields to 2.
26020         (rtx_def): Add u2.symbol_ref_flags.
26021         (SYMBOL_REF_FLAGS): Use it.
26022         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
26023         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
26024         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
26025         Lower index of SYMBOL_REF_DATA.
26026         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
26027         Print SYMBOL_REF_FLAGS at the same time.
26028         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
26029
26030 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26031
26032         * rtl.def (VAR_LOCATION): Remove "i" field.
26033         * rtl.h (rtx_def): Add u2.var_location_status.
26034         (PAT_VAR_LOCATION_STATUS): Use it.
26035         (gen_rtx_VAR_LOCATION): Declare.
26036         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
26037         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
26038         * var-tracking.c (emit_note_insn_var_location): Remove casts.
26039
26040 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26041
26042         * rtl.def (scratch): Fix outdated comment and remove "0" field.
26043         * gengtype.c (adjust_field_rtx_def): Update accordingly.
26044
26045 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26046
26047         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
26048         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
26049         * rtl.h (rtx_def): Add insn_uid to u2 field.
26050         (RTX_FLAG_CHECK8): Delete in favor of...
26051         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
26052         (INSN_DELETED_P): Update accordingly.
26053         (INSN_UID): Use u2.insn_uid.
26054         (INSN_CHAIN_CODE_P): Define.
26055         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
26056         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
26057         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
26058         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
26059         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
26060         indices accordingly.
26061         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
26062         Update indices for insn-chain rtxes.
26063         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
26064         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
26065         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
26066         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
26067         * combine.c (try_combine): Likewise.
26068         * ira.c (setup_prohibited_mode_move_regs): Likewise.
26069
26070 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26071
26072         * rtl.def (REG): Remove middle field.
26073         * rtl.h (rtx_def): Add orignal_regno to u2.
26074         (ORIGINAL_REGNO): Use it instead of field 1.
26075         (REG_ATTRS): Lower field index accordingly.
26076         * gengtype.c (adjust_field_rtx_def): Remove handling of
26077         ORIGINAL_REGNO.  Move REG_ATTRS index down.
26078         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
26079         code that prints the REGNO.
26080
26081 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26082
26083         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
26084         GENERATOR_FILE.
26085
26086 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26087
26088         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
26089
26090 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
26091
26092         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
26093         (alloc_iv): Lower base expressions containing ADDR_EXPR.
26094
26095 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
26096
26097         * config/aarch64/aarch64-protos.h
26098         (aarch64_hard_regno_caller_save_mode): New prototype.
26099         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
26100         New function.
26101         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
26102
26103 2014-05-13  Christian Bruel  <christian.bruel@st.com>
26104
26105         * target.def (mode_switching): New hook vector.
26106         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
26107         (mode_exit, modepriority_to_mode): Likewise.
26108         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
26109         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26110         * target.h: Include tm.h and hard-reg-set.h.
26111         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
26112         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
26113         * doc/tm.texi Regenerate.
26114         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
26115         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26116         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
26117         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
26118         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
26119         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26120         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
26121         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
26122         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
26123         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
26124         (ix86_emit_mode_set): Hookify.
26125         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
26126         Delete.
26127         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26128         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
26129         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
26130         (epiphany_mode_priority_to_mode): Remove declaration.
26131         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
26132         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
26133         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
26134         Likewise.
26135         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
26136         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
26137         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
26138
26139 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
26140
26141         PR target/61060
26142         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
26143         is const0_rtx, return immediately.  Don't test count == 0 when
26144         it is always true.
26145
26146 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
26147
26148         * Makefile.in: add shrink-wrap.o.
26149         * config/i386/i386.c: include "shrink-wrap.h"
26150         * function.c: Likewise.
26151         (requires_stack_frame_p, next_block_for_reg,
26152         move_insn_for_shrink_wrap, prepare_shrink_wrap,
26153         dup_block_and_redirect): Move to shrink-wrap.c
26154         (thread_prologue_and_epilogue_insns): Extract three code segments
26155         as functions in shrink-wrap.c
26156         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
26157         shrink-wrap.h
26158         * shrink-wrap.c: New file.
26159         * shrink-wrap.h: New file.
26160
26161 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
26162
26163         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
26164         reference to Solaris.
26165
26166 2014-05-12  Mike Stump  <mikestump@comcast.net>
26167
26168         PR other/31778
26169         * genattrtab.c (filename): Add.
26170         (convert_set_attr_alternative): Improve error message.
26171         (check_defs): Restore read_md_filename for error messages.
26172         (gen_insn): Save filename.
26173
26174 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
26175
26176         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
26177         -fno-local-ivars and -fivar-visibility.
26178         * c-family/c.opt: Make -Wshadow also implicitly enable
26179         -Wshadow-ivar.
26180
26181 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
26182
26183         * doc/tm.texi: Remove reference to deleted macro.
26184         * doc/tm.texi.in: Likewise.
26185
26186 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
26187
26188         PR target/60991
26189         * config/avr/avr.c (avr_out_store_psi): Use correct constant
26190         to restore Y.
26191
26192 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
26193
26194         PR libgcc/61152
26195         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
26196         * config/arm/aout.h (License): Same.
26197         * config/arm/bpabi.h (License): Same.
26198         * config/arm/elf.h (License): Same.
26199         * config/arm/linux-elf.h (License): Same.
26200         * config/arm/linux-gas.h (License): Same.
26201         * config/arm/netbsd-elf.h (License): Same.
26202         * config/arm/uclinux-eabi.h (License): Same.
26203         * config/arm/uclinux-elf.h (License): Same.
26204         * config/arm/vxworks.h (License): Same.
26205
26206 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
26207
26208         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
26209         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
26210         number of operands to 3.
26211         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
26212         * tree-nested.c (convert_nonlocal_omp_clauses,
26213         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
26214         * gimplify.c (gimplify_scan_omp_clauses): Handle
26215         OMP_CLAUSE_LINEAR_STMT.
26216         * omp-low.c (lower_rec_input_clauses): Fix typo.
26217         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
26218         cast between Fortran boolean_type_node and C _Bool if
26219         needed.
26220
26221 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
26222
26223         PR tree-optimization/61136
26224         * wide-int.h (multiple_of_p): Define a version that doesn't return
26225         the quotient.
26226         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
26227         integer_zerop/const_binop pair.
26228         (multiple_of_p): Likewise, converting both operands to widest_int
26229         precision.
26230
26231 2014-05-09  Teresa Johnson  <tejohnson@google.com>
26232
26233         * cgraphunit.c (analyze_functions): Use correct dump file.
26234
26235 2014-05-09  Florian Weimer  <fweimer@redhat.com>
26236
26237         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
26238         expand_used_vars.
26239         (stack_protect_return_slot_p): New function.
26240         (expand_used_vars): Call stack_protect_decl_p and
26241         stack_protect_return_slot_p for -fstack-protector-strong.
26242
26243 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
26244         Andrew Haley <aph@redhat.com>
26245         Richard Sandiford <rdsandiford@googlemail.com>
26246
26247         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
26248         pages.
26249
26250 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
26251
26252         PR middle-end/61111
26253         * fold-const.c (fold_binary_loc): Changed width of mask.
26254
26255 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
26256
26257         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
26258         unsigned int initializers for regno_in, regno_out.
26259
26260 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
26261
26262         PR target/61055
26263         * config/avr/avr.md (cc): Add new attribute set_vzn.
26264         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
26265         Set cc insn attribute to set_vzn instead of set_zn for alternatives
26266         with INC, DEC or NEG.
26267         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
26268         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
26269         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
26270
26271 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26272
26273         Revert:
26274         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26275
26276         * wide-int.cc (UTItype): Define.
26277         (UDWtype): Define for appropriate W_TYPE_SIZE.
26278
26279 2014-05-09  Richard Biener  <rguenther@suse.de>
26280
26281         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
26282         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
26283         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
26284         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
26285         ssa_propagate): Adjust.
26286
26287 2014-05-08  Jeff Law  <law@redhat.com>
26288
26289         PR tree-optimization/61009
26290         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
26291         tri-state rather than a boolean.  When a block is too big to
26292         thread through, inform caller via negative return value.
26293         (thread_across_edge): If a block was too big for normal threading,
26294         then it's too big for a joiner too, so remove temporary equivalences
26295         and return immediately.
26296
26297 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26298             Matthias Klose  <doko@ubuntu.com>
26299
26300         PR driver/61106
26301         * optc-gen.awk: Fix option handling for -Wunused-parameter.
26302
26303 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
26304
26305         PR target/59952
26306         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
26307
26308 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
26309
26310         PR target/61092
26311         * config/alpha/alpha.c: Include gimple-iterator.h.
26312         (alpha_gimple_fold_builtin): New function.  Move
26313         ALPHA_BUILTIN_UMULH folding from ...
26314         (alpha_fold_builtin): ... here.
26315         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
26316
26317 2014-05-08  Wei Mi  <wmi@google.com>
26318
26319         PR target/58066
26320         * config/i386/i386.c (ix86_compute_frame_layout): Update
26321         preferred_stack_boundary for call, expanded from tls descriptor.
26322         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
26323         to depend on SP register.
26324         (*tls_local_dynamic_base_32_gnu): Ditto.
26325         (*tls_local_dynamic_32_once): Ditto.
26326         (tls_global_dynamic_64_<mode>): Set
26327         ix86_tls_descriptor_calls_expanded_in_cfun.
26328         (tls_local_dynamic_base_64_<mode>): Ditto.
26329         (tls_global_dynamic_32): Set
26330         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
26331         to depend on SP register.
26332         (tls_local_dynamic_base_32): Ditto.
26333
26334 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26335
26336         * config/arm/arm_neon.h: Update comment.
26337         * config/arm/neon-docgen.ml: Delete.
26338         * config/arm/neon-gen.ml: Delete.
26339         * doc/arm-neon-intrinsics.texi: Update comment.
26340
26341 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26342
26343         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
26344         and v4sf versions.
26345         (vand, vorr, veor, vorn, vbic): Remove.
26346         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
26347         iterator.
26348         (neon_vsub_unspec): Likewise.
26349         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
26350
26351 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26352
26353         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
26354         (vadd_s16): Likewise.
26355         (vadd_s32): Likewise.
26356         (vadd_f32): Likewise.
26357         (vadd_u8): Likewise.
26358         (vadd_u16): Likewise.
26359         (vadd_u32): Likewise.
26360         (vadd_s64): Likewise.
26361         (vadd_u64): Likewise.
26362         (vaddq_s8): Likewise.
26363         (vaddq_s16): Likewise.
26364         (vaddq_s32): Likewise.
26365         (vaddq_s64): Likewise.
26366         (vaddq_f32): Likewise.
26367         (vaddq_u8): Likewise.
26368         (vaddq_u16): Likewise.
26369         (vaddq_u32): Likewise.
26370         (vaddq_u64): Likewise.
26371         (vmul_s8): Likewise.
26372         (vmul_s16): Likewise.
26373         (vmul_s32): Likewise.
26374         (vmul_f32): Likewise.
26375         (vmul_u8): Likewise.
26376         (vmul_u16): Likewise.
26377         (vmul_u32): Likewise.
26378         (vmul_p8): Likewise.
26379         (vmulq_s8): Likewise.
26380         (vmulq_s16): Likewise.
26381         (vmulq_s32): Likewise.
26382         (vmulq_f32): Likewise.
26383         (vmulq_u8): Likewise.
26384         (vmulq_u16): Likewise.
26385         (vmulq_u32): Likewise.
26386         (vsub_s8): Likewise.
26387         (vsub_s16): Likewise.
26388         (vsub_s32): Likewise.
26389         (vsub_f32): Likewise.
26390         (vsub_u8): Likewise.
26391         (vsub_u16): Likewise.
26392         (vsub_u32): Likewise.
26393         (vsub_s64): Likewise.
26394         (vsub_u64): Likewise.
26395         (vsubq_s8): Likewise.
26396         (vsubq_s16): Likewise.
26397         (vsubq_s32): Likewise.
26398         (vsubq_s64): Likewise.
26399         (vsubq_f32): Likewise.
26400         (vsubq_u8): Likewise.
26401         (vsubq_u16): Likewise.
26402         (vsubq_u32): Likewise.
26403         (vsubq_u64): Likewise.
26404         (vand_s8): Likewise.
26405         (vand_s16): Likewise.
26406         (vand_s32): Likewise.
26407         (vand_u8): Likewise.
26408         (vand_u16): Likewise.
26409         (vand_u32): Likewise.
26410         (vand_s64): Likewise.
26411         (vand_u64): Likewise.
26412         (vandq_s8): Likewise.
26413         (vandq_s16): Likewise.
26414         (vandq_s32): Likewise.
26415         (vandq_s64): Likewise.
26416         (vandq_u8): Likewise.
26417         (vandq_u16): Likewise.
26418         (vandq_u32): Likewise.
26419         (vandq_u64): Likewise.
26420         (vorr_s8): Likewise.
26421         (vorr_s16): Likewise.
26422         (vorr_s32): Likewise.
26423         (vorr_u8): Likewise.
26424         (vorr_u16): Likewise.
26425         (vorr_u32): Likewise.
26426         (vorr_s64): Likewise.
26427         (vorr_u64): Likewise.
26428         (vorrq_s8): Likewise.
26429         (vorrq_s16): Likewise.
26430         (vorrq_s32): Likewise.
26431         (vorrq_s64): Likewise.
26432         (vorrq_u8): Likewise.
26433         (vorrq_u16): Likewise.
26434         (vorrq_u32): Likewise.
26435         (vorrq_u64): Likewise.
26436         (veor_s8): Likewise.
26437         (veor_s16): Likewise.
26438         (veor_s32): Likewise.
26439         (veor_u8): Likewise.
26440         (veor_u16): Likewise.
26441         (veor_u32): Likewise.
26442         (veor_s64): Likewise.
26443         (veor_u64): Likewise.
26444         (veorq_s8): Likewise.
26445         (veorq_s16): Likewise.
26446         (veorq_s32): Likewise.
26447         (veorq_s64): Likewise.
26448         (veorq_u8): Likewise.
26449         (veorq_u16): Likewise.
26450         (veorq_u32): Likewise.
26451         (veorq_u64): Likewise.
26452         (vbic_s8): Likewise.
26453         (vbic_s16): Likewise.
26454         (vbic_s32): Likewise.
26455         (vbic_u8): Likewise.
26456         (vbic_u16): Likewise.
26457         (vbic_u32): Likewise.
26458         (vbic_s64): Likewise.
26459         (vbic_u64): Likewise.
26460         (vbicq_s8): Likewise.
26461         (vbicq_s16): Likewise.
26462         (vbicq_s32): Likewise.
26463         (vbicq_s64): Likewise.
26464         (vbicq_u8): Likewise.
26465         (vbicq_u16): Likewise.
26466         (vbicq_u32): Likewise.
26467         (vbicq_u64): Likewise.
26468         (vorn_s8): Likewise.
26469         (vorn_s16): Likewise.
26470         (vorn_s32): Likewise.
26471         (vorn_u8): Likewise.
26472         (vorn_u16): Likewise.
26473         (vorn_u32): Likewise.
26474         (vorn_s64): Likewise.
26475         (vorn_u64): Likewise.
26476         (vornq_s8): Likewise.
26477         (vornq_s16): Likewise.
26478         (vornq_s32): Likewise.
26479         (vornq_s64): Likewise.
26480         (vornq_u8): Likewise.
26481         (vornq_u16): Likewise.
26482         (vornq_u32): Likewise.
26483         (vornq_u64): Likewise.
26484
26485 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26486
26487         * wide-int.cc (UTItype): Define.
26488         (UDWtype): Define for appropriate W_TYPE_SIZE.
26489
26490 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
26491
26492         PR tree-optimization/59100
26493         * tree-ssa-phiopt.c: Include tree-inline.h.
26494         (neutral_element_p, absorbing_element_p): New functions.
26495         (value_replacement): Handle conditional binary operations with a
26496         neutral or absorbing element.
26497
26498 2014-05-08  Richard Biener  <rguenther@suse.de>
26499
26500         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
26501         folding the expression.
26502         (valueize_expr): Remove.
26503         (visit_reference_op_load): Do not valueize the result of
26504         vn_get_expr_for.
26505         (simplify_binary_expression): Likewise.
26506         (simplify_unary_expression): Likewise.
26507
26508 2014-05-08  Richard Biener  <rguenther@suse.de>
26509
26510         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
26511         looking at TYPE_ARG_TYPES.
26512
26513 2014-05-08  Richard Biener  <rguenther@suse.de>
26514
26515         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
26516         pointer propagation special-case.
26517
26518 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
26519
26520         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
26521         core part of address expressions.
26522
26523 2014-05-08  Alan Modra  <amodra@gmail.com>
26524
26525         PR target/60737
26526         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
26527         loads and stores when -mno-strict-align at any alignment.
26528         (expand_block_clear): Similarly.  Also correct calculation of
26529         instruction count.
26530
26531 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26532
26533         PR middle-end/39246
26534         * tree-complex.c (expand_complex_move): Keep line info when expanding
26535         complex move.
26536         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
26537         of complex expression. Use new argument to display correct location
26538         for values coming from phi statement.
26539         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
26540         (warn_uninitialized_phi): Pass location of phi argument to
26541         warn_uninit.
26542         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
26543         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
26544
26545 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
26546
26547         * config/rs6000/predicates.md (indexed_address_mem): New.
26548         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
26549         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
26550         fpstore_ux, fpstore_u.
26551         (sign_extend, indexed, update): New.
26552         (cell_micro): Adjust.
26553         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
26554         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
26555         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
26556         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
26557         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
26558         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
26559         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
26560         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
26561         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
26562         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
26563         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
26564         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
26565         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
26566         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
26567         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
26568
26569         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
26570         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
26571         *vsx_extract_<mode>_store): Adjust.
26572         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
26573         is_cracked_insn, insn_must_be_first_in_group,
26574         insn_must_be_last_in_group): Adjust.
26575
26576         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
26577         Adjust.
26578         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
26579         ppc440-fpstore): Adjust.
26580         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
26581         ppc476-fpstore): Adjust.
26582         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
26583         ppc601-fpstore): Adjust.
26584         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
26585         Adjust.
26586         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
26587         Adjust.
26588         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
26589         ppc7450-fpstore): Adjust.
26590         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
26591         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
26592         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
26593         Adjust.
26594         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
26595         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
26596         cell-fpstore, cell-fpstore-update): Adjust.
26597         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
26598         ppce300c3_store, ppce300c3_fpstore): Adjust.
26599         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
26600         e500mc_fpstore): Adjust.
26601         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
26602         e500mc64_store, e500mc64_fpstore): Adjust.
26603         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
26604         e5500_fpstore): Adjust.
26605         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
26606         e6500_fpstore): Adjust.
26607         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
26608         Adjust.
26609         * config/rs6000/power4.md (power4-load, power4-load-ext,
26610         power4-load-ext-update, power4-load-ext-update-indexed,
26611         power4-load-update-indexed, power4-load-update, power4-fpload,
26612         power4-fpload-update, power4-store, power4-store-update,
26613         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
26614         Adjust.
26615         * config/rs6000/power5.md (power5-load, power5-load-ext,
26616         power5-load-ext-update, power5-load-ext-update-indexed,
26617         power5-load-update-indexed, power5-load-update, power5-fpload,
26618         power5-fpload-update, power5-store, power5-store-update,
26619         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
26620         Adjust.
26621         * config/rs6000/power6.md (power6-load, power6-load-ext,
26622         power6-load-update, power6-load-update-indexed,
26623         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
26624         power6-fpload-update, power6-store, power6-store-update,
26625         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
26626         Adjust.
26627         * config/rs6000/power7.md (power7-load, power7-load-ext,
26628         power7-load-update, power7-load-update-indexed,
26629         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
26630         power7-fpload-update, power7-store, power7-store-update,
26631         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
26632         Adjust.
26633         * config/rs6000/power8.md (power8-load, power8-load-update,
26634         power8-load-ext, power8-load-ext-update, power8-fpload,
26635         power8-fpload-update, power8-store, power8-store-update-indexed,
26636         power8-fpstore, power8-fpstore-update): Adjust.
26637         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
26638         Adjust.
26639         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
26640         titan_lsu_store, titan_lsu_fpstore): Adjust.
26641         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
26642
26643 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
26644
26645         PR target/60884
26646         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
26647         unrolled byte insns.  Emit address increments after move insns.
26648
26649 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
26650
26651         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
26652         const_gimple, rather than a gimple.
26653         (gimple_call_builtin_p): Likewise, for the three variants.
26654
26655         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
26656         (gimple_call_builtin_p): Likewise, for the three variants.
26657
26658 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
26659
26660         PR tree-optimization/61095
26661         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
26662
26663 2014-05-07  Richard Biener  <rguenther@suse.de>
26664
26665         PR tree-optimization/61034
26666         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
26667         (maybe_skip_until): Use translate to take into account
26668         lattices when trying to do disambiguations.
26669         (get_continuation_for_phi_1): Likewise.
26670         (get_continuation_for_phi): Adjust for added translate arguments.
26671         (walk_non_aliased_vuses): Likewise.
26672         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
26673         (walk_non_aliased_vuses): Likewise.
26674         (call_may_clobber_ref_p_1): Declare.
26675         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
26676         calls.  Stop early if we are only supposed to disambiguate.
26677         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
26678
26679 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
26680
26681         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
26682         Emit an error when the function has arguments.
26683
26684 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
26685
26686         * cfgloop.h (unswitch_loops): Remove.
26687         * doc/passes.texi: Remove references to loop-unswitch.c
26688         * timevar.def (TV_LOOP_UNSWITCH): Remove.
26689
26690 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
26691
26692         * tree-vect-data-refs.c (vect_grouped_load_supported): New
26693         check for loads group of length 3.
26694         (vect_permute_load_chain): New permutations for loads group of
26695         length 3.
26696         * tree-vect-stmts.c (vect_model_load_cost): Change cost
26697         of vec_perm_shuffle for the new permutations.
26698
26699 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
26700
26701         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
26702         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
26703         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
26704         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
26705         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
26706         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
26707         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
26708         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
26709
26710 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
26711
26712         * loop-unswitch.c: Delete.
26713
26714 2014-05-07  Richard Biener  <rguenther@suse.de>
26715
26716         * config.gcc: Always set need_64bit_hwint to yes.
26717
26718 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
26719
26720         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
26721         of using optimize_size.
26722
26723 2014-05-06  Mike Stump  <mikestump@comcast.net>
26724
26725         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
26726
26727 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
26728
26729         * config/i386/sse.md (*mov<mode>_internal)
26730         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
26731         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
26732         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
26733         (*<code><mode>3, *andnot<mode>3<mask_name>)
26734         (<mask_codefor><code><mode>3<mask_name>): Only consider
26735         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
26736
26737 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
26738
26739         Revert:
26740         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
26741
26742         * lra-constraints.c (valid_address_p): Move earlier in file.
26743         Add a constraint argument to the address_info version.
26744         (satisfies_memory_constraint_p): New function.
26745         (satisfies_address_constraint_p): Likewise.
26746         (process_alt_operands, curr_insn_transform): Use them.
26747         (process_address): Pass the constraint to valid_address_p when
26748         checking address operands.
26749
26750 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
26751
26752         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
26753         to their respective blocks.  Fix inadvertent use of "node".
26754
26755 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
26756
26757         * emit-rtl.c (init_derived_machine_modes): New functionm, split
26758         out from...
26759         (init_emit_once): ...here.
26760         * rtl.h (init_derived_machine_modes): Declare.
26761         * toplev.c (do_compile): Call it even if no_backend.
26762
26763 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
26764             Mike Stump  <mikestump@comcast.net>
26765             Richard Sandiford  <rdsandiford@googlemail.com>
26766             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26767
26768         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
26769         (rtx_equal_for_memref_p): Update comment.
26770         (adjust_offset_for_component_ref): Use wide-int interfaces.
26771         * builtins.c (get_object_alignment_2): Likewise.
26772         (c_readstr): Likewise.
26773         (target_char_cast): Add comment.
26774         (determine_block_size): Use wide-int interfaces.
26775         (expand_builtin_signbit): Likewise.
26776         (fold_builtin_int_roundingfn): Likewise.
26777         (fold_builtin_bitop): Likewise.
26778         (fold_builtin_bswap): Likewise.
26779         (fold_builtin_logarithm): Use signop.
26780         (fold_builtin_pow): Likewise.
26781         (fold_builtin_memory_op): Use wide-int interfaces.
26782         (fold_builtin_object_size): Likewise.
26783         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
26784         nb_iterations_estimate.
26785         (record_niter_bound): Use wide-int interfaces.
26786         (get_estimated_loop_iterations_int): Likewise.
26787         (get_estimated_loop_iterations): Likewise.
26788         (get_max_loop_iterations): Likewise.
26789         * cfgloop.h: Include wide-int.h.
26790         (struct nb_iter_bound): Change bound to widest_int.
26791         (struct loop): Change nb_iterations_upper_bound and
26792         nb_iterations_estimate to widest_int.
26793         (record_niter_bound): Switch to use widest_int.
26794         (get_estimated_loop_iterations): Likewise.
26795         (get_max_loop_iterations): Likewise.
26796         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
26797         update for wide-int.
26798         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
26799         * combine.c (try_combine): Likewise.
26800         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
26801         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
26802         interfaces.
26803         (aarch64_float_const_representable_p): Likewise.
26804         * config/arc/arc.c: Include wide-int.h.
26805         (arc_can_use_doloop_p): Use wide-int interfaces.
26806         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
26807         (vfp3_const_double_index): Likewise.
26808         * config/avr/avr.c (avr_out_round): Likewise.
26809         (avr_fold_builtin): Likewise.
26810         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
26811         (bfin_can_use_doloop_p): Likewise.
26812         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
26813         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
26814         * config/i386/i386.c: Include wide-int.h.
26815         (ix86_data_alignment): Use wide-int interfaces.
26816         (ix86_local_alignment): Likewise.
26817         (ix86_emit_swsqrtsf): Update real_from_integer.
26818         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
26819         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
26820         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
26821         (zero_constant): Likewise.
26822         (input_operand): Likewise.
26823         (splat_input_operand): Likewise.
26824         (non_logical_cint_operand): Change const_double to const_wide_int.
26825         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
26826         (easy_altivec_constant): Remove comment.
26827         (paired_expand_vector_init): Use CONSTANT_P.
26828         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
26829         (rs6000_emit_move): Update checks.
26830         (rs6000_aggregate_candidate): Use wide-int interfaces.
26831         (rs6000_expand_ternop_builtin): Likewise.
26832         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
26833         (rs6000_assemble_integer): Likewise.
26834         (rs6000_hash_constant): Likewise.
26835         (output_toc): Likewise.
26836         (rs6000_rtx_costs): Likewise.
26837         (rs6000_emit_swrsqrt); Update call to real_from_integer.
26838         * config/rs6000/rs6000-c.c: Include wide-int.h.
26839         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
26840         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
26841         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
26842         Handle CONST_WIDE_INT.
26843         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
26844         Use tree_fits_uhwi_p.
26845         * config/sparc/sparc.c: Include wide-int.h.
26846         (sparc_fold_builtin): Use wide-int interfaces.
26847         * config/vax/vax.c: Include wide-int.h.
26848         (vax_float_literal): Use real_from_integer.
26849         * coretypes.h (struct hwivec_def): New.
26850         (hwivec): New.
26851         (const_hwivec): New.
26852         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
26853         (equiv_constant): Handle CONST_WIDE_INT.
26854         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
26855         (cselib_hash_rtx): Handle CONST_WIDE_INT.
26856         * dbxout.c (stabstr_U): Use wide-int interfaces.
26857         (dbxout_type): Update to use cst_fits_shwi_p.
26858         * defaults.h (LOG2_BITS_PER_UNIT): Define.
26859         (TARGET_SUPPORTS_WIDE_INT): Add default.
26860         * dfp.c: Include wide-int.h.
26861         (decimal_real_to_integer2): Use wide-int interfaces and rename to
26862         decimal_real_to_integer.
26863         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
26864         decimal_real_to_integer.
26865         * doc/generic.texi (Constant expressions): Update for wide_int.
26866         * doc/rtl.texi (const_double): Likewise.
26867         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
26868         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
26869         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
26870         (REAL_VALUE_FROM_INT): Remove.
26871         (TARGET_SUPPORTS_WIDE_INT): New.
26872         * doc/tm.texi: Regenerate.
26873         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
26874         * double-int.h: Include wide-int.h.
26875         (struct wi::int_traits): New.
26876         * dwarf2out.c (get_full_len): New.
26877         (dw_val_equal_p): Add case dw_val_class_wide_int.
26878         (size_of_loc_descr): Likewise.
26879         (output_loc_operands): Likewise.
26880         (insert_double): Remove.
26881         (insert_wide_int): New.
26882         (add_AT_wide): New.
26883         (print_die): Add case dw_val_class_wide_int.
26884         (attr_checksum): Likewise.
26885         (attr_checksum_ordered): Likewise.
26886         (same_dw_val_p): Likewise.
26887         (size_of_die): Likewise.
26888         (value_format): Likewise.
26889         (output_die): Likewise.
26890         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
26891         Use wide-int.
26892         (clz_loc_descriptor): Use wide-int interfaces.
26893         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
26894         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
26895         (round_up_to_align): Use wide-int interfaces.
26896         (field_byte_offset): Likewise.
26897         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
26898         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
26899         CONST_DOUBLE handling.  Use wide-int interfaces.
26900         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
26901         (gen_enumeration_type_die): Use add_AT_wide.
26902         (hash_loc_operands): Add case dw_val_class_wide_int.
26903         (compare_loc_operands): Likewise.
26904         * dwarf2out.h: Include wide-int.h.
26905         (wide_int_ptr): New.
26906         (enum dw_val_class): Add dw_val_class_wide_int.
26907         (struct dw_val_struct): Add val_wide.
26908         * emit-rtl.c (const_wide_int_htab): New.
26909         (const_wide_int_htab_hash): New.
26910         (const_wide_int_htab_eq): New.
26911         (lookup_const_wide_int): New.
26912         (const_double_htab_hash): Use wide-int interfaces.
26913         (const_double_htab_eq): Likewise.
26914         (rtx_to_double_int): Conditionally compile for wide-int.
26915         (immed_double_int_const): Rename to immed_wide_int_const and
26916         update for wide-int.
26917         (immed_double_const): Conditionally compile for wide-int.
26918         (init_emit_once): Use wide-int interfaces.
26919         * explow.c (plus_constant): Likewise.
26920         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
26921         (lshift_value): Use wide-int interfaces.
26922         (expand_mult): Likewise.
26923         (choose_multiplier): Likewise.
26924         (expand_smod_pow2): Likewise.
26925         (make_tree): Likewise.
26926         * expr.c (convert_modes): Consolidate handling of constants.
26927         Use wide-int interfaces.
26928         (emit_group_load_1): Add note.
26929         (store_expr): Update comment.
26930         (get_inner_reference): Use wide-int interfaces.
26931         (expand_constructor): Update comment.
26932         (expand_expr_real_2): Use wide-int interfaces.
26933         (expand_expr_real_1): Likewise.
26934         (reduce_to_bit_field_precision): Likewise.
26935         (const_vector_from_tree): Likewise.
26936         * final.c: Include wide-int-print.h.
26937         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
26938         * fixed-value.c: Include wide-int.h.
26939         (fixed_from_string): Use wide-int interfaces.
26940         (fixed_to_decimal): Likewise.
26941         (fixed_convert_from_real): Likewise.
26942         (real_convert_from_fixed): Likewise.
26943         * fold-const.h (mem_ref_offset): Return an offset_int.
26944         (div_if_zero_remainder): Remove code parameter.
26945         * fold-const.c (div_if_zero_remainder): Remove code parameter.
26946         Use wide-int interfaces.
26947         (may_negate_without_overflow_p): Use wide-int interfaces.
26948         (negate_expr_p): Likewise.
26949         (fold_negate_expr): Likewise.
26950         (int_const_binop_1): Likewise.
26951         (const_binop): Likewise.
26952         (fold_convert_const_int_from_int): Likewise.
26953         (fold_convert_const_int_from_real): Likewise.
26954         (fold_convert_const_int_from_fixed): Likewise.
26955         (fold_convert_const_fixed_from_int): Likewise.
26956         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
26957         (sign_bit_p): Use wide-int interfaces.
26958         (make_range_step): Likewise.
26959         (build_range_check): Likewise.  Pass an integer of the correct type
26960         instead of using integer_one_node.
26961         (range_predecessor): Pass an integer of the correct type instead
26962         of using integer_one_node.
26963         (range_successor): Likewise.
26964         (merge_ranges): Likewise.
26965         (unextend): Use wide-int interfaces.
26966         (extract_muldiv_1): Likewise.
26967         (fold_div_compare): Likewise.
26968         (fold_single_bit_test): Likewise.
26969         (fold_sign_changed_comparison): Likewise.
26970         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
26971         (fold_plusminus_mult_expr): Use wide-int interfaces.
26972         (native_encode_int): Likewise.
26973         (native_interpret_int): Likewise.
26974         (fold_unary_loc): Likewise.
26975         (pointer_may_wrap_p): Likewise.
26976         (size_low_cst): Likewise.
26977         (mask_with_tz): Likewise.
26978         (fold_binary_loc): Likewise.
26979         (fold_ternary_loc): Likewise.
26980         (multiple_of_p): Likewise.
26981         (tree_call_nonnegative_warnv_p): Update calls to
26982         tree_int_cst_min_precision and real_from_integer.
26983         (fold_negate_const): Use wide-int interfaces.
26984         (fold_abs_const): Likewise.
26985         (fold_relational_const): Use tree_int_cst_lt.
26986         (round_up_loc): Use wide-int interfaces.
26987         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
26988         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
26989         * gengtype.c: Remove include of double-int.h.
26990         (do_typedef): Use wide-int interfaces.
26991         (open_base_files): Add wide-int.h.
26992         (main): Add offset_int and widest_int typedefs.
26993         * gengtype-lex.l: Handle "^".
26994         (CXX_KEYWORD): Add "static".
26995         * gengtype-parse.c (require3): New.
26996         (require_template_declaration): Handle constant template arguments
26997         and nested templates.
26998         * gengtype-state.c: Don't include "double-int.h".
26999         * genpreds.c (write_one_predicate_function): Update comment.
27000         (write_tm_constrs_h): Add check for hval and lval use in
27001         CONST_WIDE_INT.
27002         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
27003         (add_to_sequence): Likewise.
27004         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
27005         and const_double_operand.
27006         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
27007         interfaces.
27008         * gimple-fold.c (get_base_constructor): Likewise.
27009         (fold_array_ctor_reference): Likewise.
27010         (fold_nonarray_ctor_reference): Likewise.
27011         (fold_const_aggregate_ref_1): Likewise.
27012         (gimple_val_nonnegative_real_p): Likewise.
27013         (gimple_fold_indirect_ref): Likewise.
27014         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
27015         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
27016         (struct slsr_cand_d): Change index to be widest_int.
27017         (struct incr_info_d): Change incr to be widest_int.
27018         (alloc_cand_and_find_basis): Use wide-int interfaces.
27019         (slsr_process_phi): Likewise.
27020         (backtrace_base_for_ref): Likewise.  Return a widest_int.
27021         (restructure_reference): Take a widest_int instead of a double_int.
27022         (slsr_process_ref): Use wide-int interfaces.
27023         (create_mul_ssa_cand): Likewise.
27024         (create_mul_imm_cand): Likewise.
27025         (create_add_ssa_cand): Likewise.
27026         (create_add_imm_cand): Take a widest_int instead of a double_int.
27027         (slsr_process_add): Use wide-int interfaces.
27028         (slsr_process_cast): Likewise.
27029         (slsr_process_copy): Likewise.
27030         (dump_candidate): Likewise.
27031         (dump_incr_vec): Likewise.
27032         (replace_ref): Likewise.
27033         (cand_increment): Likewise.  Return a widest_int.
27034         (cand_abs_increment): Likewise.
27035         (replace_mult_candidate): Take a widest_int instead of a double_int.
27036         (replace_unconditional_candidate): Use wide-int interfaces.
27037         (incr_vec_index): Take a widest_int instead of a double_int.
27038         (create_add_on_incoming_edge): Likewise.
27039         (create_phi_basis): Use wide-int interfaces.
27040         (replace_conditional_candidate): Likewise.
27041         (record_increment): Take a widest_int instead of a double_int.
27042         (record_phi_increments): Use wide-int interfaces.
27043         (phi_incr_cost): Take a widest_int instead of a double_int.
27044         (lowest_cost_path): Likewise.
27045         (total_savings): Likewise.
27046         (analyze_increments): Use wide-int interfaces.
27047         (ncd_with_phi): Take a widest_int instead of a double_int.
27048         (ncd_of_cand_and_phis): Likewise.
27049         (nearest_common_dominator_for_cands): Likewise.
27050         (insert_initializers): Use wide-int interfaces.
27051         (all_phi_incrs_profitable): Likewise.
27052         (replace_one_candidate): Likewise.
27053         (replace_profitable_candidates): Likewise.
27054         * godump.c: Include wide-int-print.h.
27055         (go_output_typedef): Use wide-int interfaces.
27056         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
27057         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
27058         (build_loop_iteration_domains): Likewise.
27059         * hooks.h: Include wide-int.h rather than double-int.h.
27060         (hook_bool_dint_dint_uint_bool_true): Delete.
27061         (hook_bool_wint_wint_uint_bool_true): Declare.
27062         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
27063         (hook_bool_wint_wint_uint_bool_true): New.
27064         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
27065         interfaces.
27066         (ubsan_expand_si_overflow_mul_check): Likewise.
27067         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
27068         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
27069         (get_ancestor_addr_info): Likewise.
27070         (ipa_modify_call_arguments): Likewise.
27071         * loop-doloop.c (doloop_modify): Likewise.
27072         (doloop_optimize): Likewise.
27073         * loop-iv.c (iv_number_of_iterations): Likewise.
27074         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
27075         (unroll_loop_constant_iterations): Likewise.
27076         (decide_unroll_runtime_iterations): Likewise.
27077         (unroll_loop_runtime_iterations): Likewise.
27078         (decide_peel_simple): Likewise.
27079         (decide_unroll_stupid): Likewise.
27080         * lto-streamer-in.c (streamer_read_wi): Add.
27081         (input_cfg): Use wide-int interfaces.
27082         (lto_input_tree_1): Likewise.
27083         * lto-streamer-out.c (streamer_write_wi): Add.
27084         (hash_tree): Use wide-int interfaces.
27085         (output_cfg): Likewise.
27086         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
27087         (GTFILES): Add wide-int.h and signop.h.
27088         (TAGS): Look for .cc files too.
27089         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
27090         * optabs.c (expand_subword_shift): Likewise.
27091         (expand_doubleword_shift): Likewise.
27092         (expand_absneg_bit): Likewise.
27093         (expand_copysign_absneg): Likewise.
27094         (expand_copysign_bit): Likewise.
27095         * postreload.c (reload_cse_simplify_set): Likewise.
27096         * predict.c (predict_iv_comparison): Likewise.
27097         * pretty-print.h: Include wide-int-print.h.
27098         (pp_wide_int) New.
27099         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
27100         * print-tree.c: Include wide-int-print.h.
27101         (print_node_brief): Use wide-int interfaces.
27102         (print_node): Likewise.
27103         * read-rtl.c (validate_const_wide_int): New.
27104         (read_rtx_code): Add CONST_WIDE_INT case.
27105         * real.c: Include wide-int.h.
27106         (real_to_integer2): Delete.
27107         (real_to_integer): New function, returning a wide_int.
27108         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
27109         (ten_to_ptwo): Update call to real_from_integer.
27110         (real_digit): Likewise.
27111         * real.h: Include signop.h, wide-int.h and insn-modes.h.
27112         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
27113         (REAL_VALUE_TO_INT): Delete.
27114         (real_to_integer): Declare a wide-int form.
27115         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
27116         * recog.c (const_int_operand): Improve comment.
27117         (const_scalar_int_operand): New.
27118         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
27119         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
27120         (split_double): Likewise.
27121         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
27122         (rtx_size): Likewise.
27123         (rtx_alloc_stat_v): New.
27124         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
27125         (cwi_output_hex): New.
27126         (iterative_hash_rtx): Handle CONST_WIDE_INT.
27127         (cwi_check_failed_bounds): New.
27128         * rtl.def (CONST_WIDE_INT): New.
27129         * rtl.h: Include <utility> and wide-int.h.
27130         (struct hwivec_def): New.
27131         (CWI_GET_NUM_ELEM): New.
27132         (CWI_PUT_NUM_ELEM): New.
27133         (struct rtx_def): Add num_elem and hwiv.
27134         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
27135         (CASE_CONST_UNIQUE): Likewise.
27136         (CASE_CONST_ANY): Likewise.
27137         (CONST_SCALAR_INT_P): Likewise.
27138         (CONST_WIDE_INT_P): New.
27139         (CWI_ELT): New.
27140         (HWIVEC_CHECK): New.
27141         (cwi_check_failed_bounds): New.
27142         (CWI_ELT): New.
27143         (HWIVEC_CHECK): New.
27144         (CONST_WIDE_INT_VEC) New.
27145         (CONST_WIDE_INT_NUNITS) New.
27146         (CONST_WIDE_INT_ELT) New.
27147         (rtx_mode_t): New type.
27148         (wi::int_traits <rtx_mode_t>): New.
27149         (wi::shwi): New.
27150         (wi::min_value): New.
27151         (wi::max_value): New.
27152         (rtx_alloc_v) New.
27153         (const_wide_int_alloc): New.
27154         (immed_wide_int_const): New.
27155         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
27156         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
27157         * signop.h: New file.
27158         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
27159         (simplify_const_unary_operation): Use wide-int interfaces.
27160         (simplify_binary_operation_1): Likewise.
27161         (simplify_const_binary_operation): Likewise.
27162         (simplify_const_relational_operation): Likewise.
27163         (simplify_immed_subreg): Likewise.
27164         * stmt.c (expand_case): Likewise.
27165         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
27166         signop rather than a bool.
27167         * stor-layout.c (layout_type): Use wide-int interfaces.
27168         (initialize_sizetypes): Update calls to
27169         set_min_and_max_values_for_integral_type.
27170         (set_min_and_max_values_for_integral_type): Take a signop rather
27171         than a bool.  Use wide-int interfaces.
27172         (fixup_signed_type): Update accordingly.  Remove
27173         HOST_BITS_PER_DOUBLE_INT limit.
27174         (fixup_unsigned_type): Likewise.
27175         * system.h (STATIC_CONSTANT_P): New.
27176         (STATIC_ASSERT): New.
27177         * target.def (can_use_doloop_p): Take widest_ints rather than
27178         double_ints.
27179         * target.h: Include wide-int.h rather than double-int.h.
27180         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
27181         than double_ints.
27182         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
27183         rather than INT_CST_LT_UNSIGNED.
27184         (can_use_doloop_if_innermost): Take widest_ints rather than
27185         double_ints.
27186         * tree-affine.c: Include wide-int-print.h.
27187         (double_int_ext_for_comb): Delete.
27188         (wide_int_ext_for_comb): New.
27189         (aff_combination_zero): Use wide-int interfaces.
27190         (aff_combination_const): Take a widest_int instead of a double_int.
27191         (aff_combination_elt): Use wide-int interfaces.
27192         (aff_combination_scale): Take a widest_int instead of a double_int.
27193         (aff_combination_add_elt): Likewise.
27194         (aff_combination_add_cst): Likewise.
27195         (aff_combination_add): Use wide-int interfaces.
27196         (aff_combination_convert): Likewise.
27197         (tree_to_aff_combination): Likewise.
27198         (add_elt_to_tree): Take a widest_int instead of a double_int.
27199         (aff_combination_to_tree): Use wide-int interfaces.
27200         (aff_combination_remove_elt): Likewise.
27201         (aff_combination_add_product): Take a widest_int instead of
27202         a double_int.
27203         (aff_combination_mult): Use wide-int interfaces.
27204         (aff_combination_expand): Likewise.
27205         (double_int_constant_multiple_p): Delete.
27206         (wide_int_constant_multiple_p): New.
27207         (aff_combination_constant_multiple_p): Take a widest_int pointer
27208         instead of a double_int pointer.
27209         (print_aff): Use wide-int interfaces.
27210         (get_inner_reference_aff): Take a widest_int pointer
27211         instead of a double_int pointer.
27212         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
27213         * tree-affine.h: Include wide-int.h.
27214         (struct aff_comb_elt): Change type of coef to widest_int.
27215         (struct affine_tree_combination): Change type of offset to widest_int.
27216         (double_int_ext_for_comb): Delete.
27217         (wide_int_ext_for_comb): New.
27218         (aff_combination_const): Use widest_int instead of double_int.
27219         (aff_combination_scale): Likewise.
27220         (aff_combination_add_elt): Likewise.
27221         (aff_combination_constant_multiple_p): Likewise.
27222         (get_inner_reference_aff): Likewise.
27223         (aff_comb_cannot_overlap_p): Likewise.
27224         (aff_combination_zero_p): Use wide-int interfaces.
27225         * tree.c: Include tree.h.
27226         (init_ttree): Use make_int_cst.
27227         (tree_code_size): Removed code for INTEGER_CST case.
27228         (tree_size): Add INTEGER_CST case.
27229         (make_node_stat): Update comment.
27230         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
27231         (build_int_cst_type): Use wide-int interfaces.
27232         (double_int_to_tree): Likewise.
27233         (double_int_fits_to_tree_p): Delete.
27234         (force_fit_type_double): Delete.
27235         (force_fit_type): New.
27236         (int_cst_hash_hash): Use wide-int interfaces.
27237         (int_cst_hash_eq): Likewise.
27238         (build_int_cst_wide): Delete.
27239         (wide_int_to_tree): New.
27240         (cache_integer_cst): Use wide-int interfaces.
27241         (build_low_bits_mask): Likewise.
27242         (cst_and_fits_in_hwi): Likewise.
27243         (real_value_from_int_cst): Likewise.
27244         (make_int_cst_stat): New.
27245         (integer_zerop): Use wide_int interfaces.
27246         (integer_onep): Likewise.
27247         (integer_all_onesp): Likewise.
27248         (integer_pow2p): Likewise.
27249         (integer_nonzerop): Likewise.
27250         (tree_log2): Likewise.
27251         (tree_floor_log2): Likewise.
27252         (tree_ctz): Likewise.
27253         (int_size_in_bytes): Likewise.
27254         (mem_ref_offset): Return an offset_int rather than a double_int.
27255         (build_type_attribute_qual_variant): Use wide_int interfaces.
27256         (type_hash_eq): Likewise
27257         (tree_int_cst_equal): Likewise.
27258         (tree_int_cst_lt): Delete.
27259         (tree_int_cst_compare): Likewise.
27260         (tree_fits_shwi_p): Use wide_int interfaces.
27261         (tree_fits_uhwi_p): Likewise.
27262         (tree_int_cst_sign_bit): Likewise.
27263         (tree_int_cst_sgn): Likewise.
27264         (tree_int_cst_min_precision): Take a signop rather than a bool.
27265         (simple_cst_equal): Use wide_int interfaces.
27266         (compare_tree_int): Likewise.
27267         (iterative_hash_expr): Likewise.
27268         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
27269         INT_CST_LT.
27270         (get_type_static_bounds): Use wide_int interfaces.
27271         (tree_int_cst_elt_check_failed): New.
27272         (build_common_tree_nodes): Reordered to set prec before filling in
27273         value.
27274         (int_cst_value): Check cst_and_fits_in_hwi.
27275         (widest_int_cst_value): Use wide_int interfaces.
27276         (upper_bound_in_type): Likewise.
27277         (lower_bound_in_type): Likewise.
27278         (num_ending_zeros): Likewise.
27279         (drop_tree_overflow): Likewise.
27280         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
27281         (gen_conditions_for_pow_cst_base): Likewise.
27282         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
27283         (group_case_labels_stmt): Use wide-int interfaces.
27284         (verify_gimple_assign_binary): Likewise.
27285         (print_loop): Likewise.
27286         * tree-chrec.c (tree_fold_binomial): Likewise.
27287         * tree-core.h (struct tree_base): Add int_length.
27288         (struct tree_int_cst): Change rep of value.
27289         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
27290         (dr_may_alias_p): Likewise.
27291         (max_stmt_executions_tree): Likewise.
27292         * tree.def (INTEGER_CST): Update comment.
27293         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
27294         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
27295         * tree-dump.c: Include wide-int.h and wide-int-print.h.
27296         (dequeue_and_dump): Use wide-int interfaces.
27297         * tree.h: Include wide-int.h.
27298         (NULL_TREE): Moved to earlier loc in file.
27299         (TREE_INT_CST_ELT_CHECK): New.
27300         (tree_int_cst_elt_check_failed): New.
27301         (TYPE_SIGN): New.
27302         (TREE_INT_CST): Delete.
27303         (TREE_INT_CST_LOW): Use wide-int interfaces.
27304         (TREE_INT_CST_HIGH): Delete.
27305         (TREE_INT_CST_NUNITS): New.
27306         (TREE_INT_CST_EXT_NUNITS): Likewise.
27307         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
27308         (TREE_INT_CST_ELT): Likewise.
27309         (INT_CST_LT): Delete.
27310         (tree_int_cst_elt_check): New (two forms).
27311         (type_code_size): Update comment.
27312         (make_int_cst_stat, make_int_cst): New.
27313         (tree_to_double_int): Delete.
27314         (double_int_fits_to_tree_p): Delete.
27315         (force_fit_type_double): Delete.
27316         (build_int_cstu): Replace with out-of-line function.
27317         (build_int_cst_wide): Delete.
27318         (tree_int_cst_lt): Define inline.
27319         (tree_int_cst_le): New.
27320         (tree_int_cst_compare): Define inline.
27321         (tree_int_cst_min_precision): Take a signop rather than a bool.
27322         (wi::int_traits <const_tree>): New.
27323         (wi::int_traits <tree>): New.
27324         (wi::extended_tree): New.
27325         (wi::int_traits <wi::extended_tree>): New.
27326         (wi::to_widest): New.
27327         (wi::to_offset): New.
27328         (wi::fits_to_tree_p): New.
27329         (wi::min_value): New.
27330         (wi::max_value): New.
27331         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
27332         (copy_tree_body_r): Likewise.
27333         * tree-object-size.c (compute_object_offset): Likewise.
27334         (addr_object_size): Likewise.
27335         * tree-predcom.c: Include wide-int-print.h.
27336         (struct dref_d): Change type of offset to widest_int.
27337         (dump_dref): Call wide-int printer.
27338         (aff_combination_dr_offset): Use wide-int interfaces.
27339         (determine_offset): Take a widest_int pointer rather than a
27340         double_int pointer.
27341         (split_data_refs_to_components): Use wide-int interfaces.
27342         (suitable_component_p): Likewise.
27343         (order_drefs): Likewise.
27344         (add_ref_to_chain): Likewise.
27345         (valid_initializer_p): Likewise.
27346         (determine_roots_comp): Likewise.
27347         * tree-pretty-print.c: Include wide-int-print.h.
27348         (dump_generic_node): Use wide-int interfaces.
27349         * tree-sra.c (sra_ipa_modify_expr): Likewise.
27350         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
27351         (move_fixed_address_to_symbol): Likewise.
27352         (move_hint_to_base): Likewise.
27353         (move_pointer_to_base): Likewise.
27354         (move_variant_to_index): Likewise.
27355         (most_expensive_mult_to_index): Likewise.
27356         (addr_to_parts): Likewise.
27357         (copy_ref_info): Likewise.
27358         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
27359         (indirect_refs_may_alias_p): Likewise.
27360         (stmt_kills_ref_p_1): Likewise.
27361         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
27362         * tree-ssa-ccp.c: Update comment at top of file.  Include
27363         wide-int-print.h.
27364         (struct prop_value_d): Change type of mask to widest_int.
27365         (extend_mask): New function.
27366         (dump_lattice_value): Use wide-int interfaces.
27367         (get_default_value): Likewise.
27368         (set_constant_value): Likewise.
27369         (set_value_varying): Likewise.
27370         (valid_lattice_transition): Likewise.
27371         (set_lattice_value): Likewise.
27372         (value_to_double_int): Delete.
27373         (value_to_wide_int): New.
27374         (get_value_from_alignment): Use wide-int interfaces.
27375         (get_value_for_expr): Likewise.
27376         (do_dbg_cnt): Likewise.
27377         (ccp_finalize): Likewise.
27378         (ccp_lattice_meet): Likewise.
27379         (bit_value_unop_1): Use widest_ints rather than double_ints.
27380         (bit_value_binop_1): Likewise.
27381         (bit_value_unop): Use wide-int interfaces.
27382         (bit_value_binop): Likewise.
27383         (bit_value_assume_aligned): Likewise.
27384         (evaluate_stmt): Likewise.
27385         (ccp_fold_stmt): Likewise.
27386         (visit_cond_stmt): Likewise.
27387         (ccp_visit_stmt): Likewise.
27388         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
27389         (constant_pointer_difference): Likewise.
27390         (associate_pointerplus): Likewise.
27391         (combine_conversions): Likewise.
27392         * tree-ssa-loop.h: Include wide-int.h.
27393         (struct tree_niter_desc): Change type of max to widest_int.
27394         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
27395         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
27396         (remove_redundant_iv_tests): Likewise.
27397         (canonicalize_loop_induction_variables): Likewise.
27398         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
27399         (constant_multiple_of): Take a widest_int pointer instead of
27400         a double_int pointer.
27401         (get_computation_aff): Use wide-int interfaces.
27402         (ptr_difference_cost): Likewise.
27403         (difference_cost): Likewise.
27404         (get_loop_invariant_expr_id): Likewise.
27405         (get_computation_cost_at): Likewise.
27406         (iv_elimination_compare_lt): Likewise.
27407         (may_eliminate_iv): Likewise.
27408         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
27409         instead of double_int.
27410         (max_loop_iterations): Likewise.
27411         (max_stmt_executions): Likewise.
27412         (estimated_stmt_executions): Likewise.
27413         * tree-ssa-loop-niter.c: Include wide-int-print.h.
27414         (split_to_var_and_offset): Use wide-int interfaces.
27415         (determine_value_range): Likewise.
27416         (bound_difference_of_offsetted_base): Likewise.
27417         (bounds_add): Take a widest_int instead of a double_int.
27418         (number_of_iterations_ne_max): Use wide-int interfaces.
27419         (number_of_iterations_ne): Likewise.
27420         (number_of_iterations_lt_to_ne): Likewise.
27421         (assert_loop_rolls_lt): Likewise.
27422         (number_of_iterations_lt): Likewise.
27423         (number_of_iterations_le): Likewise.
27424         (number_of_iterations_cond): Likewise.
27425         (number_of_iterations_exit): Likewise.
27426         (finite_loop_p): Likewise.
27427         (derive_constant_upper_bound_assign): Likewise.
27428         (derive_constant_upper_bound): Return a widest_int.
27429         (derive_constant_upper_bound_ops): Likewise.
27430         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
27431         (record_estimate): Take a widest_int rather than a double_int.
27432         (record_nonwrapping_iv): Use wide-int interfaces.
27433         (double_int_cmp): Delete.
27434         (wide_int_cmp): New.
27435         (bound_index): Take a widest_int rather than a double_int.
27436         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
27437         (maybe_lower_iteration_bound): Likewise.
27438         (estimate_numbers_of_iterations_loop): Likewise.
27439         (estimated_loop_iterations): Take a widest_int pointer than than
27440         a double_int pointer.
27441         (estimated_loop_iterations_int): Use wide-int interfaces.
27442         (max_loop_iterations): Take a widest_int pointer than than
27443         a double_int pointer.
27444         (max_loop_iterations_int): Use wide-int interfaces.
27445         (max_stmt_executions): Take a widest_int pointer than than
27446         a double_int pointer.
27447         (estimated_stmt_executions): Likewise.
27448         (n_of_executions_at_most): Use wide-int interfaces.
27449         (scev_probably_wraps_p): Likewise.
27450         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
27451         to real_to_integer.
27452         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
27453         interfaces.
27454         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
27455         double_ints.  Adjust for trailing_wide_ints <3> representation.
27456         (set_nonzero_bits): Likewise.
27457         (get_range_info): Return wide_ints rather than double_ints.
27458         Adjust for trailing_wide_ints <3> representation.
27459         (get_nonzero_bits): Likewise.
27460         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
27461         representation.
27462         * tree-ssanames.h (struct range_info_def): Replace min, max and
27463         nonzero_bits with a trailing_wide_ints <3>.
27464         (set_range_info): Use wide_int_refs rather than double_ints.
27465         (set_nonzero_bits): Likewise.
27466         (get_range_info): Return wide_ints rather than double_ints.
27467         (get_nonzero_bits): Likewise.
27468         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
27469         * tree-ssa-pre.c (phi_translate_1): Likewise.
27470         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
27471         (acceptable_pow_call): Likewise.
27472         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
27473         interfaces.
27474         (vn_reference_fold_indirect): Likewise.
27475         (vn_reference_maybe_forwprop_address): Likewise.
27476         (valueize_refs_1): Likewise.
27477         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
27478         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
27479         tree_int_cst_lt and tree_int_cst_le.
27480         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
27481         interfaces.
27482         (streamer_alloc_tree): Likewise.
27483         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
27484         (streamer_write_tree_header): Likewise.
27485         (streamer_write_integer_cst): Likewise.
27486         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
27487         (build_constructors): Likewise.
27488         (array_value_type): Likewise.
27489         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
27490         (vect_check_gather): Likewise.
27491         * tree-vect-generic.c (build_replicated_const): Likewise.
27492         (expand_vector_divmod): Likewise.
27493         * tree-vect-loop.c (vect_transform_loop): Likewise.
27494         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
27495         (vect_do_peeling_for_alignment): Likewise.
27496         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
27497         * tree-vrp.c: Include wide-int.h.
27498         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
27499         (extract_range_from_assert): Use wide-int interfaces.
27500         (vrp_int_const_binop): Likewise.
27501         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
27502         double_int pointers.
27503         (ranges_from_anti_range): Use wide-int interfaces.
27504         (quad_int_cmp): Delete.
27505         (quad_int_pair_sort): Likewise.
27506         (extract_range_from_binary_expr_1): Use wide-int interfaces.
27507         (extract_range_from_unary_expr_1): Likewise.
27508         (adjust_range_with_scev): Likewise.
27509         (masked_increment): Take and return wide_ints rather than double_ints.
27510         (register_edge_assert_for_2): Use wide-int interfaces.
27511         (check_array_ref): Likewise.
27512         (search_for_addr_array): Likewise.
27513         (maybe_set_nonzero_bits): Likewise.
27514         (union_ranges): Pass an integer of the correct type instead of
27515         using integer_one_node.
27516         (intersect_ranges): Likewise.
27517         (simplify_truth_ops_using_ranges): Likewise.
27518         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
27519         (range_fits_type_p): Likewise.
27520         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
27521         a bool.
27522         (simplify_conversion_using_ranges): Use wide-int interfaces.
27523         (simplify_float_conversion_using_ranges): Likewise.
27524         (vrp_finalize): Likewise.
27525         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
27526         (gimple_stringops_transform): Likewise.
27527         * varasm.c (decode_addr_const): Likewise.
27528         (const_hash_1): Likewise.
27529         (const_rtx_hash_1): Likewise
27530         (output_constant): Likewise.
27531         (array_size_for_constructor): Likewise.
27532         (output_constructor_regular_field): Likewise.
27533         (output_constructor_bitfield): Likewise.
27534         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
27535         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
27536         GENERATOR_FILEs.
27537         * gencheck.c: Define BITS_PER_UNIT.
27538         * wide-int.cc: New.
27539         * wide-int.h: New.
27540         * wide-int-print.cc: New.
27541         * wide-int-print.h: New.
27542
27543 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27544
27545         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
27546
27547 2014-05-06  Richard Biener  <rguenther@suse.de>
27548
27549         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
27550         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
27551         (TODO_verify_all): Adjust.
27552         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
27553         TODO_verify_stmts and TODO_verify_rtl_sharing.
27554         * bb-reorder.c: Likewise.
27555         * cfgexpand.c: Likewise.
27556         * cprop.c: Likewise.
27557         * cse.c: Likewise.
27558         * function.c: Likewise.
27559         * fwprop.c: Likewise.
27560         * gcse.c: Likewise.
27561         * gimple-ssa-isolate-paths.c: Likewise.
27562         * gimple-ssa-strength-reduction.c: Likewise.
27563         * ipa-split.c: Likewise.
27564         * loop-init.c: Likewise.
27565         * loop-unroll.c: Likewise.
27566         * lower-subreg.c: Likewise.
27567         * modulo-sched.c: Likewise.
27568         * postreload-gcse.c: Likewise.
27569         * predict.c: Likewise.
27570         * recog.c: Likewise.
27571         * sched-rgn.c: Likewise.
27572         * store-motion.c: Likewise.
27573         * tracer.c: Likewise.
27574         * trans-mem.c: Likewise.
27575         * tree-call-cdce.c: Likewise.
27576         * tree-cfg.c: Likewise.
27577         * tree-cfgcleanup.c: Likewise.
27578         * tree-complex.c: Likewise.
27579         * tree-eh.c: Likewise.
27580         * tree-emutls.c: Likewise.
27581         * tree-if-conv.c: Likewise.
27582         * tree-into-ssa.c: Likewise.
27583         * tree-loop-distribution.c: Likewise.
27584         * tree-object-size.c: Likewise.
27585         * tree-parloops.c: Likewise.
27586         * tree-pass.h: Likewise.
27587         * tree-sra.c: Likewise.
27588         * tree-ssa-ccp.c: Likewise.
27589         * tree-ssa-copy.c: Likewise.
27590         * tree-ssa-copyrename.c: Likewise.
27591         * tree-ssa-dce.c: Likewise.
27592         * tree-ssa-dom.c: Likewise.
27593         * tree-ssa-dse.c: Likewise.
27594         * tree-ssa-forwprop.c: Likewise.
27595         * tree-ssa-ifcombine.c: Likewise.
27596         * tree-ssa-loop-ch.c: Likewise.
27597         * tree-ssa-loop-ivcanon.c: Likewise.
27598         * tree-ssa-loop.c: Likewise.
27599         * tree-ssa-math-opts.c: Likewise.
27600         * tree-ssa-phiopt.c: Likewise.
27601         * tree-ssa-phiprop.c: Likewise.
27602         * tree-ssa-pre.c: Likewise.
27603         * tree-ssa-reassoc.c: Likewise.
27604         * tree-ssa-sink.c: Likewise.
27605         * tree-ssa-strlen.c: Likewise.
27606         * tree-ssa-tail-merge.c: Likewise.
27607         * tree-ssa-uncprop.c: Likewise.
27608         * tree-switch-conversion.c: Likewise.
27609         * tree-tailcall.c: Likewise.
27610         * tree-vect-generic.c: Likewise.
27611         * tree-vectorizer.c: Likewise.
27612         * tree-vrp.c: Likewise.
27613         * tsan.c: Likewise.
27614         * var-tracking.c: Likewise.
27615         * bt-load.c: Likewise.
27616         * cfgcleanup.c: Likewise.
27617         * combine-stack-adj.c: Likewise.
27618         * combine.c: Likewise.
27619         * compare-elim.c: Likewise.
27620         * config/epiphany/resolve-sw-modes.c: Likewise.
27621         * config/i386/i386.c: Likewise.
27622         * config/mips/mips.c: Likewise.
27623         * config/s390/s390.c: Likewise.
27624         * config/sh/sh_treg_combine.cc: Likewise.
27625         * config/sparc/sparc.c: Likewise.
27626         * dce.c: Likewise.
27627         * dse.c: Likewise.
27628         * final.c: Likewise.
27629         * ifcvt.c: Likewise.
27630         * mode-switching.c: Likewise.
27631         * passes.c: Likewise.
27632         * postreload.c: Likewise.
27633         * ree.c: Likewise.
27634         * reg-stack.c: Likewise.
27635         * regcprop.c: Likewise.
27636         * regrename.c: Likewise.
27637         * web.c: Likewise.
27638
27639 2014-05-06  Richard Biener  <rguenther@suse.de>
27640
27641         PR middle-end/61070
27642         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
27643         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
27644
27645 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
27646
27647         PR ipa/60965
27648         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
27649
27650 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
27651             Tom de Vries  <tom@codesourcery.com>
27652
27653         * target.def (call_fusage_contains_non_callee_clobbers): New
27654         DEFHOOKPOD.
27655         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
27656         Hooks to @menu.
27657         (@node Miscellaneous Register Hooks): New node.
27658         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
27659         * doc/tm.texi: Regenerate.
27660
27661 2014-05-05  Marek Polacek  <polacek@redhat.com>
27662
27663         PR driver/61065
27664         * opts.c (common_handle_option): Call error_at instead of warning_at.
27665
27666 2014-05-05  Richard Biener  <rguenther@suse.de>
27667
27668         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
27669         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
27670         under the TODO_verify_il umbrella.
27671
27672 2014-05-05  Richard Biener  <rguenther@suse.de>
27673
27674         * passes.c (execute_function_todo): Move TODO_verify_flow under
27675         the TODO_verify_ul umbrella.
27676
27677 2014-05-05  Richard Biener  <rguenther@suse.de>
27678
27679         PR middle-end/61010
27680         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
27681         X & CST away from a CST that is the mask of a mode.
27682
27683 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27684
27685         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
27686         int argument to enum machine_mode.
27687         (picochip_class_max_nregs): Ditto.
27688         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
27689         (picochip_class_max_nregs): Ditto.
27690
27691 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27692
27693         * target.def: Add new target hook.
27694         * doc/tm.texi: Regenerate.
27695         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
27696         * targhooks.c (default_keep_leaf_when_profiled): New function.
27697
27698         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
27699         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
27700
27701 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
27702
27703         PR tree-optimization/60363
27704         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
27705         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
27706         (update_destination_phis): New parameter.
27707         (create_edge_and_update_destination_phis): Ditto.
27708         (ssa_fix_duplicate_block_edges): Pass new arguments.
27709         (thread_single_edge): Ditto.
27710
27711 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
27712
27713         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
27714         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
27715         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
27716         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
27717         Use RS6000_BTM_HARD_FLOAT.
27718         (BU_MISC_2): Likewise.
27719         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
27720         RS6000_BTM_HARD_FLOAT.
27721         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
27722         is explicitly used.
27723         (rs6000_invalid_builtin): Add hard floating builtin support.
27724         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
27725         hard float builtins.
27726         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
27727
27728 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27729
27730         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
27731         Add missing function* argument.
27732
27733 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
27734
27735         * lra-constraints.c (valid_address_p): Move earlier in file.
27736         Add a constraint argument to the address_info version.
27737         (satisfies_memory_constraint_p): New function.
27738         (satisfies_address_constraint_p): Likewise.
27739         (process_alt_operands, curr_insn_transform): Use them.
27740         (process_address): Pass the constraint to valid_address_p when
27741         checking address operands.
27742
27743 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
27744
27745         * config/mips/mips.c (mips_isa_rev): New variable.
27746         (mips_set_architecture): Set it.
27747         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
27748         from mips_isa_rev.
27749         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
27750         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
27751         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
27752         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
27753         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
27754         conditions in terms of mips_isa_rev.
27755         (mips_isa_rev): Declare.
27756
27757 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27758
27759         * config/sh/sh-mem.cc: Use tabs instead of spaces.
27760         (prob_unlikely, prob_likely): Make variables const.
27761
27762 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
27763
27764         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
27765
27766 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27767
27768         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
27769
27770 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27771
27772         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
27773         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
27774         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
27775         functions.
27776         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
27777         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
27778         sh_pass_in_reg_p.
27779         Replace usage of ROUND_REG with sh_round_reg.
27780         Use CEIL instead of ROUND_ADVANCE.
27781
27782 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27783
27784         PR target/61026
27785         * config/sh/sh.c: Include stdlib headers before everything else.
27786
27787 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
27788
27789         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
27790         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
27791         (gimplify_adjust_omp_clauses): Simd region is never
27792         directly nested in combined parallel.  Instead, for linear
27793         with copyin/copyout, if in combined for simd loop, make decl
27794         firstprivate/lastprivate on OMP_FOR.
27795         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
27796         expand_omp_for_static_chunk): When setting endvar, also set
27797         fd->loop.v to the same value.
27798
27799 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
27800
27801         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
27802
27803 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
27804
27805         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
27806         expression.
27807
27808 2014-05-02  Marek Polacek  <polacek@redhat.com>
27809
27810         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
27811
27812 2014-05-02  Kito Cheng  <kito@0xlab.org>
27813
27814         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
27815         to a C expression marco.
27816         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
27817         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
27818         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
27819         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
27820         HONOR_REG_ALLOC_ORDER.
27821         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
27822
27823 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27824
27825         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
27826
27827 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27828
27829         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
27830
27831 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
27832
27833         * tree-if-conv.c (is_cond_scalar_reduction): New function.
27834         (convert_scalar_cond_reduction): Likewise.
27835         (predicate_scalar_phi): Add recognition and transformation
27836         of simple conditioanl reduction to be vectorizable.
27837
27838 2014-05-01  Marek Polacek  <polacek@redhat.com>
27839
27840         PR c/43245
27841         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
27842
27843 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
27844
27845         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
27846         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
27847         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
27848         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
27849         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
27850         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
27851         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
27852         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
27853
27854 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
27855
27856         * config/arc/arc.opt (mlra): Move comment above option name
27857         to avoid mis-parsing as language options.
27858
27859 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27860
27861         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
27862         * config/sol2.h: ... here.
27863         * config/sol2-10.h: Remove.
27864
27865         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
27866         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
27867         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
27868         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
27869         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
27870         * config/sol2.h: ... here.
27871         (SECTION_NAME_FORMAT): Don't redefine.
27872         (STARTFILE_ARCH32_SPEC): Rename to ...
27873         (STARTFILE_ARCH_SPEC): ... this.
27874         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
27875         * config/sparc/sol2.h: ... here.
27876         (SECTION_NAME_FORMAT): Don't undef.
27877         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
27878         (SUBTARGET_EXTRA_SPECS): Remove.
27879         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
27880
27881         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
27882         (MD_STARTFILE_PREFIX): Remove.
27883         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
27884         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
27885         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
27886         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
27887         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
27888         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
27889         * config/i386/sol2.h: ... here.
27890         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
27891         * config/i386/sol2-bi.h: Remove.
27892         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
27893         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
27894
27895         * config/i386/t-sol2-64: Rename to ...
27896         * config/i386/t-sol2: ... this.
27897         * config/sparc/t-sol2-64: Rename to ...
27898         * config/sparc/t-sol2: ... this.
27899
27900         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
27901         sol2_tm_file_head, sol2_tm_file_tail.
27902         Include ${cpu_type}/sol2.h before sol2.h.
27903         Remove sol2-10.h.
27904         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
27905         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
27906         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
27907         Reflect i386/t-sol2-64 renaming.
27908         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
27909         Reflect sparc/t-sol2-64 renaming.
27910
27911 2014-04-30  Richard Biener  <rguenther@suse.de>
27912
27913         * passes.c (execute_function_todo): Move TODO_verify_stmts
27914         and TODO_verify_ssa under the TODO_verify_il umbrella.
27915         * tree-ssa.h (verify_ssa): Adjust prototype.
27916         * tree-ssa.c (verify_ssa): Add parameter to tell whether
27917         we should verify SSA operands.
27918         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
27919         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
27920         whether we should verify whether not throwing stmts have EH info.
27921         * graphite-scop-detection.c (create_sese_edges): Adjust.
27922         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
27923         * tree-eh.c (lower_try_finally_switch): Do not add the
27924         default case label twice.
27925
27926 2014-04-30  Marek Polacek  <polacek@redhat.com>
27927
27928         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
27929         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
27930         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
27931         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
27932
27933 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
27934
27935         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
27936         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
27937         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
27938         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
27939         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
27940         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
27941         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
27942         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
27943
27944 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
27945
27946         * tree-cfg.c (dump_function_to_file): Dump the return type of
27947         functions, in a line to itself before the function body, mimicking
27948         the layout of a C function.
27949
27950 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
27951
27952         PR tree-optimization/60971
27953         * tree-tailcall.c (process_assignment): Reject conversions which
27954         reduce precision.
27955
27956 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27957
27958         * calls.c (initialize_argument_information): Always treat
27959         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
27960         (expand_call): Likewise.
27961         (emit_library_call_calue_1): Likewise.
27962         * expr.c (PUSH_ARGS_REVERSED): Do not define.
27963         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
27964         code accordingly.
27965
27966 2014-04-29  Nick Clifton  <nickc@redhat.com>
27967
27968         * config/msp430/msp430.md (umulsidi): Fix typo.
27969         (mulhisi3): Enable even inside interrupt handlers.
27970         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
27971         bigger return address pushed in large mode.
27972
27973 2014-04-29  Nick Clifton  <nickc@redhat.com>
27974
27975         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
27976         (arc_init_reg_tables): Use a machine_mode enum to iterate over
27977         available modes.
27978         * config/m32r/m32r.c (init_reg_tables): Likewise.
27979         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
27980         enum to hold the modes.
27981
27982 2014-04-29  Richard Biener  <rguenther@suse.de>
27983
27984         * dominance.c (free_dominance_info): Add overload with
27985         function parameter.
27986         (dom_info_state): Likewise.
27987         (dom_info_available_p): Likewise.
27988         * basic-block.h (free_dominance_info, dom_info_state,
27989         dom_info_available_p): Declare overloads.
27990         * passes.c (execute_function_todo): Verify that verifiers
27991         don't change dominator info state.  Drop dominator info
27992         for IPA pass invocations.
27993         * cgraph.c (release_function_body): Restore asserts that
27994         dominator information is released.
27995
27996 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
27997
27998         * doc/invoke.texi: Fix typo.
27999         * tree-vrp.c: Fix typos.
28000         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
28001
28002 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
28003
28004         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
28005
28006 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
28007
28008         * config/aarch64/aarch64-builtins.c
28009         (aarch64_types_storestruct_lane_qualifiers): New.
28010         (TYPES_STORESTRUCT_LANE): Likewise.
28011         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
28012         (st3_lane): Likewise.
28013         (st4_lane): Likewise.
28014         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
28015         (vec_store_lanesci_lane<mode>): Likewise.
28016         (vec_store_lanesxi_lane<mode>): Likewise.
28017         (aarch64_st2_lane<VQ:mode>): Likewise.
28018         (aarch64_st3_lane<VQ:mode>): Likewise.
28019         (aarch64_st4_lane<VQ:mode>): Likewise.
28020         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
28021         * config/aarch64/arm_neon.h
28022         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
28023         use new macro arguments.
28024         (__ST3_LANE_FUNC): Likewise.
28025         (__ST4_LANE_FUNC): Likewise.
28026         * config/aarch64/iterators.md (V_TWO_ELEM): New.
28027         (V_THREE_ELEM): Likewise.
28028         (V_FOUR_ELEM): Likewise.
28029
28030 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
28031
28032         * doc/gimple.texi: Replace the description of the now-defunct
28033         union gimple_statement_d with a diagram showing the
28034         gimple_statement_base class hierarchy and its relationships to
28035         the GSS_ and GIMPLE_ enums.
28036
28037 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
28038
28039         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
28040         * config/aarch64/aarch64.c
28041         (aarch64_cannot_change_mode_class): Weaken conditions.
28042         (aarch64_modes_tieable_p): New.
28043         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
28044
28045 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
28046
28047         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
28048         (loadsync_<mode>): Change mode.
28049         (load_quadpti, store_quadpti): New.
28050         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
28051         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
28052
28053 2014-04-28  Martin Jambor  <mjambor@suse.cz>
28054
28055         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
28056         same alias type as the original statement.
28057         (subreplacement_assignment_data): New type.
28058         (handle_unscalarized_data_in_subtree): New type of parameter,
28059         generate new memory accesses with same alias type as the original
28060         statement.
28061         (load_assign_lhs_subreplacements): Likewise.
28062         (sra_modify_constructor_assign): Generate new memory accesses with
28063         same alias type as the original statement.
28064
28065 2014-04-28  Richard Biener  <rguenther@suse.de>
28066
28067         * tree-pass.h (TODO_verify_il): Define.
28068         (TODO_verify_all): Complete properly.
28069         * passes.c (execute_function_todo): Move existing loop-closed
28070         SSA verification under TODO_verify_il.
28071         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
28072         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
28073         Fix tree sharing issue.
28074
28075 2014-04-28  Richard Biener  <rguenther@suse.de>
28076
28077         PR middle-end/60092
28078         * builtins.def (DEF_C11_BUILTIN): Add.
28079         (BUILT_IN_ALIGNED_ALLOC): Likewise.
28080         * coretypes.h (enum function_class): Add function_c11_misc.
28081         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
28082         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
28083         (call_may_clobber_ref_p_1): Likewise.
28084         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
28085         (mark_all_reaching_defs_necessary_1): Likewise.
28086         (propagate_necessity): Likewise.
28087         (eliminate_unnecessary_stmts): Likewise.
28088         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
28089
28090 2014-04-28  Richard Biener  <rguenther@suse.de>
28091
28092         * tree-vrp.c (vrp_var_may_overflow): Remove.
28093         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
28094         with overflow immediately bump to one before that value and
28095         let iteration figure out overflow status.
28096
28097 2014-04-28  Richard Biener  <rguenther@suse.de>
28098
28099         * configure.ac: Do valgrind header checks unconditionally.
28100         Add --enable-valgrind-annotations.
28101         * system.h: Guard valgrind header inclusion with
28102         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
28103         * alloc-pool.c (pool_alloc, pool_free): Use
28104         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
28105         to guard possibly dead code.
28106         * config.in: Regenerated.
28107         * configure: Likewise.
28108
28109 2014-04-28  Jeff Law  <law@redhat.com>
28110
28111         PR tree-optimization/60902
28112         * tree-ssa-threadedge.c
28113         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
28114         over real defs when invalidating outputs from statements that do not
28115         produce useful outputs for threading.
28116
28117 2014-04-28  Richard Biener  <rguenther@suse.de>
28118
28119         PR tree-optimization/60979
28120         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
28121         SCOPs that end in a block with a successor with abnormal
28122         predecessors.
28123
28124 2014-04-28  Richard Biener  <rguenther@suse.de>
28125
28126         * tree-pass.h (execute_pass_list): Adjust prototype.
28127         * passes.c (pass_manager::execute_early_local_passes): Adjust.
28128         (do_per_function): Change callback signature, push all actual
28129         work to the callbals.
28130         (do_per_function_toporder): Likewise.
28131         (execute_function_dump): Adjust.
28132         (execute_function_todo): Likewise.
28133         (clear_last_verified): Likewise.
28134         (verify_curr_properties): Likewise.
28135         (update_properties_after_pass): Likewise.
28136         (execute_pass_list_1): Split out from ...
28137         (execute_pass_list): ... here.  Adjust.
28138         (execute_ipa_pass_list): Likewise.
28139         * cgraphunit.c (cgraph_add_new_function): Adjust.
28140         (analyze_function): Likewise.
28141         (expand_function): Likewise.
28142         * cgraph.c (release_function_body): Free dominance info
28143         here instead of asserting it was magically freed elsewhere.
28144
28145 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
28146
28147         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
28148         * configure: Regenerate.
28149         * config/sparc/sparc.opt (muser-mode): New option.
28150         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
28151         for LEON3.
28152         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
28153         * doc/invoke.texi (SPARC options): Document -muser-mode.
28154
28155 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
28156
28157         * cselib.c (find_slot_memmode): Delete.
28158         (cselib_hasher): Change compare_type to a struct.
28159         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
28160         constants.
28161         (preserve_constants_and_equivs): Adjust for new compare_type.
28162         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
28163         (wrap_constant): Delete.
28164         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
28165
28166 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
28167
28168         * doc/install.texi (Building with profile feedback): Remove
28169         outdated sentence.
28170
28171 2014-04-26  Tom de Vries  <tom@codesourcery.com>
28172
28173         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
28174         array accesses.
28175
28176 2014-04-25  Cary Coutant  <ccoutant@google.com>
28177
28178         PR debug/60929
28179         * dwarf2out.c (should_move_die_to_comdat): A type definition
28180         can contain a subprogram definition, but don't move it to a
28181         comdat unit.
28182         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
28183         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
28184         from original DIE.
28185         (clone_tree_hash): Rename to...
28186         (clone_tree_partial): ...this; change callers.  Copy
28187         DW_TAG_subprogram DIEs as declarations.
28188         (copy_decls_walk): Don't copy children of a declaration into a
28189         type unit.
28190
28191 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
28192
28193         PR target/60969
28194         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
28195         alternative 12.
28196
28197 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
28198
28199         * config/arm/predicates.md (call_insn_operand): Add long_call check.
28200         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
28201         reg for long_call.
28202         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
28203         restriction.
28204
28205 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28206
28207         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
28208
28209 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28210
28211         PR tree-optimization/60930
28212         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
28213         creating a multiply candidate by folding two constant
28214         multiplicands when the result overflows.
28215
28216 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
28217
28218         PR tree-optimization/60960
28219         * tree-vect-generic.c (expand_vector_operation): Only call
28220         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
28221
28222 2014-04-25  Tom de Vries  <tom@codesourcery.com>
28223
28224         * expr.c (clobber_reg_mode): New function.
28225         * expr.h (clobber_reg): New function.
28226
28227 2014-04-25  Tom de Vries  <tom@codesourcery.com>
28228
28229         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
28230         clobbers.
28231
28232 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
28233             Tom de Vries  <tom@codesourcery.com>
28234
28235         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
28236         handle.
28237         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
28238         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
28239         new argument to find_all_hard_reg_sets call.
28240
28241 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28242
28243         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
28244         Use HOST_WIDE_INT_C for mask literal.
28245         (aarch_rev16_shleft_mask_imm_p): Likewise.
28246
28247 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
28248
28249         PR target/60941
28250         * config/sparc/sparc.md (ashlsi3_extend): Delete.
28251
28252 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
28253
28254         PR preprocessor/56540
28255         * config/i386/i386-c.c (ix86_target_macros): Define
28256         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
28257
28258 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28259
28260         * configure.ac (tga_func): Remove.
28261         (LIB_TLS_SPEC): Remove.
28262         * configure: Regenerate.
28263         * config.in: Regenerate.
28264         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
28265
28266 2014-04-25  Richard Biener  <rguenther@suse.de>
28267
28268         PR ipa/60912
28269         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
28270         call stmt use/clobber sets during stmt walk instead of
28271         walking the possibly incomplete set of caller edges.
28272
28273 2014-04-25  Richard Biener  <rguenther@suse.de>
28274
28275         PR ipa/60911
28276         * passes.c (apply_ipa_transforms): Inline into only caller ...
28277         (execute_one_pass): ... here.  Properly bring in function
28278         bodies for nodes we want to apply IPA transforms to.
28279
28280 2014-04-24  Cong Hou  <congh@google.com>
28281
28282         PR tree-optimization/60896
28283         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
28284         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
28285         (vect_mark_pattern_stmts): Set the def type of all statements in
28286         PATTERN_DEF_SEQ as vect_internal_def.
28287
28288 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
28289
28290         * doc/extend.texi (PowerPC Built-in Functions): Document new
28291         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
28292         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
28293
28294         * config/rs6000/predicates.md (const_0_to_3_operand): New
28295         predicate to match 0..3 integer constants.
28296
28297         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
28298         to support adding miscellaneous builtin functions.
28299         (BU_DFP_MISC_2): Likewise.
28300         (BU_P7_MISC_1): Likewise.
28301         (BU_P7_MISC_2): Likewise.
28302         (BU_P8V_MISC_3): Likewise.
28303         (BU_MISC_1): Likewise.
28304         (BU_MISC_2): Likewise.
28305         (DIVWE): Add extended divide builtin functions.
28306         (DIVWEO): Likewise.
28307         (DIVWEU): Likewise.
28308         (DIVWEUO): Likewise.
28309         (DIVDE): Likewise.
28310         (DIVDEO): Likewise.
28311         (DIVDEU): Likewise.
28312         (DIVDEUO): Likewise.
28313         (DXEX): Add decimal floating-point builtin functions.
28314         (DXEXQ): Likewise.
28315         (DDEDPD): Likewise.
28316         (DDEDPDQ): Likewise.
28317         (DENBCD): Likewise.
28318         (DENBCDQ): Likewise.
28319         (DIEX): Likewise.
28320         (DIEXQ): Likewise.
28321         (DSCLI): Likewise.
28322         (DSCLIQ): Likewise.
28323         (DSCRI): Likewise.
28324         (DSCRIQ): Likewise.
28325         (CDTBCD): Add new BCD builtin functions.
28326         (CBCDTD): Likewise.
28327         (ADDG6S): Likewise.
28328         (BCDADD): Likewise.
28329         (BCDADD_LT): Likewise.
28330         (BCDADD_EQ): Likewise.
28331         (BCDADD_GT): Likewise.
28332         (BCDADD_OV): Likewise.
28333         (BCDSUB): Likewise.
28334         (BCDSUB_LT): Likewise.
28335         (BCDSUB_EQ): Likewise.
28336         (BCDSUB_GT): Likewise.
28337         (BCDSUB_OV): Likewise.
28338         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
28339         (UNPACK_TD): Likewise.
28340         (PACK_TF): Likewise.
28341         (UNPACK_TF): Likewise.
28342         (UNPACK_TF_0): Likewise.
28343         (UNPACK_TF_1): Likewise.
28344         (PACK_V1TI): Likewise.
28345         (UNPACK_V1TI): Likewise.
28346
28347         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
28348         support for decimal floating point builtin functions.
28349         (rs6000_expand_ternop_builtin): Add checks for the new builtin
28350         functions that take constant arguments.
28351         (rs6000_invalid_builtin): Add decimal floating point builtin support.
28352         (rs6000_init_builtins): Setup long double, _Decimal64, and
28353         _Decimal128 types for new builtin functions.
28354         (builtin_function_type): Set the unsigned flags appropriately for
28355         the new builtin functions.
28356         (rs6000_opt_masks): Add support for decimal floating point builtin
28357         functions.
28358
28359         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
28360         floating point builtin functions.
28361         (RS6000_BTM_COMMON): Likewise.
28362         (RS6000_BTI_long_double): Likewise.
28363         (RS6000_BTI_dfloat64): Likewise.
28364         (RS6000_BTI_dfloat128): Likewise.
28365         (long_double_type_internal_node): Likewise.
28366         (dfloat64_type_internal_node): Likewise.
28367         (dfloat128_type_internal_node): Likewise.
28368
28369         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
28370         2.07 bcd arithmetic instructions.
28371         (UNSPEC_BCDSUB): Likewise.
28372         (UNSPEC_BCD_OVERFLOW): Likewise.
28373         (UNSPEC_BCD_ADD_SUB): Likewise.
28374         (bcd_add_sub): Likewise.
28375         (BCD_TEST): Likewise.
28376         (bcd<bcd_add_sub>): Likewise.
28377         (bcd<bcd_add_sub>_test): Likewise.
28378         (bcd<bcd_add_sub>_test2): Likewise.
28379         (bcd<bcd_add_sub>_<code>): Likewise.
28380         (peephole2 for combined bcd ops): Likewise.
28381
28382         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
28383         decimal floating point builtin functions.
28384         (UNSPEC_DENBCD): Likewise.
28385         (UNSPEC_DXEX): Likewise.
28386         (UNSPEC_DIEX): Likewise.
28387         (UNSPEC_DSCLI): Likewise.
28388         (UNSPEC_DSCRI): Likewise.
28389         (D64_D128): Likewise.
28390         (dfp_suffix): Likewise.
28391         (dfp_ddedpd_<mode>): Likewise.
28392         (dfp_denbcd_<mode>): Likewise.
28393         (dfp_dxex_<mode>): Likewise.
28394         (dfp_diex_<mode>): Likewise.
28395         (dfp_dscli_<mode>): Likewise.
28396         (dfp_dscri_<mode>): Likewise.
28397
28398         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
28399         builtin functions.
28400         (UNSPEC_CDTBCD): Likewise.
28401         (UNSPEC_CBCDTD): Likewise.
28402         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
28403         (UNSPEC_DIVEO): Likewise.
28404         (UNSPEC_DIVEU): Likewise.
28405         (UNSPEC_DIVEUO): Likewise.
28406         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
28407         pack/unpack 128-bit types.
28408         (UNSPEC_PACK_128BIT): Likewise.
28409         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
28410         (udiv<mode>3): Use idiv_ldiv mode attribute.
28411         (div<mode>3): Likewise.
28412         (addg6s): Add new BCD builtin functions.
28413         (cdtbcd): Likewise.
28414         (cbcdtd): Likewise.
28415         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
28416         (div_extend): Likewise.
28417         (div<div_extend>_<mode>"): Likewise.
28418         (FP128_64): Add support for new builtin functions to pack/unpack
28419         128-bit types.
28420         (unpack<mode>): Likewise.
28421         (unpacktf_0): Likewise.
28422         (unpacktf_1): Likewise.
28423         (unpack<mode>_dm): Likewise.
28424         (unpack<mode>_nodm): Likewise.
28425         (pack<mode>): Likewise.
28426         (unpackv1ti): Likewise.
28427         (packv1ti): Likewise.
28428
28429 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
28430
28431         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
28432         is disabled.
28433
28434 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
28435
28436         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
28437         * gimplify.c (omp_is_private): Change last argument's type to int.
28438         Only diagnose lastprivate if the simd argument is 1, only diagnose
28439         linear if the simd argument is 2.
28440         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
28441         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
28442         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
28443         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
28444         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
28445         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
28446         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
28447         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
28448         * tree-nested.c (convert_nonlocal_omp_clauses,
28449         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
28450
28451 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
28452
28453         PR target/60822
28454         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
28455         operand 1.
28456
28457 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
28458
28459         * flag-types.h (enum ivar_visibility): Add.
28460
28461 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
28462
28463         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
28464         function * argument.
28465
28466 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
28467
28468         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
28469
28470 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
28471             Tom de Vries  <tom@codesourcery.com>
28472
28473         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
28474         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
28475         reg-note.
28476         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
28477         * emit-rtl.c (try_split): Same.
28478
28479 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
28480             Tom de Vries  <tom@codesourcery.com>
28481
28482         * common.opt (fuse-caller-save): New option.
28483
28484 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
28485
28486         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
28487         elements for big-endian.
28488
28489 2014-04-24  Richard Biener  <rguenther@suse.de>
28490
28491         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
28492         during TER and instead use the sepops interface for expanding
28493         non-GIMPLE_SINGLE_RHS.
28494
28495 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28496
28497         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
28498         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
28499
28500 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28501
28502         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
28503         assembler 64-bit option.
28504         * configure: Regenerate.
28505
28506 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28507
28508         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
28509         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
28510         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
28511         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
28512         (TARGET_CRYPTO): Take TARGET_SIMD into account.
28513
28514 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28515
28516         * config/aarch64/aarch64-builtins.c
28517         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
28518         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
28519         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
28520         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
28521         builtins.
28522         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
28523         (Vrevsuff): New mode attribute.
28524
28525 2014-04-24  Terry Guo  <terry.guo@arm.com>
28526
28527         * config/arm/arm.h (machine_function): Define variable
28528         after_arm_reorg here.
28529         * config/arm/arm.c (after_arm_reorg): Remove the definition.
28530         (arm_split_constant): Update the way to access variable
28531         after_arm_reorg.
28532         (arm_reorg): Ditto.
28533         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
28534
28535 2014-04-23  Tom de Vries  <tom@codesourcery.com>
28536
28537         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
28538
28539 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
28540
28541         * is-a.h: Update comments to reflect the following changes to the
28542         "pointerness" of the API, making the template parameter match the
28543         return type, allowing use of is-a.h with typedefs of pointers.
28544         (is_a_helper::cast): Return a T rather then a pointer to a T, so
28545         that the return type matches the parameter to the is_a_helper.
28546         (as_a): Likewise.
28547         (dyn_cast): Likewise.
28548
28549         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
28550         pointer from the is-a.h API.
28551
28552         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
28553         (is_a_helper <cgraph_node *>::test): ...this, matching change to
28554         is-a.h API.
28555         (is_a_helper <varpool_node>::test): Likewise, convert to...
28556         (is_a_helper <varpool_node *>::test): ...this.
28557
28558         (varpool_first_variable): Update for removal of implicit pointer
28559         from the is-a.h API.
28560         (varpool_next_variable): Likewise.
28561         (varpool_first_static_initializer): Likewise.
28562         (varpool_next_static_initializer): Likewise.
28563         (varpool_first_defined_variable): Likewise.
28564         (varpool_next_defined_variable): Likewise.
28565         (cgraph_first_defined_function): Likewise.
28566         (cgraph_next_defined_function): Likewise.
28567         (cgraph_first_function): Likewise.
28568         (cgraph_next_function): Likewise.
28569         (cgraph_first_function_with_gimple_body): Likewise.
28570         (cgraph_next_function_with_gimple_body): Likewise.
28571         (cgraph_alias_target): Likewise.
28572         (varpool_alias_target): Likewise.
28573         (cgraph_function_or_thunk_node): Likewise.
28574         (varpool_variable_node): Likewise.
28575         (symtab_real_symbol_p): Likewise.
28576         * cgraphunit.c (referred_to_p): Likewise.
28577         (analyze_functions): Likewise.
28578         (handle_alias_pairs): Likewise.
28579         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
28580         * gimple-ssa.h (gimple_vuse_op): Likewise.
28581         (gimple_vdef_op): Likewise.
28582         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
28583         * gimple.c (gimple_build_asm_1): Likewise.
28584         (gimple_build_try): Likewise.
28585         (gimple_build_resx): Likewise.
28586         (gimple_build_eh_dispatch): Likewise.
28587         (gimple_build_omp_for): Likewise.
28588         (gimple_omp_for_set_clauses): Likewise.
28589
28590         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
28591         (is_a_helper <gimple_statement_asm *>::test): ...this.
28592         (is_a_helper <gimple_statement_bind>::test): Convert to...
28593         (is_a_helper <gimple_statement_bind *>::test): ...this.
28594         (is_a_helper <gimple_statement_call>::test): Convert to...
28595         (is_a_helper <gimple_statement_call *>::test): ...this.
28596         (is_a_helper <gimple_statement_catch>::test): Convert to...
28597         (is_a_helper <gimple_statement_catch *>::test): ...this.
28598         (is_a_helper <gimple_statement_resx>::test): Convert to...
28599         (is_a_helper <gimple_statement_resx *>::test): ...this.
28600         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
28601         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
28602         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
28603         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
28604         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
28605         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
28606         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
28607         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
28608         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
28609         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
28610         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
28611         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
28612         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
28613         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
28614         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
28615         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
28616         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
28617         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
28618         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
28619         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
28620         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
28621         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
28622         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
28623         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
28624         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
28625         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
28626         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
28627         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
28628         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
28629         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
28630         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
28631         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
28632         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
28633         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
28634         (is_a_helper <gimple_statement_phi>::test): Convert to...
28635         (is_a_helper <gimple_statement_phi *>::test): ...this.
28636         (is_a_helper <gimple_statement_transaction>::test): Convert to...
28637         (is_a_helper <gimple_statement_transaction *>::test): ...this.
28638         (is_a_helper <gimple_statement_try>::test): Convert to...
28639         (is_a_helper <gimple_statement_try *>::test): ...this.
28640         (is_a_helper <gimple_statement_wce>::test): Convert to...
28641         (is_a_helper <gimple_statement_wce *>::test): ...this.
28642         (is_a_helper <const gimple_statement_asm>::test): Convert to...
28643         (is_a_helper <const gimple_statement_asm *>::test): ...this.
28644         (is_a_helper <const gimple_statement_bind>::test): Convert to...
28645         (is_a_helper <const gimple_statement_bind *>::test): ...this.
28646         (is_a_helper <const gimple_statement_call>::test): Convert to...
28647         (is_a_helper <const gimple_statement_call *>::test): ...this.
28648         (is_a_helper <const gimple_statement_catch>::test): Convert to...
28649         (is_a_helper <const gimple_statement_catch *>::test): ...this.
28650         (is_a_helper <const gimple_statement_resx>::test): Convert to...
28651         (is_a_helper <const gimple_statement_resx *>::test): ...this.
28652         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
28653         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
28654         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
28655         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
28656         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
28657         Convert to...
28658         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
28659         ...this.
28660         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
28661         Convert to...
28662         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
28663         ...this.
28664         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
28665         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
28666         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
28667         to...
28668         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
28669         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
28670         to...
28671         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
28672         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
28673         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
28674         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
28675         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
28676         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
28677         to...
28678         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
28679         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
28680         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
28681         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
28682         to...
28683         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
28684         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
28685         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
28686         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
28687         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
28688         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
28689         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
28690         (is_a_helper <const gimple_statement_phi>::test): Convert to...
28691         (is_a_helper <const gimple_statement_phi *>::test): ...this.
28692         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
28693         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
28694         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
28695         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
28696         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
28697         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
28698         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
28699         to...
28700         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
28701         ...this.
28702         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
28703         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
28704
28705         (gimple_use_ops): Update for removal of implicit pointer from the
28706         is-a.h API.
28707         (gimple_set_use_ops): Likewise.
28708         (gimple_vuse): Likewise.
28709         (gimple_vdef): Likewise.
28710         (gimple_vuse_ptr): Likewise.
28711         (gimple_vdef_ptr): Likewise.
28712         (gimple_set_vuse): Likewise.
28713         (gimple_set_vdef): Likewise.
28714         (gimple_omp_return_set_lhs): Likewise.
28715         (gimple_omp_return_lhs): Likewise.
28716         (gimple_omp_return_lhs_ptr): Likewise.
28717         (gimple_call_fntype): Likewise.
28718         (gimple_call_set_fntype): Likewise.
28719         (gimple_call_set_internal_fn): Likewise.
28720         (gimple_call_use_set): Likewise.
28721         (gimple_call_clobber_set): Likewise.
28722         (gimple_bind_vars): Likewise.
28723         (gimple_bind_set_vars): Likewise.
28724         (gimple_bind_body_ptr): Likewise.
28725         (gimple_bind_set_body): Likewise.
28726         (gimple_bind_add_stmt): Likewise.
28727         (gimple_bind_block): Likewise.
28728         (gimple_bind_set_block): Likewise.
28729         (gimple_asm_ninputs): Likewise.
28730         (gimple_asm_noutputs): Likewise.
28731         (gimple_asm_nclobbers): Likewise.
28732         (gimple_asm_nlabels): Likewise.
28733         (gimple_asm_input_op): Likewise.
28734         (gimple_asm_input_op_ptr): Likewise.
28735         (gimple_asm_output_op): Likewise.
28736         (gimple_asm_output_op_ptr): Likewise.
28737         (gimple_asm_set_output_op): Likewise.
28738         (gimple_asm_clobber_op): Likewise.
28739         (gimple_asm_set_clobber_op): Likewise.
28740         (gimple_asm_label_op): Likewise.
28741         (gimple_asm_set_label_op): Likewise.
28742         (gimple_asm_string): Likewise.
28743         (gimple_catch_types): Likewise.
28744         (gimple_catch_types_ptr): Likewise.
28745         (gimple_catch_handler_ptr): Likewise.
28746         (gimple_catch_set_types): Likewise.
28747         (gimple_catch_set_handler): Likewise.
28748         (gimple_eh_filter_types): Likewise.
28749         (gimple_eh_filter_types_ptr): Likewise.
28750         (gimple_eh_filter_failure_ptr): Likewise.
28751         (gimple_eh_filter_set_types): Likewise.
28752         (gimple_eh_filter_set_failure): Likewise.
28753         (gimple_eh_must_not_throw_fndecl): Likewise.
28754         (gimple_eh_must_not_throw_set_fndecl): Likewise.
28755         (gimple_eh_else_n_body_ptr): Likewise.
28756         (gimple_eh_else_e_body_ptr): Likewise.
28757         (gimple_eh_else_set_n_body): Likewise.
28758         (gimple_eh_else_set_e_body): Likewise.
28759         (gimple_try_eval_ptr): Likewise.
28760         (gimple_try_cleanup_ptr): Likewise.
28761         (gimple_try_set_eval): Likewise.
28762         (gimple_try_set_cleanup): Likewise.
28763         (gimple_wce_cleanup_ptr): Likewise.
28764         (gimple_wce_set_cleanup): Likewise.
28765         (gimple_phi_capacity): Likewise.
28766         (gimple_phi_num_args): Likewise.
28767         (gimple_phi_result): Likewise.
28768         (gimple_phi_result_ptr): Likewise.
28769         (gimple_phi_set_result): Likewise.
28770         (gimple_phi_arg): Likewise.
28771         (gimple_phi_set_arg): Likewise.
28772         (gimple_resx_region): Likewise.
28773         (gimple_resx_set_region): Likewise.
28774         (gimple_eh_dispatch_region): Likewise.
28775         (gimple_eh_dispatch_set_region): Likewise.
28776         (gimple_omp_critical_name): Likewise.
28777         (gimple_omp_critical_name_ptr): Likewise.
28778         (gimple_omp_critical_set_name): Likewise.
28779         (gimple_omp_for_clauses): Likewise.
28780         (gimple_omp_for_clauses_ptr): Likewise.
28781         (gimple_omp_for_set_clauses): Likewise.
28782         (gimple_omp_for_collapse): Likewise.
28783         (gimple_omp_for_index): Likewise.
28784         (gimple_omp_for_index_ptr): Likewise.
28785         (gimple_omp_for_set_index): Likewise.
28786         (gimple_omp_for_initial): Likewise.
28787         (gimple_omp_for_initial_ptr): Likewise.
28788         (gimple_omp_for_set_initial): Likewise.
28789         (gimple_omp_for_final): Likewise.
28790         (gimple_omp_for_final_ptr): Likewise.
28791         (gimple_omp_for_set_final): Likewise.
28792         (gimple_omp_for_incr): Likewise.
28793         (gimple_omp_for_incr_ptr): Likewise.
28794         (gimple_omp_for_set_incr): Likewise.
28795         (gimple_omp_for_pre_body_ptr): Likewise.
28796         (gimple_omp_for_set_pre_body): Likewise.
28797         (gimple_omp_parallel_clauses): Likewise.
28798         (gimple_omp_parallel_clauses_ptr): Likewise.
28799         (gimple_omp_parallel_set_clauses): Likewise.
28800         (gimple_omp_parallel_child_fn): Likewise.
28801         (gimple_omp_parallel_child_fn_ptr): Likewise.
28802         (gimple_omp_parallel_set_child_fn): Likewise.
28803         (gimple_omp_parallel_data_arg): Likewise.
28804         (gimple_omp_parallel_data_arg_ptr): Likewise.
28805         (gimple_omp_parallel_set_data_arg): Likewise.
28806         (gimple_omp_task_clauses): Likewise.
28807         (gimple_omp_task_clauses_ptr): Likewise.
28808         (gimple_omp_task_set_clauses): Likewise.
28809         (gimple_omp_task_child_fn): Likewise.
28810         (gimple_omp_task_child_fn_ptr): Likewise.
28811         (gimple_omp_task_set_child_fn): Likewise.
28812         (gimple_omp_task_data_arg): Likewise.
28813         (gimple_omp_task_data_arg_ptr): Likewise.
28814         (gimple_omp_task_set_data_arg): Likewise.
28815         (gimple_omp_taskreg_clauses): Likewise.
28816         (gimple_omp_taskreg_clauses_ptr): Likewise.
28817         (gimple_omp_taskreg_set_clauses): Likewise.
28818         (gimple_omp_taskreg_child_fn): Likewise.
28819         (gimple_omp_taskreg_child_fn_ptr): Likewise.
28820         (gimple_omp_taskreg_set_child_fn): Likewise.
28821         (gimple_omp_taskreg_data_arg): Likewise.
28822         (gimple_omp_taskreg_data_arg_ptr): Likewise.
28823         (gimple_omp_taskreg_set_data_arg): Likewise.
28824         (gimple_omp_task_copy_fn): Likewise.
28825         (gimple_omp_task_copy_fn_ptr): Likewise.
28826         (gimple_omp_task_set_copy_fn): Likewise.
28827         (gimple_omp_task_arg_size): Likewise.
28828         (gimple_omp_task_arg_size_ptr): Likewise.
28829         (gimple_omp_task_set_arg_size): Likewise.
28830         (gimple_omp_task_arg_align): Likewise.
28831         (gimple_omp_task_arg_align_ptr): Likewise.
28832         (gimple_omp_task_set_arg_align): Likewise.
28833         (gimple_omp_single_clauses): Likewise.
28834         (gimple_omp_single_clauses_ptr): Likewise.
28835         (gimple_omp_single_set_clauses): Likewise.
28836         (gimple_omp_target_clauses): Likewise.
28837         (gimple_omp_target_clauses_ptr): Likewise.
28838         (gimple_omp_target_set_clauses): Likewise.
28839         (gimple_omp_target_child_fn): Likewise.
28840         (gimple_omp_target_child_fn_ptr): Likewise.
28841         (gimple_omp_target_set_child_fn): Likewise.
28842         (gimple_omp_target_data_arg): Likewise.
28843         (gimple_omp_target_data_arg_ptr): Likewise.
28844         (gimple_omp_target_set_data_arg): Likewise.
28845         (gimple_omp_teams_clauses): Likewise.
28846         (gimple_omp_teams_clauses_ptr): Likewise.
28847         (gimple_omp_teams_set_clauses): Likewise.
28848         (gimple_omp_sections_clauses): Likewise.
28849         (gimple_omp_sections_clauses_ptr): Likewise.
28850         (gimple_omp_sections_set_clauses): Likewise.
28851         (gimple_omp_sections_control): Likewise.
28852         (gimple_omp_sections_control_ptr): Likewise.
28853         (gimple_omp_sections_set_control): Likewise.
28854         (gimple_omp_for_set_cond): Likewise.
28855         (gimple_omp_for_cond): Likewise.
28856         (gimple_omp_atomic_store_set_val): Likewise.
28857         (gimple_omp_atomic_store_val): Likewise.
28858         (gimple_omp_atomic_store_val_ptr): Likewise.
28859         (gimple_omp_atomic_load_set_lhs): Likewise.
28860         (gimple_omp_atomic_load_lhs): Likewise.
28861         (gimple_omp_atomic_load_lhs_ptr): Likewise.
28862         (gimple_omp_atomic_load_set_rhs): Likewise.
28863         (gimple_omp_atomic_load_rhs): Likewise.
28864         (gimple_omp_atomic_load_rhs_ptr): Likewise.
28865         (gimple_omp_continue_control_def): Likewise.
28866         (gimple_omp_continue_control_def_ptr): Likewise.
28867         (gimple_omp_continue_set_control_def): Likewise.
28868         (gimple_omp_continue_control_use): Likewise.
28869         (gimple_omp_continue_control_use_ptr): Likewise.
28870         (gimple_omp_continue_set_control_use): Likewise.
28871         (gimple_transaction_body_ptr): Likewise.
28872         (gimple_transaction_label): Likewise.
28873         (gimple_transaction_label_ptr): Likewise.
28874         (gimple_transaction_set_body): Likewise.
28875         (gimple_transaction_set_label): Likewise.
28876
28877         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
28878         * ipa-inline-analysis.c (inline_write_summary): Likewise.
28879         * ipa-ref.c (ipa_record_reference): Likewise.
28880         * ipa-reference.c (analyze_function): Likewise.
28881         (ipa_reference_write_optimization_summary): Likewise.
28882         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
28883         (address_taken_from_non_vtable_p): Likewise.
28884         (comdat_can_be_unshared_p_1): Likewise.
28885         * lto-cgraph.c (lto_output_ref): Likewise.
28886         (add_references): Likewise.
28887         (compute_ltrans_boundary): Likewise.
28888         (output_symtab): Likewise.
28889         (input_ref): Likewise.
28890         (input_cgraph_1): Likewise.
28891         (output_cgraph_opt_summary): Likewise.
28892         * lto-streamer-out.c (lto_output): Likewise.
28893         (output_symbol_p): Likewise.
28894         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
28895         (lsei_start_function_in_partition): Likewise.
28896         (lsei_next_variable_in_partition): Likewise.
28897         (lsei_start_variable_in_partition): Likewise.
28898         * symtab.c (insert_to_assembler_name_hash): Likewise.
28899         (unlink_from_assembler_name_hash): Likewise.
28900         (symtab_unregister_node): Likewise.
28901         (symtab_remove_node): Likewise.
28902         (dump_symtab_node): Likewise.
28903         (verify_symtab_base): Likewise.
28904         (verify_symtab_node): Likewise.
28905         (symtab_make_decl_local): Likewise.
28906         (symtab_alias_ultimate_target): Likewise.
28907         (symtab_resolve_alias): Likewise.
28908         (symtab_get_symbol_partitioning_class): Likewise.
28909         * tree-phinodes.c (allocate_phi_node): Likewise.
28910         (reserve_phi_args_for_new_edge): Likewise.
28911         (remove_phi_args): Likewise.
28912         * varpool.c (varpool_node_for_asm): Likewise.
28913         (varpool_remove_unreferenced_decls): Likewise.
28914
28915 2014-04-23  Jeff Law  <law@redhat.com>
28916
28917         PR tree-optimization/60902
28918         * tree-ssa-threadedge.c
28919         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
28920         invalidate outputs from statements that do not produce useful
28921         outputs for threading.
28922
28923 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
28924
28925         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
28926         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
28927         machine descriptions for Stack Smashing Protector.
28928
28929 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
28930
28931         * aarch64.md (<optab>_rol<mode>3): New pattern.
28932         (<optab>_rolsi3_uxtw): Likewise.
28933         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
28934
28935 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
28936
28937         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
28938         (arm_cortex_a12_tune): Likewise.
28939
28940 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28941
28942         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
28943
28944 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28945
28946         * config/arm/arm.md (arm_rev16si2): New pattern.
28947         (arm_rev16si2_alt): Likewise.
28948         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
28949
28950 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28951
28952         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
28953         (rev16<mode>2_alt): Likewise.
28954         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
28955         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
28956         (aarch_rev16_shleft_mask_imm_p): Likewise.
28957         (aarch_rev16_p_1): Likewise.
28958         (aarch_rev16_p): Likewise.
28959         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
28960         (aarch_rev16_shright_mask_imm_p): Likewise.
28961         (aarch_rev16_shleft_mask_imm_p): Likewise.
28962
28963 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28964
28965         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
28966         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
28967         rev cost.
28968         (cortex_a53_extra_costs): Likewise.
28969         (cortex_a57_extra_costs): Likewise.
28970         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
28971         (cortexa7_extra_costs): Likewise.
28972         (cortexa8_extra_costs): Likewise.
28973         (cortexa12_extra_costs): Likewise.
28974         (cortexa15_extra_costs): Likewise.
28975         (v7m_extra_costs): Likewise.
28976         (arm_new_rtx_costs): Handle BSWAP.
28977
28978 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28979
28980         * config/arm/arm.c (cortexa8_extra_costs): New table.
28981         (arm_cortex_a8_tune): New tuning struct.
28982         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
28983
28984 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28985
28986         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
28987
28988 2014-04-23  Richard Biener  <rguenther@suse.de>
28989
28990         * Makefile.in (OBJS): Remove loop-unswitch.o.
28991         * tree-pass.h (make_pass_rtl_unswitch): Remove.
28992         * passes.def (pass_rtl_unswitch): Likewise.
28993         * loop-init.c (gate_rtl_unswitch): Likewise.
28994         (rtl_unswitch): Likewise.
28995         (pass_data_rtl_unswitch): Likewise.
28996         (pass_rtl_unswitch): Likewise.
28997         (make_pass_rtl_unswitch): Likewise.
28998         * rtl.h (reversed_condition): Likewise.
28999         (compare_and_jump_seq): Likewise.
29000         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
29001         and make static.
29002         * loop-unroll.c (compare_and_jump_seq): Likewise.
29003
29004 2014-04-23  Richard Biener  <rguenther@suse.de>
29005
29006         PR tree-optimization/60903
29007         * tree-ssa-loop-im.c (analyze_memory_references): Remove
29008         commented code block.
29009         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
29010         loop flags to newly created BBs and edges.
29011
29012 2014-04-23  Nick Clifton  <nickc@redhat.com>
29013
29014         * config/msp430/msp430.c (msp430_handle_option): Move function
29015         to msp430-common.c
29016         (msp430_option_override): Simplify mcu and mcpu option handling.
29017         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
29018         support for -mhwmult command line option.
29019         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
29020         -mhwmult command line option.
29021         (msp430_hwmult_enabled): Delete.
29022         (msp43o_output_labelref): Add support for -mhwmult command line option.
29023         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
29024         (umulsidi3): Likewise.
29025         * config/msp430/msp430.opt (mmcu): Add Report attribute.
29026         (mcpu, mlarge, msmall): Likewise.
29027         (mhwmult): New option.
29028         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
29029         prototype.
29030         (msp430_is_f5_mcu): Remove prototype.
29031         (msp430_use_f5_series_hwmult): Add prototype.
29032         * config/msp430/msp430-opts.h: New file.
29033         * common/config/msp430: New directory.
29034         * common/config/msp430/msp430-common.c: New file.
29035         * config.gcc (msp430): Remove target_has_targetm_common.
29036         * doc/invoke.texi: Document -mhwmult command line option.
29037
29038 2014-04-23  Nick Clifton  <nickc@redhat.com>
29039
29040         * config/i386/cygwin.h (ENDFILE_SPEC): Include
29041         default-manifest.o if it can be found in the search path.
29042         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
29043
29044 2014-04-23  Terry Guo  <terry.guo@arm.com>
29045
29046         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
29047
29048 2014-04-23  Richard Biener  <rguenther@suse.de>
29049
29050         PR middle-end/60895
29051         * tree-inline.c (declare_return_variable): Use mark_addressable.
29052
29053 2014-04-23  Richard Biener  <rguenther@suse.de>
29054
29055         PR middle-end/60891
29056         * loop-init.c (loop_optimizer_init): Make sure to apply
29057         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
29058
29059 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
29060
29061         PR sanitizer/60275
29062         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
29063         New options.
29064         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
29065         if flag_sanitize_undefined_trap_on_error.
29066         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
29067         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
29068         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
29069         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
29070         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
29071         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
29072         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
29073         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
29074         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
29075         * ubsan.c (ubsan_instrument_unreachable): Return
29076         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
29077         (ubsan_expand_null_ifn): Emit __builtin_trap ()
29078         if flag_sanitize_undefined_trap_on_error and
29079         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
29080         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
29081         instrument_bool_enum_load): Emit __builtin_trap () if
29082         flag_sanitize_undefined_trap_on_error and
29083         __builtin_handle_*_abort () if !flag_sanitize_recover.
29084         * doc/invoke.texi (-fsanitize-recover,
29085         -fsanitize-undefined-trap-on-error): Document.
29086
29087 2014-04-22  Christian Bruel  <christian.bruel@st.com>
29088
29089         * config/sh/sh.md (mov<mode>): Replace movQIHI.
29090         Force immediates to SImode.
29091
29092 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
29093
29094         * config/nios2/nios2.md (UNSPEC_ROUND): New.
29095         (lroundsfsi2): New.
29096         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
29097         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
29098         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
29099         (nios2_fpu_insn): Add entry for round.
29100         (N2FPU_NO_ERRNO_P): Define.
29101         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
29102         flag_errno_math.
29103         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
29104
29105 2014-04-22  Richard Henderson  <rth@redhat.com>
29106
29107         * config/aarch64/aarch64 (addti3, subti3): New expanders.
29108         (add<GPI>3_compare0): Remove leading * from name.
29109         (add<GPI>3_carryin): Likewise.
29110         (sub<GPI>3_compare0): Likewise.
29111         (sub<GPI>3_carryin): Likewise.
29112         (<su_optab>mulditi3): New expander.
29113         (multi3): New expander.
29114         (madd<GPI>): Remove leading * from name.
29115
29116 2014-04-22  Martin Jambor  <mjambor@suse.cz>
29117
29118         * cgraphclones.c (cgraph_function_versioning): Copy
29119         ipa_transforms_to_apply instead of asserting it is empty.
29120
29121 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
29122
29123         PR target/60868
29124         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
29125         on count_exp to get mode.
29126
29127 2014-04-22  Andrew Pinski  <apinski@cavium.com>
29128
29129         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
29130         Handle TLS for ILP32.
29131         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
29132         (tlsie_small_<mode>): this and handle PTR.
29133         (tlsie_small_sidi): New pattern.
29134         (tlsle_small): Change to an expand to handle ILP32.
29135         (tlsle_small_<mode>): New pattern.
29136         (tlsdesc_small): Rename to ...
29137         (tlsdesc_small_<mode>): this and handle PTR.
29138
29139 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29140
29141         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
29142
29143 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29144
29145         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
29146         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
29147         (aarch64_types_signed_poly_qualifiers): Likewise.
29148         (aarch64_types_unsigned_signed_qualifiers): Likewise.
29149         (aarch64_types_poly_signed_qualifiers): Likewise.
29150         (TYPES_REINTERP_SS): Type macro added.
29151         (TYPES_REINTERP_SU): Likewise.
29152         (TYPES_REINTERP_SP): Likewise.
29153         (TYPES_REINTERP_US): Likewise.
29154         (TYPES_REINTERP_PS): Likewise.
29155         (aarch64_fold_builtin): New expression folding added.
29156         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
29157         Declarations removed.
29158         (REINTERP_SS): Declarations added.
29159         (REINTERP_US): Likewise.
29160         (REINTERP_PS): Likewise.
29161         (REINTERP_SU): Likewise.
29162         (REINTERP_SP): Likewise.
29163         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
29164         (vreinterpretq_p8_f64): Likewise.
29165         (vreinterpret_p16_f64): Likewise.
29166         (vreinterpretq_p16_f64): Likewise.
29167         (vreinterpret_f32_f64): Likewise.
29168         (vreinterpretq_f32_f64): Likewise.
29169         (vreinterpret_f64_f32): Likewise.
29170         (vreinterpret_f64_p8): Likewise.
29171         (vreinterpret_f64_p16): Likewise.
29172         (vreinterpret_f64_s8): Likewise.
29173         (vreinterpret_f64_s16): Likewise.
29174         (vreinterpret_f64_s32): Likewise.
29175         (vreinterpret_f64_s64): Likewise.
29176         (vreinterpret_f64_u8): Likewise.
29177         (vreinterpret_f64_u16): Likewise.
29178         (vreinterpret_f64_u32): Likewise.
29179         (vreinterpret_f64_u64): Likewise.
29180         (vreinterpretq_f64_f32): Likewise.
29181         (vreinterpretq_f64_p8): Likewise.
29182         (vreinterpretq_f64_p16): Likewise.
29183         (vreinterpretq_f64_s8): Likewise.
29184         (vreinterpretq_f64_s16): Likewise.
29185         (vreinterpretq_f64_s32): Likewise.
29186         (vreinterpretq_f64_s64): Likewise.
29187         (vreinterpretq_f64_u8): Likewise.
29188         (vreinterpretq_f64_u16): Likewise.
29189         (vreinterpretq_f64_u32): Likewise.
29190         (vreinterpretq_f64_u64): Likewise.
29191         (vreinterpret_s64_f64): Likewise.
29192         (vreinterpretq_s64_f64): Likewise.
29193         (vreinterpret_u64_f64): Likewise.
29194         (vreinterpretq_u64_f64): Likewise.
29195         (vreinterpret_s8_f64): Likewise.
29196         (vreinterpretq_s8_f64): Likewise.
29197         (vreinterpret_s16_f64): Likewise.
29198         (vreinterpretq_s16_f64): Likewise.
29199         (vreinterpret_s32_f64): Likewise.
29200         (vreinterpretq_s32_f64): Likewise.
29201         (vreinterpret_u8_f64): Likewise.
29202         (vreinterpretq_u8_f64): Likewise.
29203         (vreinterpret_u16_f64): Likewise.
29204         (vreinterpretq_u16_f64): Likewise.
29205         (vreinterpret_u32_f64): Likewise.
29206         (vreinterpretq_u32_f64): Likewise.
29207
29208 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29209
29210         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
29211         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
29212         (vreinterpret_p8_s8): Likewise.
29213         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
29214         (vreinterpret_p8_s16): Likewise.
29215         (vreinterpret_p8_s32): Likewise.
29216         (vreinterpret_p8_s64): Likewise.
29217         (vreinterpret_p8_f32): Likewise.
29218         (vreinterpret_p8_u8): Likewise.
29219         (vreinterpret_p8_u16): Likewise.
29220         (vreinterpret_p8_u32): Likewise.
29221         (vreinterpret_p8_u64): Likewise.
29222         (vreinterpret_p8_p16): Likewise.
29223         (vreinterpretq_p8_s8): Likewise.
29224         (vreinterpretq_p8_s16): Likewise.
29225         (vreinterpretq_p8_s32): Likewise.
29226         (vreinterpretq_p8_s64): Likewise.
29227         (vreinterpretq_p8_f32): Likewise.
29228         (vreinterpretq_p8_u8): Likewise.
29229         (vreinterpretq_p8_u16): Likewise.
29230         (vreinterpretq_p8_u32): Likewise.
29231         (vreinterpretq_p8_u64): Likewise.
29232         (vreinterpretq_p8_p16): Likewise.
29233         (vreinterpret_p16_s8): Likewise.
29234         (vreinterpret_p16_s16): Likewise.
29235         (vreinterpret_p16_s32): Likewise.
29236         (vreinterpret_p16_s64): Likewise.
29237         (vreinterpret_p16_f32): Likewise.
29238         (vreinterpret_p16_u8): Likewise.
29239         (vreinterpret_p16_u16): Likewise.
29240         (vreinterpret_p16_u32): Likewise.
29241         (vreinterpret_p16_u64): Likewise.
29242         (vreinterpret_p16_p8): Likewise.
29243         (vreinterpretq_p16_s8): Likewise.
29244         (vreinterpretq_p16_s16): Likewise.
29245         (vreinterpretq_p16_s32): Likewise.
29246         (vreinterpretq_p16_s64): Likewise.
29247         (vreinterpretq_p16_f32): Likewise.
29248         (vreinterpretq_p16_u8): Likewise.
29249         (vreinterpretq_p16_u16): Likewise.
29250         (vreinterpretq_p16_u32): Likewise.
29251         (vreinterpretq_p16_u64): Likewise.
29252         (vreinterpretq_p16_p8): Likewise.
29253         (vreinterpret_f32_s8): Likewise.
29254         (vreinterpret_f32_s16): Likewise.
29255         (vreinterpret_f32_s32): Likewise.
29256         (vreinterpret_f32_s64): Likewise.
29257         (vreinterpret_f32_u8): Likewise.
29258         (vreinterpret_f32_u16): Likewise.
29259         (vreinterpret_f32_u32): Likewise.
29260         (vreinterpret_f32_u64): Likewise.
29261         (vreinterpret_f32_p8): Likewise.
29262         (vreinterpret_f32_p16): Likewise.
29263         (vreinterpretq_f32_s8): Likewise.
29264         (vreinterpretq_f32_s16): Likewise.
29265         (vreinterpretq_f32_s32): Likewise.
29266         (vreinterpretq_f32_s64): Likewise.
29267         (vreinterpretq_f32_u8): Likewise.
29268         (vreinterpretq_f32_u16): Likewise.
29269         (vreinterpretq_f32_u32): Likewise.
29270         (vreinterpretq_f32_u64): Likewise.
29271         (vreinterpretq_f32_p8): Likewise.
29272         (vreinterpretq_f32_p16): Likewise.
29273         (vreinterpret_s64_s8): Likewise.
29274         (vreinterpret_s64_s16): Likewise.
29275         (vreinterpret_s64_s32): Likewise.
29276         (vreinterpret_s64_f32): Likewise.
29277         (vreinterpret_s64_u8): Likewise.
29278         (vreinterpret_s64_u16): Likewise.
29279         (vreinterpret_s64_u32): Likewise.
29280         (vreinterpret_s64_u64): Likewise.
29281         (vreinterpret_s64_p8): Likewise.
29282         (vreinterpret_s64_p16): Likewise.
29283         (vreinterpretq_s64_s8): Likewise.
29284         (vreinterpretq_s64_s16): Likewise.
29285         (vreinterpretq_s64_s32): Likewise.
29286         (vreinterpretq_s64_f32): Likewise.
29287         (vreinterpretq_s64_u8): Likewise.
29288         (vreinterpretq_s64_u16): Likewise.
29289         (vreinterpretq_s64_u32): Likewise.
29290         (vreinterpretq_s64_u64): Likewise.
29291         (vreinterpretq_s64_p8): Likewise.
29292         (vreinterpretq_s64_p16): Likewise.
29293         (vreinterpret_u64_s8): Likewise.
29294         (vreinterpret_u64_s16): Likewise.
29295         (vreinterpret_u64_s32): Likewise.
29296         (vreinterpret_u64_s64): Likewise.
29297         (vreinterpret_u64_f32): Likewise.
29298         (vreinterpret_u64_u8): Likewise.
29299         (vreinterpret_u64_u16): Likewise.
29300         (vreinterpret_u64_u32): Likewise.
29301         (vreinterpret_u64_p8): Likewise.
29302         (vreinterpret_u64_p16): Likewise.
29303         (vreinterpretq_u64_s8): Likewise.
29304         (vreinterpretq_u64_s16): Likewise.
29305         (vreinterpretq_u64_s32): Likewise.
29306         (vreinterpretq_u64_s64): Likewise.
29307         (vreinterpretq_u64_f32): Likewise.
29308         (vreinterpretq_u64_u8): Likewise.
29309         (vreinterpretq_u64_u16): Likewise.
29310         (vreinterpretq_u64_u32): Likewise.
29311         (vreinterpretq_u64_p8): Likewise.
29312         (vreinterpretq_u64_p16): Likewise.
29313         (vreinterpret_s8_s16): Likewise.
29314         (vreinterpret_s8_s32): Likewise.
29315         (vreinterpret_s8_s64): Likewise.
29316         (vreinterpret_s8_f32): Likewise.
29317         (vreinterpret_s8_u8): Likewise.
29318         (vreinterpret_s8_u16): Likewise.
29319         (vreinterpret_s8_u32): Likewise.
29320         (vreinterpret_s8_u64): Likewise.
29321         (vreinterpret_s8_p8): Likewise.
29322         (vreinterpret_s8_p16): Likewise.
29323         (vreinterpretq_s8_s16): Likewise.
29324         (vreinterpretq_s8_s32): Likewise.
29325         (vreinterpretq_s8_s64): Likewise.
29326         (vreinterpretq_s8_f32): Likewise.
29327         (vreinterpretq_s8_u8): Likewise.
29328         (vreinterpretq_s8_u16): Likewise.
29329         (vreinterpretq_s8_u32): Likewise.
29330         (vreinterpretq_s8_u64): Likewise.
29331         (vreinterpretq_s8_p8): Likewise.
29332         (vreinterpretq_s8_p16): Likewise.
29333         (vreinterpret_s16_s8): Likewise.
29334         (vreinterpret_s16_s32): Likewise.
29335         (vreinterpret_s16_s64): Likewise.
29336         (vreinterpret_s16_f32): Likewise.
29337         (vreinterpret_s16_u8): Likewise.
29338         (vreinterpret_s16_u16): Likewise.
29339         (vreinterpret_s16_u32): Likewise.
29340         (vreinterpret_s16_u64): Likewise.
29341         (vreinterpret_s16_p8): Likewise.
29342         (vreinterpret_s16_p16): Likewise.
29343         (vreinterpretq_s16_s8): Likewise.
29344         (vreinterpretq_s16_s32): Likewise.
29345         (vreinterpretq_s16_s64): Likewise.
29346         (vreinterpretq_s16_f32): Likewise.
29347         (vreinterpretq_s16_u8): Likewise.
29348         (vreinterpretq_s16_u16): Likewise.
29349         (vreinterpretq_s16_u32): Likewise.
29350         (vreinterpretq_s16_u64): Likewise.
29351         (vreinterpretq_s16_p8): Likewise.
29352         (vreinterpretq_s16_p16): Likewise.
29353         (vreinterpret_s32_s8): Likewise.
29354         (vreinterpret_s32_s16): Likewise.
29355         (vreinterpret_s32_s64): Likewise.
29356         (vreinterpret_s32_f32): Likewise.
29357         (vreinterpret_s32_u8): Likewise.
29358         (vreinterpret_s32_u16): Likewise.
29359         (vreinterpret_s32_u32): Likewise.
29360         (vreinterpret_s32_u64): Likewise.
29361         (vreinterpret_s32_p8): Likewise.
29362         (vreinterpret_s32_p16): Likewise.
29363         (vreinterpretq_s32_s8): Likewise.
29364         (vreinterpretq_s32_s16): Likewise.
29365         (vreinterpretq_s32_s64): Likewise.
29366         (vreinterpretq_s32_f32): Likewise.
29367         (vreinterpretq_s32_u8): Likewise.
29368         (vreinterpretq_s32_u16): Likewise.
29369         (vreinterpretq_s32_u32): Likewise.
29370         (vreinterpretq_s32_u64): Likewise.
29371         (vreinterpretq_s32_p8): Likewise.
29372         (vreinterpretq_s32_p16): Likewise.
29373         (vreinterpret_u8_s8): Likewise.
29374         (vreinterpret_u8_s16): Likewise.
29375         (vreinterpret_u8_s32): Likewise.
29376         (vreinterpret_u8_s64): Likewise.
29377         (vreinterpret_u8_f32): Likewise.
29378         (vreinterpret_u8_u16): Likewise.
29379         (vreinterpret_u8_u32): Likewise.
29380         (vreinterpret_u8_u64): Likewise.
29381         (vreinterpret_u8_p8): Likewise.
29382         (vreinterpret_u8_p16): Likewise.
29383         (vreinterpretq_u8_s8): Likewise.
29384         (vreinterpretq_u8_s16): Likewise.
29385         (vreinterpretq_u8_s32): Likewise.
29386         (vreinterpretq_u8_s64): Likewise.
29387         (vreinterpretq_u8_f32): Likewise.
29388         (vreinterpretq_u8_u16): Likewise.
29389         (vreinterpretq_u8_u32): Likewise.
29390         (vreinterpretq_u8_u64): Likewise.
29391         (vreinterpretq_u8_p8): Likewise.
29392         (vreinterpretq_u8_p16): Likewise.
29393         (vreinterpret_u16_s8): Likewise.
29394         (vreinterpret_u16_s16): Likewise.
29395         (vreinterpret_u16_s32): Likewise.
29396         (vreinterpret_u16_s64): Likewise.
29397         (vreinterpret_u16_f32): Likewise.
29398         (vreinterpret_u16_u8): Likewise.
29399         (vreinterpret_u16_u32): Likewise.
29400         (vreinterpret_u16_u64): Likewise.
29401         (vreinterpret_u16_p8): Likewise.
29402         (vreinterpret_u16_p16): Likewise.
29403         (vreinterpretq_u16_s8): Likewise.
29404         (vreinterpretq_u16_s16): Likewise.
29405         (vreinterpretq_u16_s32): Likewise.
29406         (vreinterpretq_u16_s64): Likewise.
29407         (vreinterpretq_u16_f32): Likewise.
29408         (vreinterpretq_u16_u8): Likewise.
29409         (vreinterpretq_u16_u32): Likewise.
29410         (vreinterpretq_u16_u64): Likewise.
29411         (vreinterpretq_u16_p8): Likewise.
29412         (vreinterpretq_u16_p16): Likewise.
29413         (vreinterpret_u32_s8): Likewise.
29414         (vreinterpret_u32_s16): Likewise.
29415         (vreinterpret_u32_s32): Likewise.
29416         (vreinterpret_u32_s64): Likewise.
29417         (vreinterpret_u32_f32): Likewise.
29418         (vreinterpret_u32_u8): Likewise.
29419         (vreinterpret_u32_u16): Likewise.
29420         (vreinterpret_u32_u64): Likewise.
29421         (vreinterpret_u32_p8): Likewise.
29422         (vreinterpret_u32_p16): Likewise.
29423         (vreinterpretq_u32_s8): Likewise.
29424         (vreinterpretq_u32_s16): Likewise.
29425         (vreinterpretq_u32_s32): Likewise.
29426         (vreinterpretq_u32_s64): Likewise.
29427         (vreinterpretq_u32_f32): Likewise.
29428         (vreinterpretq_u32_u8): Likewise.
29429         (vreinterpretq_u32_u16): Likewise.
29430         (vreinterpretq_u32_u64): Likewise.
29431         (vreinterpretq_u32_p8): Likewise.
29432         (vreinterpretq_u32_p16): Likewise.
29433
29434 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29435
29436         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
29437         Pattern extended.
29438         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
29439         (sqabs): Likewise.
29440         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
29441         (vqnegd_s64): Likewise.
29442         (vqabs_s64): Likewise.
29443         (vqabsd_s64): Likewise.
29444
29445 2014-04-22  Richard Henderson  <rth@redhat.com>
29446
29447         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
29448         computation to the top of the loop.
29449
29450 2014-04-22  Renlin  <renlin.li@arm.com>
29451             Jiong Wang  <jiong.wang@arm.com>
29452
29453         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
29454         * config/aarch64/aarch64.c (aarch64_layout_frame)
29455         (aarch64_initial_elimination_offset): Likewise.
29456
29457 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
29458
29459         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
29460         Fix indentation.
29461
29462 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
29463
29464         * machmode.h (bitwise_mode_for_mode): Declare.
29465         * stor-layout.h (bitwise_type_for_mode): Likewise.
29466         * stor-layout.c (bitwise_mode_for_mode): New function.
29467         (bitwise_type_for_mode): Likewise.
29468         * builtins.c (fold_builtin_memory_op): Use it instead of
29469         int_mode_for_mode and build_nonstandard_integer_type.
29470
29471 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29472
29473         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
29474         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
29475         (*-*-solaris2*): Simplify.
29476         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
29477         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
29478         *-*-solaris2.9* handling.
29479
29480         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
29481         as bug.
29482         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
29483         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
29484         handling, simplify.
29485         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
29486         * configure: Regenerate.
29487
29488         * config/i386/sol2-9.h: Remove.
29489
29490         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
29491         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
29492         Remove Solaris 9 references.
29493
29494 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
29495
29496         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
29497         (floatuns<GPI:mode><GPF:mode>2): Remove.
29498         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
29499         and floatuns conversions.
29500         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
29501         and floatuns conversions.
29502         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
29503         (w1,w2): New mode attributes for inequal width conversions.
29504
29505 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
29506
29507         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
29508         the output asm format.
29509
29510 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
29511
29512         * config/aarch64/aarch64-simd.md
29513         (aarch64_cm<optab>di): Always split.
29514         (*aarch64_cm<optab>di): New.
29515         (aarch64_cmtstdi): Always split.
29516         (*aarch64_cmtstdi): New.
29517
29518 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
29519
29520         PR tree-optimization/60823
29521         * omp-low.c (ipa_simd_modify_function_body): Go through
29522         all SSA_NAMEs and for those refering to vector arguments
29523         which are going to be replaced adjust SSA_NAME_VAR and,
29524         if it is a default definition, change it into a non-default
29525         definition assigned at the beginning of function from new_decl.
29526         (ipa_simd_modify_stmt_ops): Rewritten.
29527         * tree-dfa.c (set_ssa_default_def): When removing default def,
29528         check for NULL loc instead of NULL *loc.
29529
29530 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29531
29532         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
29533         restrictions on core registers for DImode values in Thumb2.
29534
29535 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
29536
29537         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
29538         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
29539
29540 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
29541
29542         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
29543         (*iordi_notzesidi_di): Likewise.
29544         (*iordi_notsesidi_di): Likewise.
29545
29546 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
29547
29548         * config/arm/arm-protos.h (tune_params): New struct members.
29549         * config/arm/arm.c: Initialise tune_params per processor.
29550         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
29551         for speed, based on new tune_params.
29552
29553 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29554
29555         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
29556         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
29557         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
29558         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
29559         * config/aarch64/arm_neon.h (vrnd_f64): Added.
29560         (vrnda_f64): Likewise.
29561         (vrndi_f64): Likewise.
29562         (vrndm_f64): Likewise.
29563         (vrndn_f64): Likewise.
29564         (vrndp_f64): Likewise.
29565         (vrndx_f64): Likewise.
29566
29567 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
29568
29569         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
29570         GET_MODE_SIZE argument is enum machine_mode.
29571
29572 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
29573
29574         PR target/60910
29575         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
29576         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
29577
29578 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
29579
29580         PR middle-end/60281
29581         * asan.c (asan_emit_stack_protection): Force the base to align to
29582         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
29583         appropriate bits if STRICT_ALIGNMENT.
29584         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
29585         when asan is on.
29586         (expand_used_vars): Leave a space in the stack frame for alignment
29587         if STRICT_ALIGNMENT.
29588
29589 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
29590
29591         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
29592         than a gimple.
29593         (gimple_store_p): Likewise.
29594         (gimple_assign_load_p): Likewise.
29595         (gimple_assign_cast_p): Likewise.
29596         (gimple_clobber_p): Likewise.
29597
29598         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
29599         rather than a gimple.
29600         (gimple_assign_cast_p): Likewise.
29601
29602 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
29603
29604         PR target/60735
29605         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
29606         If mode is DDmode and TARGET_E500_DOUBLE allow move.
29607
29608         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
29609         more debug information for E500 if -mdebug=reg.
29610
29611 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
29612
29613         PR target/60909
29614         * config/i386/i386.c (ix86_expand_builtin)
29615         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
29616         register for target RTX.
29617         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
29618
29619 2014-04-18  Cong Hou  <congh@google.com>
29620
29621         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
29622         the widen-mult pattern by handling two operands with different sizes,
29623         and operands whose size is smaller than half of the result type.
29624
29625 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
29626
29627         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
29628         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
29629         (do_estimate_edge_time): Compute it.
29630         * ipa-inline.c (want_inline_small_function_p): Bypass
29631         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
29632
29633 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
29634
29635         * ipa-inline.c (spec_rem): New static variable.
29636         (dump_overall_stats): New function.
29637         (dump_inline_stats): New function.
29638
29639 2014-04-18  Richard Henderson  <rth@redhat.com>
29640
29641         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
29642         to GET_MODE_SIZE, not a reg_class_t.
29643
29644 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29645
29646         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
29647         (vsx_xxmrglw_<mode>): Likewise.
29648
29649 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
29650
29651         PR target/60876
29652         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
29653         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
29654         (rs6000_init_hard_regno_mode_ok): Likewise.
29655
29656 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
29657
29658         * ipa-inline.c (inline_small_functions): Account only non-cold
29659         functions.
29660         * doc/invoke.texi (inline-unit-growth): Update documentation.
29661
29662 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
29663
29664         * config/rs6000/rs6000.md (addti3, subti3): New.
29665
29666 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
29667
29668         PR target/60863
29669         * config/i386/i386.c (ix86_expand_clear): Remove outdated
29670         comment.  Check optimize_insn_for_size_p instead of
29671         optimize_insn_for_speed_p.
29672
29673 2014-04-17  Martin Jambor  <mjambor@suse.cz>
29674
29675         * gimple-iterator.c (gsi_start_edge): New function.
29676         * gimple-iterator.h (gsi_start_edge): Declare.
29677         * tree-sra.c (single_non_eh_succ): New function.
29678         (disqualify_ops_if_throwing_stmt): Renamed to
29679         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
29680         having one non-EH successor BB.
29681         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
29682         generate loads into replacements.
29683         (sra_modify_assign): Likewise and and also use the simple path for
29684         such statements.
29685         (sra_modify_function_body): Commit statements on edges.
29686
29687 2014-04-17  Richard Biener  <rguenther@suse.de>
29688
29689         PR middle-end/60849
29690         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
29691         comparison results and add clarifying comment.
29692
29693 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
29694
29695         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
29696         (blank_mode): Initialize it.
29697         (emit_mode_size_inline, emit_mode_nunits_inline,
29698         emit_mode_inner_inline): New functions.
29699         (emit_insn_modes_h): Call them and surround their output with
29700         #if GCC_VERSION >= 4001 ... #endif.
29701         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
29702         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
29703         mode_* arrays if the argument is __builtin_constant_p.
29704         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
29705         is enum machine_mode.
29706
29707 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29708
29709         * passes.c (opt_pass::execute): Adjust.
29710         (pass_manager::execute_pass_mode_switching): Likewise.
29711         (early_local_passes::execute): Likewise.
29712         (execute_one_pass): Pass cfun to the pass's execute method.
29713         * tree-pass.h (opt_pass::execute): Add function * argument.
29714         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29715         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29716         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29717         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29718         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29719         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
29720         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
29721         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29722         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29723         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
29724         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
29725         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
29726         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
29727         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
29728         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29729         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29730         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29731         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
29732         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
29733         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29734         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29735         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29736         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29737         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29738         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29739         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29740         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29741         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29742         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29743         Adjust.
29744
29745 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29746
29747         * passes.c (opt_pass::gate): Take function * argument.
29748         (gate_all_early_local_passes): Merge into
29749         (early_local_passes::gate): this.
29750         (gate_all_early_optimizations): Merge into
29751         (all_early_optimizations::gate): this.
29752         (gate_all_optimizations): Mege into
29753         (all_optimizations::gate): this.
29754         (gate_all_optimizations_g): Merge into
29755         (all_optimizations_g::gate): this.
29756         (gate_rest_of_compilation): Mege into
29757         (rest_of_compilation::gate): this.
29758         (gate_postreload): Merge into
29759         (postreload::gate): this.
29760         (dump_one_pass): Pass cfun to the pass's gate method.
29761         (execute_ipa_summary_passes): Likewise.
29762         (execute_one_pass): Likewise.
29763         (ipa_write_summaries_2): Likewise.
29764         (ipa_write_optimization_summaries_1): Likewise.
29765         (ipa_read_summaries_1): Likewise.
29766         (ipa_read_optimization_summaries_1): Likewise.
29767         (execute_ipa_stmt_fixups): Likewise.
29768         * tree-pass.h (opt_pass::gate): Add function * argument.
29769         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
29770         combine-stack-adj.c, combine.c, compare-elim.c,
29771         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29772         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
29773         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
29774         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
29775         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29776         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29777         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29778         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
29779         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
29780         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
29781         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29782         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29783         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
29784         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29785         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29786         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29787         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29788         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29789         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29790         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29791         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29792         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29793         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
29794         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
29795         var-tracking.c, vtable-verify.c, web.c: Adjust.
29796
29797 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29798
29799         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
29800         * configure: Regenerate.
29801
29802 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29803
29804         * passes.c (dump_one_pass): don't check pass->has_gate.
29805         (execute_ipa_summary_passes): Likewise.
29806         (execute_one_pass): Likewise.
29807         (ipa_write_summaries_2): Likewise.
29808         (ipa_write_optimization_summaries_1): Likewise.
29809         (ipa_read_optimization_summaries_1): Likewise.
29810         (execute_ipa_stmt_fixups): Likewise.
29811         * tree-pass.h (pass_data::has_gate): Remove.
29812         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29813         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29814         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29815         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29816         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29817         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
29818         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
29819         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
29820         gimple-low.c, gimple-ssa-isolate-paths.c,
29821         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
29822         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
29823         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29824         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
29825         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
29826         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
29827         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
29828         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
29829         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
29830         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29831         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29832         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29833         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29834         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29835         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29836         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29837         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29838         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29839         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29840         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29841         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29842         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29843         Adjust.
29844
29845 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29846
29847         * pass_manager.h (pass_manager::register_dump_files_1): Remove
29848         declaration.
29849         * passes.c (pass_manager::register_dump_files_1): Merge into
29850         (pass_manager::register_dump_files): this, and remove its handling of
29851         properties since the pass always has the properties anyway.
29852         (pass_manager::pass_manager): Adjust.
29853
29854 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29855
29856         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
29857         * passes.c (pass_manager::register_dump_files_1): Remove dead code
29858         dealing with properties.
29859         (pass_manager::register_dump_files): Adjust.
29860
29861 2014-03-20  Mark Wielaard  <mjw@redhat.com>
29862
29863         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
29864         then represent the bound as normal constant value.
29865
29866 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
29867
29868         PR target/60847
29869         Forward port from 4.8 branch
29870         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
29871
29872         * config/i386/bmiintrin.h (_blsi_u32): New.
29873         (_blsi_u64): Ditto.
29874         (_blsr_u32): Ditto.
29875         (_blsr_u64): Ditto.
29876         (_blsmsk_u32): Ditto.
29877         (_blsmsk_u64): Ditto.
29878         (_tzcnt_u32): Ditto.
29879         (_tzcnt_u64): Ditto.
29880
29881 2014-04-17  Kito Cheng  <kito@0xlab.org>
29882
29883         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
29884
29885 2014-04-17  Richard Biener  <rguenther@suse.de>
29886
29887         PR middle-end/60849
29888         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
29889         boolean results for comparisons.
29890
29891 2014-04-17  Richard Biener  <rguenther@suse.de>
29892
29893         PR tree-optimization/60836
29894         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
29895         initial PHI args to be gimple values.
29896
29897 2014-04-17  Richard Biener  <rguenther@suse.de>
29898
29899         PR tree-optimization/60841
29900         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
29901         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
29902         of stmts to SLP build.
29903         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
29904         (vect_analyze_slp): Likewise.
29905         (vect_analyze_slp_instance): Likewise.
29906         (vect_build_slp_tree): Limit overall SLP tree growth.
29907         * tree-vectorizer.h (vect_analyze_data_refs,
29908         vect_analyze_slp): Adjust prototypes.
29909
29910 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29911
29912         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
29913         Silvermont.
29914
29915 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29916
29917         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
29918         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
29919         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
29920         for TARGET_SLOW_PSHUFB
29921
29922 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29923
29924         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
29925         * config/i386/i386.c (intel_cost): Ditto.
29926
29927 2014-04-17  Joey Ye  <joey.ye@arm.com>
29928
29929         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
29930
29931 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29932
29933         * opts.c (common_handle_option): Disable -fipa-reference coorectly
29934         with -fuse-profile.
29935
29936 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29937
29938         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
29939         (type_all_derivations_known_p): New predicate.
29940         (type_all_ctors_visible_p): New predicate.
29941         (type_possibly_instantiated_p): New predicate.
29942         (get_odr_type): Compute all_derivations_known.
29943         (dump_odr_type): Dump the flag.
29944         (maybe_record_type): Cleanup.
29945         (record_target_from_binfo): Add bases_to_consider array;
29946         record bases for types w/o instances and skip CXX destructor.
29947         (possible_polymorphic_call_targets_1): Add bases_to_consider
29948         and consider_construction parameters; check if type may have instance.
29949         (get_polymorphic_call_info): Set maybe_in_construction to true
29950         when we know nothing.
29951         (record_targets_from_bases): Skip CXX destructors; they are
29952         never called for types in construction.
29953         (possible_polymorphic_call_targets): Do not record target when
29954         type may not have instance.
29955
29956 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29957
29958         PR ipa/60854
29959         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
29960         external aliases alive, too.
29961
29962 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
29963
29964         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
29965         definition.
29966
29967 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
29968
29969         * final.c (compute_alignments): Do not apply loop alignment to a block
29970         falling through to the exit.
29971
29972 2014-04-16  Catherine Moore  <clm@codesourcery.com>
29973
29974         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
29975         Adjust constraints for microMIPS store patterns.
29976
29977 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
29978
29979         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
29980
29981 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
29982
29983         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
29984         (append_use): Run at -O0.
29985         (append_vdef): Likewise.
29986         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
29987         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
29988
29989 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
29990
29991         PR tree-optimization/60844
29992         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
29993         (propagate_op_to_single_use, remove_visited_stmt_chain,
29994         linearize_expr, repropagate_negates, reassociate_bb): Use it
29995         instead of gsi_remove.
29996
29997 2014-04-16  Martin Jambor  <mjambor@suse.cz>
29998
29999         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
30000         ipa_transforms_to_apply.
30001         (cgraph_function_versioning): Assert that old_node has empty
30002         ipa_transforms_to_apply.
30003         * trans-mem.c (ipa_tm_create_version): Likewise.
30004         * tree-inline.c (tree_function_versioning): Do not duplicate
30005         ipa_transforms_to_apply.
30006
30007 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30008
30009         PR target/60817
30010         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
30011         x86_64-*-* cases.
30012         Pass necessary as flags on 64-bit Solaris/x86.
30013         Use lowercase relocs for x86_64-*-*.
30014         * configure: Regenerate.
30015
30016 2014-04-15  Jan Hubicka  <jh@suse.cz>
30017
30018         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
30019         (maybe_record_node, likely_target_p): Use it.
30020
30021 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30022
30023         PR target/60839
30024         Revert following patch
30025
30026         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
30027
30028         PR target/60735
30029         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30030         software floating point or no floating point registers, do not
30031         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
30032         in GPRs that occurs after we tested for GPRs that would never be
30033         true.
30034
30035         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30036         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30037         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
30038         specifically allow DDmode, since that does not use the SPE SIMD
30039         instructions.
30040
30041 2014-03-21  Mark Wielaard  <mjw@redhat.com>
30042
30043         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
30044         as unsigned or int depending on type and value used.
30045
30046 2014-04-15  Richard Biener  <rguenther@suse.de>
30047
30048         PR rtl-optimization/56965
30049         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
30050         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
30051         ... here.
30052         * alias.c (true_dependence_1): Do not call
30053         nonoverlapping_component_refs_p.
30054         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
30055         nonoverlapping_component_refs_p.
30056         (indirect_refs_may_alias_p): Likewise.
30057
30058 2014-04-15  Teresa Johnson  <tejohnson@google.com>
30059
30060         * cfg.c (dump_bb_info): Fix flags check.
30061         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
30062
30063 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30064
30065         PR rtl-optimization/60663
30066         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
30067         avoid 0 cost.
30068
30069 2014-04-15  Richard Biener  <rguenther@suse.de>
30070
30071         * lto-streamer.h (LTO_major_version): Bump to 4.
30072
30073 2014-04-15  Richard Biener  <rguenther@suse.de>
30074
30075         * common.opt (lto_partition_model): New enum.
30076         (flto-partition=): Merge separate options with a single with argument,
30077         add -flto-partition=one support.
30078         * flag-types.h (enum lto_partition_model): Declare.
30079         * opts.c (finish_options): Remove duplicate -flto-partition=
30080         option check.
30081         * lto-wrapper.c (run_gcc): Adjust.
30082
30083 2014-04-15  Richard Biener  <rguenther@suse.de>
30084
30085         * alias.c (ncr_compar): New function.
30086         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
30087
30088 2014-04-15  Richard Biener  <rguenther@suse.de>
30089
30090         * alias.c (record_component_aliases): Do not walk BINFOs.
30091
30092 2014-04-15  Richard Biener  <rguenther@suse.de>
30093
30094         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
30095         Add struct function argument and adjust.
30096         (find_func_aliases_for_call): Likewise.
30097         (find_func_aliases): Likewise.
30098         (find_func_clobbers): Likewise.
30099         (intra_create_variable_infos): Likewise.
30100         (compute_points_to_sets): Likewise.
30101         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
30102
30103 2014-04-15  Richard Biener  <rguenther@suse.de>
30104
30105         * tree.c (iterative_hash_expr): Use enum tree_code_class
30106         to store TREE_CODE_CLASS.
30107         (tree_block): Likewise.
30108         (tree_set_block): Likewise.
30109         * tree.h (fold_build_pointer_plus_loc): Use
30110         convert_to_ptrofftype_loc.
30111
30112 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
30113
30114         PR plugins/59335
30115         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
30116         added in 4.9.
30117
30118 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
30119
30120         * cfgloop.h (struct loop): Move force_vectorize down.
30121         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
30122         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
30123         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
30124         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
30125         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
30126         * tree-core.h (enum annot_expr_kind): Add new kind values.
30127         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
30128         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
30129         kinds.
30130         * tree.def (ANNOTATE_EXPR): Tweak comment.
30131
30132 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
30133
30134         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
30135         cxa_pure_virtual).
30136
30137 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
30138
30139         * tree.h (TYPE_IDENTIFIER): Declare.
30140         * tree.c (subrange_type_for_debug_p): Use it.
30141         * godump.c (go_format_type): Likewise.
30142         * dwarf2out.c (is_cxx_auto, modified_type_die,
30143         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
30144         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
30145
30146 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
30147
30148         PR lto/60820
30149         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
30150
30151 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
30152
30153         * config/i386/i386.c (examine_argument): Return bool.  Return true if
30154         parameter should be passed in memory.
30155         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
30156         (construct_container): Update calls to examine_argument.
30157         (function_arg_advance_64): Ditto.
30158         (return_in_memory_32): Merge with ix86_return_in_memory.
30159         (return_in_memory_64): Ditto.
30160         (return_in_memory_ms_64): Ditto.
30161
30162 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
30163
30164         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
30165         * coverage.c (coverage_compute_profile_id): Handle externally visible
30166         symbols.
30167
30168 2014-04-14  Martin Jambor  <mjambor@suse.cz>
30169
30170         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
30171         DECL_DISREGARD_INLINE_LIMITS functions.
30172
30173 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
30174
30175         PR target/60827
30176         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
30177
30178 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
30179
30180         PR target/60827
30181         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
30182         optimize_insn_for_speed_p instead of
30183         optimize_function_for_speed_p.
30184
30185 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
30186
30187         * doc/invoke.texi (free): Document AArch64.
30188
30189 2014-04-14  Richard Biener  <rguenther@suse.de>
30190
30191         PR tree-optimization/60042
30192         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
30193         (insert_into_preds_of_block): Do not prevent PHI insertion
30194         for REFERENCE exprs here ...
30195         (eliminate_dom_walker::before_dom_children): ... but prevent
30196         their use here under similar conditions when applied to the
30197         IL after PRE optimizations.
30198
30199 2014-04-14  Richard Biener  <rguenther@suse.de>
30200
30201         * passes.def: Move early points-to after early SRA.
30202
30203 2014-04-14  Richard Biener  <rguenther@suse.de>
30204
30205         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
30206         check for which sign-changes we allow when forwarding
30207         a converted value into a switch.
30208
30209 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
30210
30211         * stor-layout.c (place_field): Finalize non-constant offset for the
30212         field, if any.
30213
30214 2014-04-14  Richard Biener  <rguenther@suse.de>
30215
30216         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
30217         as argument.
30218         (expand_switch_using_bit_tests_p): Likewise.
30219         (process_switch): Compute and pass on speed_p based on the
30220         switch stmt.
30221         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
30222         optimize_bb_for_speed_p.
30223
30224 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
30225
30226         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
30227         * function.h (struct function): Rename has_force_vect_loops into
30228         has_force_vectorize_loops.
30229         * lto-streamer-in.c (input_cfg): Adjust for renaming.
30230         (input_struct_function_base): Likewise.
30231         * lto-streamer-out.c (output_cfg): Likewise.
30232         (output_struct_function_base): Likewise.
30233         * omp-low.c (expand_omp_simd): Likewise.
30234         * tree-cfg.c (move_sese_region_to_fn): Likewise.
30235         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
30236         (version_loop_for_if_conversion): Likewise.
30237         (tree_if_conversion): Likewise.
30238         (main_tree_if_conversion): Likewise.
30239         (gate_tree_if_conversion): Likewise.
30240         * tree-inline.c (copy_loops): Likewise.
30241         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
30242         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
30243         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
30244         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
30245         * tree-vectorizer.c (vectorize_loops): Likewise.
30246         * tree-vectorizer.h (unlimited_cost_model): Likewise.
30247
30248 2014-04-14  Richard Biener  <rguenther@suse.de>
30249
30250         PR lto/60720
30251         * lto-streamer-out.c (wrap_refs): New function.
30252         (lto_output): Wrap symbol references in global initializes in
30253         type-preserving MEM_REFs.
30254
30255 2014-04-14  Christian Bruel  <christian.bruel@st.com>
30256
30257         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
30258
30259 2014-04-14  Christian Bruel  <christian.bruel@st.com>
30260
30261         * config/sh/sh.md (setmemqi): New expand pattern.
30262         * config/sh/sh.h (CLEAR_RATIO): Define.
30263         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
30264         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
30265
30266 2014-04-14  Richard Biener  <rguenther@suse.de>
30267
30268         PR middle-end/55022
30269         * fold-const.c (negate_expr_p): Don't negate directional rounding
30270         division.
30271         (fold_negate_expr): Likewise.
30272
30273 2014-04-14  Richard Biener  <rguenther@suse.de>
30274
30275         PR tree-optimization/59817
30276         PR tree-optimization/60453
30277         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
30278         recursion to catch all CHRECs in the scalar evolution and restrict
30279         the predicate for the remains appropriately.
30280
30281 2014-04-12  Catherine Moore  <clm@codesourcery.com>
30282
30283         * config/mips/constraints.md: Add new register constraint "kb".
30284         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
30285         (*movhi_internal): Likewise.
30286         (*movqi_internal): Likewise.
30287         * config/mips/mips.h (M16_STORE_REGS): New register class.
30288         (REG_CLASS_NAMES): Add M16_STORE_REGS.
30289         (REG_CLASS_CONTENTS): Likewise.
30290         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
30291
30292 2014-04-11  Tobias Burnus  <burnus@net-b.de>
30293
30294         PR c/60194
30295         * doc/invoke.texi (-Wformat-signedness): Document it.
30296         (Wformat=2): Mention that this enables -Wformat-signedness.
30297
30298 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
30299
30300         * common/config/epiphany/epiphany-common.c
30301         (epiphany_option_optimization_table): Enable section anchors by
30302         default at -O1 or higher.
30303         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
30304         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
30305         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
30306         carries no extra cost.
30307         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
30308         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
30309         * config/epiphany/predicates.md (memclob_operand): New predicate.
30310         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
30311         Use memclob_operand predicate and X constraint for operand 3.
30312
30313 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
30314
30315         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
30316         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
30317         its operands.
30318
30319 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
30320
30321         PR rtl-optimization/60651
30322         * mode-switching.c (optimize_mode_switching): Make sure to emit
30323         sets of a lower numbered entity before sets of a higher numbered
30324         entity to a mode of the same or lower priority.
30325         When creating a seginfo for a basic block that starts with a code
30326         label, move the insertion point past the code label.
30327         (new_seginfo): Document and enforce requirement that
30328         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
30329         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
30330         * doc/tm.texi: Regenerate.
30331
30332 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
30333
30334         PR target/60811
30335         * config/arc/arc.c (arc_save_restore): Fix assert typo.
30336
30337 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
30338
30339         * BASE-VER: Set to 4.10.0.
30340
30341 2014-04-11  Tobias Burnus  <burnus@net-b.de>
30342
30343         PR other/59055
30344         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
30345         * doc/gcc.texi (Service): Update description in the @menu
30346         * doc/invoke.texi (Option Summary): Remove misplaced and
30347         duplicated @menu.
30348
30349 2014-04-11  Steve Ellcey  <sellcey@mips.com>
30350             Jakub Jelinek  <jakub@redhat.com>
30351
30352         PR middle-end/60556
30353         * expr.c (convert_move): Use emit_store_flag_force instead of
30354         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
30355         argument to it.
30356
30357 2014-04-11  Richard Biener  <rguenther@suse.de>
30358
30359         PR middle-end/60797
30360         * varasm.c (assemble_alias): Avoid endless error reporting
30361         recursion by setting TREE_ASM_WRITTEN.
30362
30363 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30364
30365         * config/s390/s390.md: Add a splitter for NOT rtx.
30366
30367 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
30368
30369         PR rtl-optimization/60663
30370         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
30371
30372 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
30373             Jakub Jelinek  <jakub@redhat.com>
30374
30375         PR lto/60567
30376         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
30377         flag from decl_node to node.
30378
30379 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30380
30381         PR debug/60655
30382         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
30383         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
30384         ameliorating the cases where it can be.
30385
30386 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
30387
30388         Revert
30389         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
30390
30391         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
30392         (loadsync_<mode>): Change mode.
30393         (load_quadpti, store_quadpti): New.
30394         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
30395         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
30396         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
30397
30398 2014-04-09  Cong Hou  <congh@google.com>
30399
30400         PR testsuite/60773
30401         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
30402         documentation.
30403
30404 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30405
30406         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
30407         instead of vnor to exploit possible fusion opportunity in the
30408         future.
30409         (altivec_expand_vec_perm_const_le): Likewise.
30410
30411 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
30412
30413         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
30414         (loadsync_<mode>): Change mode.
30415         (load_quadpti, store_quadpti): New.
30416         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
30417         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
30418
30419 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
30420
30421         PR target/60763
30422         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
30423         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
30424         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
30425
30426 2014-04-08  Richard Biener  <rguenther@suse.de>
30427
30428         PR middle-end/60706
30429         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
30430         a 64bit widest int print double-int similar to on HWI64 hosts.
30431
30432 2014-04-08  Richard Biener  <rguenther@suse.de>
30433
30434         PR tree-optimization/60785
30435         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
30436         default defs properly.
30437
30438 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
30439
30440         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
30441         (Weffc++): Likewise.
30442
30443 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
30444
30445         * ipa-devirt.c (maybe_record_node): When node is not recorded,
30446         set completep to false rather than true.
30447
30448 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
30449
30450         PR target/60504
30451         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
30452         ARM_TARGET2_DWARF_FORMAT.
30453
30454 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
30455
30456         PR target/60609
30457         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
30458         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
30459         ADDR_DIFF_VEC.
30460
30461 2014-04-07  Richard Biener  <rguenther@suse.de>
30462
30463         PR tree-optimization/60766
30464         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
30465         (may_eliminate_iv): Convert cand_value_at result to desired type.
30466
30467 2014-04-07  Jason Merrill  <jason@redhat.com>
30468
30469         PR c++/60731
30470         * common.opt (-fno-gnu-unique): Add.
30471         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
30472
30473 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30474
30475         * haifa-sched.c: Fix outdated function reference and minor
30476         grammar errors in introductory comment.
30477
30478 2014-04-07  Richard Biener  <rguenther@suse.de>
30479
30480         PR middle-end/60750
30481         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
30482         for noreturn calls.
30483         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
30484
30485 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
30486
30487         PR debug/55794
30488         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
30489         size accounting for thunks.
30490         (pa_asm_output_mi_thunk): Use final_start_function() and
30491         final_end_function() to output function start and end directives.
30492
30493 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
30494
30495         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
30496         device specific ISA/ feature information. Remove short_sp and
30497         errata_skip ds.  Add avr_device_specific_features enum to have device
30498         specific info.
30499         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
30500         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
30501         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
30502         updated device specific info.
30503         * config/avr/avr-mcus.def: Merge device specific details to
30504         dev_attribute field.
30505         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
30506         errata_skip.
30507         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
30508         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
30509         assembler if RMW isa supported by current device.
30510         * config/avr/genmultilib.awk: Update as device info structure changed.
30511         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
30512
30513 2014-04-04  Cong Hou  <congh@google.com>
30514
30515         PR tree-optimization/60656
30516         * tree-vect-stmts.c (supportable_widening_operation):
30517         Fix a bug that elements in a vector with vect_used_by_reduction
30518         property are incorrectly reordered when the operation on it is not
30519         consistant with the one in reduction operation.
30520
30521 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
30522
30523         PR rtl-optimization/60155
30524         * gcse.c (record_set_data): New function.
30525         (single_set_gcse): New function.
30526         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
30527         (hoist_code): Likewise.
30528         (get_pressure_class_and_nregs): Likewise.
30529
30530 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
30531
30532         * explow.c (probe_stack_range): Emit a final optimization blockage.
30533
30534 2014-04-04  Anthony Green  <green@moxielogic.com>
30535
30536         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
30537         typos.
30538
30539 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
30540
30541         PR ipa/59626
30542         * lto-cgraph.c (input_overwrite_node): Check that partitioning
30543         flags are set only during streaming.
30544         * ipa.c (process_references, walk_polymorphic_call_targets,
30545         symtab_remove_unreachable_nodes): Drop bodies of always inline
30546         after early inlining.
30547         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
30548
30549 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
30550         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30551
30552         PR debug/60655
30553         * dwarf2out.c (const_ok_for_output_1): Reject expressions
30554         containing a NOT.
30555
30556 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30557
30558         PR bootstrap/60743
30559         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
30560         duration.
30561         (cortex_a53_fdivd): Likewise.
30562
30563 2014-04-04  Martin Jambor  <mjambor@suse.cz>
30564
30565         PR ipa/60640
30566         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
30567         Adjust all callers.
30568         * cgraph.c (clone_of_p): Also return true if thunks match.
30569         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
30570         cgraph_function_or_thunk_node and an obsolete comment.
30571         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
30572         file.
30573         (build_function_decl_skip_args): Likewise.
30574         (set_new_clone_decl_and_node_flags): New function.
30575         (duplicate_thunk_for_node): Likewise.
30576         (redirect_edge_duplicating_thunks): Likewise.
30577         (cgraph_clone_node): New parameter args_to_skip, pass it to
30578         redirect_edge_duplicating_thunks which is called instead of
30579         cgraph_redirect_edge_callee.
30580         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
30581         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
30582
30583 2014-04-04  Jeff Law  <law@redhat.com>
30584
30585         PR target/60657
30586         * config/arm/predicates.md (const_int_I_operand): New predicate.
30587         (const_int_M_operand): Similarly.
30588         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
30589         const_int_operand.
30590         (insv_t2, extv_reg, extzv_t2): Likewise.
30591         (load_multiple_with_writeback): Similarly for const_int_I_operand.
30592         (pop_multiple_with_writeback_and_return): Likewise.
30593         (vfp_pop_multiple_with_writeback): Likewise
30594
30595 2014-04-04  Richard Biener  <rguenther@suse.de>
30596
30597         PR ipa/60746
30598         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
30599         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
30600         non-GIMPLE_LABELs.
30601         * gimplify.h (gimple_add_tmp_var_fn): Declare.
30602         * gimplify.c (gimple_add_tmp_var_fn): New function.
30603         * gimple-expr.h (create_tmp_reg_fn): Declare.
30604         * gimple-expr.c (create_tmp_reg_fn): New function.
30605         * gimple-low.c (record_vars_into): Don't change cfun.
30606         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
30607         code generation without cfun.
30608
30609 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
30610
30611         PR bootstrap/60719
30612         * Makefile.in (install-driver): Fix shell scripting.
30613
30614 2014-04-03  Cong Hou  <congh@google.com>
30615
30616         PR tree-optimization/60505
30617         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
30618         threshold of number of iterations below which no vectorization
30619         will be done.
30620         * tree-vect-loop.c (new_loop_vec_info):
30621         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
30622         * tree-vect-loop.c (vect_analyze_loop_operations):
30623         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
30624         * tree-vect-loop.c (vect_transform_loop):
30625         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
30626         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
30627         of iterations of the loop and see if we should build the epilogue.
30628
30629 2014-04-03  Richard Biener  <rguenther@suse.de>
30630
30631         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
30632         (streamer_tree_cache_create): Adjust.
30633         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
30634         to allow optional nodes array.
30635         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
30636         (streamer_tree_cache_append): Likewise.
30637         (streamer_tree_cache_create): Create nodes array optionally
30638         as specified by parameter.
30639         * lto-streamer-out.c (create_output_block): Avoid maintaining
30640         the node array in the writer cache.
30641         (DFS_write_tree): Remove assertion.
30642         (produce_asm_for_decls): Free the out decl state hash table early.
30643         * lto-streamer-in.c (lto_data_in_create): Adjust for
30644         streamer_tree_cache_create prototype change.
30645
30646 2014-04-03  Richard Biener  <rguenther@suse.de>
30647
30648         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
30649         set TREE_CHAIN to NULL_TREE.
30650
30651 2014-04-03  Richard Biener  <rguenther@suse.de>
30652
30653         PR tree-optimization/60740
30654         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
30655         over all GIMPLE_COND operands.
30656
30657 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
30658
30659         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
30660         (Weffc++): Remove Scott's numbering, merge lists and reference
30661         Wnon-virtual-dtor.
30662
30663 2014-04-03  Nick Clifton  <nickc@redhat.com>
30664
30665         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
30666         properly.
30667
30668 2014-04-03  Martin Jambor  <mjambor@suse.cz>
30669
30670         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
30671         mention gcc_unreachable before failing.
30672         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
30673         removed symbols.
30674
30675 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
30676
30677         PR ipa/60659
30678         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
30679         inconsistent code and instead mark the context inconsistent.
30680         (possible_polymorphic_call_targets): For inconsistent contexts
30681         return empty complete list.
30682
30683 2014-04-02  Anthony Green  <green@moxielogic.com>
30684
30685         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
30686         (extendqisi2, extendhisi2): Define.
30687         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
30688         (WCHAR_TYPE): Change to unsigned int.
30689
30690 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30691
30692         PR tree-optimization/60733
30693         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
30694         insertion point for PHI candidates to be the end of the feeding
30695         block for the PHI argument.
30696
30697 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
30698
30699         PR rtl-optimization/60650
30700         * lra-constraints.c (process_alt_operands): Decrease reject for
30701         earlyclobber matching.
30702
30703 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30704
30705         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
30706
30707 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30708
30709         * config/spu/spu.c (pad_bb): Do not crash when the last
30710         insn is CODE_FOR_blockage.
30711
30712 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30713
30714         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
30715         lies outside the target mode.
30716
30717 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
30718
30719         PR target/60735
30720         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30721         software floating point or no floating point registers, do not
30722         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
30723         in GPRs that occurs after we tested for GPRs that would never be
30724         true.
30725
30726         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30727         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30728         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
30729         specifically allow DDmode, since that does not use the SPE SIMD
30730         instructions.
30731
30732 2014-04-02  Richard Biener  <rguenther@suse.de>
30733
30734         PR middle-end/60729
30735         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
30736         MODE_INTs.  Properly use negv_optab.
30737         (expand_abs): Likewise.
30738
30739 2014-04-02  Richard Biener  <rguenther@suse.de>
30740
30741         PR bootstrap/60719
30742         * Makefile.in (install-driver): Guard extra installs with special
30743         names properly.
30744
30745 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
30746
30747         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30748         Document vec_vgbbd.
30749
30750 2014-04-01  Richard Henderson  <rth@redhat.com>
30751
30752         PR target/60704
30753         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
30754         alternative enabled before register allocation.
30755
30756 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
30757
30758         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
30759         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
30760         typo.
30761         (nios2_large_got_address): Remove unneeded 'sym' parameter.
30762         (nios2_got_address): Update nios2_large_got_address call site.
30763         (nios2_delegitimize_address): New function.
30764         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
30765         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
30766         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
30767
30768 2014-04-01  Martin Husemann  <martin@duskware.de>
30769
30770         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
30771         for -mabi=32.
30772
30773 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
30774
30775         PR rtl-optimization/60604
30776         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
30777         check from register_operand.
30778         (register_operand): Redefine in terms of general_operand.
30779         (nonmemory_operand): Use register_operand for the non-constant cases.
30780
30781 2014-04-01  Richard Biener  <rguenther@suse.de>
30782
30783         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
30784
30785 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30786
30787         * doc/invoke.texi (mapp-regs): Clarify.
30788
30789 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
30790
30791         * config/i386/avx512fintrin.h (__v32hi): Define type.
30792         (__v64qi): Likewise.
30793         (_mm512_set1_epi8): Define.
30794         (_mm512_set1_epi16): Define.
30795         (_mm512_set4_epi32): Define.
30796         (_mm512_set4_epi64): Define.
30797         (_mm512_set4_pd): Define.
30798         (_mm512_set4_ps): Define.
30799         (_mm512_setr4_epi64): Define.
30800         (_mm512_setr4_epi32): Define.
30801         (_mm512_setr4_pd): Define.
30802         (_mm512_setr4_ps): Define.
30803         (_mm512_setzero_epi32): Define.
30804
30805 2014-03-31  Martin Jambor  <mjambor@suse.cz>
30806
30807         PR middle-end/60647
30808         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
30809         callsite_arguments_match_p.  Updated all callers.  Also check types of
30810         corresponding formal parameters and actual arguments.
30811         (not_all_callers_have_enough_arguments_p) Renamed to
30812         some_callers_have_mismatched_arguments_p.
30813
30814 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
30815
30816         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
30817
30818 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
30819
30820         PR target/60034
30821         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
30822         section anchor.
30823
30824 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
30825
30826         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
30827         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
30828         Split out
30829         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
30830         Use FMAMODE_NOVF512 mode iterator.
30831         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
30832         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
30833         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
30834         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
30835         Split out
30836         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
30837         Use VF_128_256 mode iterator.
30838         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
30839         Ditto.
30840
30841 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30842
30843         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
30844         static chain if needed.
30845
30846 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
30847
30848         PR target/60697
30849         * lra-constraints.c (index_part_to_reg): New.
30850         (process_address): Use it.
30851
30852 2014-03-27  Jeff Law  <law@redhat.com>
30853             Jakub Jelinek  <jakub@redhat.com>
30854
30855         PR target/60648
30856         * expr.c (do_tablejump): Use simplify_gen_binary rather than
30857         gen_rtx_{PLUS,MULT} to build up the address expression.
30858
30859         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
30860         creating non-canonical RTL.
30861
30862 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30863
30864         PR ipa/60243
30865         * ipa-inline.c (want_inline_small_function_p): Short circuit large
30866         functions; reorganize to make cheap checks first.
30867         (inline_small_functions): Do not estimate growth when dumping;
30868         it is expensive.
30869         * ipa-inline.h (inline_summary): Add min_size.
30870         (growth_likely_positive): New function.
30871         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
30872         (set_cond_stmt_execution_predicate): Cleanup.
30873         (estimate_edge_size_and_time): Compute min_size.
30874         (estimate_calls_size_and_time): Likewise.
30875         (estimate_node_size_and_time): Likewise.
30876         (inline_update_overall_summary): Update min_size.
30877         (do_estimate_edge_time): Likewise.
30878         (do_estimate_edge_size): Update.
30879         (do_estimate_edge_hints): Update.
30880         (growth_likely_positive): New function.
30881
30882 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
30883
30884         PR target/60693
30885         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
30886         also if addr has VOIDmode.
30887
30888 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30889
30890         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
30891         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
30892         Declare extern.
30893         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
30894         instructions as well as AdvancedSIMD loads.
30895
30896 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30897
30898         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
30899         Use crypto_aese type.
30900         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
30901         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
30902         crypto_aese, crypto_aesmc.  Move to types.md.
30903         * config/arm/types.md (crypto_aes): Split into crypto_aese,
30904         crypto_aesmc.
30905         * config/arm/iterators.md (crypto_type): Likewise.
30906
30907 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30908
30909         * cgraph.c: Include expr.h and tree-dfa.h.
30910         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
30911         remove LHS.
30912
30913 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
30914
30915         PR target/60675
30916         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
30917         regs from checking multi-reg pseudos.
30918
30919 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30920
30921         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
30922
30923 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30924
30925         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
30926         if it would clobber the stack pointer, even temporarily.
30927
30928 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
30929
30930         * mode-switching.c: Make small adjustments to the top comment.
30931
30932 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
30933
30934         * config/rs6000/constraints.md (wD constraint): New constraint to
30935         match the constant integer to get the top DImode/DFmode out of a
30936         vector in a VSX register.
30937
30938         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
30939         match the constant integer to get the top DImode/DFmode out of a
30940         vector in a VSX register.
30941
30942         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
30943         for ISA 2.07.
30944
30945         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30946         vbpermq builtins.
30947
30948         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
30949         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
30950
30951         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
30952         Optimize vec_extract of 64-bit values, where the value being
30953         extracted is in the top word, where we can use scalar
30954         instructions.  Add direct move and store support.  Combine the big
30955         endian/little endian vector select load support into a single insn.
30956         (vsx_extract_<mode>_internal1): Likewise.
30957         (vsx_extract_<mode>_internal2): Likewise.
30958         (vsx_extract_<mode>_load): Likewise.
30959         (vsx_extract_<mode>_store): Likewise.
30960         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
30961         combined into vsx_extract_<mode>_load.
30962         (vsx_extract_<mode>_one_le): Likewise.
30963
30964         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
30965         define the top 64-bit vector element.
30966
30967         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
30968         constraint.
30969
30970         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30971         Document vec_vbpermq builtin.
30972
30973         PR target/60672
30974         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
30975         enable use of xxsldwi and xxpermdi builtin functions.
30976         (vec_xxpermdi): Likewise.
30977
30978         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30979         Document use of vec_xxsldwi and vec_xxpermdi builtins.
30980
30981 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
30982
30983         PR rtl-optimization/60650
30984         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
30985         first_p.  Use it.
30986         (find_spills_for): New.
30987         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
30988         Spill all pseudos on the second iteration.
30989
30990 2014-03-27  Marek Polacek  <polacek@redhat.com>
30991
30992         PR c/50347
30993         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
30994         types.
30995
30996 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30997
30998         * config/s390/s390.c (s390_can_use_return_insn): Check for
30999         call-saved FPRs on 31 bit.
31000
31001 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
31002
31003         PR middle-end/60682
31004         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
31005         if they need regimplification, just drop them instead of
31006         calling gimple_regimplify_operands on them.
31007
31008 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
31009
31010         PR target/60580
31011         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
31012         (aarch64_frame_pointer_required): Adjust logic.
31013         (aarch64_can_eliminate): Adjust logic.
31014         (aarch64_override_options_after_change): Adjust logic.
31015
31016 2014-03-27  Dehao Chen  <dehao@google.com>
31017
31018         * ipa-inline.c (early_inliner): Update node's inline info.
31019
31020 2014-03-26  Dehao Chen  <dehao@google.com>
31021
31022         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
31023         compiler inserted conditional jumps for NAN float check.
31024
31025 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
31026
31027         * ubsan.h (ubsan_create_data): Change second argument's type
31028         to const location_t *.
31029         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
31030         _("<unknown>").
31031         (ubsan_create_data): Change second argument to const location_t *PLOC.
31032         Create Loc field whenever PLOC is non-NULL.
31033         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
31034         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
31035         callers.
31036
31037         PR other/59545
31038         * real.c (real_to_integer2): Change type of low to UHWI.
31039
31040 2014-03-26  Tobias Burnus  <burnus@net-b.de>
31041
31042         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
31043         (CILK_SELF_SPECS): New define.
31044         (driver_self_specs): Use it.
31045
31046 2014-03-26  Richard Biener  <rguenther@suse.de>
31047
31048         * tree-pretty-print.c (percent_K_format): Implement special
31049         case for LTO and its stripped down BLOCK tree.
31050
31051 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
31052
31053         PR sanitizer/60636
31054         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
31055
31056         * tree-vrp.c (simplify_internal_call_using_ranges): If only
31057         one range is range_int_cst_p, but not both, at least optimize
31058         addition/subtraction of 0 and multiplication by 0 or 1.
31059         * gimple-fold.c (gimple_fold_call): Fold
31060         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
31061         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
31062         INTEGER_CSTs, try to fold at least x * 0 and y - y.
31063
31064 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
31065
31066         PR rtl-optimization/60452
31067         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
31068         <case REG>: Return 1 for invalid offsets from the frame pointer.
31069
31070 2014-03-26  Marek Polacek  <polacek@redhat.com>
31071
31072         PR c/37428
31073         * doc/extend.texi (C Extensions): Mention variable-length arrays in
31074         a structure/union.
31075
31076 2014-03-26  Marek Polacek  <polacek@redhat.com>
31077
31078         PR c/39525
31079         * doc/extend.texi (Designated Inits): Describe what happens to omitted
31080         field members.
31081
31082 2014-03-26  Marek Polacek  <polacek@redhat.com>
31083
31084         PR other/59545
31085         * ira-color.c (update_conflict_hard_regno_costs): Perform the
31086         multiplication in unsigned type.
31087
31088 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
31089
31090         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
31091
31092 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
31093
31094         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
31095
31096 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
31097
31098         PR ipa/60315
31099         * cif-code.def (UNREACHABLE) New code.
31100         * ipa-inline.c (inline_small_functions): Skip edges to
31101         __builtlin_unreachable.
31102         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
31103         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
31104         predicate to __bulitin_unreachable.
31105         (set_cond_stmt_execution_predicate): Fix issue when
31106         invert_tree_comparison returns ERROR_MARK.
31107         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
31108         propagate to inline clones.
31109         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
31110         to unreachable.
31111         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
31112         * cgraphclones.c (cgraph_clone_node): If call destination is already
31113         ureachable, do not redirect it back.
31114         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
31115         unreachable.
31116
31117 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
31118
31119         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
31120         Do not modify inline clones.
31121
31122 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
31123
31124         * config/i386/i386.md (general_sext_operand): New mode attr.
31125         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
31126         don't generate (sign_extend (const_int)).
31127         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
31128         operands[2].  Use We constraint instead of <i> and
31129         <general_sext_operand> predicate instead of <general_operand>.
31130         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
31131         * config/i386/constraints.md (We): New constraint.
31132         * config/i386/predicates.md (x86_64_sext_operand,
31133         sext_operand): New predicates.
31134
31135 2014-03-25  Martin Jambor  <mjambor@suse.cz>
31136
31137         PR ipa/60600
31138         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
31139         inconsistent devirtualizations to __builtin_unreachable.
31140
31141 2014-03-25  Marek Polacek  <polacek@redhat.com>
31142
31143         PR c/35449
31144         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
31145
31146 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
31147
31148         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
31149         order of elements for big-endian.
31150
31151 2014-03-25  Richard Biener  <rguenther@suse.de>
31152
31153         PR middle-end/60635
31154         * gimplify-me.c (gimple_regimplify_operands): Update the
31155         re-gimplifed stmt.
31156
31157 2014-03-25  Martin Jambor  <mjambor@suse.cz>
31158
31159         PR ipa/59176
31160         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
31161         (lto_output_varpool_node): Likewise.
31162         (input_overwrite_node): Likewise.
31163         (input_varpool_node): Likewise.
31164
31165 2014-03-25  Richard Biener  <rguenther@suse.de>
31166
31167         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
31168         (run_gcc): Likewise.
31169
31170 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
31171
31172         * combine.c (simplify_compare_const): Add MODE argument.
31173         Handle mode_width 0 as very large mode_width.
31174         (try_combine, simplify_comparison): Adjust callers.
31175
31176         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
31177         type to avoid signed integer overflow.
31178         * explow.c (plus_constant): Likewise.
31179
31180 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
31181
31182         * doc/generic.texi: Correct typos.
31183
31184 2014-03-24  Tobias Burnus  <burnus@net-b.de>
31185
31186         * doc/invoke.texi (-flto): Expand section about
31187         using static libraries with LTO.
31188
31189 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31190
31191         PR rtl-optimization/60501
31192         * optabs.def (addptr3_optab): New optab.
31193         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
31194         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
31195         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
31196
31197         * lra.c (emit_add3_insn): Use the addptr pattern if available.
31198
31199         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
31200
31201 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
31202
31203         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
31204         _mm512_set1_pd.
31205
31206         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
31207         (_mm256_undefined_ps): Define.
31208         (_mm256_undefined_pd): Define.
31209         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
31210         (_mm_undefined_pd): Define.
31211         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
31212         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
31213         (_mm512_undefined_ps): Define.
31214         (_mm512_undefined_pd): Define.
31215         Use _mm*_undefined_*.
31216         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
31217
31218 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
31219
31220         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
31221         (lshr_simd): DI mode added.
31222         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
31223         (aarch64_ushr_simddi): Likewise.
31224         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
31225         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
31226         (vshrd_n_u64): Likewise.
31227
31228 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31229
31230         * Makefile.in (s-macro_list): Depend on cc1.
31231
31232 2014-03-23  Teresa Johnson  <tejohnson@google.com>
31233
31234         * ipa-utils.c (ipa_print_order): Use specified dump file.
31235
31236 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
31237
31238         PR rtl-optimization/60601
31239         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
31240
31241         * gcc.c (eval_spec_function): Initialize save_growing_value.
31242
31243 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
31244
31245         PR sanitizer/60613
31246         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
31247         code == MINUS_EXPR, never swap op0 with op1.
31248
31249         * toplev.c (init_local_tick): Avoid signed integer multiplication
31250         overflow.
31251         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
31252         shift by first operand's bitsize.
31253
31254 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
31255
31256         PR target/60610
31257         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
31258         redefine to 1 or 0.
31259         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
31260         TARGET_ISA_64BIT_P(x).
31261
31262 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31263
31264         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
31265         pattern for vector nor instead of subtract from splat(-1).
31266         (altivec_expand_vec_perm_const_le): Likewise.
31267
31268 2014-03-21  Richard Henderson  <rth@twiddle.net>
31269
31270         PR target/60598
31271         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
31272         related insns after epilogue_completed.
31273
31274 2014-03-21  Martin Jambor  <mjambor@suse.cz>
31275
31276         PR ipa/59176
31277         * cgraph.h (symtab_node): New flag body_removed.
31278         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
31279         when removing bodies.
31280         * symtab.c (dump_symtab_base): Dump body_removed flag.
31281         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
31282         had their bodies removed.
31283
31284 2014-03-21  Martin Jambor  <mjambor@suse.cz>
31285
31286         PR ipa/60419
31287         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
31288         in the border.
31289
31290 2014-03-21  Richard Biener  <rguenther@suse.de>
31291
31292         PR tree-optimization/60577
31293         * tree-core.h (struct tree_base): Document nothrow_flag use
31294         in DECL_NONALIASED.
31295         * tree.h (DECL_NONALIASED): New.
31296         (may_be_aliased): Adjust.
31297         * coverage.c (build_var): Set DECL_NONALIASED.
31298
31299 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
31300
31301         * expr.c (expand_expr_real_1): Remove outdated comment.
31302
31303 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
31304
31305         PR middle-end/60597
31306         * ira.c (adjust_cleared_regs): Call copy_rtx on
31307         *reg_equiv[REGNO (loc)].src_p before passing it to
31308         simplify_replace_fn_rtx.
31309
31310         PR target/60568
31311         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
31312         into CONST, put pic register as first operand of PLUS.  Use
31313         gen_const_mem for both 32-bit and 64-bit PIC got loads.
31314
31315 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31316
31317         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
31318
31319 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
31320
31321         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
31322         around for store forwarding issue in the FPU on the UT699.
31323         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
31324         loads and operations if -mfix-ut699 is specified.
31325         (divtf3_hq): Tweak attribute.
31326         (sqrttf2_hq): Likewise.
31327
31328 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
31329
31330         * calls.c (store_one_arg): Remove incorrect const qualification on the
31331         type of the temporary.
31332         * cfgexpand.c (expand_return): Likewise.
31333         * expr.c (expand_constructor): Likewise.
31334         (expand_expr_real_1): Likewise.
31335
31336 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31337
31338         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
31339         of parts.
31340
31341 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
31342
31343         PR target/60039
31344         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
31345
31346 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
31347
31348         * config/arm/aarch-common-protos.h
31349         (alu_cost_table): Fix spelling of "extend".
31350         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
31351
31352 2014-03-19  Richard Biener  <rguenther@suse.de>
31353
31354         PR middle-end/60553
31355         * tree-core.h (tree_type_common): Re-order pointer members
31356         to reduce recursion depth during GC walks.
31357
31358 2014-03-19  Marek Polacek  <polacek@redhat.com>
31359
31360         PR sanitizer/60569
31361         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
31362         before accessing it.
31363
31364 2014-03-19  Richard Biener  <rguenther@suse.de>
31365
31366         PR lto/59543
31367         * lto-streamer-in.c (input_function): In WPA stage do not drop
31368         debug stmts.
31369
31370 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
31371
31372         PR tree-optimization/60559
31373         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
31374         with build_zero_cst assignment.
31375
31376 2014-03-18  Kai Tietz  <ktietz@redhat.com>
31377
31378         PR rtl-optimization/56356
31379         * sdbout.c (sdbout_parms): Verify that parms'
31380         incoming argument is valid.
31381         (sdbout_reg_parms): Likewise.
31382
31383 2014-03-18  Richard Henderson  <rth@redhat.com>
31384
31385         PR target/60562
31386         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
31387         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
31388         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
31389
31390 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
31391
31392         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
31393         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
31394         Italicize plugin event names in description.  Explain that
31395         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
31396         Remind that no GCC functions should be called after PLUGIN_FINISH.
31397         Explain what pragmas with expansion are.
31398
31399 2014-03-18  Martin Liska  <mliska@suse.cz>
31400
31401         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
31402         gimple call statement is update.
31403         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
31404         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
31405
31406 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
31407
31408         PR sanitizer/60557
31409         * ubsan.c (ubsan_instrument_unreachable): Call
31410         initialize_sanitizer_builtins.
31411         (ubsan_pass): Likewise.
31412
31413         PR sanitizer/60535
31414         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
31415         varpool_finalize_decl instead of rest_of_decl_compilation.
31416
31417 2014-03-18  Richard Biener  <rguenther@suse.de>
31418
31419         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
31420         by using bitmap_and_compl instead of bitmap_and_compl_into.
31421         (df_rd_transfer_function): Likewise.
31422
31423 2014-03-18  Richard Biener  <rguenther@suse.de>
31424
31425         * doc/lto.texi (fresolution): Fix typo.
31426
31427 2014-03-18  Richard Biener  <rguenther@suse.de>
31428
31429         * doc/invoke.texi (flto): Update for changes in 4.9.
31430
31431 2014-03-18  Richard Biener  <rguenther@suse.de>
31432
31433         * doc/loop.texi: Remove section on the removed lambda framework.
31434         Update loop docs with recent changes in preserving loop structure.
31435
31436 2014-03-18  Richard Biener  <rguenther@suse.de>
31437
31438         * doc/lto.texi (-fresolution): Document.
31439
31440 2014-03-18  Richard Biener  <rguenther@suse.de>
31441
31442         * doc/contrib.texi: Adjust my name.
31443
31444 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
31445
31446         PR ipa/58721
31447         * internal-fn.c: Include diagnostic-core.h.
31448         (expand_BUILTIN_EXPECT): New function.
31449         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
31450         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
31451         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
31452         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
31453         IFN_BUILTIN_EXPECT.
31454         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
31455         Revert 3 argument __builtin_expect code.
31456         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
31457         * gimple-fold.c (gimple_fold_call): Likewise.
31458         * tree.h (fold_builtin_expect): New prototype.
31459         * builtins.c (build_builtin_expect_predicate): Add predictor
31460         argument, if non-NULL, create 3 argument __builtin_expect.
31461         (fold_builtin_expect): No longer static.  Add ARG2 argument,
31462         pass it through to build_builtin_expect_predicate.
31463         (fold_builtin_2): Adjust caller.
31464         (fold_builtin_3): Handle BUILT_IN_EXPECT.
31465         * internal-fn.def (BUILTIN_EXPECT): New.
31466
31467 2014-03-18  Tobias Burnus  <burnus@net-b.de>
31468
31469         PR ipa/58721
31470         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
31471         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
31472         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
31473
31474 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
31475
31476         PR ipa/58721
31477         * predict.c (combine_predictions_for_bb): Fix up formatting.
31478         (expr_expected_value_1, expr_expected_value): Add predictor argument,
31479         fill what it points to if non-NULL.
31480         (tree_predict_by_opcode): Adjust caller, use the predictor.
31481         * predict.def (PRED_COMPARE_AND_SWAP): Add.
31482
31483 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
31484
31485         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
31486         proper constant for the store mode.
31487
31488 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
31489
31490         * symtab.c (change_decl_assembler_name): Fix transparent alias
31491         chain construction.
31492
31493 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
31494
31495         * config/aarch64/aarch64.c: Correct the comments about the
31496         aarch64 stack layout.
31497
31498 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
31499
31500         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
31501         check for GF_OMP_FOR_KIND_FOR.
31502
31503 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
31504
31505         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
31506         ymm and zmm register names.
31507
31508 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
31509
31510         PR target/60516
31511         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
31512         note creation for the 2010-08-31 changes.
31513
31514 2014-03-17  Marek Polacek  <polacek@redhat.com>
31515
31516         PR middle-end/60534
31517         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
31518         as -fno-tree-loop-vectorize.
31519         (expand_omp_simd): Likewise.
31520
31521 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
31522
31523         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
31524         (eligible_for_call_delay): New prototype.
31525         * config/sparc/sparc.c (tls_call_delay): Rename into...
31526         (eligible_for_call_delay): ...this.  Return false if the instruction
31527         cannot be put in the delay slot of a branch.
31528         (eligible_for_restore_insn): Simplify.
31529         (eligible_for_return_delay): Return false if the instruction cannot be
31530         put in the delay slot of a branch and simplify.
31531         (eligible_for_sibcall_delay): Return false if the instruction cannot be
31532         put in the delay slot of a branch.
31533         * config/sparc/sparc.md (fix_ut699): New attribute.
31534         (tls_call_delay): Delete.
31535         (in_call_delay): Reimplement.
31536         (eligible_for_sibcall_delay): Rename into...
31537         (in_sibcall_delay): ...this.
31538         (eligible_for_return_delay): Rename into...
31539         (in_return_delay): ...this.
31540         (in_branch_delay): Reimplement.
31541         (in_uncond_branch_delay): Delete.
31542         (in_annul_branch_delay): Delete.
31543
31544 2014-03-14  Richard Henderson  <rth@redhat.com>
31545
31546         PR target/60525
31547         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
31548         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
31549         (*floathi<X87MODEF>2_i387_with_temp): Remove.
31550         (floathi splitters): Remove.
31551         (float<SWI48x>xf2): New pattern.
31552         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
31553         code that tried to handle DImode for 32-bit, but which was excluded
31554         by the pattern's condition.  Drop allocation of stack temporary.
31555         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
31556         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
31557         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
31558         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
31559         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
31560         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
31561         (*float<SWI48><MODEF>2_sse_interunit): Remove.
31562         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
31563         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
31564         (*float<SWI48x><X87MODEF>2_i387): Remove.
31565         (all float _with_temp splitters): Remove.
31566         (*float<SWI48x><MODEF>2_i387): New pattern.
31567         (*float<SWI48><MODEF>2_sse): New pattern.
31568         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
31569         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
31570
31571 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
31572             Marek Polacek  <polacek@redhat.com>
31573
31574         PR middle-end/60484
31575         * common.opt (dump_base_name_prefixed): New Variable.
31576         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
31577         if x_dump_base_name_prefixed is already set, set it at the end.
31578
31579 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
31580
31581         PR rtl-optimization/60508
31582         * lra-constraints.c (get_reload_reg): Add new parameter
31583         in_subreg_p.
31584         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
31585         Pass the new parameter values.
31586
31587 2014-03-14  Richard Biener  <rguenther@suse.de>
31588
31589         * common.opt: Revert unintented changes from r205065.
31590         * opts.c: Likewise.
31591
31592 2014-03-14  Richard Biener  <rguenther@suse.de>
31593
31594         PR middle-end/60518
31595         * cfghooks.c (split_block): Properly adjust all loops the
31596         block was a latch of.
31597
31598 2014-03-14  Martin Jambor  <mjambor@suse.cz>
31599
31600         PR lto/60461
31601         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
31602         and simplify it.
31603
31604 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
31605
31606         PR target/59396
31607         * config/avr/avr.c (avr_set_current_function): Pass function name
31608         through default_strip_name_encoding before sanity checking instead
31609         of skipping the first char of the assembler name.
31610
31611 2014-03-13  Richard Henderson  <rth@redhat.com>
31612
31613         PR debug/60438
31614         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
31615         (ix86_force_to_memory, ix86_free_from_memory): Remove.
31616         * config/i386/i386-protos.h: Likewise.
31617         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
31618         in the expander instead of a splitter.
31619         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
31620         any possibility of requiring a memory.
31621         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
31622         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
31623         (fp branch splitters): Update for ix86_split_fp_branch.
31624         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
31625         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
31626         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
31627         (*fop_<MODEF>_2_i387): Remove f/r alternative.
31628         (*fop_<MODEF>_3_i387): Likewise.
31629         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
31630         (splitters for the fop_* register patterns): Remove.
31631         (fscalexf4_i387): Rename from *fscalexf4_i387.
31632         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
31633
31634 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
31635
31636         PR tree-optimization/59779
31637         * tree-dfa.c (get_ref_base_and_extent): Use double_int
31638         type for bitsize and maxsize instead of HOST_WIDE_INT.
31639
31640 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
31641
31642         PR rtl-optimization/57320
31643         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
31644         the CFG after thread_prologue_and_epilogue_insns.
31645
31646 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
31647
31648         PR rtl-optimization/57189
31649         * lra-constraints.c (process_alt_operands): Disfavor spilling
31650         vector pseudos.
31651
31652 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
31653
31654         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
31655
31656 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
31657
31658         PR tree-optimization/59025
31659         PR middle-end/60418
31660         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
31661         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
31662
31663 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
31664
31665         PR target/60486
31666         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
31667         calls of avr_out_plus_1.
31668
31669 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
31670
31671         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
31672         BB's single pred and update the father loop's latch info later.
31673
31674 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
31675
31676         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
31677         (VEC_M): Likewise.
31678         (VEC_N): Likewise.
31679         (VEC_R): Likewise.
31680         (VEC_base): Likewise.
31681         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
31682         registers, we need to swap double words in little endian mode.
31683
31684         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
31685         to be a container mode for 128-bit integer operations added in ISA
31686         2.07.  Unlike TImode and PTImode, the preferred register set is
31687         the Altivec/VMX registers for the 128-bit operations.
31688
31689         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
31690         declarations.
31691         (rs6000_split_128bit_ok_p): Likewise.
31692
31693         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
31694         macros for creating ISA 2.07 normal and overloaded builtin
31695         functions with 3 arguments.
31696         (BU_P8V_OVERLOAD_3): Likewise.
31697         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
31698         for use as overloaded functions.
31699         (VPERM_1TI_UNS): Likewise.
31700         (VSEL_1TI): Likewise.
31701         (VSEL_1TI_UNS): Likewise.
31702         (ST_INTERNAL_1ti): Likewise.
31703         (LD_INTERNAL_1ti): Likewise.
31704         (XXSEL_1TI): Likewise.
31705         (XXSEL_1TI_UNS): Likewise.
31706         (VPERM_1TI): Likewise.
31707         (VPERM_1TI_UNS): Likewise.
31708         (XXPERMDI_1TI): Likewise.
31709         (SET_1TI): Likewise.
31710         (LXVD2X_V1TI): Likewise.
31711         (STXVD2X_V1TI): Likewise.
31712         (VEC_INIT_V1TI): Likewise.
31713         (VEC_SET_V1TI): Likewise.
31714         (VEC_EXT_V1TI): Likewise.
31715         (EQV_V1TI): Likewise.
31716         (NAND_V1TI): Likewise.
31717         (ORC_V1TI): Likewise.
31718         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
31719         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
31720         overloaded builtin.
31721         (VADDUQM): Likewise.
31722         (VSUBCUQ): Likewise.
31723         (VADDEUQM): Likewise.
31724         (VADDECUQ): Likewise.
31725         (VSUBEUQM): Likewise.
31726         (VSUBECUQ): Likewise.
31727
31728         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
31729         __int128_t and __uint128_t types.
31730         (__uint128_type): Likewise.
31731         (altivec_categorize_keyword): Add support for vector __int128_t,
31732         vector __uint128_t, vector __int128, and vector unsigned __int128
31733         as a container type for TImode operations that need to be done in
31734         VSX/Altivec registers.
31735         (rs6000_macro_to_expand): Likewise.
31736         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
31737         to support 128-bit integer instructions vaddcuq, vadduqm,
31738         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
31739         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
31740
31741         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
31742         for V1TImode, and set up preferences to use VSX/Altivec registers.
31743         Setup VSX reload handlers.
31744         (rs6000_debug_reg_global): Likewise.
31745         (rs6000_init_hard_regno_mode_ok): Likewise.
31746         (rs6000_preferred_simd_mode): Likewise.
31747         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
31748         (easy_altivec_constant): Likewise.
31749         (output_vec_const_move): Likewise.
31750         (rs6000_expand_vector_set): Convert V1TImode set and extract to
31751         simple move.
31752         (rs6000_expand_vector_extract): Likewise.
31753         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
31754         addressing.
31755         (rs6000_const_vec): Add support for V1TImode.
31756         (rs6000_emit_le_vsx_load): Swap double words when loading or
31757         storing TImode/V1TImode.
31758         (rs6000_emit_le_vsx_store): Likewise.
31759         (rs6000_emit_le_vsx_move): Likewise.
31760         (rs6000_emit_move): Add support for V1TImode.
31761         (altivec_expand_ld_builtin): Likewise.
31762         (altivec_expand_st_builtin): Likewise.
31763         (altivec_expand_vec_init_builtin): Likewise.
31764         (altivec_expand_builtin): Likewise.
31765         (rs6000_init_builtins): Add support for V1TImode type.  Add
31766         support for ISA 2.07 128-bit integer builtins.  Define type names
31767         for the VSX/Altivec vector types.
31768         (altivec_init_builtins): Add support for overloaded vector
31769         functions with V1TImode type.
31770         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
31771         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
31772         external function.
31773         (rs6000_split_128bit_ok_p): Likewise.
31774         (rs6000_handle_altivec_attribute): Create V1TImode from vector
31775         __int128_t and vector __uint128_t.
31776
31777         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
31778         and mode attributes.
31779         (VSX_M): Likewise.
31780         (VSX_M2): Likewise.
31781         (VSm): Likewise.
31782         (VSs): Likewise.
31783         (VSr): Likewise.
31784         (VSv): Likewise.
31785         (VS_scalar): Likewise.
31786         (VS_double): Likewise.
31787         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
31788
31789         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
31790         we support the ISA 2.07 128-bit integer arithmetic instructions.
31791         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
31792         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
31793         and TImode types for use with the builtin functions.
31794         (V1TI_type_node): Likewise.
31795         (unsigned_V1TI_type_node): Likewise.
31796         (intTI_type_internal_node): Likewise.
31797         (uintTI_type_internal_node): Likewise.
31798
31799         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
31800         128-bit builtin functions.
31801         (UNSPEC_VADDEUQM): Likewise.
31802         (UNSPEC_VADDECUQ): Likewise.
31803         (UNSPEC_VSUBCUQ): Likewise.
31804         (UNSPEC_VSUBEUQM): Likewise.
31805         (UNSPEC_VSUBECUQ): Likewise.
31806         (VM): Add V1TImode to vector mode iterators.
31807         (VM2): Likewise.
31808         (VI_unit): Likewise.
31809         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
31810         (altivec_vaddcuq): Likewise.
31811         (altivec_vsubuqm): Likewise.
31812         (altivec_vsubcuq): Likewise.
31813         (altivec_vaddeuqm): Likewise.
31814         (altivec_vaddecuq): Likewise.
31815         (altivec_vsubeuqm): Likewise.
31816         (altivec_vsubecuq): Likewise.
31817
31818         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
31819         mode iterators.
31820         (BOOL_128): Likewise.
31821         (BOOL_REGS_OUTPUT): Likewise.
31822         (BOOL_REGS_OP1): Likewise.
31823         (BOOL_REGS_OP2): Likewise.
31824         (BOOL_REGS_UNARY): Likewise.
31825         (BOOL_REGS_AND_CR0): Likewise.
31826
31827         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
31828         128-bit integer builtin support.
31829         (vec_vadduqm): Likewise.
31830         (vec_vaddecuq): Likewise.
31831         (vec_vaddeuqm): Likewise.
31832         (vec_vsubecuq): Likewise.
31833         (vec_vsubeuqm): Likewise.
31834         (vec_vsubcuq): Likewise.
31835         (vec_vsubuqm): Likewise.
31836
31837         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31838         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
31839         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
31840         128-bit integer add/subtract to ISA 2.07.
31841
31842 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
31843
31844         * config/arc/arc.c (arc_predicate_delay_insns):
31845         Fix third argument passed to conditionalize_nonjump.
31846
31847 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
31848
31849         * config/aarch64/aarch64-builtins.c
31850         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
31851         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
31852         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
31853         instead of __builtin_lfloor.
31854         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
31855
31856 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31857
31858         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
31859         (tree_ssa_ifcombine_bb_1): New function.
31860         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
31861         is an empty forwarder block to then_bb or vice versa and then_bb
31862         and else_bb are effectively swapped.
31863
31864 2014-03-12  Christian Bruel  <christian.bruel@st.com>
31865
31866         PR target/60264
31867         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
31868         REG_CFA_DEF_CFA note.
31869         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
31870         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
31871
31872 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31873
31874         PR tree-optimization/60454
31875         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
31876
31877 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31878
31879         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
31880         Do not define target_cpu_default2 to generic.
31881         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
31882         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
31883         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
31884
31885 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31886             Marc Glisse  <marc.glisse@inria.fr>
31887
31888         PR tree-optimization/60502
31889         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
31890         instead of build_low_bits_mask.
31891
31892 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31893
31894         PR middle-end/60482
31895         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
31896         if there are multiple uses, but op doesn't live on E edge.
31897         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
31898         clobber stmts before __builtin_unreachable.
31899
31900 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
31901
31902         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
31903         hard_frame_pointer_rtx.
31904         * cse.c (cse_insn): Remove volatile check.
31905         * cselib.c (cselib_process_insn): Likewise.
31906         * dse.c (scan_insn): Likewise.
31907
31908 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
31909
31910         * config/arc/arc.c (conditionalize_nonjump): New function,
31911         broken out of ...
31912         (arc_ifcvt): ... this.
31913         (arc_predicate_delay_insns): Use it.
31914
31915 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
31916
31917         * config/arc/predicates.md (extend_operand): During/after reload,
31918         allow const_int_operand.
31919         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
31920         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
31921         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
31922         to "i".
31923         (umulsi3_highpart_i): Likewise.
31924
31925 2014-03-11  Richard Biener  <rguenther@suse.de>
31926
31927         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
31928         Add asserts to guard possible wrong-code bugs.
31929
31930 2014-03-11  Richard Biener  <rguenther@suse.de>
31931
31932         PR tree-optimization/60429
31933         PR tree-optimization/60485
31934         * tree-ssa-structalias.c (set_union_with_increment): Properly
31935         take into account all fields that overlap the shifted vars.
31936         (do_sd_constraint): Likewise.
31937         (do_ds_constraint): Likewise.
31938         (get_constraint_for_ptr_offset): Likewise.
31939
31940 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
31941
31942         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
31943         (nios2_compute_frame_layout):
31944         Add calculation of cfun->machine->fp_save_offset.
31945         (nios2_expand_prologue): Correct setting of frame pointer register
31946         in prologue.
31947         (nios2_expand_epilogue): Update recovery of stack pointer from
31948         frame pointer accordingly.
31949         (nios2_initial_elimination_offset): Update calculation of offset
31950         for eliminating to HARD_FRAME_POINTER_REGNUM.
31951
31952 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
31953
31954         PR ipa/60457
31955         * ipa.c (symtab_remove_unreachable_nodes): Don't call
31956         cgraph_get_create_node on VAR_DECLs.
31957
31958 2014-03-10  Richard Biener  <rguenther@suse.de>
31959
31960         PR middle-end/60474
31961         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
31962
31963 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
31964
31965         * config/vms/vms.opt (vms_float_format): New variable.
31966
31967 2014-03-08  Tobias Burnus  <burnus@net-b.de>
31968
31969         * doc/invoke.texi (-fcilkplus): Update implementation status.
31970
31971 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
31972             Richard Biener  <rguenther@suse.de>
31973
31974         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
31975         consistently accross all TUs.
31976         (run_gcc): Enable -fshort-double automatically at link at link-time
31977         and disallow override.
31978
31979 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
31980
31981         PR target/58271
31982         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
31983         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
31984         if they can't be used.
31985
31986 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31987
31988         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
31989         for Solaris 11/x86 ld.
31990         * configure: Regenerate.
31991
31992 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31993
31994         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
31995         (LIB_TLS_SPEC): Save as ld_tls_libs.
31996         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
31997         (HAVE_AS_IX86_TLSLDM): New test.
31998         * configure, config.in: Regenerate.
31999         * config/i386/i386.c (legitimize_tls_address): Fall back to
32000         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
32001         cannot support TLS_MODEL_LOCAL_DYNAMIC.
32002         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
32003         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
32004
32005 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
32006
32007         * common.opt (fira-loop-pressure): Mark as optimization.
32008
32009 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
32010
32011         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
32012         an OpenMP mappable type.
32013
32014 2014-03-06  Matthias Klose  <doko@ubuntu.com>
32015
32016         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
32017         MULTILIB_OSDIRNAMES is not defined.
32018
32019 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
32020             Meador Inge  <meadori@codesourcery.com>
32021
32022         PR target/58595
32023         * config/arm/arm.c (arm_tls_symbol_p): Remove.
32024         (arm_legitimize_address): Call legitimize_tls_address for any
32025         arm_tls_referenced_p expression, handle constant addend.  Call it
32026         before testing for !TARGET_ARM.
32027         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
32028
32029 2014-03-06  Richard Biener  <rguenther@suse.de>
32030
32031         PR middle-end/60445
32032         PR lto/60424
32033         PR lto/60427
32034         Revert
32035         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
32036
32037         * tree-streamer.c (record_common_node): Assert we don't record
32038         nodes with type double.
32039         (preload_common_node): Skip type double, complex double and double
32040         pointer since it is now frontend dependent due to fshort-double option.
32041
32042 2014-03-06  Richard Biener  <rguenther@suse.de>
32043
32044         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
32045         or -fno-lto is specified and the linker has full plugin support.
32046         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
32047         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
32048         * lto-wrapper.c (merge_and_complain): Merge compile-time
32049         optimization levels.
32050         (run_gcc): And pass it through to the link options.
32051
32052 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
32053
32054         PR debug/60381
32055         Revert:
32056         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
32057         PR debug/59992
32058         * cselib.c (remove_useless_values): Skip to avoid quadratic
32059         behavior if the condition moved from...
32060         (cselib_process_insn): ... here holds.
32061
32062 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
32063
32064         PR plugins/59335
32065         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
32066         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
32067
32068         PR plugins/59335
32069         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
32070         (TM_H): Add x86-tune.def.
32071
32072 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32073
32074         * config/aarch64/aarch64.c (generic_tunings):
32075         Use cortexa57_extra_costs.
32076
32077 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
32078
32079         PR lto/60404
32080         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
32081         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
32082         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
32083         cost for in_lto_p.
32084
32085 2014-03-04  Heiher  <r@hev.cc>
32086
32087         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
32088         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
32089
32090 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
32091
32092         * config/i386/predicates.md (const2356_operand): Change to ...
32093         (const2367_operand): ... this.
32094         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
32095         const2367_operand.
32096         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32097         (*avx512pf_scatterpf<mode>sf): Ditto.
32098         (avx512pf_scatterpf<mode>df): Ditto.
32099         (*avx512pf_scatterpf<mode>df_mask): Ditto.
32100         (*avx512pf_scatterpf<mode>df): Ditto.
32101         * config/i386/i386.c (ix86_expand_builtin): Update
32102         incorrect hint operand error message.
32103
32104 2014-03-04  Richard Biener  <rguenther@suse.de>
32105
32106         * lto-section-in.c (lto_get_section_data): Fix const cast.
32107
32108 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
32109
32110         * tree-streamer.c (record_common_node): Assert we don't record
32111         nodes with type double.
32112         (preload_common_node): Skip type double, complex double and double
32113         pointer since it is now frontend dependent due to fshort-double option.
32114
32115 2014-03-04  Richard Biener  <rguenther@suse.de>
32116
32117         PR lto/60405
32118         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
32119         (lto_input_toplevel_asms): Likewise.
32120         * lto-section-in.c (lto_get_section_data): Instead do it here
32121         for every section.
32122
32123 2014-03-04  Richard Biener  <rguenther@suse.de>
32124
32125         PR tree-optimization/60382
32126         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
32127         dead PHIs a reduction.
32128
32129 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
32130
32131         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
32132         hint value.
32133         (_mm_prefetch): Move out of GCC target("sse") pragma.
32134         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
32135         GCC target("prfchw") pragma.
32136         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
32137         for locality <= 2.
32138         * config/i386/i386.c (ix86_option_override_internal): Enable
32139         -mprfchw with -mprefetchwt1.
32140
32141 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
32142
32143         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
32144         Mark as varying.
32145
32146 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
32147
32148         * opts.h (CL_PCH_IGNORE): Define.
32149         * targhooks.c (option_affects_pch_p):
32150         Return false for options that have CL_PCH_IGNORE set.
32151         * opt-functions.awk: Process PchIgnore.
32152         * doc/options.texi: Document PchIgnore.
32153
32154         * config/arc/arc.opt (misize): Add PchIgnore property.
32155
32156 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32157
32158         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
32159         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
32160         constraint on constants to permit them being loaded into
32161         GENERAL_REGS or BASE_REGS.
32162
32163 2014-03-03  Nick Clifton  <nickc@redhat.com>
32164
32165         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
32166         anti-cacnonical alternatives.
32167         (negandhi3_real): New pattern.
32168         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
32169
32170 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
32171
32172         * config/avr/avr-mcus.def: Remove atxmega16x1.
32173         * config/avr/avr-tables.opt: Regenerate.
32174         * config/avr/t-multilib: Regenerate.
32175         * doc/avr-mmcu.texi: Regenerate.
32176
32177 2014-03-03  Tobias Grosser  <tobias@grosser.es>
32178             Mircea Namolaru  <mircea.namolaru@inria.fr>
32179
32180         PR tree-optimization/58028
32181         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
32182         scalar dimensions.
32183
32184 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32185
32186         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
32187         not handled by recognizers.
32188
32189 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
32190
32191         PR middle-end/60175
32192         * function.c (expand_function_end): Don't emit
32193         clobber_return_register sequence if clobber_after is a BARRIER.
32194         * cfgexpand.c (construct_exit_block): Append instructions before
32195         return_label to prev_bb.
32196
32197 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32198
32199         * config/rs6000/constraints.md: Document reserved use of "wc".
32200
32201 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
32202
32203         PR ipa/60150
32204         * ipa.c (function_and_variable_visibility): When dissolving comdat
32205         group, also set all symbols to local.
32206
32207 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
32208
32209         PR ipa/60306
32210
32211         Revert:
32212         2013-12-14  Jan Hubicka  <jh@suse.cz>
32213         PR middle-end/58477
32214         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
32215
32216 2014-03-02  Jon Beniston  <jon@beniston.com>
32217
32218         PR bootstrap/48230
32219         PR bootstrap/50927
32220         PR bootstrap/52466
32221         PR target/46898
32222         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
32223         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
32224         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
32225         (simple_return, *simple_return): New patterns
32226         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
32227         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
32228
32229 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
32230
32231         * dwarf2out.c (gen_subprogram_die): Tidy.
32232
32233 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
32234
32235         PR target/60071
32236         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
32237         (*mov_t_msb_neg_negc): ... this new insn.
32238
32239 2014-02-28  Jason Merrill  <jason@redhat.com>
32240
32241         PR c++/58678
32242         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
32243         function.
32244
32245 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
32246
32247         PR c++/60314
32248         * dwarf2out.c (decltype_auto_die): New static.
32249         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
32250         (gen_type_die_with_usage): Handle 'decltype(auto)'.
32251         (is_cxx_auto): Likewise.
32252
32253 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
32254
32255         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
32256         we are not using general regs only.
32257
32258 2014-02-28  Richard Biener  <rguenther@suse.de>
32259
32260         PR target/60280
32261         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
32262         previous fix and only allow to remove trivial pre-headers
32263         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
32264         (remove_forwarder_block): Properly update the latch of a loop.
32265
32266 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
32267
32268         PR debug/59992
32269         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
32270         (cselib_preserved_hash_table): New.
32271         (preserve_constants_and_equivs): Move preserved vals to it.
32272         (cselib_find_slot): Look it up first.
32273         (cselib_init): Initialize it.
32274         (cselib_finish): Release it.
32275         (dump_cselib_table): Dump it.
32276
32277 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
32278
32279         PR debug/59992
32280         * cselib.c (remove_useless_values): Skip to avoid quadratic
32281         behavior if the condition moved from...
32282         (cselib_process_insn): ... here holds.
32283
32284 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
32285
32286         PR debug/57232
32287         * var-tracking.c (vt_initialize): Apply the same condition to
32288         preserve the CFA base value.
32289
32290 2014-02-28  Joey Ye  <joey.ye@arm.com>
32291
32292         PR target/PR60169
32293         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
32294         if reload in progress or completed.
32295
32296 2014-02-28  Tobias Burnus  <burnus@net-b.de>
32297
32298         PR middle-end/60147
32299         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
32300         NAMELIST_DECL.
32301
32302 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
32303
32304         * doc/tm.texi.in (Condition Code Status): Update documention for
32305         relative locations of cc0-setter and cc0-user.
32306
32307 2014-02-27  Jeff Law  <law@redhat.com>
32308
32309         PR rtl-optimization/52714
32310         * combine.c (try_combine): When splitting an unrecognized PARALLEL
32311         into two independent simple sets, if I3 is a jump, ensure the
32312         pattern we place into I3 is a (set (pc) ...).
32313
32314 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
32315             Jeff Law  <law@redhat.com>
32316
32317         PR rtl-optimization/49847
32318         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
32319         are in different blocks.
32320         * doc/tm.texi (Condition Code Status): Update documention for
32321         relative locations of cc0-setter and cc0-user.
32322
32323 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
32324
32325         PR target/59222
32326         * lra.c (lra_emit_add): Check SUBREG too.
32327
32328 2014-02-27  Andreas Schwab  <schwab@suse.de>
32329
32330         * config/m68k/m68k.c (m68k_option_override): Disable
32331         -flive-range-shrinkage for classic m68k.
32332         (m68k_override_options_after_change): Likewise.
32333
32334 2014-02-27  Marek Polacek  <polacek@redhat.com>
32335
32336         PR middle-end/59223
32337         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
32338         -Wmaybe-uninitialized.
32339
32340 2014-02-27  Alan Modra  <amodra@gmail.com>
32341
32342         PR target/57936
32343         * reload1.c (emit_input_reload_insns): When reload_override_in,
32344         set old to rl->in_reg when rl->in_reg is a subreg.
32345
32346 2014-02-26  Richard Biener  <rguenther@suse.de>
32347
32348         PR bootstrap/60343
32349         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
32350
32351 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
32352
32353         * common/config/i386/predicates.md (const1256_operand): Remove.
32354         (const2356_operand): New.
32355         (const_1_to_2_operand): Remove.
32356         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
32357         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
32358         (*avx512pf_gatherpf<mode>sf): Ditto.
32359         (avx512pf_gatherpf<mode>df): Ditto.
32360         (*avx512pf_gatherpf<mode>df_mask): Ditto.
32361         (*avx512pf_gatherpf<mode>df): Ditto.
32362         (avx512pf_scatterpf<mode>sf): Ditto.
32363         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32364         (*avx512pf_scatterpf<mode>sf): Ditto.
32365         (avx512pf_scatterpf<mode>df): Ditto.
32366         (*avx512pf_scatterpf<mode>df_mask): Ditto.
32367         (*avx512pf_scatterpf<mode>df): Ditto.
32368         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
32369
32370 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
32371
32372         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
32373         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
32374         (_mm512_mask_testn_epi64_mask): Move to ...
32375         * config/i386/avx512cdintrin.h: Here.
32376         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
32377         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
32378         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
32379         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
32380         TARGET_AVX512F from TARGET_AVX512CD.
32381
32382 2014-02-26  Richard Biener  <rguenther@suse.de>
32383
32384         PR ipa/60327
32385         * ipa.c (walk_polymorphic_call_targets): Properly guard
32386         call to inline_update_overall_summary.
32387
32388 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
32389
32390         PR target/60280
32391         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
32392         and latches only if requested.  Fix latch if it is removed.
32393         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
32394         LOOPS_HAVE_PREHEADERS.
32395
32396 2014-02-25  Andrew Pinski  <apinski@cavium.com>
32397
32398         * builtins.c (expand_builtin_thread_pointer): Create a new target
32399         when the target is NULL.
32400
32401 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
32402
32403         PR rtl-optimization/60317
32404         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
32405         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
32406         * lra-assigns.c: Include params.h.
32407         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
32408         other reload pseudos considerations.
32409
32410 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32411
32412         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
32413         to use canonical form for nor<mode>3.
32414
32415 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32416
32417         PR target/55426
32418         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
32419         conversions.
32420
32421 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
32422
32423         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
32424         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
32425         (ix86_handle_option): Handle OPT_mprefetchwt1.
32426         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
32427         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
32428         PREFETCHWT1 CPUID.
32429         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
32430         OPTION_MASK_ISA_PREFETCHWT1.
32431         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
32432         (PTA_PREFETCHWT1): New.
32433         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
32434         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
32435         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
32436         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
32437         (*prefetch_avx512pf_<mode>_: Change into ...
32438         (*prefetch_prefetchwt1_<mode>: This.
32439         * config/i386/i386.opt (mprefetchwt1): New.
32440         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
32441         (_mm_prefetch): Handle intent to write.
32442         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
32443
32444 2014-02-25  Richard Biener  <rguenther@suse.de>
32445
32446         PR middle-end/60291
32447         * emit-rtl.c (mem_attrs_htab): Remove.
32448         (mem_attrs_htab_hash): Likewise.
32449         (mem_attrs_htab_eq): Likewise.
32450         (set_mem_attrs): Always allocate new mem-attrs when something changed.
32451         (init_emit_once): Do not allocate mem_attrs_htab.
32452
32453 2014-02-25  Richard Biener  <rguenther@suse.de>
32454
32455         PR lto/60319
32456         * lto-opts.c (lto_write_options): Output non-explicit conservative
32457         -fwrapv, -fno-trapv and -fno-strict-overflow.
32458         * lto-wrapper.c (merge_and_complain): Handle merging those options.
32459         (run_gcc): And pass them through.
32460
32461 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
32462
32463         * sel-sched.c (calculate_new_fences): New parameter ptime.
32464         Calculate it as a maximum over all fence cycles.
32465         (sel_sched_region_2): Adjust the call to calculate_new_fences.
32466         Print the final schedule timing when sched_verbose.
32467
32468 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
32469
32470         PR rtl-optimization/60292
32471         * sel-sched.c (fill_vec_av_set): Do not reset target availability
32472         bit fot the fence instruction.
32473
32474 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
32475
32476         * calls.h: Fix typo in comment.
32477
32478 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
32479
32480         * config/pa/pa.c (pa_output_move_double): Don't valididate when
32481         adjusting offsetable addresses.
32482
32483 2014-02-24  Guozhi Wei  <carrot@google.com>
32484
32485         * sparseset.h (sparseset_pop): Fix the wrong index.
32486
32487 2014-02-24  Walter Lee  <walt@tilera.com>
32488
32489         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
32490         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
32491         triplet.
32492         * common/config/tilegx/tilegx-common.c
32493         (TARGET_DEFAULT_TARGET_FLAGS): Define.
32494         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
32495         (LINK_SPEC): Ditto.
32496         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
32497         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
32498         (tilegx_gimplify_va_arg_expr): Handle big endian.
32499         (tilegx_expand_unaligned_load): Ditto.
32500         (tilegx_expand_unaligned_store): Ditto.
32501         (TARGET_RETURN_IN_MSB): New.
32502         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
32503         (TARGET_ENDIAN_DEFAULT): New.
32504         (TARGET_BIG_ENDIAN): Handle big endian.
32505         (BYTES_BIG_ENDIAN): Ditto.
32506         (WORDS_BIG_ENDIAN): Ditto.
32507         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
32508         (ENDIAN_SPEC): New.
32509         (EXTRA_SPECS): New.
32510         * config/tilegx/tilegx.md (extv): Handle big endian.
32511         (extzv): Ditto.
32512         (insn_st<n>): Ditto.
32513         (insn_st<n>_add<bitsuffix>): Ditto.
32514         (insn_stnt<n>): Ditto.
32515         (insn_stnt<n>_add<bitsuffix>):Ditto.
32516         (vec_interleave_highv8qi): Handle big endian.
32517         (vec_interleave_highv8qi_be): New.
32518         (vec_interleave_highv8qi_le): New.
32519         (insn_v1int_h): Handle big endian.
32520         (vec_interleave_lowv8qi): Handle big endian.
32521         (vec_interleave_lowv8qi_be): New.
32522         (vec_interleave_lowv8qi_le): New.
32523         (insn_v1int_l): Handle big endian.
32524         (vec_interleave_highv4hi): Handle big endian.
32525         (vec_interleave_highv4hi_be): New.
32526         (vec_interleave_highv4hi_le): New.
32527         (insn_v2int_h): Handle big endian.
32528         (vec_interleave_lowv4hi): Handle big endian.
32529         (vec_interleave_lowv4hi_be): New.
32530         (vec_interleave_lowv4hi_le): New.
32531         (insn_v2int_l): Handle big endian.
32532         (vec_interleave_highv2si): Handle big endian.
32533         (vec_interleave_highv2si_be): New.
32534         (vec_interleave_highv2si_le): New.
32535         (insn_v4int_h): Handle big endian.
32536         (vec_interleave_lowv2si): Handle big endian.
32537         (vec_interleave_lowv2si_be): New.
32538         (vec_interleave_lowv2si_le): New.
32539         (insn_v4int_l): Handle big endian.
32540         * config/tilegx/tilegx.opt (mbig-endian): New option.
32541         (mlittle-endian): New option.
32542         * doc/install.texi: Document tilegxbe-linux.
32543         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
32544
32545 2014-02-24  Martin Jambor  <mjambor@suse.cz>
32546
32547         PR ipa/60266
32548         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
32549         there are no parameter descriptors.
32550
32551 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
32552
32553         PR rtl-optimization/60268
32554         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
32555         initialization to ...
32556         (sched_rgn_init): ... here.
32557         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
32558
32559 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
32560
32561         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
32562         names.
32563
32564 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
32565
32566         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
32567         definition.
32568
32569 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
32570
32571         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
32572         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
32573
32574 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
32575
32576         * config/microblaze/predicates.md: Add cmp_op predicate.
32577         * config/microblaze/microblaze.md: Add branch_compare instruction
32578         which uses cmp_op predicate and emits cmp insn before branch.
32579         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
32580         to microblaze_expand_conditional_branch and consolidate logic.
32581         (microblaze_expand_conditional_branch): emit branch_compare
32582         insn instead of handling cmp op separate from branch insn.
32583
32584 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32585
32586         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
32587         to permit subregs.
32588
32589 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32590
32591         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
32592         define_insn with define_expand and new define_insn
32593         *altivec_lve<VI_char>x_internal.
32594         (altivec_stve<VI_char>x): Replace define_insn with define_expand
32595         and new define_insn *altivec_stve<VI_char>x_internal.
32596         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
32597         prototype.
32598         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
32599         lve*x built-ins.
32600         (altivec_expand_stvex_be): New function.
32601
32602 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
32603
32604         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
32605         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
32606         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
32607         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
32608
32609 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
32610
32611         PR target/60298
32612         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
32613         instead of emit_move_insn.
32614
32615 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32616
32617         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
32618         vspltw with vsldoi.
32619         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
32620         gen_altivec_vsumsws.
32621
32622 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32623
32624         * config/rs6000/altivec.md (altivec_lvxl): Rename as
32625         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
32626         (altivec_lvxl_<mode>): New define_expand incorporating
32627         -maltivec=be semantics where needed.
32628         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
32629         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
32630         semantics where needed.
32631         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
32632         (altivec_stvx_<mode>): New define_expand incorporating
32633         -maltivec=be semantics where needed.
32634         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
32635         VM2 iterator instead of V4SI.
32636         (altivec_stvxl_<mode>): New define_expand incorporating
32637         -maltivec=be semantics where needed.
32638         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
32639         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
32640         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
32641         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
32642         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
32643         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
32644         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
32645         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
32646         ALTIVEC_BUILTIN_STVXL.
32647         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
32648         (altivec_expand_stvx_be): Likewise.
32649         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
32650         (altivec_expand_lvx_be): Likewise.
32651         (altivec_expand_stvx_be): Likewise.
32652         (altivec_expand_builtin): Add cases for
32653         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
32654         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
32655         (altivec_init_builtins): Add definitions for
32656         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
32657         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
32658
32659 2014-02-21  Catherine Moore  <clm@codesourcery.com>
32660
32661         * doc/invoke.texi (mvirt, mno-virt): Document.
32662         * config/mips/mips.opt (mvirt): New option.
32663         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
32664
32665 2014-02-21  Richard Biener  <rguenther@suse.de>
32666
32667         PR tree-optimization/60276
32668         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
32669         (STMT_VINFO_MIN_NEG_DIST): New macro.
32670         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
32671         STMT_VINFO_MIN_NEG_DIST.
32672         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
32673         made for negative dependence distances still hold.
32674
32675 2014-02-21  Richard Biener  <rguenther@suse.de>
32676
32677         PR middle-end/60291
32678         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
32679         DECL_INITIAL for globals not in the current function context.
32680
32681 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
32682
32683         PR tree-optimization/56490
32684         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
32685         * tree-ssa-uninit.c: Include params.h.
32686         (compute_control_dep_chain): Add num_calls argument, return false
32687         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
32688         num_calls to recursive call.
32689         (find_predicates): Change dep_chain into normal array,
32690         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
32691         variable and adjust compute_control_dep_chain caller.
32692         (find_def_preds): Likewise.
32693
32694 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
32695
32696         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
32697         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
32698
32699 2014-02-21  Nick Clifton  <nickc@redhat.com>
32700
32701         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
32702         (pushhi1): Likewise.
32703         (popqi1): Add mode to pre_dec.
32704         (pophi1): Likewise.
32705
32706 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
32707
32708         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
32709         mode for mask of V8SFmode permutation.
32710
32711 2014-02-20  Richard Henderson  <rth@redhat.com>
32712
32713         PR c++/60272
32714         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
32715         a new pseudo for OLDVAL.
32716
32717 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
32718
32719         PR target/57896
32720         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
32721         gen_reg_rtx if d->testing_p.
32722         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
32723         if d->testing_p and we will certainly return true.
32724         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
32725         if d->testing_p.
32726
32727 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
32728
32729         * emit-rtl.c (gen_reg_rtx): Assert that
32730         crtl->emit.regno_pointer_align_length is non-zero.
32731
32732 2014-02-20  Richard Henderson  <rth@redhat.com>
32733
32734         PR c++/60272
32735         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
32736         on failure the store back into EXPECT.
32737
32738 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
32739             Sandra Loosemore  <sandra@codesourcery.com>
32740
32741         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
32742         * config/nios2/nios2.c (nios2_function_profiler): Add
32743         -fPIC (flag_pic == 2) support.
32744         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
32745         (nios2_large_offset_p): New function.
32746         (nios2_unspec_reloc_p): Move up position, update to use
32747         nios2_large_offset_p.
32748         (nios2_unspec_address): Remove function.
32749         (nios2_unspec_offset): New function.
32750         (nios2_large_got_address): New function.
32751         (nios2_got_address): Add large offset support.
32752         (nios2_legitimize_tls_address): Update usage of removed and new
32753         functions.
32754         (nios2_symbol_binds_local_p): New function.
32755         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
32756         (nios2_legitimize_address): Update to use nios2_large_offset_p.
32757         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
32758         (nios2_print_operand): Merge H/L processing, add hiadj/lo
32759         processing for (const (unspec ...)).
32760         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
32761
32762 2014-02-20  Richard Biener  <rguenther@suse.de>
32763
32764         * tree-cfg.c (replace_uses_by): Mark altered BBs before
32765         doing the substitution.
32766         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
32767
32768 2014-02-20  Martin Jambor  <mjambor@suse.cz>
32769
32770         PR ipa/55260
32771         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
32772         info when checking whether lattices are bottom.
32773
32774 2014-02-20  Richard Biener  <rguenther@suse.de>
32775
32776         PR middle-end/60221
32777         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
32778         regions at -O0.
32779
32780 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
32781
32782         PR ipa/58555
32783         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
32784         parameter specifying the scaling.
32785         (inline_call): Update.
32786         (want_inline_recursively): Guard division by zero.
32787         (recursive_inlining): Update.
32788         * ipa-inline.h (clone_inlined_nodes): Update.
32789
32790 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
32791
32792         PR target/60204
32793         * config/i386/i386.c (classify_argument): Pass structures of size
32794         64 bytes or less in register.
32795
32796 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
32797             Kirill Yukhin  <kirill.yukhin@intel.com>
32798
32799         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
32800         (_mm_rcp28_round_ss): Ditto.
32801         (_mm_rsqrt28_round_sd): Ditto.
32802         (_mm_rsqrt28_round_ss): Ditto.
32803         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
32804         (_mm_rcp14_round_ss): Ditto.
32805         (_mm_rsqrt14_round_sd): Ditto.
32806         (_mm_rsqrt14_round_ss): Ditto.
32807         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
32808         the first input operand, get rid of match_dup.
32809         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
32810         attribute to sse.
32811         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
32812         Ditto.
32813         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
32814         operand as the first input operand, set type attribute.
32815         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
32816         Set type attribute.
32817         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
32818         operand as the first input operand, set type attribute.
32819
32820 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32821
32822         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
32823         bit of zero.
32824
32825 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
32826
32827         PR target/60207
32828         * config/i386/i386.c (construct_container): Remove TFmode check
32829         for X86_64_INTEGER_CLASS.
32830
32831 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
32832
32833         PR target/59794
32834         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
32835         only when -Wpsabi is enabled.
32836
32837 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
32838
32839         PR target/59799
32840         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
32841         passing arrays in registers are the same as for structs, so remove the
32842         special case for them.
32843
32844 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
32845
32846         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
32847         destination type, extract only the valid bits if the source type is not
32848         integral and has a different mode.
32849
32850 2014-02-19  Richard Biener  <rguenther@suse.de>
32851
32852         PR ipa/60243
32853         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
32854         for all calls.
32855
32856 2014-02-19  Richard Biener  <rguenther@suse.de>
32857
32858         PR ipa/60243
32859         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
32860         (ipa_modify_call_arguments): Emit an argument load explicitely and
32861         preserve virtual SSA form there and for the replacement call.
32862         Do not update SSA form nor free dominance info.
32863
32864 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32865
32866         * ipa.c (function_and_variable_visibility): Also clear WEAK
32867         flag when disolving COMDAT_GROUP.
32868
32869 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32870
32871         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
32872         * ipa-prop.c (ipa_set_jf_known_type): Return early when
32873         not devirtualizing.
32874         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
32875         do more sanity checks.
32876         (detect_type_change): Return true when giving up early.
32877         (compute_complex_assign_jump_func): Fix type parameter of
32878         ipa_set_ancestor_jf.
32879         (compute_complex_ancestor_jump_func): Likewise.
32880         (update_jump_functions_after_inlining): Fix updating of
32881         ancestor function.
32882         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
32883
32884 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32885
32886         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
32887         inline clones when edge disappears.
32888
32889 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
32890
32891         PR target/60203
32892         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
32893         Split 64-bit moves into 2 patterns.  Do not allow the use of
32894         direct move for TDmode in little endian, since the decimal value
32895         has little endian bytes within a word, but the 64-bit pieces are
32896         ordered in a big endian fashion, and normal subreg's of TDmode are
32897         not allowed.
32898         (mov<mode>_64bit_dm): Likewise.
32899         (movtd_64bit_nodm): Likewise.
32900
32901 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
32902
32903         PR tree-optimization/60174
32904         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
32905         statement of an SSA_NAME that occurs in an abnormal PHI node.
32906
32907 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
32908
32909         PR sanitizer/60142
32910         * final.c (SEEN_BB): Remove.
32911         (SEEN_NOTE, SEEN_EMITTED): Renumber.
32912         (final_scan_insn): Don't force_source_line on second
32913         NOTE_INSN_BASIC_BLOCK.
32914
32915 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
32916
32917         PR target/60205
32918         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
32919         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
32920         (type_natural_mode): Warn ABI change when %zmm register is not
32921         available for AVX512F vector value passing.
32922
32923 2014-02-18  Kai Tietz  <ktietz@redhat.com>
32924
32925         PR target/60193
32926         * config/i386/i386.c (ix86_expand_prologue): Use value in
32927         rax register as displacement when restoring %r10 or %rax.
32928         Fix wrong offset when restoring both registers.
32929
32930 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
32931
32932         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
32933         assertion with conditional return.
32934
32935 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
32936             Uros Bizjak  <ubizjak@gmail.com>
32937
32938         PR driver/60233
32939         * config/i386/driver-i386.c (host_detect_local_cpu): If
32940         YMM state is not saved by the OS, also clear has_f16c.  Move
32941         CPUID 0x80000001 handling before YMM state saving checking.
32942
32943 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
32944
32945         PR rtl-optimization/58960
32946         * haifa-sched.c (alloc_global_sched_pressure_data): New,
32947         factored out from ...
32948         (sched_init): ... here.
32949         (free_global_sched_pressure_data): New, factored out from ...
32950         (sched_finish): ... here.
32951         * sched-int.h (free_global_sched_pressure_data): Declare.
32952         * sched-rgn.c (nr_regions_initial): New static global.
32953         (haifa_find_rgns): Initialize it.
32954         (schedule_region): Disable sched-pressure for the newly
32955         generated regions.
32956
32957 2014-02-17  Richard Biener  <rguenther@suse.de>
32958
32959         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
32960         release SSA defs of pattern stmts.
32961
32962 2014-02-17  Richard Biener  <rguenther@suse.de>
32963
32964         * tree-inline.c (expand_call_inline): Release the virtual
32965         operand defined by the call we are about to inline.
32966
32967 2014-02-17  Richard Biener  <rguenther@suse.de>
32968
32969         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
32970
32971 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
32972             Ilya Tocar  <ilya.tocar@intel.com>
32973
32974         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
32975         arguments order in builtin.
32976         (_mm512_permutexvar_epi64): Ditto.
32977         (_mm512_mask_permutexvar_epi64): Ditto
32978         (_mm512_maskz_permutexvar_epi32): Ditto
32979         (_mm512_permutexvar_epi32): Ditto
32980         (_mm512_mask_permutexvar_epi32): Ditto
32981
32982 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32983
32984         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
32985         (p8_vmrgow): Likewise.
32986
32987 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32988
32989         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
32990         endian targets.
32991
32992 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
32993
32994         PR target/60203
32995         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
32996         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
32997         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
32998         using direct move instructions on ISA 2.07.  Also adjust
32999         instruction length for 64-bit.
33000         (mov<mode>_64bit, TFmode/TDmode): Likewise.
33001         (mov<mode>_32bit, TFmode/TDmode): Likewise.
33002
33003 2014-02-15  Alan Modra  <amodra@gmail.com>
33004
33005         PR target/58675
33006         PR target/57935
33007         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
33008         find_replacement on parts of insn rtl that might be reloaded.
33009
33010 2014-02-15  Richard Biener  <rguenther@suse.de>
33011
33012         PR tree-optimization/60183
33013         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
33014         (tree_ssa_phiprop): Calculate and free post-dominators.
33015
33016 2014-02-14  Jeff Law  <law@redhat.com>
33017
33018         PR rtl-optimization/60131
33019         * ree.c (get_extended_src_reg): New function.
33020         (combine_reaching_defs): Use it rather than assuming location of REG.
33021         (find_and_remove_re): Verify first operand of extension is
33022         a REG before adding the insns to the copy list.
33023
33024 2014-02-14  Roland McGrath  <mcgrathr@google.com>
33025
33026         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
33027         * configure: Regenerated.
33028         * config.in: Regenerated.
33029         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
33030         instead of ASM_SHORT.
33031
33032 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
33033             Richard Earnshaw  <rearnsha@arm.com>
33034
33035         PR rtl-optimization/59535
33036         * lra-constraints.c (process_alt_operands): Encourage alternative
33037         when unassigned pseudo class is superset of the alternative class.
33038         (inherit_reload_reg): Don't inherit when optimizing for code size.
33039         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
33040         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
33041         modes not less than 4 for Thumb1.
33042
33043 2014-02-14  Kyle McMartin  <kyle@redhat.com>
33044
33045         PR pch/60010
33046         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
33047
33048 2014-02-14  Richard Biener  <rguenther@suse.de>
33049
33050         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
33051         (get_frame_arg): Drop the assert with langhook types_compatible_p.
33052         Do not strip INDIRECT_REFs.
33053
33054 2014-02-14  Richard Biener  <rguenther@suse.de>
33055
33056         PR lto/60179
33057         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
33058         DECL_FUNCTION_SPECIFIC_TARGET.
33059         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
33060         * tree-streamer-out.c (pack_ts_target_option): Remove.
33061         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
33062         (write_ts_function_decl_tree_pointers): Do not stream
33063         DECL_FUNCTION_SPECIFIC_TARGET.
33064         * tree-streamer-in.c (unpack_ts_target_option): Remove.
33065         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
33066         (lto_input_ts_function_decl_tree_pointers): Do not stream
33067         DECL_FUNCTION_SPECIFIC_TARGET.
33068
33069 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
33070
33071         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
33072         (get_initial_def_for_induction, vectorizable_induction): Ignore
33073         debug stmts when looking for exit_phi.
33074         (vectorizable_live_operation): Fix up condition.
33075
33076 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
33077
33078         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
33079         nreverse() because it changes the content of original tree list.
33080
33081 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
33082
33083         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
33084         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
33085
33086 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
33087
33088         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
33089         GNU coding standards.
33090
33091 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
33092
33093         PR debug/60152
33094         * dwarf2out.c (gen_subprogram_die): Don't call
33095         add_calling_convention_attribute if subr_die is old_die.
33096
33097 2014-02-13  Sharad Singhai  <singhai@google.com>
33098
33099         * doc/optinfo.texi: Fix order of nodes.
33100
33101 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
33102
33103         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
33104         operands[2], not operands[3].
33105
33106 2014-02-13  Richard Biener  <rguenther@suse.de>
33107
33108         PR bootstrap/59878
33109         * doc/install.texi (ISL): Update recommended version to 0.12.2,
33110         mention the possibility of an in-tree build.
33111         (CLooG): Update recommended version to 0.18.1, mention the
33112         possibility of an in-tree build and clarify that the ISL
33113         bundled with CLooG does not work.
33114
33115 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
33116
33117         PR target/43546
33118         * expr.c (compress_float_constant): If x is a hard register,
33119         extend into a pseudo and then move to x.
33120
33121 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33122
33123         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
33124         caused by bad second argument to warning_at() with -mhotpatch and
33125         nested functions (e.g. with gfortran).
33126
33127 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
33128
33129         * opts.c (option_name): Remove "enabled by default" rider.
33130
33131 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
33132
33133         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
33134
33135 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
33136             Uros Bizjak  <ubizjak@gmail.com>
33137
33138         PR target/60151
33139         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
33140         * configure: Regenerated.
33141
33142 2014-02-12  Richard Biener  <rguenther@suse.de>
33143
33144         * vec.c (vec_prefix::calculate_allocation): Move as
33145         inline variant to vec.h.
33146         (vec_prefix::calculate_allocation_1): New out-of-line version.
33147         * vec.h (vec_prefix::calculate_allocation_1): Declare.
33148         (vec_prefix::m_has_auto_buf): Rename to ...
33149         (vec_prefix::m_using_auto_storage): ... this.
33150         (vec_prefix::calculate_allocation): Inline the easy cases
33151         and dispatch to calculate_allocation_1 which doesn't need the
33152         prefix address.
33153         (va_heap::reserve): Use gcc_checking_assert.
33154         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
33155         m_using_auto_storage.
33156         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
33157         member and adjust.
33158         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
33159         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
33160         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
33161
33162 2014-02-12  Richard Biener  <rguenther@suse.de>
33163
33164         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
33165         when we found a dependence.
33166
33167 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
33168
33169         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
33170         common code...
33171         (maybe_fold_stmt): ... into this new function.
33172         * omp-low.c (lower_omp): Update comment.
33173
33174         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
33175         last use.
33176
33177         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
33178         dereference.
33179
33180 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
33181
33182         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
33183         identifiers in comments.
33184         (cortexa53_extra_costs): Likewise.
33185         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
33186         (cortexa7_extra_costs): Likewise.
33187         (cortexa12_extra_costs): Likewise.
33188         (cortexa15_extra_costs): Likewise.
33189         (v7m_extra_costs): Likewise.
33190
33191 2014-02-12  Richard Biener  <rguenther@suse.de>
33192
33193         PR middle-end/60092
33194         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
33195         of posix_memalign being successful.
33196         (lower_stmt): Restrict lowering of posix_memalign to when
33197         -ftree-bit-ccp is enabled.
33198
33199 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
33200
33201         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
33202         arg_loc.
33203         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
33204
33205 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
33206
33207         PR rtl-optimization/60116
33208         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
33209         other_insn once the combination has been validated.
33210
33211 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
33212
33213         PR lto/59468
33214         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
33215         and wrapper.
33216         * ipa-devirt.c: Include demangle.h
33217         (odr_violation_reported): New static variable.
33218         (add_type_duplicate): Update odr_violations.
33219         (maybe_record_node): Add completep parameter; update it.
33220         (record_target_from_binfo): Add COMPLETEP parameter;
33221         update it as needed.
33222         (possible_polymorphic_call_targets_1): Likewise.
33223         (struct polymorphic_call_target_d): Add nonconstruction_targets;
33224         rename FINAL to COMPLETE.
33225         (record_targets_from_bases): Sanity check we found the binfo;
33226         fix COMPLETEP updating.
33227         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
33228         parameter, fix computing of COMPLETEP.
33229         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
33230         at LTO time do demangling.
33231         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
33232         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
33233         parameter.
33234         (gimple_get_virt_method_for_binfo): Likewise.
33235         * gimple-fold.h (gimple_get_virt_method_for_binfo,
33236         gimple_get_virt_method_for_vtable): Update prototypes.
33237
33238 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
33239
33240         PR target/49008
33241         * genautomata.c (add_presence_absence): Fix typo with
33242         {final_}presence_list.
33243
33244 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
33245
33246         PR target/60137
33247         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
33248         for VSX/Altivec vectors that land in GPR registers.
33249
33250 2014-02-11  Richard Henderson  <rth@redhat.com>
33251             Jakub Jelinek  <jakub@redhat.com>
33252
33253         PR debug/59776
33254         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
33255         around drhs if type conversion to lacc->type is not useless.
33256
33257 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33258
33259         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
33260         tuning struct.
33261         (cortex-a57.cortex-a53): Likewise.
33262         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
33263
33264 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33265
33266         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
33267         arm_restrict_it.
33268
33269 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
33270
33271         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
33272         add_options_for_arm_vfp3.
33273
33274 2014-02-11  Jeff Law  <law@redhat.com>
33275
33276         PR middle-end/54041
33277         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
33278         object with an undesirable mode.
33279
33280 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33281
33282         PR libgomp/60107
33283         * config/i386/sol2-9.h: New file.
33284         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
33285         *-*-solaris2.9*): Use it.
33286
33287 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
33288
33289         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
33290         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
33291
33292 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
33293
33294         * config/microblaze/microblaze.c: Extend mcpu version format
33295
33296 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
33297
33298         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
33299
33300 2014-02-10  Richard Henderson  <rth@redhat.com>
33301
33302         PR target/59927
33303         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
33304         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
33305         ms-abi vs -mno-accumulate-outgoing-args.
33306         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
33307         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
33308         respect to ms-abi.
33309
33310 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33311
33312         PR middle-end/60080
33313         * cfgexpand.c (expand_asm_operands): Attach source location to
33314         ASM_INPUT rtx objects.
33315         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
33316
33317 2014-02-10  Nick Clifton  <nickc@redhat.com>
33318
33319         * config/mn10300/mn10300.c (popcount): New function.
33320         (mn10300_expand_prologue): Include saved registers in stack usage
33321         count.
33322
33323 2014-02-10  Jeff Law  <law@redhat.com>
33324
33325         PR middle-end/52306
33326         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
33327         when changing the SET_DEST of a prior insn to avoid an input reload.
33328
33329 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
33330
33331         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
33332         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
33333         -mcall-openbsd, or -mcall-linux.
33334         (CC1_ENDIAN_BIG_SPEC): Remove.
33335         (CC1_ENDIAN_LITTLE_SPEC): Remove.
33336         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
33337         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
33338         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
33339         and %cc1_endian_default.
33340         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
33341
33342 2014-02-10  Richard Biener  <rguenther@suse.de>
33343
33344         PR tree-optimization/60115
33345         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
33346         MEM_REF handling.  Properly verify that the accesses are not
33347         out of the objects bound.
33348
33349 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33350
33351         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
33352         coretex to cortex.
33353
33354 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
33355
33356         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
33357         proper constants and fix formatting.
33358         (possible_polymorphic_call_targets): Fix formatting.
33359
33360 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
33361             Ilya Tocar  <ilya.tocar@intel.com>
33362
33363         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
33364         (_mm512_loadu_epi32): Renamed into...
33365         (_mm512_loadu_si512): This.
33366         (_mm512_storeu_epi32): Renamed into...
33367         (_mm512_storeu_si512): This.
33368         (_mm512_maskz_ceil_ps): Removed.
33369         (_mm512_maskz_ceil_pd): Ditto.
33370         (_mm512_maskz_floor_ps): Ditto.
33371         (_mm512_maskz_floor_pd): Ditto.
33372         (_mm512_floor_round_ps): Ditto.
33373         (_mm512_floor_round_pd): Ditto.
33374         (_mm512_ceil_round_ps): Ditto.
33375         (_mm512_ceil_round_pd): Ditto.
33376         (_mm512_mask_floor_round_ps): Ditto.
33377         (_mm512_mask_floor_round_pd): Ditto.
33378         (_mm512_mask_ceil_round_ps): Ditto.
33379         (_mm512_mask_ceil_round_pd): Ditto.
33380         (_mm512_maskz_floor_round_ps): Ditto.
33381         (_mm512_maskz_floor_round_pd): Ditto.
33382         (_mm512_maskz_ceil_round_ps): Ditto.
33383         (_mm512_maskz_ceil_round_pd): Ditto.
33384         (_mm512_expand_pd): Ditto.
33385         (_mm512_expand_ps): Ditto.
33386         * config/i386/i386.c (ix86_builtins): Remove
33387         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
33388         (bdesc_args): Ditto.
33389         * config/i386/predicates.md (const1256_operand): New.
33390         (const_1_to_2_operand): Ditto.
33391         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
33392         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
33393         (*avx512pf_gatherpf<mode>sf): Ditto.
33394         (avx512pf_gatherpf<mode>df): Ditto.
33395         (*avx512pf_gatherpf<mode>df_mask): Ditto.
33396         (*avx512pf_gatherpf<mode>df): Ditto.
33397         (avx512pf_scatterpf<mode>sf): Ditto.
33398         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
33399         (*avx512pf_scatterpf<mode>sf): Ditto.
33400         (avx512pf_scatterpf<mode>df): Ditto.
33401         (*avx512pf_scatterpf<mode>df_mask): Ditto.
33402         (*avx512pf_scatterpf<mode>df): Ditto.
33403         (avx512f_expand<mode>): Removed.
33404         (<shift_insn><mode>3<mask_name>): Change predicate type.
33405
33406 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
33407
33408         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
33409         not at the end of datarefs vector use ordered_remove to avoid
33410         reordering datarefs vector.
33411
33412         PR c/59984
33413         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
33414         mark local addressable non-static vars as GOVD_PRIVATE
33415         instead of GOVD_LOCAL.
33416         * omp-low.c (lower_omp_for): Move gimple_bind_vars
33417         and BLOCK_VARS of gimple_bind_block to new_stmt rather
33418         than copying them.
33419
33420         PR middle-end/60092
33421         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
33422         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
33423         assume_aligned or alloc_align attributes.
33424         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
33425         arguments.  Handle also assume_aligned and alloc_align attributes.
33426         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
33427         calls to functions with assume_aligned or alloc_align attributes.
33428         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
33429
33430 2014-02-08  Terry Guo  <terry.guo@arm.com>
33431
33432         * doc/invoke.texi: Document ARM -march=armv7e-m.
33433
33434 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
33435
33436         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
33437         flag on __cilkrts_rethrow builtin.
33438
33439         PR ipa/60026
33440         * ipa-cp.c (determine_versionability): Fail at -O0
33441         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
33442         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
33443
33444         Revert:
33445         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
33446
33447         PR ipa/60026
33448         * tree-inline.c (copy_forbidden): Fail for
33449         __attribute__((optimize (0))) functions.
33450
33451 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
33452
33453         * varpool.c: Include pointer-set.h.
33454         (varpool_remove_unreferenced_decls): Variables in other partitions
33455         will not be output; be however careful to not lose information
33456         about partitioning.
33457
33458 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
33459
33460         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
33461         lookup in the vtable constructor.
33462
33463 2014-02-07  Jeff Law  <law@redhat.com>
33464
33465         PR target/40977
33466         * config/m68k/m68k.md (ashldi_extsi): Turn into a
33467         define_insn_and_split.
33468
33469         * ipa-inline.c (inline_small_functions): Fix typos.
33470
33471 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
33472
33473         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
33474         (s390_can_use_return_insn): Declare.
33475         * config/s390/s390.h (EPILOGUE_USES): Define.
33476         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
33477         instructions.
33478         (s390_chunkify_start): Handle return JUMP_LABELs.
33479         (s390_early_mach): Emit a main_pool instruction on the entry edge.
33480         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
33481         (s390_can_use_return_insn): New functions.
33482         (s390_fix_long_loop_prediction): Handle conditional returns.
33483         (TARGET_SET_UP_BY_PROLOGUE): Define.
33484         * config/s390/s390.md (ANY_RETURN): New code iterator.
33485         (*creturn, *csimple_return, return, simple_return): New patterns.
33486
33487 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
33488
33489         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
33490         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
33491         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
33492         REG_CFA_RESTORE list when deciding not to restore a register.
33493
33494 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
33495
33496         * config/s390/s390.c: Include tree-pass.h and context.h.
33497         (s390_early_mach): New function, split out from...
33498         (s390_emit_prologue): ...here.
33499         (pass_data_s390_early_mach): New pass structure.
33500         (pass_s390_early_mach): New class.
33501         (s390_option_override): Create and register early_mach pass.
33502         Move to end of file.
33503
33504 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
33505
33506         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
33507         to match for the exit block.
33508
33509 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33510
33511         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
33512         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
33513         Reject misaligned operands.
33514
33515 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33516
33517         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
33518
33519 2014-02-07  Richard Biener  <rguenther@suse.de>
33520
33521         PR middle-end/60092
33522         * gimple-low.c (lower_builtin_posix_memalign): New function.
33523         (lower_stmt): Call it to lower posix_memalign in a way
33524         to make alignment info accessible.
33525
33526 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
33527
33528         PR c++/60082
33529         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
33530         __builtin_setjmp_receiver.
33531
33532 2014-02-07  Richard Biener  <rguenther@suse.de>
33533
33534         PR middle-end/60092
33535         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
33536         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
33537         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
33538         Handle BUILT_IN_POSIX_MEMALIGN.
33539         (find_func_clobbers): Likewise.
33540         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
33541         (call_may_clobber_ref_p_1): Likewise.
33542
33543 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33544
33545         PR ipa/59918
33546         * ipa-devirt.c (record_target_from_binfo): Remove overactive
33547         sanity check.
33548
33549 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33550
33551         PR ipa/59469
33552         * lto-cgraph.c (lto_output_node): Use
33553         symtab_get_symbol_partitioning_class.
33554         (lto_output_varpool_node): likewise.
33555         (symtab_get_symbol_partitioning_class): Move here from
33556         lto/lto-partition.c
33557         * cgraph.h (symbol_partitioning_class): Likewise.
33558         (symtab_get_symbol_partitioning_class): Declare.
33559
33560 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33561
33562         * ggc.h (ggc_internal_cleared_alloc): New macro.
33563         * vec.h (vec_safe_copy): Handle memory stats.
33564         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
33565         * target-globals.c (save_target_globals): Likewise.
33566
33567 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33568
33569         PR target/60077
33570         * expr.c (emit_move_resolve_push): Export; be bit more selective
33571         on when to clear alias set.
33572         * expr.h (emit_move_resolve_push): Declare.
33573         * function.h (struct function): Add tail_call_marked.
33574         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
33575         * config/i386/i386-protos.h (ix86_expand_push): Remove.
33576         * config/i386/i386.md (TImode move expander): De not call
33577         ix86_expand_push.
33578         (FP push expanders): Preserve memory attributes.
33579         * config/i386/sse.md (push<mode>1): Remove.
33580         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
33581         (ix86_expand_push): Remove.
33582         * config/i386/mmx.md (push<mode>1): Remove.
33583
33584 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33585
33586         PR rtl-optimization/60030
33587         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
33588         lopart with paradoxical subreg before shifting it up by hprec.
33589
33590 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33591
33592         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
33593         Remove extra newline at end of file.
33594         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
33595         (arm_issue_rate): Handle cortexa57.
33596         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
33597         (cortex-a57.cortex-a53): Likewise.
33598
33599 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33600
33601         PR target/59575
33602         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
33603         don't record in REG_FRAME_RELATED_EXPR registers not set in that
33604         bitmask.
33605         (arm_expand_prologue): Adjust all callers.
33606         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
33607         info, registers also at the lowest numbered registers side.  Use
33608         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
33609         XEXP.
33610
33611         PR debug/59992
33612         * var-tracking.c (adjust_mems): Before adding a SET to
33613         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
33614
33615 2014-02-06  Alan Modra  <amodra@gmail.com>
33616
33617         PR target/60032
33618         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
33619         change SDmode to DDmode when lra_in_progress.
33620
33621 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33622
33623         PR middle-end/59150
33624         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
33625         free_data_ref on the dr first, and before goto again also set dr
33626         to the next dr.  For simd_lane_access, free old datarefs[i] before
33627         overwriting it.  For get_vectype_for_scalar_type failure, don't
33628         free_data_ref if simd_lane_access.
33629
33630         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
33631
33632         PR target/60062
33633         * tree.h (opts_for_fn): New inline function.
33634         (opt_for_fn): Define.
33635         * config/i386/i386.c (ix86_function_regparm): Use
33636         opt_for_fn (decl, optimize) instead of optimize.
33637
33638 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33639
33640         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
33641         for SYMBOL_REF in large memory model.
33642
33643 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33644
33645         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
33646         and crypto support.
33647         (cortex-a57): Likewise.
33648         (cortex-a57.cortex-a53): Likewise.
33649
33650 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
33651             Kugan Vivekanandarajah  <kuganv@linaro.org>
33652
33653         * config/arm/arm.c (arm_vector_alignment_reachable): Check
33654         unaligned_access.
33655         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
33656
33657 2014-02-06  Richard Biener  <rguenther@suse.de>
33658
33659         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
33660         set_loop_copy and initialize_original_copy_tables.
33661
33662 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
33663
33664         * config/aarch64/aarch64-simd.md
33665         (aarch64_ashr_simddi): Change QI to SI.
33666
33667 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
33668             Jakub Jelinek  <jakub@redhat.com>
33669
33670         PR middle-end/60013
33671         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
33672         of the dataflow.
33673
33674 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33675
33676         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
33677         CODE_FOR_altivec_vpku[hw]um to
33678         CODE_FOR_altivec_vpku[hw]um_direct.
33679         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
33680         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
33681         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
33682         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
33683
33684 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33685
33686         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
33687         generation for -maltivec=be.
33688         (altivec_vsumsws): Simplify redundant test.
33689
33690 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33691
33692         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
33693         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
33694         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
33695         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
33696         gen_altivec_vpkuwum.
33697         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
33698         BYTES_BIG_ENDIAN.
33699         (altivec_vpks<VI_char>ss): Likewise.
33700         (altivec_vpks<VI_char>us): Likewise.
33701         (altivec_vpku<VI_char>us): Likewise.
33702         (altivec_vpku<VI_char>um): Likewise.
33703         (altivec_vpku<VI_char>um_direct): New (copy of
33704         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
33705         internal use).
33706         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
33707         target is little endian and -maltivec=be is not specified.
33708         (*altivec_vupkhs<VU_char>_direct): New (copy of
33709         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
33710         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
33711         target is little endian and -maltivec=be is not specified.
33712         (*altivec_vupkls<VU_char>_direct): New (copy of
33713         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
33714         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
33715         little endian and -maltivec=be is not specified.
33716         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
33717         little endian and -maltivec=be is not specified.
33718
33719 2014-02-05  Richard Henderson  <rth@redhat.com>
33720
33721         PR debug/52727
33722         * combine-stack-adj.c: Revert r206943.
33723         * sched-int.h (struct deps_desc): Add last_args_size.
33724         * sched-deps.c (init_deps): Initialize it.
33725         (sched_analyze_insn): Add OUTPUT dependencies between insns that
33726         contain REG_ARGS_SIZE notes.
33727
33728 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
33729
33730         * lto-cgraph.c (asm_nodes_output): Make global.
33731         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
33732         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
33733         (driver_handle_option): Handle OPT_fwpa.
33734
33735 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
33736
33737         PR ipa/59947
33738         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
33739         a comment typo and formatting issue.  If odr_hash hasn't been
33740         created, return vNULL and set *completep to false.
33741
33742         PR middle-end/57499
33743         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
33744         bb with no successors.
33745
33746 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
33747
33748         PR target/59718
33749         * doc/invoke.texi (-march): Clarify documentation for ARM.
33750         (-mtune): Likewise.
33751         (-mcpu): Likewise.
33752
33753 2014-02-05  Richard Biener  <rguenther@suse.de>
33754
33755         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
33756         when not vectorizing because of too many alias checks.
33757         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
33758         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
33759
33760 2014-02-05  Nick Clifton  <nickc@redhat.com>
33761
33762         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
33763         accept extended registers in any mode when compiling for the MN10300.
33764
33765 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
33766
33767         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
33768         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
33769         sanitization attributes.
33770         (can_inline_edge_p): Likewise.
33771         (sanitize_attrs_match_for_inline_p): New function.
33772
33773 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33774
33775         * ipa-prop.c (detect_type_change): Shor circuit testing of
33776         type changes on THIS pointer.
33777
33778 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
33779
33780         PR target/59777
33781         * config/pa/pa.c (legitimize_tls_address): Return original address
33782         if not passed a SYMBOL_REF rtx.
33783         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
33784         addresses.
33785         (pa_emit_move_sequence): Simplify TLS source operands.
33786         (pa_legitimate_constant_p): Reject all TLS constants.
33787         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
33788         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
33789
33790 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33791
33792         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
33793         groups when we know they are controlled by LTO.
33794         * varasm.c (default_binds_local_p_1): If object is in other partition,
33795         it will be resolved locally.
33796
33797 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33798
33799         * config/host-linux.c (linux_gt_pch_use_address): Don't
33800         use SSIZE_MAX because it is not always defined.
33801
33802 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
33803
33804         PR bootstrap/59913
33805         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
33806         threshold for pseudo splitting.
33807         (update_ebb_live_info): Process call argument hard registers and
33808         hard registers from insn definition too.
33809         (max_small_class_regs_num): New constant.
33810         (inherit_in_ebb): Update live hard regs through EBBs.  Update
33811         reloads_num only for small register classes.  Don't split for
33812         outputs of jumps.
33813
33814 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
33815
33816         PR ipa/60058
33817         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
33818         is non-null.
33819
33820 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33821
33822         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
33823         visibility is safe.
33824
33825 2014-02-04  Marek Polacek  <polacek@redhat.com>
33826
33827         * gdbinit.in (pel): Define.
33828
33829 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33830
33831         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
33832         behavior.
33833
33834 2014-02-04  Richard Biener  <rguenther@suse.de>
33835
33836         PR lto/59723
33837         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
33838         in function context local.
33839         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
33840         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
33841         similar to LTO_imported_decl_ref.
33842
33843 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
33844
33845         PR tree-optimization/60002
33846         * cgraphclones.c (build_function_decl_skip_args): Clear
33847         DECL_LANG_SPECIFIC.
33848
33849         PR tree-optimization/60023
33850         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
33851         false to gsi_replace.
33852         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
33853         has been in some EH region and vec_stmt could throw, add
33854         vec_stmt into the same EH region.
33855         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
33856         has no lhs, ignore it.
33857         * internal-fn.c (expand_MASK_LOAD): Likewise.
33858
33859         PR ipa/60026
33860         * tree-inline.c (copy_forbidden): Fail for
33861         __attribute__((optimize (0))) functions.
33862
33863         PR other/58712
33864         * omp-low.c (simd_clone_struct_copy): If from->inbranch
33865         is set, copy one less argument.
33866         (expand_simd_clones): Don't subtract clone_info->inbranch
33867         from simd_clone_struct_alloc argument.
33868
33869         PR rtl-optimization/57915
33870         * recog.c (simplify_while_replacing): If all unary/binary/relational
33871         operation arguments are constant, attempt to simplify those.
33872
33873         PR middle-end/59261
33874         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
33875         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
33876
33877 2014-02-04  Richard Biener  <rguenther@suse.de>
33878
33879         PR tree-optimization/60012
33880         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
33881         TBAA disambiguation to all DDRs.
33882
33883 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33884
33885         PR target/59788
33886         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
33887         (LINK_SPEC): Use it for -shared, -shared-libgcc.
33888
33889 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33890
33891         PR ipa/59882
33892         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
33893
33894 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33895
33896         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
33897         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
33898
33899 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33900
33901         PR ipa/59831
33902         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
33903         to figure out targets of polymorphic calls with known decl.
33904         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33905         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
33906         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
33907         (get_polymorphic_call_info): ... here.
33908         (get_polymorphic_call_info_from_invariant): New function.
33909
33910 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33911
33912         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
33913         lookup via vtable pointer; check for type consistency
33914         and turn inconsitent facts into UNREACHABLE.
33915         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33916         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
33917         type inconsistent querries; return UNREACHABLE instead.
33918
33919 2014-02-03  Richard Henderson  <rth@twiddle.net>
33920
33921         PR tree-opt/59924
33922         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
33923         already processed this node.
33924         (normalize_one_pred_1): Pass along mark_set.
33925         (normalize_one_pred): Create and destroy a pointer_set_t.
33926         (normalize_one_pred_chain): Likewise.
33927
33928 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
33929
33930         PR gcov-profile/58602
33931         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
33932
33933 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33934
33935         PR ipa/59831
33936         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
33937         -fno-devirtualize; try to devirtualize by the knowledge of
33938         virtual table pointer given by aggregate propagation.
33939         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33940         (ipa_print_node_jump_functions): Dump also offset that
33941         is relevant for polymorphic calls.
33942         (determine_known_aggregate_parts): Add arg_type parameter; use it
33943         instead of determining the type from pointer type.
33944         (ipa_compute_jump_functions_for_edge): Update call of
33945         determine_known_aggregate_parts.
33946         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
33947         (gimple_get_virt_method_for_binfo): ... here; simplify using
33948         vtable_pointer_value_to_vtable.
33949         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
33950         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
33951         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
33952         (vtable_pointer_value_to_vtable): Break out from ...; handle also
33953         POINTER_PLUS_EXPR.
33954         (vtable_pointer_value_to_binfo): ... here.
33955         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
33956
33957 2014-02-03  Teresa Johnson  <tejohnson@google.com>
33958
33959         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
33960         redef of outer loop index variable.
33961
33962 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
33963
33964         PR c++/53017
33965         PR c++/59211
33966         * doc/extend.texi (Function Attributes): Typo.
33967
33968 2014-02-03  Cong Hou  <congh@google.com>
33969
33970         PR tree-optimization/60000
33971         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
33972         if the vectorized statement is a store.  A store statement can only
33973         appear at the end of pattern statements.
33974
33975 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
33976
33977         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
33978         (ix86_option_override_internal): Default long double to 64-bit for
33979         32-bit Bionic and to 128-bit for 64-bit Bionic.
33980
33981         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
33982         TARGET_LONG_DOUBLE_128 is true.
33983         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
33984
33985         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
33986         (mlong-double-64): Negate -mlong-double-128.
33987         (mlong-double-128): New option.
33988
33989         * config/i386/i386-c.c (ix86_target_macros): Define
33990         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
33991
33992         * doc/invoke.texi: Document -mlong-double-128.
33993
33994 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
33995
33996         PR rtl-optimization/60024
33997         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
33998
33999 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
34000
34001         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
34002
34003 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
34004
34005         PR rtl-optimization/57662
34006         * sel-sched.c (code_motion_path_driver): Do not mark already not
34007         existing blocks in the visiting bitmap.
34008
34009 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
34010
34011         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
34012         on the insn being emitted.
34013
34014 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
34015             Will Deacon  <will.deacon@arm.com>
34016
34017         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
34018
34019 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34020
34021         * config/arm/arm-tables.opt: Regenerate.
34022
34023 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34024
34025         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
34026         for vector types other than V16QImode.
34027         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
34028         define_expand, and call altivec_expand_vec_perm_le when producing
34029         code with little endian element order.
34030         (*altivec_vperm_<mode>_internal): New insn having previous
34031         behavior of altivec_vperm_<mode>.
34032         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
34033         altivec_expand_vec_perm_le when producing code with little endian
34034         element order.
34035         (*altivec_vperm_<mode>_uns_internal): New insn having previous
34036         behavior of altivec_vperm_<mode>_uns.
34037
34038 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34039
34040         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
34041         (altivec_vsumsws): Add handling for -maltivec=be with a little
34042         endian target.
34043         (altivec_vsumsws_direct): New.
34044         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
34045         gen_altivec_vsumsws.
34046
34047 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
34048
34049         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
34050         vtable_pointer_value_to_binfo): New functions.
34051         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
34052         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
34053
34054 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
34055
34056         * config/nios2/nios2.md (load_got_register): Initialize GOT
34057         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
34058         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
34059
34060 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
34061
34062         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
34063         preserverd by passthrough, do not propagate the type.
34064
34065 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
34066
34067         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
34068         (mips_atomic_assign_expand_fenv): New function.
34069         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
34070
34071 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
34072
34073         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
34074         (__builtin_mips_set_fcsr): Likewise.
34075         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
34076         MIPS_USI_FTYPE_VOID.
34077         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
34078         (mips16_expand_set_fcsr): Likewise.
34079         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
34080         (mips16_set_fcsr_stub): Likewise.
34081         (mips16_get_fcsr_one_only_stub): New class.
34082         (mips16_set_fcsr_one_only_stub): Likewise.
34083         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
34084         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
34085         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
34086         (hard_float): New availability predicate.
34087         (mips_builtins): Add get_fcsr and set_fcsr.
34088         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
34089         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
34090         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
34091         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
34092         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
34093         patterns.
34094
34095 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
34096
34097         * config/mips/mips.c (mips_one_only_stub): New class.
34098         (mips_need_mips16_rdhwr_p): Replace with...
34099         (mips16_rdhwr_stub): ...this new variable.
34100         (mips16_stub_call_address): New function.
34101         (mips16_rdhwr_one_only_stub): New class.
34102         (mips_expand_thread_pointer): Use mips16_stub_call_address.
34103         (mips_output_mips16_rdhwr): Delete.
34104         (mips_finish_stub): New function.
34105         (mips_code_end): Use it to handle rdhwr stubs.
34106
34107 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
34108
34109         PR target/60017
34110         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
34111         when calculating size of integer atomic types.
34112
34113 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
34114
34115         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
34116
34117 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
34118
34119         PR tree-optimization/60003
34120         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
34121         * profile.c (branch_prob): Use gimple_call_builtin_p
34122         to check for BUILT_IN_SETJMP_RECEIVER.
34123         * tree-inline.c (copy_bb): Call notice_special_calls.
34124
34125 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
34126
34127         PR bootstrap/59985
34128         * lra-constraints.c (process_alt_operands): Update reload_sum only
34129         on the first pass.
34130
34131 2014-01-31  Richard Henderson  <rth@redhat.com>
34132
34133         PR middle-end/60004
34134         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
34135         until after else_eh is processed.
34136
34137 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
34138
34139         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
34140         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
34141         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
34142         in smmintrin.h, remove them.
34143         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
34144         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
34145         * config/i386/i386.md (ROUND_SAE): Fix value.
34146         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
34147         (const48_operand): New.
34148         * config/i386/subst.md (round), (round_expand): Use
34149         const_4_or_8_to_11_operand.
34150         (round_saeonly), (round_saeonly_expand): Use const48_operand.
34151
34152 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
34153
34154         * config/i386/constraints.md (Yk): Swap meaning with k.
34155         * config/i386/i386.md (movhi_internal): Change Yk to k.
34156         (movqi_internal): Ditto.
34157         (*k<logic><mode>): Ditto.
34158         (*andhi_1): Ditto.
34159         (*andqi_1): Ditto.
34160         (kandn<mode>): Ditto.
34161         (*<code>hi_1): Ditto.
34162         (*<code>qi_1): Ditto.
34163         (kxnor<mode>): Ditto.
34164         (kortestzhi): Ditto.
34165         (kortestchi): Ditto.
34166         (kunpckhi): Ditto.
34167         (*one_cmplhi2_1): Ditto.
34168         (*one_cmplqi2_1): Ditto.
34169         * config/i386/sse.md (): Change k to Yk.
34170         (avx512f_load<mode>_mask): Ditto.
34171         (avx512f_blendm<mode>): Ditto.
34172         (avx512f_store<mode>_mask): Ditto.
34173         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
34174         (avx512f_storedqu<mode>_mask): Ditto.
34175         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
34176         Ditto.
34177         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
34178         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
34179         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
34180         (avx512f_maskcmp<mode>3): Ditto.
34181         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
34182         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
34183         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
34184         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
34185         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
34186         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
34187         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
34188         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
34189         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
34190         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
34191         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
34192         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
34193         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
34194         (vec_extract_lo_<mode>_maskm): Ditto.
34195         (vec_extract_hi_<mode>_maskm): Ditto.
34196         (avx512f_vternlog<mode>_mask): Ditto.
34197         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
34198         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
34199         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
34200         (avx512f_<code>v8div16qi2_mask): Ditto.
34201         (avx512f_<code>v8div16qi2_mask_store): Ditto.
34202         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
34203         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
34204         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
34205         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
34206         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
34207         (*avx512pf_gatherpf<mode>df_mask): Ditto.
34208         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
34209         (*avx512pf_scatterpf<mode>df_mask): Ditto.
34210         (avx512cd_maskb_vec_dupv8di): Ditto.
34211         (avx512cd_maskw_vec_dupv16si): Ditto.
34212         (avx512f_vpermi2var<mode>3_maskz): Ditto.
34213         (avx512f_vpermi2var<mode>3_mask): Ditto.
34214         (avx512f_vpermi2var<mode>3_mask): Ditto.
34215         (avx512f_vpermt2var<mode>3_maskz): Ditto.
34216         (*avx512f_gathersi<mode>): Ditto.
34217         (*avx512f_gathersi<mode>_2): Ditto.
34218         (*avx512f_gatherdi<mode>): Ditto.
34219         (*avx512f_gatherdi<mode>_2): Ditto.
34220         (*avx512f_scattersi<mode>): Ditto.
34221         (*avx512f_scatterdi<mode>): Ditto.
34222         (avx512f_compress<mode>_mask): Ditto.
34223         (avx512f_compressstore<mode>_mask): Ditto.
34224         (avx512f_expand<mode>_mask): Ditto.
34225         * config/i386/subst.md (mask): Change k to Yk.
34226         (mask_scalar_merge): Ditto.
34227         (sd): Ditto.
34228
34229 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
34230
34231         * doc/extend.texi (Vector Extensions): Document ?: in C++.
34232
34233 2014-01-31  Richard Biener  <rguenther@suse.de>
34234
34235         PR middle-end/59990
34236         * builtins.c (fold_builtin_memory_op): Make sure to not
34237         use a floating-point mode or a boolean or enumeral type for
34238         the copy operation.
34239
34240 2014-01-30  DJ Delorie  <dj@redhat.com>
34241
34242         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
34243         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
34244         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
34245         whenever main() has an epilogue.
34246
34247 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34248
34249         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
34250         unused variable "field".
34251         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
34252         (vsx_mergeh_<mode>): Likewise.
34253         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
34254         (altivec_vmrghh): Likewise.
34255         (altivec_vmrghw): Likewise.
34256         (altivec_vmrglb): Likewise.
34257         (altivec_vmrglh): Likewise.
34258         (altivec_vmrglw): Likewise.
34259         (altivec_vspltb): Add missing uses.
34260         (altivec_vsplth): Likewise.
34261         (altivec_vspltw): Likewise.
34262         (altivec_vspltsf): Likewise.
34263
34264 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
34265
34266         PR target/59923
34267         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
34268         frame related instructions.
34269
34270 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
34271
34272         PR rtl-optimization/59959
34273         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
34274         any reload of register whose subreg is invalid.
34275
34276 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
34277
34278         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
34279         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
34280         Add missing return type - void.
34281
34282 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34283
34284         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
34285         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
34286         remove element index adjustment for endian (now handled in vsx.md
34287         and altivec.md).
34288         (altivec_expand_vec_perm_const): Use
34289         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
34290         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
34291         (vsx_xxspltw_<mode>): Adjust element index for little endian.
34292         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
34293         define_expand and a new define_insn *altivec_vspltb_internal;
34294         adjust for -maltivec=be on a little endian target.
34295         (altivec_vspltb_direct): New.
34296         (altivec_vsplth): Divide into a define_expand and a new
34297         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
34298         little endian target.
34299         (altivec_vsplth_direct): New.
34300         (altivec_vspltw): Divide into a define_expand and a new
34301         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
34302         little endian target.
34303         (altivec_vspltw_direct): New.
34304         (altivec_vspltsf): Divide into a define_expand and a new
34305         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
34306         a little endian target.
34307
34308 2014-01-30  Richard Biener  <rguenther@suse.de>
34309
34310         PR tree-optimization/59993
34311         * tree-ssa-forwprop.c (associate_pointerplus): Check we
34312         can propagate form the earlier stmt and avoid the transform
34313         when the intermediate result is needed.
34314
34315 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
34316
34317         * README.Portability: Fix typo.
34318
34319 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
34320
34321         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
34322         comparison_operator with ordered_comparison_operator.
34323
34324 2014-01-30  Nick Clifton  <nickc@redhat.com>
34325
34326         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
34327         Rename to mn10300_store_multiple_regs.
34328         * config/mn10300/mn10300.c: Likewise.
34329         * config/mn10300/mn10300.md (store_movm): Fix typo: call
34330         store_multiple_regs.
34331         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
34332         Call mn10300_store_multiple_regs.
34333
34334 2014-01-30  Nick Clifton  <nickc@redhat.com>
34335             DJ Delorie  <dj@redhat.com>
34336
34337         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
34338         %fp 2 to keep registers after it properly word-aligned.
34339         (rl78_alloc_physical_registers_umul): Handle the case where both
34340         input operands are the same.
34341
34342 2014-01-30  Richard Biener  <rguenther@suse.de>
34343
34344         PR tree-optimization/59903
34345         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
34346         check properly.
34347
34348 2014-01-30  Jason Merrill  <jason@redhat.com>
34349
34350         PR c++/59633
34351         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
34352
34353         PR c++/59645
34354         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
34355
34356 2014-01-30  Richard Biener  <rguenther@suse.de>
34357
34358         PR tree-optimization/59951
34359         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
34360
34361 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
34362
34363         PR target/59784
34364         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
34365         SFmode to DFmode case.
34366
34367 2014-01-29  DJ Delorie  <dj@redhat.com>
34368
34369         * config/msp430/msp430.opt (-minrt): New.
34370         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
34371         if -minrt given.
34372         (ENDFILE_SPEC): Likewise.
34373
34374 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
34375
34376         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
34377         (estimate_function_body_sizes): Use it.
34378
34379 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
34380
34381         PR c++/58561
34382         * dwarf2out.c (is_cxx_auto): New.
34383         (is_base_type): Use it.
34384         (gen_type_die_with_usage): Likewise.
34385
34386 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34387
34388         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
34389         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
34390         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
34391         -maltivec=be with LE targets.
34392         (vsx_mergeh_<mode>): Likewise.
34393         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
34394         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
34395         (altivec_vmrghb): Replace with define_expand and new
34396         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
34397         (altivec_vmrghb_direct): New define_insn.
34398         (altivec_vmrghh): Replace with define_expand and new
34399         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
34400         (altivec_vmrghh_direct): New define_insn.
34401         (altivec_vmrghw): Replace with define_expand and new
34402         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
34403         (altivec_vmrghw_direct): New define_insn.
34404         (*altivec_vmrghsf): Adjust for endianness.
34405         (altivec_vmrglb): Replace with define_expand and new
34406         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
34407         (altivec_vmrglb_direct): New define_insn.
34408         (altivec_vmrglh): Replace with define_expand and new
34409         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
34410         (altivec_vmrglh_direct): New define_insn.
34411         (altivec_vmrglw): Replace with define_expand and new
34412         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
34413         (altivec_vmrglw_direct): New define_insn.
34414         (*altivec_vmrglsf): Adjust for endianness.
34415         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
34416         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
34417         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
34418         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
34419         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
34420         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
34421         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
34422         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
34423
34424 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34425
34426         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
34427         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
34428         whitespace.
34429
34430 2014-01-29  Richard Biener  <rguenther@suse.de>
34431
34432         PR tree-optimization/58742
34433         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
34434         associate_pointerplus_align.
34435         (associate_pointerplus_diff): New function.
34436         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
34437         and associate_pointerplus_diff.
34438
34439 2014-01-29  Richard Biener  <rguenther@suse.de>
34440
34441         * lto-streamer.h (LTO_major_version): Bump to 3.
34442         (LTO_minor_version): Reset to 0.
34443
34444 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
34445
34446         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
34447         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
34448         (arm_file_start): Generate correct asm header for armv7ve.
34449         * config/arm/bpabi.h: Add multilib support for armv7ve.
34450         * config/arm/driver-arm.c: Change the architectures of cortex-a7
34451         and cortex-a15 to armv7ve.
34452         * config/arm/t-aprofile: Add multilib support for armv7ve.
34453         * doc/invoke.texi: Document -march=armv7ve.
34454
34455 2014-01-29  Richard Biener  <rguenther@suse.de>
34456
34457         PR tree-optimization/58742
34458         * tree-ssa-forwprop.c (associate_plusminus): Return true
34459         if we changed sth, defer EH cleanup to ...
34460         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
34461         (simplify_mult): New function.
34462
34463 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
34464
34465         PR middle-end/59917
34466         PR tree-optimization/59920
34467         * tree.c (build_common_builtin_nodes): Remove
34468         __builtin_setjmp_dispatcher initialization.
34469         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
34470         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
34471         instead of gsi_after_labels + manually skipping debug stmts.
34472         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
34473         ignore bbs with IFN_ABNORMAL_DISPATCHER.
34474         * tree-inline.c (copy_edges_for_bb): Remove
34475         can_make_abnormal_goto argument, instead add abnormal_goto_dest
34476         argument.  Ignore computed_goto_p stmts.  Don't call
34477         make_abnormal_goto_edges.  If a call might need abnormal edges
34478         for non-local gotos, see if it already has an edge to
34479         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
34480         with true argument, don't do anything then, otherwise add
34481         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
34482         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
34483         caller.
34484         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
34485         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
34486         (lower_stmt): Don't set data->calls_builtin_setjmp.
34487         (lower_builtin_setjmp): Adjust comment.
34488         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
34489         * tree-cfg.c (found_computed_goto): Remove.
34490         (factor_computed_gotos): Remove.
34491         (make_goto_expr_edges): Return bool, true for computed gotos.
34492         Don't call make_abnormal_goto_edges.
34493         (build_gimple_cfg): Don't set found_computed_goto, don't call
34494         factor_computed_gotos.
34495         (computed_goto_p): No longer static.
34496         (make_blocks): Don't set found_computed_goto.
34497         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
34498         (make_edges): If make_goto_expr_edges returns true, push bb
34499         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
34500         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
34501         vector.  Record mapping between bbs and OpenMP regions if there
34502         are any, adjust make_gimple_omp_edges caller.  Call
34503         handle_abnormal_edges.
34504         (make_abnormal_goto_edges): Remove.
34505         * tree-cfg.h (make_abnormal_goto_edges): Remove.
34506         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
34507         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
34508         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
34509         * internal-fn.def (ABNORMAL_DISPATCHER): New.
34510         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
34511         filling *region also set *region_idx to (*region)->entry->index.
34512
34513         PR other/58712
34514         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
34515         For REGs set ORIGINAL_REGNO.
34516
34517 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
34518
34519         * doc/md.texi: Mention that a target shouldn't implement
34520         vec_widen_(s|u)mul_even/odd pair if it is less efficient
34521         than hi/lo pair.
34522
34523 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
34524
34525         PR tree-optimization/59594
34526         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
34527         a copy of the datarefs vector rather than the vector itself.
34528
34529 2014-01-28  Jason Merrill  <jason@redhat.com>
34530
34531         PR c++/53756
34532         * dwarf2out.c (auto_die): New static.
34533         (gen_type_die_with_usage): Handle C++1y 'auto'.
34534         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
34535         on definition.
34536
34537 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
34538
34539         PR target/59672
34540         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
34541         (SPEC_X32): Likewise.
34542         (SPEC_64): Likewise.
34543         * config/i386/i386.c (ix86_option_override_internal): Turn off
34544         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
34545         for TARGET_16BIT.
34546         (x86_file_start): Output .code16gcc for TARGET_16BIT.
34547         * config/i386/i386.h (TARGET_16BIT): New macro.
34548         (TARGET_16BIT_P): Likewise.
34549         * config/i386/i386.opt: Add m16.
34550         * doc/invoke.texi: Document -m16.
34551
34552 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
34553
34554         PR preprocessor/59935
34555         * input.c (location_get_source_line): Bail out on when line number
34556         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
34557
34558 2014-01-28  Richard Biener  <rguenther@suse.de>
34559
34560         PR tree-optimization/58742
34561         * tree-ssa-forwprop.c (associate_plusminus): Handle
34562         pointer subtraction of the form (T)(P + A) - (T)P.
34563
34564 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34565
34566         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
34567         at const_int_cost.
34568
34569 2014-01-28  Richard Biener  <rguenther@suse.de>
34570
34571         Revert
34572         2014-01-28  Richard Biener  <rguenther@suse.de>
34573
34574         PR rtl-optimization/45364
34575         PR rtl-optimization/59890
34576         * var-tracking.c (local_get_addr_clear_given_value): Handle
34577         already cleared slot.
34578         (val_reset): Handle not allocated local_get_addr_cache.
34579         (vt_find_locations): Use post-order on the inverted CFG.
34580
34581 2014-01-28  Richard Biener  <rguenther@suse.de>
34582
34583         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
34584
34585 2014-01-28  Richard Biener  <rguenther@suse.de>
34586
34587         PR rtl-optimization/45364
34588         PR rtl-optimization/59890
34589         * var-tracking.c (local_get_addr_clear_given_value): Handle
34590         already cleared slot.
34591         (val_reset): Handle not allocated local_get_addr_cache.
34592         (vt_find_locations): Use post-order on the inverted CFG.
34593
34594 2014-01-28  Alan Modra  <amodra@gmail.com>
34595
34596         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
34597         * configure.ac <recursive call for build != host>: Define
34598         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
34599         and LD_FOR_BUILD too.
34600         * configure: Regenerate.
34601
34602 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
34603
34604         * config/i386/i386.c (get_builtin_code_for_version): Separate
34605         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
34606         Broadwell from Haswell.
34607
34608 2014-01-27  Steve Ellcey  <sellcey@mips.com>
34609
34610         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
34611         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
34612         * config/mips/mips.c (mips_option_override): Change setting
34613         of TARGET_DSP.
34614         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
34615         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
34616         Change from Mask to Var.
34617
34618 2014-01-27  Jeff Law  <law@redhat.com>
34619
34620         * ipa-inline.c (inline_small_functions): Fix typo.
34621
34622 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
34623
34624         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
34625         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
34626         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
34627         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
34628         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
34629         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
34630         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
34631         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
34632         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
34633         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
34634         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
34635         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
34636         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
34637         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
34638         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
34639         (_mm512_storeu_epi64): Ditto.
34640         (_mm512_cmpge_epi32_mask): Ditto.
34641         (_mm512_cmpge_epu32_mask): Ditto.
34642         (_mm512_cmpge_epi64_mask): Ditto.
34643         (_mm512_cmpge_epu64_mask): Ditto.
34644         (_mm512_cmple_epi32_mask): Ditto.
34645         (_mm512_cmple_epu32_mask): Ditto.
34646         (_mm512_cmple_epi64_mask): Ditto.
34647         (_mm512_cmple_epu64_mask): Ditto.
34648         (_mm512_cmplt_epi32_mask): Ditto.
34649         (_mm512_cmplt_epu32_mask): Ditto.
34650         (_mm512_cmplt_epi64_mask): Ditto.
34651         (_mm512_cmplt_epu64_mask): Ditto.
34652         (_mm512_cmpneq_epi32_mask): Ditto.
34653         (_mm512_cmpneq_epu32_mask): Ditto.
34654         (_mm512_cmpneq_epi64_mask): Ditto.
34655         (_mm512_cmpneq_epu64_mask): Ditto.
34656         (_mm512_expand_pd): Ditto.
34657         (_mm512_expand_ps): Ditto.
34658         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
34659         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
34660         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
34661         * config/i386/i386.c (ix86_builtins): Add
34662         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
34663         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
34664         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
34665         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
34666         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
34667         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
34668         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
34669         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
34670         IX86_BUILTIN_PMOVUSQW512_MEM.
34671         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
34672         __builtin_ia32_pmovsqd512mem_mask,
34673         __builtin_ia32_pmovqd512mem_mask,
34674         __builtin_ia32_pmovusqw512mem_mask,
34675         __builtin_ia32_pmovsqw512mem_mask,
34676         __builtin_ia32_pmovqw512mem_mask,
34677         __builtin_ia32_pmovusdw512mem_mask,
34678         __builtin_ia32_pmovsdw512mem_mask,
34679         __builtin_ia32_pmovdw512mem_mask,
34680         __builtin_ia32_pmovqb512mem_mask,
34681         __builtin_ia32_pmovusqb512mem_mask,
34682         __builtin_ia32_pmovsqb512mem_mask,
34683         __builtin_ia32_pmovusdb512mem_mask,
34684         __builtin_ia32_pmovsdb512mem_mask,
34685         __builtin_ia32_pmovdb512mem_mask.
34686         (bdesc_args): Add __builtin_ia32_expanddf512,
34687         __builtin_ia32_expandsf512.
34688         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
34689         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
34690         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
34691         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
34692         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
34693         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
34694         (avx512f_<code>v8div16qi2_mask_store): This.
34695         (avx512f_expand<mode>): New.
34696
34697 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
34698
34699         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
34700         New.
34701         (_mm512_mask_prefetch_i64gather_pd): Ditto.
34702         (_mm512_prefetch_i32scatter_pd): Ditto.
34703         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
34704         (_mm512_prefetch_i64scatter_pd): Ditto.
34705         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
34706         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
34707         (_mm512_mask_prefetch_i64gather_ps): Ditto.
34708         (_mm512_prefetch_i32scatter_ps): Ditto.
34709         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
34710         (_mm512_prefetch_i64scatter_ps): Ditto.
34711         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
34712         * config/i386/i386-builtin-types.def: Define
34713         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
34714         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
34715         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
34716         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
34717         IX86_BUILTIN_SCATTERPFQPD.
34718         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
34719         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
34720         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
34721         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
34722         __builtin_ia32_scatterpfqps.
34723         (ix86_expand_builtin): Expand new built-ins.
34724         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
34725         fix memory access data type.
34726         (*avx512pf_gatherpf<mode>_mask): Ditto.
34727         (*avx512pf_gatherpf<mode>): Ditto.
34728         (avx512pf_scatterpf<mode>): Ditto.
34729         (*avx512pf_scatterpf<mode>_mask): Ditto.
34730         (*avx512pf_scatterpf<mode>): Ditto.
34731         (GATHER_SCATTER_SF_MEM_MODE): New.
34732         (avx512pf_gatherpf<mode>df): Ditto.
34733         (*avx512pf_gatherpf<mode>df_mask): Ditto.
34734         (*avx512pf_scatterpf<mode>df): Ditto.
34735
34736 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
34737
34738         PR bootstrap/59934
34739         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
34740         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
34741         reached.
34742
34743 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
34744
34745         * common/config/arm/arm-common.c
34746         (arm_rewrite_mcpu): Handle multiple names.
34747         * config/arm/arm.h
34748         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34749
34750 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
34751
34752         * gimple-builder.h (create_gimple_tmp): Delete.
34753
34754 2014-01-27  Christian Bruel  <christian.bruel@st.com>
34755
34756         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
34757         words comparisons.
34758
34759 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
34760
34761         * config/pa/pa.md (call): Generate indirect long calls to non-local
34762         functions when outputing 32-bit code.
34763         (call_value): Likewise except for special call to buggy powf function.
34764
34765         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
34766         portable runtime and PIC indirect calls.
34767         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
34768         and PIC call sequences.  Use ldo instead of blr to set return register
34769         in PIC call sequence.
34770
34771 2014-01-25  Walter Lee  <walt@tilera.com>
34772
34773         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
34774         avoid clobbering a live register.
34775
34776 2014-01-25  Walter Lee  <walt@tilera.com>
34777
34778         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
34779         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
34780         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
34781         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
34782
34783 2014-01-25  Walter Lee  <walt@tilera.com>
34784
34785         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
34786         arguments on even registers.
34787         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
34788         STACK_BOUNDARY.
34789         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
34790         (BIGGEST_ALIGNMENT): Ditto.
34791         (BIGGEST_FIELD_ALIGNMENT): Ditto.
34792
34793 2014-01-25  Walter Lee  <walt@tilera.com>
34794
34795         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
34796         insns before bundling.
34797         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
34798
34799 2014-01-25  Walter Lee  <walt@tilera.com>
34800
34801         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
34802         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
34803         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
34804
34805 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
34806
34807         * config/mips/constraints.md (kl): Delete.
34808         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
34809         define expands, using...
34810         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
34811         instructions for MIPS16.
34812         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
34813         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
34814
34815 2014-01-25  Walter Lee  <walt@tilera.com>
34816
34817         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
34818         (clzdi2): Ditto.
34819         (ffsdi2): Ditto.
34820
34821 2014-01-25  Walter Lee  <walt@tilera.com>
34822
34823         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
34824         (TARGET_EXPAND_TO_RTL_HOOK): Define.
34825
34826 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
34827
34828         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
34829         Handle XOR.
34830
34831 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
34832
34833         * print-rtl.c (in_call_function_usage): New var.
34834         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
34835         EXPR_LIST mode as mode and not as reg note name.
34836
34837         PR middle-end/59561
34838         * cfgloopmanip.c (copy_loop_info): If
34839         loop->warned_aggressive_loop_optimizations, make sure
34840         the flag is set in target loop too.
34841
34842 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
34843
34844         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
34845         flag_cilkplus.
34846         * builtins.def: Likewise.
34847         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
34848         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
34849         * ira.c (ira_setup_eliminable_regset): Likewise.
34850         * omp-low.c (gate_expand_omp): Likewise.
34851         (execute_lower_omp): Likewise.
34852         (diagnose_sb_0): Likewise.
34853         (gate_diagnose_omp_blocks): Likewise.
34854         (simd_clone_clauses_extract): Likewise.
34855         (gate): Likewise.
34856
34857 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34858
34859         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
34860         correction for little endian...
34861         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
34862         here.
34863
34864 2014-01-24  Jeff Law  <law@redhat.com>
34865
34866         PR tree-optimization/59919
34867         * tree-vrp.c (find_assert_locations_1): Do not register asserts
34868         for non-returning calls.
34869
34870 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
34871
34872         * common/config/aarch64/aarch64-common.c
34873         (aarch64_rewrite_mcpu): Handle multiple names.
34874         * config/aarch64/aarch64.h
34875         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34876
34877 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
34878
34879         * input.c (add_file_to_cache_tab): Handle the case where fopen
34880         returns NULL.
34881
34882 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
34883
34884         PR target/59929
34885         * config/i386/i386.md (pushsf splitter): Get stack adjustment
34886         from push operand if code of push isn't PRE_DEC.
34887
34888 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
34889
34890         PR target/59909
34891         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
34892         -mquad-memory-atomic.  Update -mquad-memory documentation to say
34893         it is only used for non-atomic loads/stores.
34894
34895         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
34896         -mquad-memory or -mquad-memory-atomic switches.
34897
34898         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
34899         -mquad-memory-atomic to ISA 2.07 support.
34900
34901         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
34902         to separate support of normal quad word memory operations (ldq, stq)
34903         from the atomic quad word memory operations.
34904
34905         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34906         support to separate non-atomic quad word operations from atomic
34907         quad word operations.  Disable non-atomic quad word operations in
34908         little endian mode so that we don't have to swap words after the
34909         load and before the store.
34910         (quad_load_store_p): Add comment about atomic quad word support.
34911         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
34912         options printed with -mdebug=reg.
34913
34914         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
34915         -mquad-memory-atomic as the test for whether we have quad word
34916         atomic instructions.
34917         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
34918         or -mp8-vector are used, allow byte/half-word atomic operations.
34919
34920         * config/rs6000/sync.md (load_lockedti): Insure that the address
34921         is a proper indexed or indirect address for the lqarx instruction.
34922         On little endian systems, swap the hi/lo registers after the lqarx
34923         instruction.
34924         (load_lockedpti): Use indexed_or_indirect_operand predicate to
34925         insure the address is valid for the lqarx instruction.
34926         (store_conditionalti): Insure that the address is a proper indexed
34927         or indirect address for the stqcrx. instruction.  On little endian
34928         systems, swap the hi/lo registers before doing the stqcrx.
34929         instruction.
34930         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
34931         insure the address is valid for the stqcrx. instruction.
34932
34933         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
34934         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
34935         type of quad memory support is available.
34936
34937 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
34938
34939         PR regression/59915
34940         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
34941         there is a danger of looping.
34942
34943 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
34944
34945         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
34946         force flag_ira_loop_pressure if set via command line.
34947
34948 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34949
34950         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
34951         (ashr_simd): New builtin handling DI mode.
34952         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
34953         (aarch64_sshr_simddi): New match pattern.
34954         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
34955         (vshrd_n_s64): Likewise.
34956         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
34957
34958 2014-01-23  Nick Clifton  <nickc@redhat.com>
34959
34960         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
34961         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
34962         favour of mcu specific scripts.
34963         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
34964         430x multilibs.
34965
34966 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
34967             Alex Velenko  <Alex.Velenko@arm.com>
34968
34969         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
34970         (vaddv_s16): Likewise.
34971         (vaddv_s32): Likewise.
34972         (vaddv_u8): Likewise.
34973         (vaddv_u16): Likewise.
34974         (vaddv_u32): Likewise.
34975         (vaddvq_s8): Likewise.
34976         (vaddvq_s16): Likewise.
34977         (vaddvq_s32): Likewise.
34978         (vaddvq_s64): Likewise.
34979         (vaddvq_u8): Likewise.
34980         (vaddvq_u16): Likewise.
34981         (vaddvq_u32): Likewise.
34982         (vaddvq_u64): Likewise.
34983         (vaddv_f32): Likewise.
34984         (vaddvq_f32): Likewise.
34985         (vaddvq_f64): Likewise.
34986         (vmaxv_f32): Likewise.
34987         (vmaxv_s8): Likewise.
34988         (vmaxv_s16): Likewise.
34989         (vmaxv_s32): Likewise.
34990         (vmaxv_u8): Likewise.
34991         (vmaxv_u16): Likewise.
34992         (vmaxv_u32): Likewise.
34993         (vmaxvq_f32): Likewise.
34994         (vmaxvq_f64): Likewise.
34995         (vmaxvq_s8): Likewise.
34996         (vmaxvq_s16): Likewise.
34997         (vmaxvq_s32): Likewise.
34998         (vmaxvq_u8): Likewise.
34999         (vmaxvq_u16): Likewise.
35000         (vmaxvq_u32): Likewise.
35001         (vmaxnmv_f32): Likewise.
35002         (vmaxnmvq_f32): Likewise.
35003         (vmaxnmvq_f64): Likewise.
35004         (vminv_f32): Likewise.
35005         (vminv_s8): Likewise.
35006         (vminv_s16): Likewise.
35007         (vminv_s32): Likewise.
35008         (vminv_u8): Likewise.
35009         (vminv_u16): Likewise.
35010         (vminv_u32): Likewise.
35011         (vminvq_f32): Likewise.
35012         (vminvq_f64): Likewise.
35013         (vminvq_s8): Likewise.
35014         (vminvq_s16): Likewise.
35015         (vminvq_s32): Likewise.
35016         (vminvq_u8): Likewise.
35017         (vminvq_u16): Likewise.
35018         (vminvq_u32): Likewise.
35019         (vminnmv_f32): Likewise.
35020         (vminnmvq_f32): Likewise.
35021         (vminnmvq_f64): Likewise.
35022
35023 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
35024
35025         * config/aarch64/aarch64-simd.md
35026         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
35027         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
35028         (*aarch64_mul3_elt<mode>): Likewise.
35029         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
35030         (*aarch64_mul3_elt_to_64v2df): Likewise.
35031         (*aarch64_mla_elt<mode>): Likewise.
35032         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
35033         (*aarch64_mls_elt<mode>): Likewise.
35034         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
35035         (*aarch64_fma4_elt<mode>): Likewise.
35036         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
35037         (*aarch64_fma4_elt_to_64v2df): Likewise.
35038         (*aarch64_fnma4_elt<mode>): Likewise.
35039         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
35040         (*aarch64_fnma4_elt_to_64v2df): Likewise.
35041         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
35042         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
35043         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
35044         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
35045         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
35046         (aarch64_sqdmull_lane<mode>_internal): Likewise.
35047         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
35048
35049 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
35050
35051         * config/aarch64/aarch64-simd.md
35052         (aarch64_be_checked_get_lane<mode>): New define_expand.
35053         * config/aarch64/aarch64-simd-builtins.def
35054         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
35055         New builtin definition.
35056         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
35057         Use new safe be builtin.
35058
35059 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
35060
35061         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
35062         New define_insn.
35063         (aarch64_be_st1<mode>): Likewise.
35064         (aarch_ld1<VALL:mode>): Define_expand modified.
35065         (aarch_st1<VALL:mode>): Likewise.
35066         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
35067         (UNSPEC_ST1): Likewise.
35068
35069 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
35070
35071         * config/microblaze/microblaze.md: Add trap insn and attribute
35072
35073 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
35074
35075         PR preprocessor/58580
35076         * input.h (location_get_source_line): Take an additional line_size
35077         parameter.
35078         (void diagnostics_file_cache_fini): Declare new function.
35079         * input.c (struct fcache): New type.
35080         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
35081         New static constants.
35082         (diagnostic_file_cache_init, total_lines_num)
35083         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
35084         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
35085         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
35086         (get_next_line, read_next_line, goto_next_line, read_line_num):
35087         New static function definitions.
35088         (diagnostic_file_cache_fini): New function.
35089         (location_get_source_line): Take an additional output line_len
35090         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
35091         read_line_num.
35092         * diagnostic.c (diagnostic_finish): Call
35093         diagnostic_file_cache_fini.
35094         (adjust_line): Take an additional input parameter for the length
35095         of the line, rather than calculating it with strlen.
35096         (diagnostic_show_locus): Adjust the use of
35097         location_get_source_line and adjust_line with respect to their new
35098         signature.  While displaying a line now, do not stop at the first
35099         null byte.  Rather, display the zero byte as a space and keep
35100         going until we reach the size of the line.
35101         * Makefile.in: Add vec.o to OBJS-libcommon
35102
35103 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
35104             Ilya Tocar  <ilya.tocar@intel.com>
35105
35106         * config/i386/avx512fintrin.h (_mm512_kmov): New.
35107         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
35108         (__builtin_ia32_kmov16): Ditto.
35109         * config/i386/i386.md (UNSPEC_KMOV): New.
35110         (kmovw): Ditto.
35111
35112 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
35113
35114         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
35115         (_mm512_storeu_si512): Ditto.
35116
35117 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
35118
35119         PR target/52125
35120         * rtl.h (get_referenced_operands): Declare.
35121         * recog.c (get_referenced_operands): New function.
35122         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
35123         operands have been referenced when recording LO_SUM references.
35124
35125 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
35126
35127         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
35128
35129 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
35130
35131         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
35132         Enable for generic and recent AMD targets.
35133
35134 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
35135
35136         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
35137         ARG_SIZE note when adjustment was eliminated.
35138
35139 2014-01-22  Jeff Law  <law@redhat.com>
35140
35141         PR tree-optimization/59597
35142         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
35143         in file.  Accept new argument REGISTERING and use it to modify
35144         dump output appropriately.
35145         (register_jump_thread): Corresponding changes.
35146         (mark_threaded_blocks): Reinstate code to cancel unprofitable
35147         thread paths involving joiner blocks.  Add code to dump cancelled
35148         jump threading paths.
35149
35150 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
35151
35152         PR rtl-optimization/59477
35153         * lra-constraints.c (inherit_in_ebb): Process call for living hard
35154         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
35155
35156 2014-01-22  Tom Tromey  <tromey@redhat.com>
35157
35158         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
35159         PARAMS.
35160         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
35161
35162 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
35163
35164         PR rtl-optimization/59896
35165         * lra-constraints.c (process_alt_operands): Check unused note for
35166         matched operands of insn with no output reloads.
35167
35168 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
35169
35170         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
35171         (mips_move_from_gpr_cost): Likewise.
35172
35173 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
35174
35175         PR rtl-optimization/59858
35176         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
35177         ira_class_hard_regs_num.
35178         (process_alt_operands): Increase reject for dying matched operand.
35179
35180 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
35181
35182         PR target/59003
35183         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
35184         smaller than size, perform several stores or loads and stores
35185         at dst + count - size to store or copy all of size bytes, rather
35186         than just last modesize bytes.
35187
35188 2014-01-20  DJ Delorie  <dj@redhat.com>
35189
35190         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
35191         that CLOBBERs are REGs before propogating their values.
35192
35193 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
35194
35195         PR middle-end/59789
35196         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
35197         (cgraph_inline_failed_type): New function.
35198         * cgraph.h (DEFCIFCODE): Add type.
35199         (cgraph_inline_failed_type_t): New enum.
35200         (cgraph_inline_failed_type): New prototype.
35201         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
35202         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
35203         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
35204         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
35205         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
35206         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
35207         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
35208         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
35209         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
35210         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
35211         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
35212         OPTIMIZATION_MISMATCH.
35213         * tree-inline.c (expand_call_inline): Emit errors during
35214         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
35215
35216 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
35217
35218         PR target/59685
35219         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
35220         mode attribute in insn output.
35221
35222 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
35223
35224         * output.h (output_constant): Delete.
35225         * varasm.c (output_constant): Make private.
35226
35227 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
35228
35229         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
35230
35231 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
35232
35233         PR middle-end/59860
35234         * tree.h (fold_builtin_strcat): New prototype.
35235         * builtins.c (fold_builtin_strcat): No longer static.  Add len
35236         argument, if non-NULL, don't call c_strlen.  Optimize
35237         directly into __builtin_memcpy instead of __builtin_strcpy.
35238         (fold_builtin_2): Adjust fold_builtin_strcat caller.
35239         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
35240
35241 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
35242
35243         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
35244         for SImode_address_operand operands, having only a REG argument.
35245
35246 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35247
35248         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
35249         loader name using mbig-endian.
35250         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
35251
35252 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
35253
35254         * doc/invoke.texi (-march): Clarify documentation for AArch64.
35255         (-mtune): Likewise.
35256         (-mcpu): Likewise.
35257
35258 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
35259
35260         * config/aarch64/aarch64-protos.h
35261         (aarch64_cannot_change_mode_class_ptr): Declare.
35262         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
35263         aarch64_cannot_change_mode_class_ptr): New.
35264         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
35265         backend hook aarch64_cannot_change_mode_class.
35266
35267 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
35268
35269         * common/config/aarch64/aarch64-common.c
35270         (aarch64_handle_option): Don't handle any option order logic here.
35271         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
35272         selected_cpu, warn on architecture version mismatch.
35273         (aarch64_override_options): Fix parsing order for option strings.
35274
35275 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
35276             Iain Sandoe  <iain@codesourcery.com>
35277
35278         PR bootstrap/59496
35279         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
35280         warning.  Amend comment to reflect current functionality.
35281
35282 2014-01-20  Richard Biener  <rguenther@suse.de>
35283
35284         PR middle-end/59860
35285         * builtins.c (fold_builtin_strcat): Remove case better handled
35286         by tree-ssa-strlen.c.
35287
35288 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
35289
35290         * config/aarch64/aarch64.opt
35291         (mcpu, march, mtune): Make case-insensitive.
35292
35293 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
35294
35295         PR target/59880
35296         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
35297         if operands[1] is a REG or ZERO_EXTEND of a REG.
35298
35299 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
35300
35301         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
35302
35303 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
35304
35305         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
35306         long non-pic millicode calls.
35307
35308 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
35309
35310         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
35311
35312 2014-01-19  Kito Cheng  <kito@0xlab.org>
35313
35314         * builtins.c (expand_movstr): Check movstr expand done or fail.
35315
35316 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
35317             H.J. Lu  <hongjiu.lu@intel.com>
35318
35319         PR target/59379
35320         * config/i386/i386.md (*lea<mode>): Zero-extend return register
35321         to DImode for zero-extended addresses.
35322
35323 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
35324
35325         PR rtl-optimization/57763
35326         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
35327         on the new indirect jump_insn and increment LABEL_NUSES (label).
35328
35329 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
35330
35331         PR bootstrap/59580
35332         PR bootstrap/59583
35333         * config.gcc (x86_archs): New variable.
35334         (x86_64_archs): Likewise.
35335         (x86_cpus): Likewise.
35336         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
35337         --with-arch/--with-cpu= options.
35338         Support --with-arch=/--with-cpu={nehalem,westmere,
35339         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
35340
35341 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
35342
35343         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
35344         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
35345
35346 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
35347
35348         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
35349
35350 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
35351
35352         PR target/58944
35353         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
35354         clear cpp_get_options (parse_in)->warn_unused_macros for
35355         ix86_target_macros_internal with cpp_define.
35356
35357 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
35358
35359         * jump.c (delete_related_insns): Keep (use (insn))s.
35360         * reorg.c (redundant_insn): Check for barriers too.
35361
35362 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
35363
35364         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
35365
35366 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
35367
35368         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
35369         call to $$dyncall when TARGET_LONG_CALLS is true.
35370
35371 2014-01-17  Jeff Law  <law@redhat.com>
35372
35373         * ree.c (combine_set_extension): Temporarily disable test for
35374         changing number of hard registers.
35375
35376 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
35377
35378         PR middle-end/58125
35379         * ipa-inline-analysis.c (inline_free_summary):
35380         Do not free summary of aliases.
35381
35382 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
35383
35384         PR middle-end/59706
35385         * gimplify.c (gimplify_expr): Use create_tmp_var
35386         instead of create_tmp_var_raw.  If cond doesn't have
35387         integral type, don't add the IFN_ANNOTATE builtin at all.
35388
35389 2014-01-17  Martin Jambor  <mjambor@suse.cz>
35390
35391         PR ipa/59736
35392         * ipa-cp.c (prev_edge_clone): New variable.
35393         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
35394         Also resize prev_edge_clone vector.
35395         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
35396         (ipcp_edge_removal_hook): New function.
35397         (ipcp_driver): Register ipcp_edge_removal_hook.
35398
35399 2014-01-17  Andrew Pinski  <apinski@cavium.com>
35400             Steve Ellcey  <sellcey@mips.com>
35401
35402         PR target/59462
35403         * config/mips/mips.c (mips_print_operand): Check operand mode instead
35404         of operator mode.
35405
35406 2014-01-17  Jeff Law  <law@redhat.com>
35407
35408         PR middle-end/57904
35409         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
35410         so that pass_ccp runs first.
35411
35412 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
35413
35414         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
35415         (ix86_adjust_cost): Use !TARGET_XXX.
35416         (do_reorder_for_imul): Likewise.
35417         (swap_top_of_ready_list): Likewise.
35418         (ix86_sched_reorder): Likewise.
35419
35420 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
35421
35422         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
35423         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
35424         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
35425         (intel_memset): New.  Duplicate slm_memset.
35426         (intel_cost): New.  Duplicate slm_cost.
35427         (m_INTEL): New macro.
35428         (processor_target_table): Add "intel".
35429         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
35430         with PROCESSOR_INTEL for "intel".
35431         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
35432         PROCESSOR_SILVERMONT.
35433         (ix86_issue_rate): Likewise.
35434         (ix86_adjust_cost): Likewise.
35435         (ia32_multipass_dfa_lookahead): Likewise.
35436         (swap_top_of_ready_list): Likewise.
35437         (ix86_sched_reorder): Likewise.
35438         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
35439         instead of TARGET_OPT_AGU.
35440         * config/i386/i386.h (TARGET_INTEL): New.
35441         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
35442         (processor_type): Add PROCESSOR_INTEL.
35443         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
35444         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
35445
35446 2014-01-17  Marek Polacek  <polacek@redhat.com>
35447
35448         PR c/58346
35449         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
35450         size is zero.
35451
35452 2014-01-17  Richard Biener  <rguenther@suse.de>
35453
35454         PR tree-optimization/46590
35455         * opts.c (default_options_table): Add entries for
35456         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
35457         all enabled at -O1 but not for -Og.
35458         * common.opt (fbranch-count-reg): Remove Init(1).
35459         (fmove-loop-invariants): Likewise.
35460         (ftree-pta): Likewise.
35461
35462 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
35463
35464         * config/i386/i386.c (ix86_data_alignment): For compatibility with
35465         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
35466         decls to at least the GCC 4.8 used alignments.
35467
35468         PR fortran/59440
35469         * tree-nested.c (convert_nonlocal_reference_stmt,
35470         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
35471         of GIMPLE_BIND stmts, adjust associated decls.
35472
35473 2014-01-17  Richard Biener  <rguenther@suse.de>
35474
35475         PR tree-optimization/46590
35476         * vec.h (vec<>::bseach): New member function implementing
35477         binary search according to C89 bsearch.
35478         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
35479         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
35480         bitmap pointer again.  Make accesses_in_loop a flat array.
35481         (mem_ref_obstack): New global.
35482         (outermost_indep_loop): Adjust for mem_ref->stored changes.
35483         (mark_ref_stored): Likewise.
35484         (ref_indep_loop_p_2): Likewise.
35485         (set_ref_stored_in_loop): New helper function.
35486         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
35487         (memref_free): Adjust.
35488         (record_mem_ref_loc): Simplify.
35489         (gather_mem_refs_stmt): Adjust.
35490         (sort_locs_in_loop_postorder_cmp): New function.
35491         (analyze_memory_references): Sort accesses_in_loop after
35492         loop postorder number.
35493         (find_ref_loc_in_loop_cmp): New function.
35494         (for_all_locs_in_loop): Find relevant cluster of locs in
35495         accesses_in_loop and iterate without recursion.
35496         (execute_sm): Avoid uninit warning.
35497         (struct ref_always_accessed): Simplify.
35498         (ref_always_accessed::operator ()): Likewise.
35499         (ref_always_accessed_p): Likewise.
35500         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
35501         loop postorder numbers here.
35502         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
35503         numbers.
35504
35505 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
35506
35507         PR c++/57945
35508         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
35509         on decls for which assemble_alias has been called.
35510
35511 2014-01-17  Nick Clifton  <nickc@redhat.com>
35512
35513         * config/msp430/msp430.opt: (mcpu): New option.
35514         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
35515         (msp430_option_override): Parse target_cpu.  If the MCU name
35516         matches a generic string, clear target_mcu.
35517         (msp430_attr): Allow numeric interrupt values up to 63.
35518         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
35519         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
35520         option.
35521         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
35522         Add mcpu matches.
35523         * config/msp430/msp430.md (popm): Use %J rather than %I.
35524         (addsi3): Use msp430_nonimmediate_operand for operand 2.
35525         (addhi_cy_i): Use immediate_operand for operand 2.
35526         * doc/invoke.texi: Document -mcpu option.
35527
35528 2014-01-17  Richard Biener  <rguenther@suse.de>
35529
35530         PR rtl-optimization/38518
35531         * df.h (df_analyze_loop): Declare.
35532         * df-core.c: Include cfgloop.h.
35533         (df_analyze_1): Split out main part of df_analyze.
35534         (df_analyze): Adjust.
35535         (loop_inverted_post_order_compute): New function.
35536         (loop_post_order_compute): Likewise.
35537         (df_analyze_loop): New function avoiding whole-function
35538         postorder computes.
35539         * loop-invariant.c (find_defs): Use df_analyze_loop.
35540         (find_invariants): Adjust.
35541         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
35542
35543 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
35544
35545         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
35546         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
35547
35548 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
35549
35550         * ipa-ref.c (ipa_remove_stmt_references): Fix references
35551         traversal when removing references.
35552
35553 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
35554
35555         PR ipa/59775
35556         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
35557
35558 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
35559
35560         PR middle-end/56791
35561         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
35562         pushing a reload for an autoinc when we had previously reloaded an
35563         inner part of the address.
35564
35565 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
35566
35567         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
35568         field.
35569         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
35570         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
35571         when not giving up or versioning for alias only because of
35572         loop->safelen.
35573         (vect_analyze_data_ref_dependences): Set to true.
35574         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
35575         is a GIMPLE_PHI.
35576         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
35577         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
35578         to the condition.
35579
35580         PR middle-end/58344
35581         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
35582
35583         PR target/59839
35584         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
35585         operand 0 predicate for gathers, use a new pseudo as subtarget.
35586
35587 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
35588
35589         PR middle-end/59609
35590         * lra-constraints.c (process_alt_operands): Add printing debug info.
35591         Check absence of input/output reloads for matched operands too.
35592
35593 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
35594
35595         PR rtl-optimization/59835
35596         * ira.c (ira_init_register_move_cost): Increase cost for
35597         impossible modes.
35598
35599 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
35600
35601         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
35602
35603 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
35604
35605         PR target/59780
35606         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
35607         non-register objects.  Use gen_(high/low)part more consistently.
35608         Fix assertions.
35609
35610 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
35611
35612         PR target/59844
35613         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
35614         endian support, remove tests for WORDS_BIG_ENDIAN.
35615         (p8_mfvsrd_3_<mode>): Likewise.
35616         (reload_gpr_from_vsx<mode>): Likewise.
35617         (reload_gpr_from_vsxsf): Likewise.
35618         (p8_mfvsrd_4_disf): Likewise.
35619
35620 2014-01-16  Richard Biener  <rguenther@suse.de>
35621
35622         PR rtl-optimization/46590
35623         * lcm.c (compute_antinout_edge): Use postorder iteration.
35624         (compute_laterin): Use inverted postorder iteration.
35625
35626 2014-01-16  Nick Clifton  <nickc@redhat.com>
35627
35628         PR middle-end/28865
35629         * varasm.c (output_constant): Return the number of bytes actually
35630         emitted.
35631         (output_constructor_array_range): Update the field size with the
35632         number of bytes emitted by output_constant.
35633         (output_constructor_regular_field): Likewise.  Also do not
35634         complain if the total number of bytes emitted is now greater
35635         than the expected fieldpos.
35636         * output.h (output_constant): Update prototype and descriptive comment.
35637
35638 2014-01-16  Marek Polacek  <polacek@redhat.com>
35639
35640         PR middle-end/59827
35641         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
35642         it is error_mark_node.
35643
35644 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
35645
35646         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
35647         VALID_AVX256_REG_OR_OI_MODE.
35648
35649 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
35650
35651         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
35652         current procedure should be profiled.
35653
35654 2014-01-15  Andrew Pinski  <apinski@cavium.com>
35655
35656         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
35657         of moving from/to the STACK_REG register class.
35658
35659 2014-01-15  Richard Henderson  <rth@redhat.com>
35660
35661         PR debug/54694
35662         * reginfo.c (global_regs_decl): Globalize.
35663         * rtl.h (global_regs_decl): Declare.
35664         * ira.c (do_reload): Diagnose frame_pointer_needed and it
35665         reserved via global_regs.
35666
35667 2014-01-15  Teresa Johnson  <tejohnson@google.com>
35668
35669         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
35670
35671 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
35672
35673         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
35674         and vmulosh rather than call gen_vec_widen_smult_*.
35675         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
35676         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
35677         (vec_widen_smult_even_v16qi): Likewise.
35678         (vec_widen_umult_even_v8hi): Likewise.
35679         (vec_widen_smult_even_v8hi): Likewise.
35680         (vec_widen_umult_odd_v16qi): Likewise.
35681         (vec_widen_smult_odd_v16qi): Likewise.
35682         (vec_widen_umult_odd_v8hi): Likewise.
35683         (vec_widen_smult_odd_v8hi): Likewise.
35684         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
35685         vmuloub rather than call gen_vec_widen_umult_*.
35686         (vec_widen_umult_lo_v16qi): Likewise.
35687         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
35688         vmulosb rather than call gen_vec_widen_smult_*.
35689         (vec_widen_smult_lo_v16qi): Likewise.
35690         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
35691         rather than call gen_vec_widen_umult_*.
35692         (vec_widen_umult_lo_v8hi): Likewise.
35693         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
35694         rather than call gen_vec_widen_smult_*.
35695         (vec_widen_smult_lo_v8hi): Likewise.
35696
35697 2014-01-15  Jeff Law  <law@redhat.com>
35698
35699         PR tree-optimization/59747
35700         * ree.c (find_and_remove_re): Properly handle case where a second
35701         eliminated extension requires widening a copy created for elimination
35702         of a prior extension.
35703         (combine_set_extension): Ensure that the number of hard regs needed
35704         for a destination register does not change when we widen it.
35705
35706 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35707
35708         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
35709         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
35710         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
35711         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
35712         (avr-*-rtems*): Likewise.
35713         (bfin*-rtems*): Likewise.
35714         (moxie-*-rtems*): Likewise.
35715         (h8300-*-rtems*): Likewise.
35716         (i[34567]86-*-rtems*): Likewise.
35717         (lm32-*-rtems*): Likewise.
35718         (m32r-*-rtems*): Likewise.
35719         (m68k-*-rtems*): Likewise.
35720         (microblaze*-*-rtems*): Likewise.
35721         (mips*-*-rtems*): Likewise.
35722         (powerpc-*-rtems*): Likewise.
35723         (sh-*-rtems*): Likewise.
35724         (sparc-*-rtems*): Likewise.
35725         (sparc64-*-rtems*): Likewise.
35726         (v850-*-rtems*): Likewise.
35727         (m32c-*-rtems*): Likewise.
35728
35729 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
35730
35731         PR rtl-optimization/59511
35732         * ira.c (ira_init_register_move_cost): Use memory costs for some
35733         cases of register move cost calculations.
35734         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
35735         instead of BB frequency.
35736         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
35737         * lra-assigns.c (find_hard_regno_for): Ditto.
35738
35739 2014-01-15  Richard Biener  <rguenther@suse.de>
35740
35741         PR tree-optimization/59822
35742         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
35743         (vectorizable_load): Use it to hoist defs of uses of invariant
35744         loads out of the loop.
35745
35746 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
35747             Kugan Vivekanandarajah  <kuganv@linaro.org>
35748
35749         PR target/59695
35750         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
35751         truncation.
35752
35753 2014-01-15  Richard Biener  <rguenther@suse.de>
35754
35755         PR rtl-optimization/59802
35756         * lcm.c (compute_available): Use inverted postorder to seed
35757         the initial worklist.
35758
35759 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35760
35761         PR target/59803
35762         * config/s390/s390.c (s390_preferred_reload_class): Don't return
35763         ADDR_REGS for invalid symrefs in non-PIC code.
35764
35765 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
35766
35767         PR other/58712
35768         * builtins.c (determine_block_size): Initialize *probable_max_size
35769         even if len_rtx is CONST_INT.
35770
35771 2014-01-14  Andrew Pinski  <apinski@cavium.com>
35772
35773         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
35774         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
35775         (cortexa53_tunings): Likewise.
35776         (aarch64_sched_issue_rate): New function.
35777         (TARGET_SCHED_ISSUE_RATE): Define.
35778
35779 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
35780
35781         * ira-costs.c (find_costs_and_classes): Add missed
35782         ira_init_register_move_cost_if_necessary.
35783
35784 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
35785
35786         PR target/59787
35787         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
35788
35789 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
35790
35791         PR target/59794
35792         * config/i386/i386.c (type_natural_mode): Add a bool parameter
35793         to indicate if type is used for function return value.  Warn ABI
35794         change if the vector mode isn't available for function return value.
35795         (ix86_function_arg_advance): Pass false to type_natural_mode.
35796         (ix86_function_arg): Likewise.
35797         (ix86_gimplify_va_arg): Likewise.
35798         (function_arg_32): Don't warn ABI change.
35799         (ix86_function_value): Pass true to type_natural_mode.
35800         (ix86_return_in_memory): Likewise.
35801         (ix86_struct_value_rtx): Removed.
35802         (TARGET_STRUCT_VALUE_RTX): Likewise.
35803
35804 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
35805
35806         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
35807         converting a conditional jump into a conditional return.
35808
35809 2014-01-14  Richard Biener  <rguenther@suse.de>
35810
35811         PR tree-optimization/58921
35812         PR tree-optimization/59006
35813         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
35814         hoisting invariant stmts.
35815         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
35816         invariant loads on the preheader edge if possible.
35817
35818 2014-01-14  Joey Ye  <joey.ye@arm.com>
35819
35820         * doc/plugin.texi (Building GCC plugins): Update to C++.
35821
35822 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
35823
35824         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
35825         (_mm_rcp28_round_ss): Ditto.
35826         (_mm_rsqrt28_round_sd): Ditto.
35827         (_mm_rsqrt28_round_ss): Ditto.
35828         (_mm_rcp28_sd): Ditto.
35829         (_mm_rcp28_ss): Ditto.
35830         (_mm_rsqrt28_sd): Ditto.
35831         (_mm_rsqrt28_ss): Ditto.
35832         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
35833         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
35834         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
35835         (IX86_BUILTIN_RCP28SD): Ditto.
35836         (IX86_BUILTIN_RCP28SS): Ditto.
35837         (IX86_BUILTIN_RSQRT28SD): Ditto.
35838         (IX86_BUILTIN_RSQRT28SS): Ditto.
35839         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
35840         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
35841         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
35842         (ix86_expand_special_args_builtin): Expand new FTYPE.
35843         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
35844         (srcp14<mode>): Make insn unary.
35845         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
35846         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
35847         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
35848         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
35849         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
35850         Fix rounding: make it SAE only.
35851         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
35852         Ditto.
35853         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
35854         Ditto.
35855         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
35856         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
35857         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
35858         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
35859         (round_saeonly_mask_scalar_operand4): Ditto.
35860         (round_saeonly_mask_scalar_op3): Ditto.
35861         (round_saeonly_mask_scalar_op4): Ditto.
35862
35863 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35864
35865         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
35866         Implement -maltivec=be for vec_insert and vec_extract.
35867
35868 2014-01-10  DJ Delorie  <dj@redhat.com>
35869
35870         * config/msp430/msp430.md (call_internal): Don't allow memory
35871         references with SP as the base register.
35872         (call_value_internal): Likewise.
35873         * config/msp430/constraints.md (Yc): New.  For memory references
35874         that don't use SP as a base register.
35875
35876         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
35877         "an integer without a # prefix"
35878         * config/msp430/msp430.md (epilogue_helper): Use it.
35879
35880 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
35881
35882         PR target/59617
35883         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
35884         AVX512F gather builtins.
35885         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
35886         on gather decls with INTEGER_TYPE masktype.
35887         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
35888         directly into the builtin rather than hoisting it before loop.
35889
35890         PR tree-optimization/59387
35891         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
35892         (scev_const_prop): If folded_casts and type has undefined overflow,
35893         use force_gimple_operand instead of force_gimple_operand_gsi and
35894         for each added stmt if it is assign with
35895         arith_code_with_undefined_signed_overflow, call
35896         rewrite_to_defined_overflow.
35897         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
35898         gimple-fold.h instead.
35899         (arith_code_with_undefined_signed_overflow,
35900         rewrite_to_defined_overflow): Moved to ...
35901         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
35902         rewrite_to_defined_overflow): ... here.  No longer static.
35903         Include gimplify-me.h.
35904         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
35905         rewrite_to_defined_overflow): New prototypes.
35906
35907 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35908
35909         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
35910
35911 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
35912
35913         * builtins.c (get_object_alignment_2): Minor tweak.
35914         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
35915
35916 2014-01-13  Christian Bruel  <christian.bruel@st.com>
35917
35918         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
35919         optimized non constant lengths.
35920
35921 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
35922
35923         PR libgomp/59194
35924         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
35925         load as __atomic_load_N if possible.
35926
35927 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
35928
35929         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
35930         target parameter.
35931         (rs6000_expand_builtin): Adjust call.
35932
35933 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
35934
35935         PR target/58115
35936         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
35937         * config/rs6000/rs6000.c: Include target-globals.h.
35938         (rs6000_set_current_function): Instead of doing target_reinit
35939         unconditionally, use save_target_globals_default_opts and
35940         restore_target_globals.
35941
35942         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
35943         FPSCR.
35944         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
35945         (rs6000_expand_builtin): Handle mffs and mtfsf.
35946         (rs6000_init_builtins): Define mffs and mtfsf.
35947         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
35948         (rs6000_mffs): New pattern.
35949         (rs6000_mtfsf): New pattern.
35950
35951 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
35952
35953         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
35954         Start narrowing with START.  Apply candidate-use pair
35955         and check overall cost in narrowing.
35956         (iv_ca_prune): Pass new argument.
35957
35958 2014-01-10  Jeff Law  <law@redhat.com>
35959
35960         PR middle-end/59743
35961         * ree.c (combine_reaching_defs): Ensure the defining statement
35962         occurs before the extension when optimizing extensions with
35963         different source and destination hard registers.
35964
35965 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
35966
35967         PR ipa/58585
35968         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
35969         vtables into the type inheritance graph.
35970
35971 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35972
35973         PR rtl-optimization/59754
35974         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
35975         modes in the REGNO != REGNO case.
35976
35977 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35978
35979         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
35980
35981 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35982
35983         PR tree-optimization/59745
35984         * tree-predcom.c (tree_predictive_commoning_loop): Call
35985         free_affine_expand_cache if giving up because components is NULL.
35986
35987         * target-globals.c (save_target_globals): Allocate < 4KB structs using
35988         GC in payload of target_globals struct instead of allocating them on
35989         the heap and the larger structs separately using GC.
35990         * target-globals.h (struct target_globals): Make regs, hard_regs,
35991         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
35992         of GTY((skip)) and change type to void *.
35993         (reset_target_globals): Cast loads from those fields to corresponding
35994         types.
35995
35996 2014-01-10  Steve Ellcey  <sellcey@mips.com>
35997
35998         PR plugins/59335
35999         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
36000         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
36001         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
36002
36003 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
36004
36005         PR target/59744
36006         * aarch64-modes.def (CC_Zmode): New flags mode.
36007         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
36008         represents an equality.
36009         (aarch64_get_condition_code): Handle CC_Zmode.
36010         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
36011
36012 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36013
36014         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
36015         extraction in good case.
36016
36017 2014-01-10  Richard Biener  <rguenther@suse.de>
36018
36019         PR tree-optimization/59374
36020         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
36021         checking after SLP discovery.  Mark stmts not participating
36022         in any SLP instance properly.
36023
36024 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36025
36026         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
36027         when handling a SET rtx.
36028
36029 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36030
36031         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
36032         (cortex-a57): Likewise.
36033         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
36034
36035 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36036
36037         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
36038         non-iwmmxt builtins.
36039
36040 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
36041
36042         PR ipa/58252
36043         PR ipa/59226
36044         * ipa-devirt.c record_target_from_binfo): Take as argument
36045         stack of binfos and lookup matching one for virtual inheritance.
36046         (possible_polymorphic_call_targets_1): Update.
36047
36048 2014-01-10  Huacai Chen  <chenhc@lemote.com>
36049
36050         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
36051         kernel strings for Loongson-2E/2F/3A.
36052
36053 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
36054
36055         PR middle-end/59670
36056         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
36057         is_gimple_call before calling gimple_call_internal_p.
36058
36059 2014-01-09  Steve Ellcey  <sellcey@mips.com>
36060
36061         * Makefile.in (TREE_FLOW_H): Remove.
36062         (TREE_SSA_H): Add file names from tree-flow.h.
36063         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
36064         * tree.h: Remove tree-flow.h reference.
36065         * hash-table.h: Remove tree-flow.h reference.
36066         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
36067         reference with tree-ssa-loop.h.
36068
36069 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36070
36071         * doc/invoke.texi: Add -maltivec={be,le} options, and document
36072         default element-order behavior for -maltivec.
36073         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
36074         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
36075         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
36076         when targeting big endian, at least for now.
36077         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
36078
36079 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
36080
36081         PR middle-end/47735
36082         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
36083         var satisfies use_register_for_decl, just take into account type
36084         alignment, rather than decl alignment.
36085
36086         PR tree-optimization/59622
36087         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
36088         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
36089         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
36090         Don't devirtualize for inplace at all.  For targets.length () == 1,
36091         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
36092
36093 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
36094
36095         * config/i386/i386.md (cpu): Remove the unused btver1.
36096
36097 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
36098
36099         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
36100
36101 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
36102
36103         PR target/58115
36104         * tree-core.h (struct target_globals): New forward declaration.
36105         (struct tree_target_option): Add globals field.
36106         * tree.h (TREE_TARGET_GLOBALS): Define.
36107         (prepare_target_option_nodes_for_pch): New prototype.
36108         * target-globals.h (struct target_globals): Define even if
36109         !SWITCHABLE_TARGET.
36110         * tree.c (prepare_target_option_node_for_pch,
36111         prepare_target_option_nodes_for_pch): New functions.
36112         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
36113         * config/i386/i386.c: Include target-globals.h.
36114         (ix86_set_current_function): Instead of doing target_reinit
36115         unconditionally, use save_target_globals_default_opts and
36116         restore_target_globals.
36117
36118 2014-01-09  Richard Biener  <rguenther@suse.de>
36119
36120         PR tree-optimization/59715
36121         * tree-cfg.h (split_critical_edges): Declare.
36122         * tree-cfg.c (split_critical_edges): Export.
36123         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
36124
36125 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
36126
36127         * cfgexpand.c (expand_stack_vars): Optionally disable
36128         asan stack protection.
36129         (expand_used_vars): Likewise.
36130         (partition_stack_vars): Likewise.
36131         * asan.c (asan_emit_stack_protection): Optionally disable
36132         after return stack usage.
36133         (instrument_derefs): Optionally disable memory access instrumentation.
36134         (instrument_builtin_call): Likewise.
36135         (instrument_strlen_call): Likewise.
36136         (asan_protect_global): Optionally disable global variables protection.
36137         * doc/invoke.texi: Added doc for new options.
36138         * params.def: Added new options.
36139         * params.h: Likewise.
36140
36141 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
36142
36143         PR rtl-optimization/59724
36144         * ifcvt.c (cond_exec_process_if_block): Don't call
36145         flow_find_head_matching_sequence with 0 longest_match.
36146         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
36147         non-active insns if !stop_after.
36148         (try_head_merge_bb): Revert 2014-01-07 changes.
36149
36150 2014-01-08  Jeff Law  <law@redhat.com>
36151
36152         * ree.c (get_sub_rtx): New function, extracted from...
36153         (merge_def_and_ext): Here.
36154         (combine_reaching_defs): Use get_sub_rtx.
36155
36156 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
36157
36158         * cgraph.h (varpool_variable_node): Do not choke on null node.
36159
36160 2014-01-08  Catherine Moore  <clm@codesourcery.com>
36161
36162         * config/mips/mips.md (simple_return): Attempt to use JRC
36163         for microMIPS.
36164         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
36165
36166 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
36167
36168         PR rtl-optimization/59137
36169         * reorg.c (steal_delay_list_from_target): Call update_block for
36170         elided insns.
36171         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
36172
36173 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36174
36175         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
36176         two duplicate entries.
36177
36178 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
36179
36180         Revert:
36181         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
36182
36183         * config/mips/mips.c (mips_truncated_op_cost): New function.
36184         (mips_rtx_costs): Adjust test for BADDU.
36185         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
36186
36187         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
36188
36189         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
36190         (*baddu_si): ...this new pattern.
36191
36192 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
36193
36194         PR ipa/59722
36195         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
36196
36197 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36198
36199         PR middle-end/57748
36200         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
36201         inner_reference_p.
36202         (expand_expr, expand_normal): Adjust.
36203         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
36204         inner_reference_p. Use inner_reference_p to expand inner references.
36205         (store_expr): Adjust.
36206         * cfgexpand.c (expand_call_stmt): Adjust.
36207
36208 2014-01-08  Rong Xu  <xur@google.com>
36209
36210         * gcov-io.c (gcov_var): Move from gcov-io.h.
36211         (gcov_position): Ditto.
36212         (gcov_is_error): Ditto.
36213         (gcov_rewrite): Ditto.
36214         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
36215         only part to libgcc/libgcov.h.
36216
36217 2014-01-08  Marek Polacek  <polacek@redhat.com>
36218
36219         PR middle-end/59669
36220         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
36221
36222 2014-01-08  Marek Polacek  <polacek@redhat.com>
36223
36224         PR sanitizer/59667
36225         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
36226
36227 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
36228
36229         PR rtl-optimization/59649
36230         * stor-layout.c (get_mode_bounds): For BImode return
36231         0 and STORE_FLAG_VALUE.
36232
36233 2014-01-08  Richard Biener  <rguenther@suse.de>
36234
36235         PR middle-end/59630
36236         * gimple.h (is_gimple_builtin_call): Remove.
36237         (gimple_builtin_call_types_compatible_p): New.
36238         (gimple_call_builtin_p): New overload.
36239         * gimple.c (is_gimple_builtin_call): Remove.
36240         (validate_call): Rename to ...
36241         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
36242         check return types.
36243         (validate_type): New static function.
36244         (gimple_call_builtin_p): New overload and adjust.
36245         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
36246         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
36247         (gimple_fold_stmt_to_constant_1): Likewise.
36248         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
36249
36250 2014-01-08  Richard Biener  <rguenther@suse.de>
36251
36252         PR middle-end/59471
36253         * gimplify.c (gimplify_expr): Gimplify register-register type
36254         VIEW_CONVERT_EXPRs to separate stmts.
36255
36256 2014-01-07  Jeff Law  <law@redhat.com>
36257
36258         PR middle-end/53623
36259         * ree.c (combine_set_extension): Handle case where source
36260         and destination registers in an extension insn are different.
36261         (combine_reaching_defs): Allow source and destination registers
36262         in extension to be different under limited circumstances.
36263         (add_removable_extension): Remove restriction that the
36264         source and destination registers in the extension are the same.
36265         (find_and_remove_re): Emit a copy from the extension's
36266         destination to its source after the defining insn if
36267         the source and destination registers are different.
36268
36269         PR middle-end/59285
36270         * ifcvt.c (merge_if_block): If we are merging a block with more than
36271         one successor with a block with no successors, remove any BARRIER
36272         after the second block.
36273
36274 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
36275
36276         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
36277
36278 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
36279
36280         PR target/59652
36281         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
36282         for 14-bit register offsets when INT14_OK_STRICT is false.
36283
36284 2014-01-07  Roland Stigge  <stigge@antcom.de>
36285             Michael Meissner  <meissner@linux.vnet.ibm.com>
36286
36287         PR 57386/target
36288         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
36289         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
36290
36291 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
36292
36293         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
36294         -mcpu.
36295
36296 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
36297
36298         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
36299         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
36300         rtx is const0_rtx or not.
36301
36302 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
36303
36304         PR target/58115
36305         * target-globals.c (save_target_globals): Remove this_fn_optab
36306         handling.
36307         * toplev.c: Include optabs.h.
36308         (target_reinit): Temporarily restore the global options if another
36309         set of options are in force.
36310
36311 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
36312
36313         PR rtl-optimization/58668
36314         * cfgcleanup.c (flow_find_cross_jump): Don't count
36315         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
36316         to determine what is counted.
36317         (flow_find_head_matching_sequence): Use active_insn_p to determine
36318         what is counted.
36319         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
36320         counting change.
36321         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
36322         determine what is counted.
36323
36324         PR tree-optimization/59643
36325         * tree-predcom.c (split_data_refs_to_components): If one dr is
36326         read and one write, determine_offset fails and the write isn't
36327         in the bad component, just put the read into the bad component.
36328
36329 2014-01-07  Mike Stump  <mikestump@comcast.net>
36330             Jakub Jelinek  <jakub@redhat.com>
36331
36332         PR pch/59436
36333         * tree-core.h (struct tree_optimization_option): Change optabs
36334         type from unsigned char * to void *.
36335         * optabs.c (init_tree_optimization_optabs): Adjust
36336         TREE_OPTIMIZATION_OPTABS initialization.
36337
36338 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
36339
36340         PR target/59644
36341         * config/i386/i386.h (struct machine_function): Add
36342         no_drap_save_restore field.
36343         * config/i386/i386.c (ix86_save_reg): Use
36344         !cfun->machine->no_drap_save_restore instead of
36345         crtl->stack_realign_needed.
36346         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
36347         this function clears frame_pointer_needed.  Set
36348         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
36349         and DRAP reg is needed.
36350
36351 2014-01-06  Marek Polacek  <polacek@redhat.com>
36352
36353         PR c/57773
36354         * doc/implement-c.texi: Mention that other integer types are
36355         permitted as bit-field types in strictly conforming mode.
36356
36357 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
36358
36359         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
36360         is newly allocated.
36361
36362 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
36363
36364         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
36365
36366 2014-01-06  Martin Jambor  <mjambor@suse.cz>
36367
36368         PR ipa/59008
36369         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
36370         to int.
36371         * ipa-prop.c (ipa_print_node_params): Fix indentation.
36372
36373 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
36374
36375         PR debug/59350
36376         PR debug/59510
36377         * var-tracking.c (add_stores): Preserve the value of the source even if
36378         we don't record the store.
36379
36380 2014-01-06  Terry Guo  <terry.guo@arm.com>
36381
36382         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
36383
36384 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
36385
36386         PR bootstrap/59541
36387         * config/darwin.c (darwin_function_section): Adjust return values to
36388         correspond to optimisation changes made in r206070.
36389
36390 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
36391
36392         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
36393         from prefetch_block tune setting.
36394         (nocona_cost): Correct size of prefetch block to 64.
36395
36396 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
36397
36398         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
36399         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
36400         used to save the static chain register in the computation of the offset
36401         from which the FP registers need to be restored.
36402
36403 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
36404
36405         PR tree-optimization/59519
36406         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
36407         ICE if get_current_def (current_new_name) is already non-NULL, as long
36408         as it is a phi result of some other phi in *new_exit_bb that has
36409         the same argument.
36410
36411         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
36412         or vmovdqu* for misaligned_operand.
36413         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
36414         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
36415         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
36416         aligned_mem for AVX512F masked aligned load and store builtins and for
36417         non-temporal moves.
36418
36419 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
36420
36421         PR tree-optimization/59651
36422         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
36423         Address range for negative step should be added by TYPE_SIZE_UNIT.
36424
36425 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
36426
36427         * config/m68k/m68k.c (handle_move_double): Handle pushes with
36428         overlapping registers also for registers other than the stack pointer.
36429
36430 2014-01-03  Marek Polacek  <polacek@redhat.com>
36431
36432         PR other/59661
36433         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
36434         __builtin_FILE.
36435
36436 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
36437
36438         PR target/59625
36439         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
36440         asm goto as jump.
36441
36442         * config/i386/i386.md (MODE_SIZE): New mode attribute.
36443         (push splitter): Use <P:MODE_SIZE> instead of
36444         GET_MODE_SIZE (<P:MODE>mode).
36445         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
36446         (mov -1, reg peephole2): Likewise.
36447         * config/i386/sse.md (*mov<mode>_internal,
36448         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
36449         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
36450         *<code><mode>3, *andnot<mode>3<mask_name>,
36451         <mask_codefor><code><mode>3<mask_name>): Likewise.
36452         * config/i386/subst.md (mask_mode512bit_condition,
36453         sd_mask_mode512bit_condition): Likewise.
36454
36455 2014-01-02  Xinliang David Li  <davidxl@google.com>
36456
36457         PR tree-optimization/59303
36458         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
36459         (dump_predicates): Better output format.
36460         (pred_equal_p): New function.
36461         (is_neq_relop_p): Ditto.
36462         (is_neq_zero_form_p): Ditto.
36463         (pred_expr_equal_p): Ditto.
36464         (pred_neg_p): Ditto.
36465         (simplify_pred): Ditto.
36466         (simplify_preds_2): Ditto.
36467         (simplify_preds_3): Ditto.
36468         (simplify_preds_4): Ditto.
36469         (simplify_preds): Ditto.
36470         (push_pred): Ditto.
36471         (push_to_worklist): Ditto.
36472         (get_pred_info_from_cmp): Ditto.
36473         (is_degenerated_phi): Ditto.
36474         (normalize_one_pred_1): Ditto.
36475         (normalize_one_pred): Ditto.
36476         (normalize_one_pred_chain): Ditto.
36477         (normalize_preds): Ditto.
36478         (normalize_cond_1): Remove function.
36479         (normalize_cond): Ditto.
36480         (is_gcond_subset_of): Ditto.
36481         (is_subset_of_any): Ditto.
36482         (is_or_set_subset_of): Ditto.
36483         (is_and_set_subset_of): Ditto.
36484         (is_norm_cond_subset_of): Ditto.
36485         (pred_chain_length_cmp): Ditto.
36486         (convert_control_dep_chain_into_preds): Type change.
36487         (find_predicates): Ditto.
36488         (find_def_preds): Ditto.
36489         (destroy_predicates_vecs): Ditto.
36490         (find_matching_predicates_in_rest_chains): Ditto.
36491         (use_pred_not_overlap_with_undef_path_pred): Ditto.
36492         (is_pred_expr_subset): Ditto.
36493         (is_pred_chain_subset_of): Ditto.
36494         (is_included_in): Ditto.
36495         (is_superset_of): Ditto.
36496
36497 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
36498
36499         Update copyright years.
36500
36501 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
36502
36503         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
36504         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
36505         config/arc/arc.md, config/arc/arc.opt,
36506         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
36507         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
36508         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
36509         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
36510         config/linux-protos.h, config/linux.c, config/winnt-c.c,
36511         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
36512         vtable-verify.c, vtable-verify.h: Use the standard form for the
36513         copyright notice.
36514
36515 2014-01-02  Tobias Burnus  <burnus@net-b.de>
36516
36517         * gcc.c (process_command): Update copyright notice dates.
36518         * gcov-dump.c: Ditto.
36519         * gcov.c: Ditto.
36520         * doc/cpp.texi: Bump @copying's copyright year.
36521         * doc/cppinternals.texi: Ditto.
36522         * doc/gcc.texi: Ditto.
36523         * doc/gccint.texi: Ditto.
36524         * doc/gcov.texi: Ditto.
36525         * doc/install.texi: Ditto.
36526         * doc/invoke.texi: Ditto.
36527
36528 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
36529
36530         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
36531
36532 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
36533
36534         * config/i386/sse.md (*mov<mode>_internal): Guard
36535         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
36536
36537         PR rtl-optimization/59647
36538         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
36539         new_rtx into UNSIGNED_FLOAT rtxes.
36540 \f
36541 Copyright (C) 2014 Free Software Foundation, Inc.
36542
36543 Copying and distribution of this file, with or without modification,
36544 are permitted in any medium without royalty provided the copyright
36545 notice and this notice are preserved.